Free days are business days. Money is calendar days.
Sixty-odd U.S. CFS tariffs all state the same two things together: 5 W DAYS free, then PER DAY. Those are two different calendars in one sentence, and a warehouse that treats them as one is wrong twice.
One line, carrying the numbers it was made from.
The charge is a subtraction between two scans that already happened. Everything the subtraction used is printed on the line, so the line can be checked without opening the rule, the tariff or anybody’s memory of August.
The line is read rather than the rule.
A storage charge is the one line on a freight invoice a customer will dispute without reading the rest, because it is the one line they could have avoided. The line therefore answers the argument by itself: when it came in, when it went out, which days were free, which days were charged, what the cubic metres and the kilos were, and which of the two the revenue ton came from.
That last pair matters. Eighteen point three cubic metres exceeds twelve thousand kilos here, so the revenue ton is 18.300 — the same W/M convention the ocean tariff uses, one cubic metre or 1,000 kilos, whichever yields the greater revenue.
Storage — HBL AMC-2026-0417, rule CFS-STD-01, on the demo company- Open the storage line on that house bill.
- Walk the cursor slowly down it: in 04 Aug, out 20 Aug, free Tue 04 → Mon 10, chargeable Tue 11 → Thu 20 = 10.
- Stop on the last row: 18.300 R.TON × 10 days × $0.45 = $82.35.
Two clocks are two switches.
It would be simpler to ship this as one setting called “count weekends”. CBMGO did not, because there is no position that setting could take that is right.
With the single switch on
Business days now govern both halves, so weekends stop being billed as well as being given. Weekends are two days in seven, so the warehouse collects about 29% less than its published tariff says it should — and nothing on the invoice looks wrong, because every line is individually plausible.
With the single switch off
Calendar days now govern both halves, so the free period becomes shorter. Five free days that straddle a weekend become three working days of free time. The customer was promised 5 W DAYS by the published tariff, and will find the difference before the warehouse does.
When the rule cannot be run, it does not guess.
A rule that charges per revenue ton requires a volume. If the volume was never measured, there is no honest number to print — so nothing is printed.
The alternative is a number nobody can defend.
Software that must return something will return something: a zero, a guess from the last shipment, a charge priced on weight because weight was the field that happened to be filled. All three reach the customer as a real invoice line, and all three are found by the customer rather than by the warehouse.
A release here is stopped by check_silent_errors for drawing a zero when the read behind it failed. This is the same principle one step further down: an amount the rule could not derive is not written at all, and the sentence on the screen says which input is missing so somebody can go and measure it.
Stated plainly, in one place.
One disputed month of storage is welcome.
The existing tariff is set up as a rule — free days in business days, charged days in calendar days, the minimum once at the end — the real dates are run through it, and the line is placed next to the invoice that was sent. If the result is lower than what was billed, CBMGO will say so.