Lessons · Lesson 2 of 5
Who is allowed to move a date
Separating the right to record what you believe from the right to change what was agreed, and what a system should do to the eleven milestones downstream.
Lesson 2 of 5 · 24 min
The season the numbers improved
Thelawatte's third field worked. In the season that followed, 1,113 dates moved across the group's order book, against 89 in the quarter before. People were recording what they believed. Latency was down to days. The planning meeting had stopped being an interrogation.
Then the group's commercial director asked for the on-time delivery figure. 125 orders shipped in the season and 118 of them shipped on or before their ship date. That is 94.4%, the best the group had ever reported.
Ruwanthi checked it a different way. She measured against the ship date as it stood on the day each order was confirmed, not as it stood on the day the container was loaded. 29 of the 125 had had that date changed after confirmation. Two of the 29 were the buyer moving its own window in writing, which is a real and legitimate change. The other 27 would have been late against the date the order was taken on.
Against the original baseline, on-time delivery was 72.8%.
Nothing here was fraud. Of the 41 baseline changes in the season, 29 were on the ship milestone. 22 of those 29 were made within ten days of the date they moved, by the person who was about to miss it. Each of them had a reason and most of the reasons were good. The defect is not in any of the 22 decisions. It is that the same login could record a forecast and rewrite a baseline, and the system could not tell the two acts apart.
Three fields, three different acts
A permission model for a critical path fits in one table, and writing it down is most of the work. What matters is that the four rows are genuinely different acts, not four levels of the same act.
| Field | Who may change it | What it must carry | Who is told |
|---|---|---|---|
| Forecast | The milestone's owner | A reason from a short closed list | The owners of the next two milestones on the chain |
| Actual | The milestone's owner | A reference to the evidence behind it | Nobody — it is the event |
| Baseline | The order's planner, countersigned by the commercial owner | A buyer instruction or an approved recovery plan | The buyer, and every name on the order |
| The ship constraint | Nobody inside the factory | A written buyer instruction | Everybody |
The last row is the one worth arguing about. A factory's own system should not let a factory user edit the buyer's required date. It is not the factory's field. It is a term of the order, and the place it changes is an amendment, which is course 7.6's subject. A planning system that allows it has put the ownership in the wrong hands. Every on-time figure it produces afterwards is measured against a yardstick its own users can shorten.
The reason list matters more than it looks. Thelawatte's original field was free text. Of 1,113 edits, 340 carried the single word "delay" and 211 carried nothing at all. So 49.5% of every date movement in the season explained nothing to anybody. A closed list of nine reasons replaced it, with a compulsory note when "other" is chosen. "Other" was picked 11.8% of the time in the first month and 4.3% by the third, as people learned what the list was for.
What a moved date should do to everything after it
Fabric in-house on order VSK-2218 moves six days. There are 11 milestones between fabric in-house and the on-board date. From fabric in-house to the vessel there are 61 days of dependent work and 65 days available, so the chain carries 4 days of slack.
A planning system can do exactly three things with that news. The choice is the single most important setting in the product.
It can do nothing. If dates are independent fields, moving fabric in-house moves fabric in-house. The calendar now says the fabric arrives six days late and that cutting starts on the original day. That is not a plan. It is two facts that cannot both be true. Nobody sees it, because nothing on the screen compares them. This is the commonest behaviour in a spreadsheet, and in more systems than anybody admits.
It can move everything. Hard dependencies push all eleven milestones six days out. The chain only had four days of slack, so the on-board date moves two days. This is arithmetically correct and behaviourally catastrophic, and Thelawatte can prove it, because they switched it on. Forecast edits in the following quarter fell from 641 to 178. The group stopped recording what it believed, 3.6 times over, while the late rate did not move at all. The reason is not mysterious. Moving a fabric date now moved a date the buyer could see on the portal. So the honest act of recording bad news became an act with a consequence, and people stopped performing it. An instrument that punishes the reading changes the reading and not the thing.
It can hold the constraint and show the shortfall. The eleven downstream forecasts move. The on-board date does not move, because it is a constraint rather than a forecast. The backward pass returns a total float of -2 days on that chain. Nobody has to argue about the ship date, because nothing has claimed it changed. What has appeared is a quantity: two days must be found somewhere in eleven steps, and the system can list the eleven with the slack each one has.
That third behaviour is what the critical path method does with an imposed finish date. Insist on it when a system is being configured, because the default is usually the second.
Negative float is a number, not a mood
Seeing -2, your instinct is to fix it before anybody notices. That instinct is why most systems never show it. Resist it for a specific reason: a negative float is the only object in the whole calendar that states the size of a problem rather than its existence.
"Fabric is late" is a status. "-2 days on the chain from fabric to the vessel" is a shopping list. Two days can be found in a shorter dip round, an extra cutting shift, a vessel that sails two days later on the same DC window, or a colour re-sequenced so the late shade loads last. Each of those is a real option with a price. None of them can be discussed until somebody has said "two".
At Thelawatte the change that made this stick was not the setting. It was a rule: a negative float is never repaired by editing a date. It is repaired by an action that changes the work. The date then moves as a consequence, recorded with the reason code that names the action. Anybody may raise a negative float. Nobody may make one disappear by typing.
Check yourselfA merchandiser moves a forecast out by four days and the system immediately pushes the buyer's portal ship date out by four days. What is the likely effect over a season?Show the answer
Fewer forecast movements, not fewer delays. The person recording the news now carries the consequence of publishing it, so the honest act acquires a cost and gets rationed. Usually it is rationed to the point where dates move only after the event, which is where the previous lesson's nineteen-day latency comes from. Hold the buyer-facing constraint fixed, let the internal chain absorb the move, and show the shortfall as negative float. Then the news is free to record and the problem is visible as a quantity.
Check yourselfYour on-time delivery is 94.4% and your customers complain constantly about lateness. Where would you look first?Show the answer
At who is allowed to change the date the figure is measured against, and how often they do it near the event. Pull every ship-date change made after order confirmation, with its timestamp and the name behind it. Then recompute on-time against the date as it stood at confirmation. At Thelawatte that recomputation moved 94.4% to 72.8%, and the gap was 27 orders whose date had been moved by the person about to miss it. What the number means once it reaches a page somebody is judged on is course 10.4's subject.
What you own at the end of this lesson
A four-row permission table for your own calendar, a short closed list of reasons, and the answer to a four-minute test: what your system does to the eleven milestones after a date that moves. If the answer is "nothing" you have a list. If the answer is "it moves the ship date" you have an instrument that is training your people to stop reading it.
Next: the milestone that was ticked, correctly, and unblocked nothing.