MyStatus Stats
Make your decisions now with the facts...and there’s a lot of facts.
How to read these numbers
- Every figure names its window. If it is not counted from the first commit on Jul 26, 2026, it carries a Since date. No date means all of it.
- Everything floors. Hours, sessions and averages round down, and where a rounding could go either way it goes the way that does not flatter us.
- Stated is not measured. A figure nothing here measures is stamped Stated, not measured where it stands. It is somebody’s word, and it should cost you more to believe than the ones with a record behind them.
- Hand-kept records say they are hand-kept, and name the day they were last checked.
- The signs read a record, not a mood. A sign is lit because a label and a timestamp say so on a public task you can open — not because anyone is typing. Nothing on this page is scraped out of prose.
The AI Stats — Token breakdowns
Before any work starts, an assistant is handed a fixed block of standing context: its own instructions, this project’s conventions, the description of every installed skill, the signature of every available tool. None of it is the work. All of it is re-read on the next turn, and the one after that.
Handed over on every single turn, whatever the turn is about.
The assistant’s own system prompt, the part nobody in this project can edit. Since October 12 the tool definitions are larger, and most of those are the platform’s too.
Across 385 finished tasks with a measured window, each multiplied by its own floor — the figure drifts as the toolchain does.
- Tool definitionscounted80,84149%
The full call signature of every tool loaded up front — 77 of them, 323,362 characters. One of them, Artifact, is 57,902 characters on its own. Until September 24 this row said it could not be read and carried August 30’s 14,500 forward, because tool schemas arrived with the request and were never written into the session record. They are now: the session record carries a snapshot of every tool it was handed, so the row is read like every other one here. A cloud session’s tool set is not the desktop’s — it carries the remote-trigger, remote-device and memory tools and a Projects tool — which is why this row jumped from 33,953 on September 30. On October 8 the same 46 tools came back by name for the third reading running. By October 12 the platform had changed the set it hands a cloud session: 32 tools added — display widgets, search and conversation tools, task, web and repository tools — and 5 removed, 80,833 characters more, about 20,000 tokens. None of the 32 is ours, so this row is now mostly the platform’s, and that is why the platform’s own line below fell on that reading. On October 15 four scheduled-task tools the October 12 set had dropped were back, and three of the platform’s own descriptions were longer — 21,597 characters more, about 5,400 tokens, all of it the platform’s.
- The assistant’s own system promptby subtraction56,07934%
Anthropic’s standing instructions. Not counted directly: this is what is left after everything else is subtracted, so it also carries the error in every estimate above it. Its share fell from 54% to 40% on September 24, and almost none of that was the platform changing: the tool definitions above became readable that day and turned out to be about 19,000 tokens larger than the figure carried since August 30, all of which had been counted here. Thirteen readings now — 52%, 56%, 55%, 57%, 55%, 54%, then 40% twice on the new method, then 41% on September 30 from a cloud seat, 41% again on October 3 from the same kind of seat, 46% on October 8 from the same kind again — up five points, because the file we write ourselves shrank by far more than this line did — and 35% on October 12, down eleven. That fall is not the platform giving ground. Between the two readings it changed the tools it hands a cloud session, 46 to 73, and tool definitions are counted on their own row above, so about 20,000 tokens of the platform’s moved out of this line and into that one; its own instructions got shorter at the same time. Then 34% on October 15, down one: this line barely moved, 55,962 to 56,079, while the platform’s returning tools again landed on the counted row. The session record also carries these instructions in full, the second copy of the skill descriptions, and on the cloud seats a memory block of about 9,000 tokens; none is counted yet, on purpose, so each reading stays comparable with the one before. Read this line as a ceiling on the part nobody here can edit, and a generous one.
- Project instructionscounted19,15911%
This repo’s CLAUDE.md. Conventions, invariants, and every gotcha learned the hard way — the file that lets a session pick up where the last one stopped. 76,636 characters on October 15, up from 75,704 on October 12 and 67,514 on October 8, and still under half the 158,415 of October 3: on October 4 the file was put on a diet, every rule kept to its statement and the story behind each moved to a history file a session reads only when it needs the reason. Ten readings up without once going down, the eleventh cut it by more than half, and the twelfth and thirteenth found it growing again. Still the largest line we write ourselves.
- Skill descriptionsestimated4,7672%
34 installed skills on this reading, the same 34 as October 12 to the character, against 31 on October 8 and 86 on the desktop seat before the move to the cloud — a cloud session is not given the same install. Each description is presented twice, in two different formats. One copy is read exactly — 19,067 characters — and the second is estimated at the same size, which is why this row is still marked estimated. That estimate is known to be low: the second copy has never been counted, and sits in the platform’s line below.
- Connector instructionscounted1,4800%
How to use each connected service. Four blocks on this reading, 5,920 characters, the blocks added up. No database connector this time — since October 3 those stay off unless a task needs the database — where October 8 had one and October 3 two. One other service the October 8 reading carried is no longer attached, and the MyStatus connector’s block is a little longer again, 959 characters, for its tool that lists the tasks a key reaches.
- Reserved tool namescounted1,1560%
129 tools listed by name only, loaded on demand. None of them is a database connector’s; on October 8, 21 were, and without them that reading would have been 1,183. On October 15 four scheduled-task tools left this list because they are now loaded up front, and one MyStatus tool joined it. Still among the cheapest things in the list. The names as injected, one per line with a newline between each: 4,622 characters.
- Subagent listingcounted6330%
The six kinds of helper session that can be dispatched, each with a line saying what it is for. Counted separately rather than left inside the remainder below — a residual should hold only what genuinely cannot be read. The same six, 2,532 characters, identical to the character on six readings running, across a change of platform — the one control that has never moved. The six lines add up to 2,527 on their own and 2,532 with a newline between each; every reading since September 28 has used the second count.
The total is measured; the breakdown is not, evenly. The 164,115 is exact, read out of a session's own transcript. The parts above are good to about ten or fifteen percent, so trust their order rather than their digits.
A dated snapshot, not a live counter: the transcripts it reads sit on one laptop and never enter the repository, so one person refreshes this by hand. Last on Oct-15-26.
Thirteen re-counts now. Six moved the share by a point or two, the seventh moved the method, the eighth held, the ninth moved the seat, the tenth held on that seat, the eleventh went up because our own file went down, the twelfth went down because the platform’s tools moved into a row we count, and the thirteenth held. Every part above was measured again on Oct-15-26. On August 30 raising the total alone would have pushed the share we do not control from 56% to 65%, and counting properly sent it down to 52%. On September 5 the shortcut said 57% and the honest count said 56% — very nearly the same, and up rather than down. On September 7 the shortcut said 57% again and the honest count said 55%, down by one. On September 13 the shortcut said 59% and the honest count said 57%, up by two. On September 18 the shortcut said 60% and the honest count said 55%, down by two. On September 21 the shortcut said 56% and the honest count said 54%, down by one. On September 24 the shortcut said 56%, the count done the old way said 53%, and the count published said 40% — because a row this page had carried forward for four readings as unreadable could be read that day, and was more than twice the figure it had been carrying. That drop was the method changing, not the platform shrinking, and it is not comparable with the six before it. On September 28, on the same method, the shortcut said 42% and the count said 40% — the first reading since the change that can be compared with the one before it, and it barely moved. On September 30 the session refreshing this page was a Claude Code seat, which opens at about 113,000 tokens against the desktop's 155,000, so the count was taken from a cloud session instead, which has its own tools, skills and connectors: the shortcut said 46% and the count said 41%, and the parts moved by about as much as the seat did. That reading does not compare with the eight before it, and the Claude Code reading is on the chart beside it rather than standing in for it. On October 3 the count was taken from the same kind of cloud session as September 30's, so for the first time since September 28 a reading compares with the one before it: the shortcut said 43% and the count said 41%. That session had two database connectors attached that are now off by default, about 1,100 tokens of the total. On October 8, from the same kind of session again, the total fell for the first time in the series — 174,088 to 149,621 — because the file we maintain had been cut by more than half four days earlier: the shortcut said 32%, the platform down to a third, and the count said 46%, up five points. The platform's own figure fell too; it was a bigger share of a smaller floor. On October 12, from the same kind of session, the total rose to 158,365 and the count said 35%, down eleven, while the shortcut said 49%. That is not the platform's part shrinking. It moved: the platform now hands a cloud session 73 tools where it handed 46, about 20,000 tokens more, and tool definitions are a row counted above, so the leftover got smaller while the platform's own instructions in it got shorter too. On October 15, from the same kind of session again, the total rose to 164,115 and the count said 34%, down one, while the shortcut said 37%: four scheduled-task tools came back into the set the platform hands a cloud session, about 3,900 tokens on the counted tool row, and the leftover barely moved. All thirteen are published. A method that only ever rescued us from an unflattering number would be worth suspecting, and the reason the share kept moving before the method changed is that the part we wrote ourselves grew faster than anything else on the list: the file we maintain went up at the first ten of these readings, down at the eleventh and up again at the twelfth and thirteenth, and the share moved the other way each time.
How far to trust the reading. The parts above are read out of the session's own transcript, character for character, rather than eyeballed — and the check on that is a row whose set did not change between two readings, which should come back at the same figure. On the reading dated above the seat was the same kind as the one before, and two rows qualified: the helper-session list, the same six lines, came back identical to the character for the sixth reading running, and the skill descriptions, the same 34 skills, came back identical to the character too. The tool definitions did not qualify, because the platform changed the set again — four tools back in — and the row says so. And before the count was pointed at this reading it was run over the previous one's transcript copy, where it reproduced every figure published on October 12 to the character. That says the reading works. Every other row moved because its set did — tools returned by the platform, our own file and our connector's block a little longer, one reserved name traded for four — and each row says which. One correction made on September 28: the helper-session list's five-character move on September 24 was two ways of counting the same six lines, added up and with a newline between each, not the platform changing. How each row is counted is now written down beside the figures, so the next reading counts the same way. The platform's own line is the least firm one. It is what is left after everything else is subtracted, and three things that are now readable still sit inside it uncounted — the second copy of the skill descriptions, the platform's instructions themselves, and on the cloud readings a memory block of about 9,000 tokens — so it is a ceiling, not a measurement.
And it keeps going up.
Every coding branch and every thinking session opens with a public entry carrying its own figure. Lined up, those entries are a price history for this project’s own rulebook — and every edit to it becomes a decision with a number attached.
From 84,647 to 140,773 tokens on every turn. Nothing was deleted to make room.
20% of all the growth above, between two sessions about 2 hours apart on Sep-28-26. The 143,420 reading is low for a known reason: that session’s memory connector finished connecting after its first turn, so the prefix it measured was missing the memory instructions, three memory tool schemas and that connector’s own instructions — about 38,700 characters, roughly 9,700 tokens at this page’s 4.0. The rest of the gap is CLAUDE.md growing between the two opens and the conversion’s own error.
The increase multiplied out. Not a task that got dearer — the same task never runs twice — just what the series in 5 weeks added to a job of that length.
Every point is a published entry, not a re-measurement. Each figure was read out of the Work Log or the business log at the moment a session opened, and the row it came from is still there to check. A session quotes the same figure on every branch it opens, so a run of identical entries counts once: 368 readings out of the entries published so far.
The axis starts at 80,000, not at zero — the whole week fits inside a fifth of its own size, and a zero baseline would draw it as one flat line. The two kinds of session load slightly different toolchains: the widest gap between a business reading and the coding reading nearest it in time is 14,094 tokens, in both directions across the week. Read the climb; ignore the wobble. 141 of the points are sessions on another platform — Claude Code or a cloud session — which open anywhere from 85,345 to 177,720 because each platform hands a session a different set of tools, skills and connectors. They are on the chart as dashed rings, and kept out of the growth figure, the biggest step and that gap, which are worked out without them. Only readings whose platform is known are set apart, so a few others may belong with them.
Measured task by task, not estimated. Every task closes with its own turn count and scaffolding figure on the MyStatus Work Log, so the figure above is checkable against its source rather than asserted here. There are 385 so far, which is why it reads as a range. The list below carries 386; the remaining one closed inside a single second, so it has no floor to average.
- Two processes, one stampclaude-opus-5-56,370,977
69 turns at 92,333 each. The entry it came from
- Two processes, one stamp, read on live (a followup)claude-opus-5-52,123,659
23 turns at 92,333 each. The entry it came from
- Read by right leaves a rowclaude-opus-5-511,918,080
128 turns at 93,110 each. The entry it came from
- The card footnote is a named partclaude-opus-5-514,642,355
91 turns at 160,905 each. The entry it came from
- Read by right leaves a row, walked on live (a followup)claude-opus-5-53,072,630
33 turns at 93,110 each. The entry it came from
- The seat's own card opens: the cloud block runs as printed (a followup)claude-opus-5-56,114,390
38 turns at 160,905 each. The entry it came from
- The rehearsal holds the candidate out of the chainclaude-opus-5-53,679,280
40 turns at 91,982 each. The entry it came from
- Every printed card opensclaude-opus-5-55,518,920
60 turns at 91,982 each. The entry it came from
- Every tool error a seat meets is countedclaude-opus-5-57,431,414
82 turns at 90,627 each. The entry it came from
- Admins manage, leaders readclaude-opus-5-519,882,472
218 turns at 91,204 each. The entry it came from
- The watchersclaude-opus-5-522,490,219
223 turns at 100,853 each. The entry it came from
- The names rosterclaude-opus-5-516,370,152
164 turns at 99,818 each. The entry it came from
The 12 most recent of 386 finished tasks. The figures above are computed over all of them; only this list is shortened. Every one of them is on the Work Log, in full and in order.
The model is a receipt, not an explanation. Naming it removes one thing a reader would otherwise have to guess at when two rows here disagree — different models use very different amounts — and that is the whole of what it claims. It does not explain the variance: these tasks also differ in how big they truly were and in how much of each one went on debugging, and no figure on a row separates those. It records what ran, not a choice anyone made; a session’s model is set outside the conversation. Rows that closed before the entries carried a model do not have one here either.
Why publish it at all: this project’s claim is that one person plus an assistant can build and run a real service. The honest version of that claim includes the overhead, and the overhead turns out to be mostly fixed, mostly invisible, and mostly not ours. Cutting it hard would mean deleting the project conventions that let a new session pick up where the last one stopped — which costs more than it saves. So it gets shown instead of shaved.
What a turn costs as a session gets older
Every turn re-reads the conversation so far, so the same work costs more the later it lands. Measured across 292 sessions and 33,784 turns of this project's own transcripts, each turn priced against its own session's first 20 — so a session is only ever compared with itself.
- 1-201.00x268 sessions
- 21-401.13x267 sessions
- 41-601.29x258 sessions
- 61-801.44x234 sessions
- 81-1001.58x200 sessions
- 101-1401.79x164 sessions
- 141-1802.08x92 sessions
- 181+3.00x43 sessions
- scale ends at 3.00x
The threshold is turn 141. That is the first stretch where a turn costs 2.08x what an early turn in the same conversation cost. It is published with its arithmetic rather than as a rule, because a fresh session is not free either: at that ratio, each further turn on the old seat wastes about 1.1 of a fresh one, so starting over pays for itself after roughly 10 more turns of work when the handover costs ten.
The long sessions did not start out expensive. Only a long session has a hundredth turn, so the right of this chart is a different set of conversations from the left, and a rise there could be nothing but that. The 43 sessions that ran furthest opened at a median 21,370 tokens a turn, against 21,457 for the whole set. They started at the ordinary rate and got expensive on the way.
It prices turns; it cannot value them. A turn deep in a session is working with the whole problem loaded and may well be worth what it costs. Nothing here can see that. And comparing each session with itself removes the difference in level between long and short ones; it cannot remove a difference in shape, because a short session has no late turns to compare.
24 sessions were shorter than the 20-turn baseline window and so have no multiple of their own. They are counted in the set and excluded from the bars, rather than drawn as a bar of nothing.
This figure can never include its own last turn. The measuring happens inside the thing being measured: the session that regenerates this dataset is still going when it writes it out, so the count is always a little behind the world in the one direction it is possible to be behind.
Hours on the record
Two things a clock can answer: how long the work was open, and whose time it was. Every session is a sequence of timestamped records, so the wall clock splits in two — time the assistant was producing, and time it was stopped, waiting on someone to read and decide.
Since Jul-27-26
That reaches back to within a day of the first commit. Each minute counted once, however many sessions were live in it — 56.8 hours had two.
The model behind this number keeps getting refined, and the refinements are published too. This figure comes from session transcripts, which sit on one laptop and never enter the repository. The public work log — which drives the breakdown in the next section — reads about a third less over the same days, because it only counts work that announced itself with a posted opening and closing. Both stay on the page. Neither is used to correct the other.
Who the clock belonged to
Since Jul-27-26
201.3 hours reading and deciding, against 99.0 of the assistant working.
Across 143 sessions. Each one is the work stopped, waiting on a person.
Any gap longer than 45 minutes is a closed laptop, not deliberation. More was discarded than kept.
Two questions, two denominators. The share is of SESSION time: a minute with one session thinking and another coding is honestly one of each, so the parts sum to 300.3 hours. The headline is the CLOCK, where that same minute is one minute — 243.5. Neither is derived from the other's denominator, and the 56.8 hours between them is time two sessions were live at once.
This is a floor, and it is a floor three times over. It counts only ATTENDED review — the stretches where the work was demonstrably stopped, either just before someone typed or inside a question that suspends until it is answered. Reading along while the assistant works does not count. Thinking away from the keyboard does not count. And any gap over 45 minutes is dropped rather than billed as deliberation, which discards 406.1 hours — more than it keeps. Every one of those choices makes the figure smaller.
These are a floor on the effort, too. Verifying a build on a phone, reading away from the keyboard, and thinking between sessions all happen where no transcript can see them, and none of it is counted here. 143 sessions, last read Aug-30-26.
- Aug 30, 20268.4 hrs
4.6 waiting on a person, 3.7 of the assistant working.
- Aug 29, 20269.2 hrs
7.3 waiting on a person, 4.4 of the assistant working.
- Aug 28, 202614.2 hrs
9.5 waiting on a person, 10.5 of the assistant working.
- Aug 27, 202615.3 hrs
14.9 waiting on a person, 9.4 of the assistant working.
- Aug 26, 20268.1 hrs
8.4 waiting on a person, 2.9 of the assistant working.
- Aug 25, 202614.2 hrs
12.3 waiting on a person, 10.0 of the assistant working.
- Aug 24, 202611.6 hrs
11.5 waiting on a person, 6.6 of the assistant working.
- Aug 23, 202614.2 hrs
8.6 waiting on a person, 6.1 of the assistant working.
- Aug 22, 202610.2 hrs
6.6 waiting on a person, 4.9 of the assistant working.
- Aug 21, 20269.0 hrs
7.3 waiting on a person, 2.1 of the assistant working.
- Aug 20, 20268.0 hrs
7.6 waiting on a person, 2.7 of the assistant working.
- Aug 19, 20261.2 hrs
0.9 waiting on a person, 0.3 of the assistant working.
- Aug 18, 20266.6 hrs
5.3 waiting on a person, 1.7 of the assistant working.
- Aug 17, 202612.1 hrs
10.7 waiting on a person, 1.3 of the assistant working.
- Aug 16, 20263.4 hrs
2.2 waiting on a person, 1.1 of the assistant working.
- Aug 15, 20267.2 hrs
5.6 waiting on a person, 1.9 of the assistant working.
- Aug 14, 202617.7 hrs
14.6 waiting on a person, 6.4 of the assistant working.
- Aug 13, 20262.6 hrs
1.4 waiting on a person, 1.2 of the assistant working.
- Aug 12, 20266.9 hrs
6.2 waiting on a person, 2.5 of the assistant working.
- Aug 11, 202613.4 hrs
14.1 waiting on a person, 5.2 of the assistant working.
- Aug 10, 20268.2 hrs
5.6 waiting on a person, 2.5 of the assistant working.
- Aug 9, 20269.4 hrs
7.4 waiting on a person, 2.0 of the assistant working.
- Aug 8, 20265.9 hrs
5.8 waiting on a person, 2.9 of the assistant working.
- Aug 6, 20264.3 hrs
3.7 waiting on a person, 0.5 of the assistant working.
- Jul 30, 20260.0 hrs
0.0 waiting on a person, 0.0 of the assistant working.
- Jul 29, 20266.7 hrs
5.2 waiting on a person, 2.6 of the assistant working.
- Jul 28, 20266.9 hrs
6.4 waiting on a person, 0.7 of the assistant working.
- Jul 27, 20265.9 hrs
5.1 waiting on a person, 0.7 of the assistant working.
- Jul 26, 20261.6 hrs
1.0 waiting on a person, 0.6 of the assistant working.
These 29 rows add to 242.4 hours, 1.1 short of the 243.5 at the top of this section. Spans are cut at midnight before they are counted, so the rows cover the same clock as the headline — what differs is the rounding: each of these 29 days floors to a tenth on its own, and the headline floors once, so the column can lose up to a tenth per row.
The two figures under each day can add to more than the day itself. They are session time — an hour with one session waiting on a person and another one working is honestly one of each — while the hours beside the date are the clock, where that hour is one hour. Same two denominators as above, a day at a time.
Days are Eastern, because a day is read by the person whose day it was. Everything else on this site is UTC.
Estimated by work type
A later refinement of the analysis above, begun Aug-23-26 to give a clearer breakdown of what the hours were spent on. It reads a different instrument — the public work log, where a task posts a row when it opens and a row when it closes — so it starts later and it sees less.
Since Aug-23-26
Wall-clock time with at least one task or session open. An hour with two of them open in it is still one hour.
This is deliberately not the sum of the two lines below. Adding the streams would count every overlapping hour twice, so the overlap is subtracted and shown, and the breakdown is yours to check with a calculator. The bigger number was available and was not taken.
- Coding481 sessions293.0 hrs
Averaging 37 min. 90% of them have both ends posted; the rest ran out of beats and were closed by the silence rule. MyStatus Work Log
- Business372 sessions330.7 hrs
Averaging 53 min. 45% of them have both ends posted; the rest ran out of beats and were closed by the silence rule. Biz-zy Work for MyStatus
- Both at oncecounted once− 106.4 hrs
Time when a coding task and a business session were open together. Real work in both columns, one hour on the clock.
What this breakdown misses, over its own dates. From Aug-23-26 onward the transcripts see 95.2 hours on the clock, and the lines above attribute 517.3 of them to a kind of work. The rest is real work that posted no row — a scheduled task, a one-question session, or the stretch between one task closing and the next opening. It is counted in the headline above and not here.
These are a floor on the effort. Verifying a build on a phone, reading, and thinking between sessions all happen off-stream, and none of it is counted here.
A session ends where the record says it ends: on a posted “Closed” or “Stopped”, or — when it simply went quiet — 30 minutes after its last beat, the same end a reconstructed stop is given. Once a stream has gone quiet long enough that the sign at the top of this page stops believing it, the session is over rather than counted through: a laptop closed overnight costs half an hour, not eight.
The rate
Stated, not measured
Dollar figure used to price features, Tom’s Pre AI consulting rate of $150, because a number was needed to calculate figures.
Want this for your own project — the building, or the receipts that prove it? Head over to Omega Ortega to chat more about that.
The team
Stated, not measured
Tom. Architecture, review, and every decision that ships.
Stated, not measured
Claude Fable 5, Claude Opus 5
The split, as of today: Claude Fable 5 takes architecture, refactors, and strategy; Claude Opus 5 gets handed straight coding tasks. Everything either of them produces goes past one person who vets the logic, questions the thinking, and owns every decision that ships — which is the part that makes the first number a 1 rather than a 0.
The build
YES because a task is open and being worked. Claude posts here when a task starts, every 30 minutes while it runs, and when it merges — so once a beat is 15 minutes overdue, this goes dark on its own.
Model (Claude Opus 5.5): #412 — A root task per login. Branch `412-a-root-task-per-login`. Merged into claude before the apply on R-081, Tom's "approved", on the message he approved; coverage clean, preflight PASS after the /stats refresh. The Closed waits for the verification on live — the apply, the suite, the account roots and the web form — and so does the queue's Merged row. Tom has since asked for every personal account to get its root, not only two, so the Closed's prose will say so; the wait may run long.
Every flip of that sign is an update on MyStatus Work Log; the entry under Last Work Task is the one it is reading.
- Commits4,354
Every iteration, including the wrong turns. Nothing is squashed away.
- Features deliveredsince Aug 12, 2026708
Finished tasks: verified, reported, merged. One merge, one task.
- Task branches709
All time: finished plus whatever is open right now.
- Prompts queuedretired—
The prompt queue went private when our work moved into the MyStatus organization, so this figure retired with it. The queue still runs; it is no longer a page a stranger can open and recount.
- Days since we started85
Every day since the first commit, Jul 26, 2026, worked or not.
- Years the idea waited6.47
From Feb 4, 2020, when MyStatus was first written down, to the first commit.
- Days work happened77
Days with at least one commit. The gap between this and the row above it is the honest one.
- Commits per day51.2
Averaged over every day. Across only the days work happened it is 56.5 — this project runs in bursts.
- Features per daysince Aug 12, 202610.4
Averaged over the days in that window, not over every day since the first commit.
Counted from the repository at commit b4c8c9b on , from the claude branch. These are generated by hand rather than at deploy time, and they are always exactly one commit behind — a commit cannot contain its own count.
The biz
A session was opened and never closed, and its 30-minute beat is more than 15 minutes overdue. Reading that as NO is deliberate: silence is not evidence of work.
Model (claude-opus-5-5): Oct 19 morning hub — #412 claimed and handed to its spoke; prep for two calls today (Z., Kaltura, 2 PM; J., a retired Apple sales-engineering lead, 4 PM) researching in the background.
Every flip of that sign is an update on Biz-zy Work for MyStatus; the entry under Last Biz Entry is the one it is reading.
Actual operating costs
Every recurring charge that keeps MyStatus alive, at the amount that actually leaves the account. No salaries — there are none — and nothing shared with the rest of Tom’s life. Beyond that, nothing is netted out and nothing is left off because it was inconvenient.
Everything it takes to run this for one month, tax included.
2 months on the record, July 2026 – August 2026. Kept by hand, last checked against the statements on Aug 24, 2026.
Everything spent, divided by the 708 features delivered. Overstated: the spending runs from the first commit, the features only from Aug 12, 2026. The true figure is lower.
- Claude subscriptionmonthly$217.8058%
The plan that writes the code — in this company, labor is a subscription line item. Tax included: it is what leaves the account.
- Azuremonthly$112.2030%
The web app, the push/webhook api, and the analytics host.
- Supabase Promonthly$35.119%
The system of record: database, auth, storage, realtime.
- Apple Developer Programannual$8.252%
$99 a year, spread across the twelve months it covers.
- my-status.app domainannual$2.331%
$27.99 a year, spread the same way.
- Google Play developer accountpaid once—
Paid once, ever. Real money in the total, and no monthly figure to have.
Since Sep 2, 2026 the receipts page carries a second token figure beside the cost-weighted one: what the same tokens would cost at the AI provider’s published list rates, each exchange priced by the rate in force on the day it ran. It is not a line above — nobody is billed by the token here — but it is the number that answers what this work would cost you. Cost breakdown of 3 deliverables
Conversations
Who this has been shown to and talked about with. Unlike everything else on this page these are not derived from anything — they are Tom’s count, kept by hand, last updated Aug 24, 2026. Until they are posted as dated events like the rest, they are worth exactly as much as his word.
Stated, not measured
Real conversations about MyStatus with someone outside the project.
Stated, not measured
Distinct fields those people worked in, counted once each.
Stated, not measured
Times the product was shown actually running, rather than described.
There is no “interest” figure here, and its absence is deliberate. Interest is a grade, not an event — self-graded homework about other people’s reactions, which is the same thing this project forbids one level down, where a tool posts “started” and “finished” and lets you derive the hours instead of announcing how hard it worked. At this sample size it would also be identifying: “consulting: low interest” is readable as one named person, and it turns a private conversation into a published verdict nobody in it agreed to. The line underneath is the one that keeps this product from being surveillance — you publish outward about your own work, never about other people’s reactions.
Second conversations scheduled and pilots started belong in this group and are missing rather than zero: nobody has been keeping that count yet, which is a different statement from “it has not happened”. They appear the day the first one is recorded. Counted by hand, as of Aug 24, 2026 — the same hand, with the same caveat, as the costs above.
How fast we learn
Unlabeled rows on a seat's own task, the last 14 days. The heartbeat's figure rows are a program's, not lessons, and are left out: 0 of 377 unlabeled rows.
A later row on a different seat's task carrying a card to the lesson. A mention in prose is invisible here, on purpose.
From the lesson's row to the first row that carded it, among the used ones.
This is the tool learning: a lesson one seat wrote down, used by the next seat that needed it. The person’s number — one person, before and after, on the record — starts at the first install, and until then it has no figure here, on purpose.
Lessons have been collected since Sep 13, 2026 (35 days). Seats have been told to use them, and to link the one they used, since Sep 30, 2026 (18 days), so the used count and the median are 18 days old, not 35 days.
Applied lessons since Sep 30, 2026
- Media "pointing at the original object" works only while the original is public. A public page signs each att…not yet used
- A card edit is not a revision. #233's trigger keeps an update's earlier wording when its body, label, time or…not yet used
- Lesson — a 404 at a URL is a fact about the URL before it is a fact about the session. Nine hub seats (Oct 6–…not yet used
- A fork loses the history; the owner's three-task republish keeps it. The prompt's verdict for a public stream…not yet used
- The consumer nobody named: the learning figure reads every seat task. The "how fast we learn" card is generat…not yet used
- "Cache every page to a file" has no mechanism in Claude Code when the instrument is the connector: a tool res…not yet used
- Human (Tom), 8:07 AM ET: "Personal should also be private by default as they will likely be personal devs wor…not yet used
- Nomination for the hub, about how a tab knows who it is. It knows twice, and the two can disagree. The layout…not yet used
- A check that waits for you to look at the tab can only be tested by someone looking at the tab. In the two-ac…not yet used
- A tab's idea of who it is lives in the layout, not the page. Next keeps the shell's layout across in-tab navi…not yet used
- Two copies of this seat ran at once after a window restart, and the record is what gave it away — two beats 4…not yet used
- A gate is a stop, and the stop is a hand-off. Asked to add Tom to his own company's admin list from the admin…not yet used
Used, from earlier in the window
- In a working tree two sessions share, whatever one stages belongs to the next commit anybody makes. This bran…used after 2 h
232 followup — the public half, . Used by Oct 8 morning hub, Part 2, .
- A fifth sighting of the reconnect finding, about 30 minutes into this seat: the harness reported the instruct…used after 39 h
Oct 6 afternoon hub (second seat), . Used by Oct 8 morning hub, .
- A fourth sighting of the reconnect finding, on the turn after this seat's open: the harness reported this sea…used after 25 h
Oct 5 evening hub, . Used by Oct 6 afternoon hub (second seat), .
- A third sighting of the reconnect finding. At 12:1x PM ET, mid-turn, every connector on this cloud seat dropp…used after 4 h
Oct 5 afternoon hub, . Used by Oct 5 evening hub, .
- A second sighting of the #284 seat's reconnect finding. This cloud seat's instruction-file copy was reported…used after 12 h
Oct 4 midnight hub, . Used by Oct 5 afternoon hub, .
- The identical answer hides your own mistakes too. Four of the new tests failed on the first run with "That ta…used after 6 h
#279 — read_task reads an org task through an org key, . Used by #279 followup — read_task through an org key, verifie…, .
- Model (Claude Fable 5.1), copying what a one-off node script printed over this session's transcript at 7:2x A…used after 12 min
Oct 4 AM hub, . Used by Oct 4 AM hub, cheaper open, .
- Two things the close found, at 2 AM the next day. First, read_task works from a cloud seat: this seat read it…used after 17 min
Oct 1 AM hub, second seat, . Used by Oct 2 twilight hub, .
- With #252 live, the fetch tool cannot open a permalink either (/t/*/u/ is disallowed, by design, and this bra…used after 1 h
252-robots-txt-crawler-permissions-followup — our own…, . Used by 149-upskilling-shown-followup — the card dates its tw…, .
- A cloud hub attached a capture to a permanent row without retyping a byte, and the path is two file operation…used after 12 h
Sep 30 PM hub, . Used by Oct 1 AM hub, .
- Lesson — from a cloud seat, the fetch tool is a paraphrase, not a read. Tom asked the cloud session how it re…used after 27 h
Sep 29 Evening hub, . Used by #149 — Upskilling, shown, .
- posted from Claude Code through .mcp.json, the key expanded from the environment — job 2's write proof.used after 3 min
#189 — A seat in Claude Code, . Used by Sep 28 PM hub, .
Read from the public Lessons task, which carries clean copies of every lesson our 149 seats posted and every row that used one, on , at 14555e2. A run by hand, not a read per request, so this is as of that moment.
The service
We’re showing these numbers because we’re a new biz. We want to be upfront that this is not an at scale project yet and that’s fine because we’re very early in our experiment.
- Tasks421
Live tasks, public and private. Archived ones drop off.
- Updates24,810
Posted and still standing. A deleted update stops counting.
- Owners23
People with an account. Readers need none, and are not counted.
- Ops tasks10
Public MyStatus tasks that are part of our day-to-day operations.
As of . Ops tasks is the one number here you can recount yourself: every task in it is listed at /browse/ops, and what they actually do is written down.
Construction downtime
Since Aug-06-26
Since Aug-06-26
We are 85 days old. The site went live Aug 6, 2026, the paid product on Sep 2, 2026. Nothing is watching it — no external monitor, no synthetic probe — so every incident here is one we caught ourselves due to our own construction. This stat is derived from MyStatus Downtime Incidents, a task served by MyStatus itself.
- 9 hours
Model (Claude Fable 5.1): Every public page is returning a 500 — task pages, permalinks, task.json, the signs and counts on /stats. Reconstruction: this is the minute the API layer's last successful call was followed by its first failure, read from the logs; nobody was watching, and the morning hub found it at 8:52 AM ET, nearly nine hours in. Looking into it.
Fixed: Human (Tom): We're prepping for our product rollout this week. It's time for our little one to fly the nest. In order to do that, we're finalizing how to install the product, we're testing (sometimes purposely, sometimes not so purposely) and those tests could and really should bring everything down. Better to do it now than before our customers depend on us. One thing we did was implement a feature that checks if you're email is from a public email provider or if its from a private company. We change the UI on that. However, because we build in public and, for the most part up until today, broadcast all our findings and data publicly, we left ourselves susceptible to crawlers. Not malicious ones, just run of the mill crawlers adding us to the world wide web. That email functionality? It's 14,000+ entries on a task. One crawler found that task and was politely asking for all the information it contained; Not to be mean, and in fact, I'm willing to guess it doesn't really care what it is, just that the page says "click for more" so it does. We've made that task private now, since we don't really want to be the provider of that info and it's not core to the "watch us build in public" experience. (Sorry, Web Crawler!) Model (Claude Fable 5.1): Every public read was down from 12:10 AM to 9:09 AM ET, 8 hours 59 minutes. A crawler out of San Francisco found our free-email-providers task — 14,316 rows, each one a permalink — and walked it one page every 1.4 seconds from 5:07 PM the evening before. Each page cost two database reads, and the database was a Nano instance with a 5 MB/s disk baseline; the crawl drained its IO budget in about four hours, after which every query ran at a crawl and the API layer gave up loading its schema. Storage and live updates stayed up; nothing had been deployed. Fixed by moving compute to Micro (a free upgrade that had been sitting unclaimed) and making that task private, since its only reader is a query, not a person. Found by the morning hub opening into it; nothing was watching, and Azure's request logging was off until this morning. Follow-ups queued: a robots.txt, an index for the permalink window, and a probe that watches the site.
- 10 minutes
Every public MyStatus page is throwing a 500 right now. Task pages, permalinks, feeds, all of it. Nobody can read anything. Looking into it.
Fixed: Back up, about ten minutes all told. We changed a database function that every public page reads, and shipped it ahead of the web app that reads it — so the page went looking for a field that had just stopped existing. A compatibility shim put the field back and the pages returned immediately. The real fix isn't the shim. "No app is live yet" was true of the phone apps and flat wrong about the website, and nobody caught it because there was nowhere to go and check. So there's a file now listing what's actually deployed and what reads it, and it gets updated in the same commit as anything that changes either.
What is not here
No reader counts, no page views, no “most popular tracker”. Reading a MyStatus link needs no account and leaves no trace a reader would have to think about, and a leaderboard would quietly change what this product is for. There is also no “features planned” number: the roadmap lives in prose, and a hand-typed figure that drifts every week is worse than no figure at all.
Inspiration
This section exists to honor Cluetrain Manifesto’s reminders to be human, drop the corporate act and acknowledge there are no secrets. That’s why I’m building this in public and completely documenting how I dogfood the tool to build the tool.
It also honors John Wilker, my friend and old biz partner who loves Cluetrain as much as I do. He once shared how he has a dashboard of all his writing stats. It helps him write awesome booksyou should go buy! I made my own stats dashboard, which I now share with you.
Every hour here floors to a tenth, every dollar follows from an hour, and independent floors do not cancel: two streams each losing four hundredths of an hour lose a tenth between them. So a column of floored lines will not always match the floored total above it, and the gap is always some whole number of tenths of an hour — never a rounding error in the ordinary sense. A total is the floor of one real number; the lines under it are floors of several.
Hours by day, today: the 29 rows come to 1.1 short of the headline they fold under. Each day floors to a tenth on its own and the headline floors once, so a table of 29 days can lose most of an hour to rounding alone.
Adjusting a line until the column agreed would make that line invented. This page would rather explain a gap than manufacture the absence of one.