kshitij
ccaaca7e66
fix(usage): cost display honesty — sub-cent labels, cost buckets, included notes
...
Three cost-display honesty fixes:
1. Sub-cent cost label rendering (#79220 ) — _format_cost_label() scales
precision to magnitude: zero renders as '$0.00', sub-cent (< $0.01)
renders at 4 decimal places (e.g. '~$0.0046'), normal costs keep 2dp.
This fixes the bug where DeepSeek per-turn costs of $0.004640 rendered
as '~$0.00' despite amount_usd carrying full Decimal precision.
2. Cost bucket surfacing (#77223 ) — insights format_terminal and
format_gateway now display three cost buckets: estimated (with dollar
figure), included (session count, labeled 'subscription — no provider
invoice'), and unknown (session count, labeled 'no pricing data').
Previously, included and unknown sessions silently collapsed to $0 in
the aggregate view, hiding 315 of 473 sessions in the reporter's DB.
3. Subscription-included cost notes — estimate_usage_cost now attaches a
'subscription-included; no provider invoice for usage' note to
CostResult for subscription-included routes (openai-codex), so
consumers can distinguish 'free because subscription' from 'free
because $0 pricing'.
Fixes #79220
Fixes #77223
2026-08-14 02:04:24 +05:30
..
2026-08-02 20:21:59 -07:00
2026-08-08 04:19:49 -07:00
2026-08-14 02:04:24 +05:30
2026-08-12 13:30:01 -05:00
2026-08-13 23:45:21 +05:30
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-08-13 11:49:24 -07:00
2026-07-29 13:39:40 -07:00
2026-08-01 10:52:34 -07:00
2026-07-28 08:25:25 -07:00
2026-07-29 12:19:37 -07:00
2026-08-13 12:21:04 -07:00
2026-08-14 00:59:38 +05:30
2026-08-10 11:01:15 +05:30
2026-08-13 23:43:15 +05:30
2026-08-04 17:36:26 -04:00
2026-08-08 18:11:02 -07:00
2026-08-03 20:35:47 +05:30
2026-08-13 11:49:14 -07:00
2026-08-13 11:11:53 -07:00
2026-08-13 12:31:02 -07:00
2026-08-13 02:38:28 -07:00
2026-08-12 19:13:32 -07:00
2026-08-12 16:11:51 -07:00
2026-08-09 14:10:21 -07:00
2026-08-08 12:33:19 -07:00
2026-08-13 11:09:51 -07:00
2026-08-13 12:21:04 -07:00
2026-08-07 10:11:05 -07:00
2026-07-31 22:33:11 -07:00
2026-08-12 19:13:32 -07:00
2026-08-12 17:25:30 -05:00
2026-08-06 05:00:17 +05:30
2026-08-13 22:44:23 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-01 15:05:05 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-02 00:11:50 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:12:28 -07:00
2026-08-03 17:19:49 -07:00
2026-07-29 13:10:23 -07:00
2026-08-01 23:28:28 -05:00
2026-07-29 13:10:23 -07:00
2026-08-02 00:11:50 -07:00
2026-08-08 05:21:09 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 20:30:32 +05:30
2026-07-29 13:10:23 -07:00
2026-08-12 19:13:32 -07:00
2026-08-09 22:09:49 -04:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-07-31 22:35:07 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 18:13:09 -07:00
2026-08-13 23:45:21 +05:30
2026-07-29 18:55:10 -07:00
2026-08-13 23:43:15 +05:30
2026-08-13 23:43:15 +05:30
2026-07-29 17:35:16 -05:00
2026-08-13 02:38:28 -07:00
2026-08-08 19:46:35 -07:00
2026-08-13 02:44:48 -07:00
2026-07-31 22:39:11 -07:00
2026-08-13 02:38:28 -07:00
2026-08-13 18:39:54 +00:00
2026-08-13 18:39:54 +00:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 18:13:09 -07:00
2026-07-29 13:10:23 -07:00
2026-08-07 19:44:35 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 21:30:53 -07:00
2026-07-29 19:53:17 -07:00
2026-08-11 17:06:15 -05:00
2026-08-01 13:13:30 +05:30
2026-07-30 00:08:28 -05:00
2026-07-29 13:10:23 -07:00
2026-08-03 17:38:13 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 15:12:28 -07:00
2026-07-31 07:18:02 -07:00
2026-07-31 22:35:16 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-08-10 13:49:37 -04:00
2026-08-13 11:49:14 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-12 18:55:14 -07:00
2026-08-10 17:02:56 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 21:30:53 -07:00
2026-08-08 12:33:19 -07:00
2026-07-29 13:10:23 -07:00
2026-08-07 00:41:58 -04:00
2026-08-02 10:04:48 -07:00
2026-08-10 17:02:56 -07:00
2026-08-10 17:02:56 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 20:37:17 +05:30
2026-08-02 21:32:13 +05:30
2026-07-31 23:18:12 -07:00
2026-08-06 07:49:42 -07:00
2026-08-04 11:26:15 +05:30
2026-08-12 19:43:29 -07:00
2026-08-12 19:43:41 -07:00
2026-08-08 14:18:26 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-06 19:35:47 -06:00
2026-07-29 13:10:23 -07:00
2026-08-13 09:36:02 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-07 09:44:21 -07:00
2026-07-29 13:10:23 -07:00
2026-08-01 15:58:42 +05:30
2026-08-06 23:08:23 -05:00
2026-08-14 02:02:18 +05:30
2026-07-29 13:10:23 -07:00
2026-08-06 19:35:47 -06:00
2026-08-09 13:43:14 -07:00
2026-07-28 11:57:37 -07:00
2026-08-12 20:02:07 -07:00
2026-08-02 21:30:54 +05:30
2026-08-02 23:10:28 +05:30
2026-08-09 22:09:49 -04:00
2026-08-13 02:38:28 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00