# Phase 33: Currency System - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-04-13 **Phase:** 33-Currency System **Areas discussed:** Data model & source currency, Conversion strategy, User experience & display, Catalog & sharing implications --- ## Data Model & Source Currency ### Core pricing model | Option | Description | Selected | |--------|-------------|----------| | Per-item source currency | Add priceCurrency column alongside priceCents | | | Per-user base currency only | All prices assumed in user's currency | | | Everything stored as USD | Normalize to USD on entry | | | Market-specific pricing | Prices are market-specific, not converted. Different markets have different UVP/MSRP | ✓ | **User's choice:** Market-specific pricing — not just exchange rate conversion. A €2,000 bike in Germany may be £2,200 in the UK because that's the UK market price, not a conversion. **Notes:** User emphasized that German UVP (MSRP) can be completely different from UK or US retail prices. This is a market reality, not a conversion problem. ### Community price data | Option | Description | Selected | |--------|-------------|----------| | On catalog detail page | "Report your price" button | | | During add-to-collection | Capture when adding item | | | Both (tied to ownership) | Only report for items you own, auto-captured from collection | ✓ | **User's choice:** Both, but tied to collection ownership — you can only report prices for items you have. Prevents duplicates. **Notes:** User also identified that candidate "price I found it for" is research-quality data. Purchase date should be tracked for temporal context. ### Scope check | Option | Description | Selected | |--------|-------------|----------| | Foundation layer | UVP display + conversion, community data later | | | Full system | Everything: market prices, community submissions, conversion | ✓ | | Let's scope it together | Walk through each piece | | **User's choice:** Full system in Phase 33. --- ## Conversion Strategy ### Rate source | Option | Description | Selected | |--------|-------------|----------| | Free API (ECB/frankfurter.app) | Daily rates, no API key, ~30 currencies | ✓ | | Paid API (Open Exchange Rates) | More currencies, intraday, ~$12/mo | | | You decide | Claude picks | | **User's choice:** Free API — ECB via frankfurter.app ### Conversion location | Option | Description | Selected | |--------|-------------|----------| | Server-side | Server fetches rates, returns converted prices | ✓ | | Client-side | Client converts locally | | | You decide | Claude picks | | **User's choice:** Server-side --- ## User Experience & Display ### Market/locale detection | Option | Description | Selected | |--------|-------------|----------| | Manual setting only | User picks market in settings | | | Auto-detect + manual override | Browser locale / IP, changeable | | | Tied to currency choice | Currency = market, with auto-suggestion | ✓ | **User's choice:** Currency tied to market (EUR=EU, GBP=UK, USD=US) with auto-suggestion from browser locale and IP geolocation. Best of both worlds. ### Converted price display | Option | Description | Selected | |--------|-------------|----------| | Prefix with ~ and muted style | ~£1,720 with tooltip | | | Dual display | €2,000 (~£1,720) — source prominent, converted in parens | ✓ | | You decide | Claude picks | | **User's choice:** Dual display --- ## Catalog & Sharing Implications ### Catalog detail page | Option | Description | Selected | |--------|-------------|----------| | User's market first, others expandable | Local UVP + community avg prominent, other markets collapsible | ✓ | | All markets in a table | Price table showing all markets at once | | | You decide | Claude picks | | **User's choice:** User's market first, others expandable ### Shared setup prices | Option | Description | Selected | |--------|-------------|----------| | Owner's original prices | Show in owner's currency with conversion toggle | | | Viewer's market prices | Auto-convert to viewer's currency | | | Layered disclosure | Card: viewer's market MSRP. Detail: full breakdown including owner's price | ✓ | **User's choice:** Layered — card shows viewer's market MSRP, detail page shows full breakdown (owner's price, all market MSRPs, community averages). ### Comparison table currencies | Option | Description | Selected | |--------|-------------|----------| | Normalize to user's currency | All candidates in viewer's currency, marked as approximate | ✓ | | Source currency with tooltip | Each in source currency, hover for conversion | | | You decide | Claude picks | | **User's choice:** Normalize — mixed currencies (EUR, USD, JPY, TRY) are useless for comparison. Rough converted price gives direction even if not exact. Users can add their own researched "price I found it for." ## Claude's Discretion - Rate caching strategy - Schema design for market prices table - Community price aggregation approach - Transition from current simple priceCents model ## Deferred Ideas None — discussion stayed within phase scope.