Parking Tariffs Aren't Hourly: They're a Step Function With a Receipt
Photo: N Chadwick , CC BY-SA 2.0, via Wikimedia Commons
Car park signs love a headline rate. 'From £2.20 per hour' sounds like a linear price: stay twice as long, pay twice as much. Then you reach the machine and find that one hour costs £2.20, two hours cost £4.00, three hours cost £6.50 and four hours cost £9.50. The hourly rate has not stayed still. It was never a rate at all. It was a step function.
That matters because most parking decisions are made at the margin: should I pay for one more hour, or risk the penalty? The advertised rate is a bad guide to that question. The true cost is a piecewise function, and once you write it down you can see where the extra money goes.
A typical tariff, written properly
Take a fictional but realistic council car park in a mid-sized English town. Call it Mill Lane. The tariff board says:
- 0–1 hour: £2.20
- 1–2 hours: £4.00
- 2–3 hours: £6.50
- 3–4 hours: £9.50
- 4–24 hours: £12.00
- Paying by app: 30p transaction fee
As a function of stay length t in hours, the tariff is:
C(t) = 2.20, if 0 < t ≤ 1 4.00, if 1 < t ≤ 2 6.50, if 2 < t ≤ 3 9.50, if 3 < t ≤ 4 12.00, if 4 < t ≤ 24
That is a piecewise function: several flat pieces joined at the hour marks. The app fee adds a constant:
C_app(t) = C(t) + 0.30
The effective hourly rate is C(t) / t. At one hour it is £2.20. At two hours it is £2.00. At three hours it is about £2.17. At four hours it is £2.38. The sign's 'from £2.20' is technically true, but only for the first hour. It is a minimum, not a rate.
Marginal cost is where the trap is
The number that should govern your decision is marginal cost: the extra charge for extending your stay. From 0 to 1 hour, the first hour costs £2.20. The second hour adds £1.80, from £2.20 to £4.00. The third adds £2.50. The fourth adds £3.00. The fifth to twenty-fourth adds £2.50 for a much longer block. Those marginal prices are not advertised, but they are the real price of saying 'I'll just stay a bit longer.'
Now suppose you need two hours and ten minutes. The two-hour ticket is £4.00; the three-hour ticket is £6.50. The extra ten minutes cost £2.50, an effective rate of £15 per hour for that sliver. If you buy the two-hour ticket and overstay, the penalty might be £50 or more. Suddenly the 'expensive' three-hour ticket is the cheaper expected choice. The algebra is:
Expected cost of underpaying = probability of overstay × penalty Extra cost of buying the next block = C(next block) − C(current block)
Buy the buffer when:
probability of overstay × penalty > extra block cost
If the penalty is £50 and the extra block is £2.50, you only need a 5% chance of overstaying for the buffer to be worth it. Most of us are more than 5% likely to be late.
Why the tariff is stepped
This is civic algebra, not a conspiracy. Councils and private operators use stepped tariffs for several reasons. Steps are easy to enforce and explain at a machine. They encourage short stays by making long stays relatively more expensive at the margin. They raise revenue without a single headline rate that looks high. And they can be adjusted in small political increments: 20p on the two-hour band is less noticeable than a broad hourly rise.
But the design has distributional effects. A driver who needs 61 minutes pays for two hours. A driver who needs 2 hours 5 minutes may pay for three. The person who can round their trip to the hour pays less per minute than the person who cannot. The sign hides that; the function reveals it.
App fees, rounding and the 'convenience' surcharge
Apps add another layer. A 30p fee sounds trivial, but it is a fixed charge per transaction, so it hits short stays hardest. One hour by app costs £2.50, an effective £2.50 per hour. Three hours costs £6.80, an effective £2.27 per hour. The app fee dilutes with stay length, which is one reason the 'cheapest' payment method depends on how long you park. Some apps also round up, add a text reminder fee, or charge a card surcharge. Put every fixed extra into the function as a constant a:
C_true(t) = C(t) + a
Then compare C_true(t) / t, not C(t) / t. The constant changes the ranking of short and long stays.
How to choose your stay length
Here is a practical routine:
- Photograph the tariff board before you pay. You need the bands, not the headline.
- Write the function for the hours you are considering.
- Estimate your actual stay, then add a realistic buffer.
- Price the next band up. Ask what the extra 30 or 60 minutes costs at the margin.
- Compare that with the expected penalty for overstaying, and with the cost of a different car park.
- Pay for the band that minimises expected total cost, not the one with the prettiest hourly rate.
For Mill Lane, a three-hour stay is the sweet spot for many errands: £6.50, or £6.80 by app, works out at about £2.17–£2.27 per hour. A four-hour stay jumps to £9.50, or £9.80 by app. The fourth hour costs £3.00 at the margin, which is more than the average rate suggests. If your meeting is likely to run to 3 hours 10 minutes, you are choosing between a £3.00 buffer and a £50 penalty. The buffer usually wins.
The rate you should quote
If you want a single number, quote the effective rate for your actual stay: C_true(t) / t. Do not quote the sign's 'from' rate unless you are staying exactly one hour and paying the cheapest way. The hourly rate is not exactly a lie; it is a minimum dressed up as a rate. In algebra terms, it is the value of a function at one point, presented as if the function were a straight line through the origin.
Parking is full of these small piecewise traps: the bus fare that changes at 9:30, the energy tariff that steps after a certain number of units, the council tax band that jumps at a valuation threshold. Once you start writing costs as functions, you stop comparing headlines and start comparing the thing you actually pay. At the meter, that is the difference between a cheap hour and an expensive ten minutes.