Most rounding errors are noise: half the time a fraction rounds up, half the time it rounds down, and across thousands of transactions the two cancel out. That comfortable assumption breaks the moment every transaction shares the same fraction, which is exactly what happens with packaging fees. Every parcel a store ships carries the same packaging composition, so every parcel is charged the same fee, and if that fee is 4,4 cents then rounding each parcel to a whole cent loses precisely 0,4 of a cent every single time, in the same direction, forever. At a few thousand parcels a month that is a real number, and it took building the feature to notice it.
- Rounding noise cancels only when the fractions vary; identical parcels share an identical fraction.
- A four-tenths-of-a-cent loss per parcel is roughly €600 a year at demo volumes, silently understating a cost.
- The fix is to accumulate in thousandths of a cent and round once per day rather than once per parcel.
- The same principle explains why the day, rather than the order, is the right unit for a statement to round on.
Why this fee is different
Every other per-order cost in a statement is naturally a whole number of cents or close to it: a carrier charges a price, a gateway charges a percentage of a real amount, a warehouse quotes a rate. Packaging fees are charged per kilogram of material, and a parcel weighs a couple of hundred grams, so the fee is a fraction of a cent by construction rather than by accident.
That is what breaks the cancellation argument. A rounding error is only noise when the thing being rounded varies, and here it does not: one composition, one rate, one fraction, repeated across every parcel the store ships.
The size of it, measured
On the demo store the fee lands at roughly 4,4 cents on a typical parcel. Rounded to the cent, each parcel loses about four tenths of a cent, and across a year of parcels at that volume the understatement is around €600. It never appears as an error because every individual figure looks right; the sum is simply smaller than the truth.
Six hundred euros will not decide a business, and that is rather the point. It is small enough to survive every review and systematic enough to be exactly the wrong kind of wrong, because a statement that is consistently a little optimistic about one cost is a statement whose other costs nobody will check either.
| Rounded per parcel | Accumulated, rounded per day | |
|---|---|---|
| Fee recorded per parcel | 4 cents | 4,4 cents |
| Direction of the error | always down | none |
| Yearly difference | about €600 understated | exact to the cent |
| Visible in any single figure | no | not applicable |
The fix, and why it is the day
Logistics costs now accumulate in millicents, thousandths of a cent, and round once when a day is written rather than once per parcel. The precision is thrown away exactly once instead of thousands of times, and the day is the natural place to do it because the day is already the unit a statement is built from.
That choice has a pleasant consequence for every breakdown built on top of it. When a day's total is known exactly, splitting it by component, by zone or by order is a distribution problem rather than a second rounding, and the parts add back to the whole to the cent.
Where else the pattern shows up
Anywhere a small fixed fraction repeats. Per-transaction payment fees on a store with a very consistent basket, per-item pick charges, tiny per-unit levies: all of them share the property that the fraction does not vary, so rounding early biases the total in one direction. The logistics cost per order is the line where several of these meet, which is why it was the one that surfaced the problem.
The general rule that came out of it is short: round at the moment a figure becomes an answer, never at the moment it becomes a row. Anything computed from many identical small pieces should carry its precision until the last possible step, and the packaging EPR calculator shows the fee to three decimal places for exactly this reason rather than out of fussiness.
How to check your own
Take any per-unit cost that is charged as a fraction and repeated identically: a packaging fee, a levy, a per-item handling charge. Multiply the exact fraction by a year of volume, then multiply the rounded version by the same volume, and compare. If the two differ by anything you would notice on an invoice, your statement is carrying that difference every year.
Spreadsheets are the usual place this hides, because a cell formatted to two decimal places still holds its full precision while a cell that was manually rounded does not. The dangerous version is the one where somebody tidied a column at some point, and every calculation downstream has been quietly biased ever since.
The reason this is worth a post
Because it is the kind of thing that decides whether a statement can be trusted, and because nobody would ever report it as a bug. There is no wrong number on any screen, no complaint from a merchant, no failing test. It is found by asking a slightly paranoid question about a cost that is charged per kilogram, and the answer changes a yearly figure by an amount that is small, real and permanent. A daily statement is only as good as the arithmetic underneath its smallest line.