Backend Engineer
Designing Multi-Currency Analytics for Global Merchant Dashboards
How exchange-rate ingestion, normalized values, and query-time conversion APIs can make global merchant reporting usable.
Details are intentionally generalized to respect confidentiality.
- Timeline
- 2025
- Domain
- Analytics pipelines, currency normalization, dashboard APIs
- Impact
- Supported analytics for 20M/day transactions through the Express Checkout product.
Architecture
Sanitized System Flow
The diagram shows the major responsibility boundaries without exposing proprietary internal implementation.
Multi-Currency Merchant Analytics
Designed scheduled exchange-rate ingestion, USD-normalized storage, query-time conversion wrappers, optimized queries, and schema extensions.
Context
Global merchants need analytics that remain meaningful across countries, currencies, and reporting windows.
This case study is intentionally generalized and does not expose internal schemas or proprietary dashboard details.
Problem
Raw transaction amounts in different currencies made dashboard totals difficult to compare and forced manual reporting work at Express Checkout scale.
The system needed normalized values without losing the ability to display merchant-selected currencies.
Constraints
Exchange-rate ingestion had to be scheduled and resilient.
Queries needed to stay performant for dashboard workloads backed by roughly 20M/day transactions through the Express Checkout product.
Schema changes had to preserve historical correctness and avoid surprising reporting shifts.
Conversion APIs needed consistent behavior across reporting surfaces.
My Role
Designed the backend architecture for normalized storage and query-time conversion behavior.
Worked through schema extensions, optimized query patterns, and dashboard-facing API shape.
Technical Design
Introduced scheduled exchange-rate ingestion and stored USD-normalized transaction values for consistent aggregation.
Designed a conversion wrapper API for query-time display in merchant-selected currencies.
Extended schemas to support normalized analytics while preserving original transaction context.
Optimized queries around dashboard access patterns rather than one-off reports, with the design shaped for 20M/day transaction volume through Express Checkout.
Tradeoffs
Storing normalized values increased write-time responsibility, but reduced repeated conversion work at read time.
Query-time conversion preserved dashboard flexibility, but required careful rate selection and response semantics.
Impact
Supported multi-currency merchant analytics for 20M/day transactions through the Express Checkout product.
Reduced manual reporting overhead for global transaction analytics.
Created a scalable foundation for merchant dashboards that need cross-currency comparisons.
What I learned
Analytics correctness is a product feature; users lose trust when totals are hard to explain.
Currency systems need explicit time, source, and normalization semantics.