- A client paying two thousand dollars every single month was read, everywhere the company looks at money, as a client with no budget at all. Since the shape of an engagement became a real thing a project can commit to, an ongoing or hybrid hire commits a RATE, so much per hour, per day, per week, per month, per year or per delivered thing, and the plain from and to boxes that used to hold a project total are deliberately left empty. Every surface that asked how much this client is worth was still reading only those two empty boxes. So the money column in the admin console showed a dash, the money-weighted bars in the reporting counted the client as zero, and a six thousand a month retainer never tripped the alert that pages the big-client desk at a thousand, nor the tier that hands a client to a human at six, while a one thousand dollar one-off tripped both. There is now a single shared reading of committed money, and every one of those surfaces asks it rather than reading columns for itself. The comparable figure is a committed total, or ONE MONTH of a committed rate: a monthly rate is the month, a weekly rate is four of them, a yearly rate is one twelfth, and an hourly, daily or per-delivery rate only has a value once somebody has actually stated the workload, because a gate that guesses at hours is inventing the client's budget for them. Nothing is scaled up into a year. A headcount never multiplies the figure, since the money was committed per person. Money the client will pay somebody else never counts, and a figure in a foreign currency yields nothing at all rather than a number nobody can trust as dollars. The label an operator reads keeps the unit on it, so an alert says fifteen hundred a month and never a bare fifteen hundred, which would mis-size the client in both directions at once. The alert also re-checks itself as each half of a rate lands, the amount, the unit, the cadence, because a rate only becomes a value at the moment its unit arrives. The reporting query that draws the money bars is a hand-written twin of the same arithmetic, so a test pins the two to one shared table of cases and they cannot quietly drift apart.
- A quarter of a million dollars a year still read as no money, because the per-year unit was three days younger than the three places that judge it. Budgeting by the year had just arrived, for the clients who think that way, and the shared reading, its reporting twin, and the console's own formatting and sorting helpers all predated it. So a two hundred and fifty thousand a year client came out as a bare label with no unit on it, zero in the money bars, and no alert at all to the desk that exists precisely for a client that size. One twelfth of the rate is the monthly value in all three now, the same rule every other unit follows, and the label carries the year with it, spelled out in the backend and shortened in the console.
- One hand-written test stand-in went stale the moment the money reading widened, and the build said so within the hour. A test file added alongside this work for the handoff desk fakes the rows of one database read by hand, and the merge had widened that read with the rate and cadence columns, so every desk row test tripped over a column its stand-in did not carry. The stand-in now carries them, which is the whole fix: the shape a test pretends to receive has to be the shape the real query returns.
A short Saturday of 4 commits and a single arc: money that repeats is finally money. An ongoing hire commits a rate rather than a project total, and every surface that judges what a client is worth was still reading the total, so a six thousand a month retainer showed a dash in the console, counted zero in the reporting, and never reached the desk that exists for exactly that client, while a one thousand dollar one-off reached it easily. One shared reading now answers all of them, and it answers conservatively: one month of the rate, never a year of it, never a headcount multiplied in, never an hour nobody stated, and it always says which unit the number is in, so a monthly figure is not mistaken for a total. The yearly unit, three days old and missed by all three readers, joined the same rule at one twelfth. The rest of the day was the build catching a hand-made test stand-in that no longer matched the query it was pretending to be.