Skip to content

v0.10.0 — subscription usage stops counting as money spent

Choose a tag to compare

@izzoa izzoa released this 29 Jul 02:25

Highlights

  • Subscription usage is no longer counted as money spent. A request served by a Claude
    Pro/Max provider was priced at Anthropic's API list rate and recorded as ordinary cost —
    but that traffic is already paid for by a flat monthly fee, so its marginal cost is zero.
    Three things followed: the Costs page drew it as "paid", every spend figure overstated what
    you owed, and — the one that could actually bite — a block budget could refuse requests
    once that notional value crossed its threshold, with nothing saying so. ChatGPT Plus/Pro
    traffic is usually unaffected: chatgpt.com is not in the pricing catalog's host map, so
    those requests record no cost at all.
  • The number is kept, not discarded. Each ledger row now snapshots the kind of provider
    that served it, and spend splits into what you owe versus what your subscription served. The
    Costs headline reports money owed and says it excludes subscription; the subscription figure
    sits beside it as "served on subscription", so the previous combined total is still
    reconstructable — and simply absent when a range has none. That figure is exactly what tells
    you whether a subscription is paying for itself.
  • The split reaches every figure, not just the headline. The timeseries and the
    model/provider/agent breakdowns exclude it too, so the chart can't disagree with the number
    above it. The distribution bar gains a fourth segment for prepaid traffic — a second
    intensity of the existing accent, adjacent to the paid one, so it still reads as one block
    subdivided — and every category now shows its count next to its percentage.
  • Budgets declare what they count. A budget carries a metering basis: money spent, or
    money spent plus subscription usage priced at API rates. Metering notional value is a crude
    proxy for a flat-rate plan's capacity, but it is the only usage throttle polyrouter has, so
    it stays available as an explicit choice in the Limits form rather than being removed.
    Budget alerts state which basis they metered.
  • Scrolling the sidebar no longer drags the whole dashboard off the top of the window, and
    its lower items — the account menu included — stay reachable on a short viewport.

Upgrade notes

  • A migration runs on boot. It is additive: two nullable columns on the cost ledgers with
    no backfill, and a metering-basis column on budgets.
  • Budget enforcement does not change. Every existing budget is backfilled to the
    notional basis and meters exactly what it metered before. Switching a budget to count only
    money spent is opt-in, per budget, in the Limits form. New budgets default to money spent.
  • Your Spend figure will drop if you use a subscription provider — it now reports money
    owed. The subscription value is shown beside it, not lost.
  • Historical requests cannot be classified. Rows recorded before this release have no
    provider-kind snapshot, and inferring one from today's providers is exactly the rewrite the
    snapshot exists to prevent. They keep counting toward spend and are reported as their own
    unclassified component. Expect a visible step in historical figures at the upgrade boundary;
    it ages out of the range naturally.
  • No new environment variables, no config changes.

Full package changelogs live in packages/*/CHANGELOG.md.