You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Founder live-report, 2026-09-07: a Concentrate route shows cost: unknown in the metrics strip even though Concentrate is a cataloged, routable provider with models, context sizes, and capabilities in the picker. "It should know this." And the founder is right that Concentrate is probably not the only one.
Mechanism (traced, not guessed)
route_billing.rsclassify() has explicit billing arms for only a minority of providers (locals, Codex/OpenCode subscriptions, StepFun, Z.ai, XiaomiMimo, Moonshot, MiniMax, Xai, Anthropic, Custom). Everything else falls to the _ catch-all → endpoint_shaped_payg_billing.
That consults pricing::endpoint_metering_for_billing_surface, which recognizes exactly three money surfaces (StepFun, Z.ai, Moonshot PAYG). Anything else → EndpointMetering::Unknown → the UI's honest but useless cost: unknown.
pricing.rs does carry price rows for some catch-all providers (OpenRouter, NvidiaNIM, Orcarouter, Arcee, Fireworks…), and zero rows for Concentrate. So coverage is provider-by-provider luck: 49 ProviderKind variants ship, each needing (a) a classify decision AND (b) price data, and nothing requires either to exist when the provider is onboarded.
The fail-closed intent is right (#4318: never invent metered dollars from a provider name — that rule must survive). The root issue is that provider onboarding is not atomic: the catalog can gain a fully routable provider whose billing classification and price data simply don't exist, and the only signal is a bare "unknown" in the UI.
What to do (root fix, no hacks)
Audit: walk every ProviderKind variant × its routes through billing_for_route + the pricing tables and produce the actual list of what presents unknown today. Put the table in this issue.
Data: for each gap, add the honest entry — metered price rows where the provider is PAYG, a subscription classification where it is plan-backed, Local where it is local. Where a provider genuinely publishes nothing usable, it stays Unknown — but then see 4.
Guard: add a catalog-completeness test (or CI script) that fails when a routable provider/model family has no billing classification or no price coverage. Onboarding a provider without its billing story should be a compile/CI error, not a founder surprise.
Founder live-report, 2026-09-07: a Concentrate route shows cost: unknown in the metrics strip even though Concentrate is a cataloged, routable provider with models, context sizes, and capabilities in the picker. "It should know this." And the founder is right that Concentrate is probably not the only one.
Mechanism (traced, not guessed)
route_billing.rsclassify()has explicit billing arms for only a minority of providers (locals, Codex/OpenCode subscriptions, StepFun, Z.ai, XiaomiMimo, Moonshot, MiniMax, Xai, Anthropic, Custom). Everything else falls to the_catch-all →endpoint_shaped_payg_billing.pricing::endpoint_metering_for_billing_surface, which recognizes exactly three money surfaces (StepFun, Z.ai, Moonshot PAYG). Anything else →EndpointMetering::Unknown→ the UI's honest but uselesscost: unknown.pricing.rsdoes carry price rows for some catch-all providers (OpenRouter, NvidiaNIM, Orcarouter, Arcee, Fireworks…), and zero rows for Concentrate. So coverage is provider-by-provider luck: 49ProviderKindvariants ship, each needing (a) a classify decision AND (b) price data, and nothing requires either to exist when the provider is onboarded.The fail-closed intent is right (#4318: never invent metered dollars from a provider name — that rule must survive). The root issue is that provider onboarding is not atomic: the catalog can gain a fully routable provider whose billing classification and price data simply don't exist, and the only signal is a bare "unknown" in the UI.
What to do (root fix, no hacks)
ProviderKindvariant × its routes throughbilling_for_route+ the pricing tables and produce the actual list of what presentsunknowntoday. Put the table in this issue.Localwhere it is local. Where a provider genuinely publishes nothing usable, it stays Unknown — but then see 4.Related but separate: the tok/s math has its own suspected denominator bug — filed separately.