Dialogue.  · The chat's cost panel

The chat's cost panel — a mockup

Chat info ▸ Cost, redrawn to the owner's layout: aligned columns, no tokens, the admin console's group colours, and no row for a step that cost nothing.

Status: BUILT 2026-08-21 (v941) — live on main, not yet on the box. Shipped with all four agreed suggestions, plus two decisions the owner made on reading this page: The specimens below are the design record and still run on hand-written numbers.

1 · Now vs proposed

Today live
CostPEAK ×2$0.080
DeepSeek V4 Pro 63 calls · 1.24M · $0.041
DeepSeek V4 Flash 58 calls · 412k · $0.012
speech 21 calls · $0.042 · 53%
staging 21 calls · $0.019 · 24%
tool call 9 calls · $0.011 · 14%
memory 4 calls · $0.006 · 7%

Every figure floats: the name column is content-width, so nothing lines up. Tokens sit between the reader and the money. One coral bar for every step — the colour carries no information.

Proposed mockup
CostPEAK ×2 121 calls$0.080
V4 Pro 63 calls$0.041 V4 Flash 58 calls$0.012
speech 21 calls$0.042 FP 21 calls$0.019 tools 9 calls$0.011 persona.mem 4 calls$0.006

One grid, four rails: colour · name · calls · money. Models above the rule, steps below it — the same money cut two ways. Colours are the console's groups, so a chat and the dashboard agree on sight.

2 · The other shapes it has to hold

A game room — every group lit
Costoff-peak 318 calls$0.412
V4 Pro 96 calls$0.291 V4 Flash 211 calls$0.098 Haiku 4.5 11 calls$0.023
speech78 calls$0.204 FP78 calls$0.071 games96 calls$0.058 tools44 calls$0.042 room14 calls$0.031 persona.mem8 calls$0.006
A fresh chat — one model, two steps
Costoff-peak 2 calls$0.0031
speech1 call$0.0026 FP1 call$0.0005

One model → the model rows and the rule both vanish (today's rule, kept: 「one model, one row」says nothing). Under a dollar the figures widen to four decimals so a cheap step is never 「$0.000」.

3 · What I'd change on top of your layout

Five suggestions — take any, none, or all.

4 · The decision, as taken

The ledger will not make these numbers more accurate — they are already exact. Since v935 every provider call a room makes goes through one seam (Room._tally), which is what feeds this panel AND writes the ledger row, so the panel is per-call exact today and already speaks the group.leaf vocabulary. What the ledger would add is a different source, and it comes with a real trade: I recommended keeping the in-memory tally; the owner chose the ledger — correctness and a single source first — and that is what shipped. The fork question was decided deliberately rather than as a side effect: a fork now shows what IT spent, with the inherited amount named as earlier rather than passing as its own.
One real gap the ledger does close, if you want it. A room whose state.json predates the per-kind split shows an empty step list — the panel has nothing to show because nothing was recorded then. The ledger has rows for every call since ledger_start, so those old rooms would gain a partial (honest, dated) split. Rare, and it fixes itself as rooms age out.
Dialogue · design docs — the chat's cost panel · mockup 2026-08-21 · group colours are the console's validated categorical palette