Data health

Whether the dashboards can be trusted right now. Data counts as current for 2 days, late up to 7, and stale after that — marketplaces publish a day behind, so a one-day gap is normal.

Every tile opens what is behind it — the matching section below, or the mapping inbox.

Freshness by marketplace

Measured against the newest business day we hold, not the newest import: a connector that succeeds hourly while the marketplace serves old figures is still stale.

MarketplaceLatest sales dayFreshnessLast successful importLive fact rows
blinkit28 Jul 2026stale10 days behind7 Aug 2026, 7:49 pm1 run646
zepto27 Jul 2026stale11 days behind7 Aug 2026, 7:49 pm1 run867

Unattributed revenue

Sales we recorded but could not tie to a SKU. The money is in the totals and missing from every per-SKU view, which is why this queue is worked by value.

Every identifier we have seen resolves to a SKU. Nothing to clear.

Failed and stuck runs

0 failed, 0 stuck. A run is stuck when it has not changed state for 30 minutes — the tick advances one transition a minute, so anything older has lost its worker rather than being busy.

Nothing failed and nothing is hanging. New runs appear on Import.

Rejected rows, by cause

Grouped by code because the shape is the diagnosis: one code dominating means a parser needs fixing, a spread across codes usually means one bad file.

No unresolved row rejections. Every parsed row was promoted.

Coverage and the rollup queue

Facts and their dirty markers are written in one transaction, so a backlog that grows means the tick has stopped draining — the facts are right and every dashboard is quietly showing pre-import numbers. Warn at 15 minutes old, bad at 120.

Live sales rows
1,513
All revisions
1,513
every superseded version kept
Rollup cells
1,339
last computed 7 Aug 2026, 8:41 pm
Days awaiting summary
0
queue drained
Listing-coverage cells
5,317
Legacy archive rows
365
read-only, never in the ledger
Source files kept
3