MyStatus

What a feature costs

Measured . These are three features, not all of them.

Somebody asked how you would know what your AI spend actually buys you. It is a fair question and it usually gets an unfair answer — a token count, which measures how much was read, not how much was built. Here are three features we shipped, each with the hours it took, the tokens it cost, and a link to the public record every figure was read from.

Nothing on this page was measured for this page. The work log has been public since the day it started: an entry when a piece of work opens, entries while it runs, an entry when it merges. The hours are the time between those entries. The tokens are the receipt each finished piece of work already carried. All this page does is put them side by side and show you the rows.

The billing report

A tool that reads our public work log and turns it into the document a client would actually be sent: every deliverable that shipped in a period, how long each one was worked, and what that comes to at an agreed rate. Its first real run billed 45.3 hours of 47.9 measured — and it found a rounding rule that had quietly dropped $390, because sixty-six lines each rounded down on their own. This receipt prices the thing that prices things, which is either the most useful entry on the page or the most circular, depending on your mood.

A week it priced, and the same week priced honestly

1.7
Person hours

Time the public work log was open while this was being built.

$255
At $150 an hour

Stated, not measured

The rate stated 2026-08-26. Nobody was billed this; it is what the same hours would have cost at consulting rates.

5,670,896
Tokens, cost-weighted

Input once, cached reading a tenth, cached writing double, output five times.

$26.43
Tokens, at list rates

Stated, not measured

Published rates on the day each turn ran. Nobody was billed this; the work runs on a flat monthly plan.

The token bill, in parts

Written
161,278
The work itself
Standing context
13,604,340
105,460 per turn, 129 turns
Re-reading itself
24,749,855
The conversation so far, every turn
Model
claude-opus-5
Cost per token differs by model

Never one total. Adding these together gives a number several times larger than the work, because the standing instructions are re-read on every single turn — so the big figure is real, is quoted by usage dashboards, and overstates what was built. Both halves are here so nobody has to take our word for either.

Where the hours came from

1 of 1 stretch ended on a posted entry you can open.

The aging curve

A measurement of when a working session stops being worth continuing. Every exchange in a long session costs more than the one before it, because the whole conversation so far gets re-read each time — and nobody here knew by how much. Across 144 sessions it turned out to be nearly three times, once a session passes its 141st exchange. The uncomfortable part is what it caught: our own habit of batching several jobs into one long session, adopted weeks earlier for an unrelated reason, was the most expensive thing in the table.

The curve it produced, on the stats page

2.6
Person hours

Time the public work log was open while this was being built.

$390
At $150 an hour

Stated, not measured

The rate stated 2026-08-26. Nobody was billed this; it is what the same hours would have cost at consulting rates.

1,874,057
Tokens, cost-weighted

Input once, cached reading a tenth, cached writing double, output five times.

$8.23
Tokens, at list rates

Stated, not measured

Published rates on the day each turn ran. Nobody was billed this; the work runs on a flat monthly plan.

The token bill, in parts

Written
46,180
The work itself
Standing context
4,666,904
106,066 per turn, 44 turns
Re-reading itself
5,658,187
The conversation so far, every turn
Model
claude-opus-5
Cost per token differs by model

Never one total. Adding these together gives a number several times larger than the work, because the standing instructions are re-read on every single turn — so the big figure is real, is quoted by usage dashboards, and overstates what was built. Both halves are here so nobody has to take our word for either.

Where the hours came from

1 of 1 stretch ended on a posted entry you can open.

The Android version floor

A way to tell an installed Android app that it is too old to keep running — and to stop it cleanly and say so, rather than let it fail in confusing ways against a server that has moved on without it. It is the one piece of phone code on this page, and it is here for that reason: the same record prices Kotlin exactly the way it prices a web page, and nothing in the measurement knows or cares which it is looking at.

1.7
Person hours

Time the public work log was open while this was being built.

$255
At $150 an hour

Stated, not measured

The rate stated 2026-08-26. Nobody was billed this; it is what the same hours would have cost at consulting rates.

3,657,106
Tokens, cost-weighted

Input once, cached reading a tenth, cached writing double, output five times.

$16.11
Tokens, at list rates

Stated, not measured

Published rates on the day each turn ran. Nobody was billed this; the work runs on a flat monthly plan.

The token bill, in parts

Written
69,275
The work itself
Standing context
8,785,505
92,479 per turn, 95 turns
Re-reading itself
12,736,645
The conversation so far, every turn
Model
claude-opus-5 · <synthetic>
Cost per token differs by model

Never one total. Adding these together gives a number several times larger than the work, because the standing instructions are re-read on every single turn — so the big figure is real, is quoted by usage dashboards, and overstates what was built. Both halves are here so nobody has to take our word for either.

Where the hours came from

1 of 2 stretches ended on a posted entry you can open. The rest ended where the log went quiet. A further 39 min of this feature's window is in none of the stretches above; on this one, that is mostly time it sat waiting for a person.

Reading these numbers fairly

The hours are a floor. They count time the log was open, and the log is written by the machine doing the work, so it is blind to exactly the stretches where a person was thinking and nothing was running — reading, deciding, answering a question the work had stopped on. A machine cannot record the minutes it spends waiting for someone. Every figure here also rounds down rather than to the nearest.

It errs the other way in one place, and here it is. A stretch of counted time runs from one posted entry to the next. Go quiet for more than forty-five minutes and the stretch ends on its own, dated half an hour after the last sign of life — but if what follows the silence is the entry that closed the work, that entry is the record of when the work stopped and we take it at its word, quiet included. 2 hr 15 min of the aging curve’s hours are one unbroken run of that: nothing posted, and nothing saved in the code history either, between the last piece of work and the entry that closed it. It has the shape of a wait for someone to read the result and approve it, and it is billed here like working time.

We are leaving it in. The alternative is to trim a figure until it looks the way we would like it to look, and a breakdown adjusted for reasonableness has stopped being the measurement it claims to be. A page of receipts gets exactly one thing to trade on, and this is the trade.

Several real costs are in none of these figures. The time before the first save, when the work was being scoped; the review that happened after it shipped; and every hour of thinking that went into the project before any of these were started. None of those are small, and none of them are measured here.

Both halves are counted over the same stretch — from the first thing saved to the moment it shipped. Each feature's own entry on the work log counted from a few minutes earlier, when the work was first opened, so the numbers there run slightly higher than the ones on this page. Where two windows were available we took the narrower one, because it is the one the code history can prove.

The dollar figures are equivalents, not revenue. Nobody paid them. The hours answer “what would these have cost at consulting rates” and nothing else, at a rate we state rather than survey.

The token dollars are a price list, not a bill. They are what these tokens would cost anyone buying them one at a time, at the published rates, with every exchange priced at the rate in force on the day it ran. The dating is not fussiness: one of those rates was cut by three quarters on the first of September, and a figure priced at today’s rate would quietly re-price everything that came before it. What we actually pay is a flat monthly subscription, and that number is on the stats page instead. Which of the two you want depends on the question: the flat plan says what this operation costs to run, the price list says what the same work would cost you.

Three features is not a sample. These were picked because they are interesting, not because they are typical, and a feature that went badly would show a very different number. What the page argues is that the number can be produced and checked at all — not that this is what software costs.

Nothing here is read out of anybody's writing. The work log's entries are prose, meant for people. The figures come from the three structured parts of an entry — its label, its timestamp, and its links — which is the same agreement any outside developer can use on their own tasks.

Hours derived from the public work log. Tokens measured from session transcripts at the time of the run above. The same machinery produces the running totals on the stats page.