Before / silent ambiguity
An unavailable source appears as zero, or an old payload is displayed without a freshness warning. The viewer cannot distinguish missing data from an actual result.
Case study 02 / Analytics engineering / Dashboard product
Finance users needed a shared view of revenue, returns and product launches without repeatedly opening reports or unknowingly relying on stale data. I was the primary builder of a read-only dashboard and kiosk platform for the CFO and Finance Business Planning team.
Outcome / Reduced recurring manual reporting effort and made data freshness and gaps visible to finance users. Explore the anonymized interactive demo ↗
01 / The problem
A dashboard can look current while serving old data. Finance reporting also becomes misleading when revenue, settlement, returns or differently grained records are treated as interchangeable.
Reporting data flows through PostgreSQL and a read-only API to desktop and kiosk views. Calculation rules preserve metric meaning, and freshness states travel with the displayed data.
02 / See the work
Synthetic dashboard concept. The values and reporting states below are fictional examples, not a live view or a measurement of platform performance.
Finance Analytics Platform
124,000 fictional currency units
Different outcomes remain separate. An unavailable value is not displayed as zero.
If a source fails, retain the last successful payload and clearly label its status.
An unavailable source appears as zero, or an old payload is displayed without a freshness warning. The viewer cannot distinguish missing data from an actual result.
Show unavailable values, label cached or stale results and retain mapping warnings beside the relevant measure.
03 / Technical judgment
Gross sales, net revenue, settlement and return outcomes remain distinct. Product and SKU measures are not added together.
Read-only snapshot transactions avoid combining different transformation batches in a single response.
Caching, retry handling and last-known-good payloads keep a useful view available while exposing freshness and fallback states.
Kiosk rotation, pause controls and navigation support shared displays. Protected access and API boundaries keep database credentials out of the browser.
# Illustrative pseudocode — not production source
if source_is_available:
payload = read_consistent_snapshot()
retain_last_success(payload)
show(payload, freshness="current")
else:
show(last_success, freshness="cached")
# Missing values stay unavailable; they do not become zero.04 / Ownership & impact
I built dashboard UX, data models, SQL transformations, API services, calculation rules, reliability controls and delivery coordination.
A Data Engineer maintained the upstream e-commerce pipeline. A Backend Developer supported deployment to AWS EC2. The CFO and Finance Business Planning team were the primary users.
Revenue, Returns and New Product Launch views were in active use. The platform reduced recurring manual reporting effort and improved refresh resilience through explicit caching, retries and last-known-good behavior.
Qualitative outcomes and usage status reflect my project account. Illustrative values above are not impact metrics.