Upstream usage and reconciliation

OpenRouter Analytics in the navigation is the platform's upstream usage record: what the provider accounts spend, how that squares against the platform's own ledger, and which models the provider offers in each region. Use it to reconcile a window of spend, to see which companies' traffic earns or costs money, and to catch a model that has disappeared upstream.

The header subtitle reads: "OpenRouter-side usage per company, cross-checked against the platform ledger."

Note

This is a DataMind staff area. It is visible to staff accounts and sits outside the client console. Its rows are unmasked: they carry the real models and the platform's upstream costs and margins.

The six tabs

TabWhat it answers
LiveToday's upstream spend and requests.
Double accountingUpstream spend against the ledger, per company, with a per-day drill.
ReportsThe synced key, model and day cube, by key or by model.
FinancialWhat each company's window earned or cost, in its own currency.
Live analyticsFixed views over the provider's analytics: spend, latency and cache hit rate.
Model listingWhich models the provider offers per region, and when that changed.

The page opens on Double accounting. The open tab is kept in the address, so a tab can be shared as a link and the browser's back button works, and changing tabs keeps the date window you chose: the tabs answer the same question at different grains.

Reconcile a window

Double accounting puts two sides of the same spend next to each other: what the provider reported, and what the platform's ledger recorded as the reconciled upstream cost.

To trace a single request into the provider's own record, use the All-companies request log.

Daily breakdown

The drill lists Date (UTC), Req OR, Req ledger, Tok in OR, Tok in ledger, Tok out OR, Tok out ledger, Cached tok, OR spend, Ledger cost, Cache saved, Δ spend and Notes, with No per-day usage for this window. when the drill is empty.

The Notes column collects the flags:

A delta is only a finding once it grows: it is flagged when it clears a cent in the summary table, and on a daily row when it clears the larger of a cent and one percent of the upstream spend.

Reports

Reports reads the synced cube: key, model and UTC day. Choose the grain with By key and By model, set From (UTC) and To (UTC), and read the stats Window spend and Requests above the table. The panel's note reads: "Aggregated from the synced key × model × day cube (UTC days), sorted by spend. Click a row for its per-day breakdown."

Financial

Financial shows what each company's window earned or cost, in that company's own currency.

Live and Live analytics

Live shows today's account-level numbers from the provider's analytics API: Spend today (upstream cost) and Requests today, under a Today (UTC) heading. The reading is cached on the server for about five minutes, so refreshing more often than that returns the same numbers; Refresh asks for it again.

Live analytics holds four fixed views over a 7, 14 or 31 day window: Spend by model, Spend by company, Latency by model and Cache hit rate. Its note reads: "Live from OpenRouter's analytics API (5-minute cache). Spend here is DataMind's upstream cost, not client billing." Empty: No upstream data for this window.

When the provider's analytics API cannot be reached, the live readings fail with Upstream analytics is unavailable; the synced tabs keep working from the stored snapshot.

Model listing

The tab tracks what the provider makes available, region by region, not what the platform sells: the curated list lives on Model catalog. Its description reads: "OpenRouter availability per region - scanned hourly; a scan diffs the live listing against the stored state."

What a scan does, and does not do:

Sync now

Sync now backfills the snapshot that the Double accounting, Reports and Financial tabs read. It re-pulls a trailing window from the provider's analytics API: 7 days by default, up to 30. The sync also runs on its own schedule, every six hours.

Questions, answered

How fresh are the numbers on the Live tab?

The provider's analytics are cached server-side for about five minutes, so refreshing again within that window returns the same numbers. The other tabs read the synced snapshot, which Sync now and the six-hourly schedule keep current.

What does provisional mean on the latest day?

It marks the current UTC day. The provider's numbers settle late: every sync re-pulls the last few days and updates them, so a day's row keeps converging until the window slides past it. Treat the latest day as not final.

What does the Unreconciled count mean?

It counts ledger rows whose upstream check is still outstanding. They close their part of the delta after the next reconciliation sweep.

What does Δ spend compare?

The provider's reported spend for the window versus the ledger's reconciled upstream cost. It is treated as a finding only once it clears a cent in the summary table; on a daily row, once it clears the larger of a cent and one percent of the upstream spend.

Why is there no grand total of Net income?

Every row is in its own company's currency, so adding the money across rows would be a wrong number, not a rounded one. The All bar totals traffic and USD spend only.

Why does an unattributed row show no Net income?

Nobody was billed for that spend: its upstream key matches no platform key, so there is no payer and no currency to report a net in. Attribute the key and the spend moves onto a company row.

Why did a retirement not appear in the Events history?

Events fire only for models the platform offers to clients. When a model that is not offered disappears, its state flips to Retired but no event is raised; the scan's run report shows it as an unlisted retirement.

What happens if a scan fails or returns nothing?

That region is marked aborted and nothing is retired there. A failed or empty read is never treated as a mass retirement, and the other regions still complete their part of the scan.

How far back does Sync now backfill?

Up to 30 days, which is the retention of the provider's analytics API; the default window is 7 days.

Does the Day buckets zone change the monthly totals?

No. It re-buckets the day columns and moves the pay-as-you-go figures and the range bounds; the monthly totals stay anchored to the billing wall clock the invoices closed on.

Does switching tabs reset my date window?

No. One shared filter set backs every tab, and the window you chose is kept in the address, so a shared or reloaded link keeps it too.