There is no demand curve

There is no demand curve

📍 Part 1 of 5 — Wrong but useful

"All models are wrong, but some are useful." — George Box, 1976

This series applies that principle to how rail retail models demand. The demand curve is wrong — but for decades it has been useful enough.

This post argues it no longer is: that demand is a distribution, not a curve, and that the decision moment is the right unit of analysis. Later posts build from here toward something better: the AI unlock, the implications for retailers and journey companion apps, the case for a competitive retail ecosystem, and why real substantive trust and partnership with carriers, front-line and infrastructure stakeholders matters.

The series closes where it begins — with a model that is still wrong, but perhaps more useful than the one we've been using.

The limits of segmentation

A commuter, for the same origin and destination pair, same route - will pay a £80 walk-up on a stressed Monday morning and refuse a £60 advance on a relaxed Friday afternoon.

The person here, in an economically meaningful sense, has changed. This is yield management working correctly. Segment by journey purpose then price accordingly. Different segments, different willingness to pay. Problem solved. Extra credit for accounting for seasonality.

This is a well-known anomaly in pricing which in the past has been acceptable to acknowledge but for which the effort/reward in leaning into hasn’t been worth the squeeze.

My argument is we are at the limit of the utility of this pricing model and that applies as much to those who set the price as the retailers who sell the tickets.

💡
Why now? There are potentially big changes in UK Rail. GBR is a push to deliver better outcomes at a lower public subsidy. Supply is constrained and will remain so. Passenger expectations are increasing.

We need to move from segmentation analysis to state analysis. The dominant variable is context, a variable we hitherto have not really paid much attention to.

This isn't an observation unique to travel. Any marketplace with heterogeneous buyers faces it: Hospitality, Financial Services, Media Subscriptions. The question is always how finely we can resolve the diversity.

Rail is my domain of current focus and it does have its idiosyncrasies. To name but one, supply adjustment is doubly constrained. In the short run, capacity is fixed by timetable, signalling, and rolling stock - you can't add a service the way a hotel reprices a room. In the long run, new capacity requires not just financial capital but political capital. This means the demand-side model isn't just commercially important. In rail, it does almost all the work.

Supply can work harder - that's a subject for another day.

An answer, and why it's incomplete

So why, if we've known about heterogeneity for decades, are most segmentation systems still population models? They describe the average behaviour of a group, not the decision logic of an individual — despite empirical evidence suggesting individual-level variation dwarfs variation between segments.

The clearest proof comes from UK transport demand research. TRL Report TRL593 documents fare elasticity across trip purposes in Britain, across roughly 1.4 billion annual rail journeys (ORR, 2023-24). The range is striking: employer-paid business trips have an elasticity of around -0.05 — essentially zero price sensitivity, because someone else is paying. Commuting peak sits at -0.26 to -0.34. Off-peak leisure ranges from -0.48 to -0.79. Highly discretionary leisure rail use reaches -1.5 and beyond.

That's a 30x range in price sensitivity across trip contexts. Not between different types of people — between different contexts for the same trip.

Demand is not a curve. It's a distribution whose shape depends entirely on the context of the decision. Any pricing model that treats any segment as homogeneous is smoothing over the most important variable in the system.

The formal framework

McFadden's Random Utility Model gives this intuition its formal foundation. An individual choosing between travel alternatives maximises utility: Uᵢⱼ = Vᵢⱼ + εᵢⱼ - where the ε term captures all idiosyncratic variation in preferences the analyst can't observe directly. That unobservable variance is precisely what generates heterogeneity.

His later Mixed Logit model makes this operational.

Willingness to pay is derived as: WTPᵢ = −(βᵢ_attribute / βᵢ_price) - where βᵢ is drawn from a distribution across individuals. WTP isn't a scalar. It has a mean, a variance, and a shape. The appropriate question isn't "what will customers pay?" but "what does the distribution of WTP look like, and which part of it is this customer drawing from right now?"

Value of time in rail is the canonical example.

Consider the same person — a senior manager who travels weekly for work. On Tuesday, expenses covered, running late for a client meeting: she's in the upper tail. On Saturday, paying herself, relaxed, flexible on timing: she draws from somewhere near the bottom. The distribution hasn't changed. She has moved across it. A model built on her segment — "frequent business traveller" — misspecifies her half the time, and any pricing built on that segment leaves value on the table while extracting too much at the wrong moment.

The academic literature resolved this theoretically in the 1970s. The operational question: Can you act on it at scale?

There are as many demand curves as there are travellers × moments.

The edge that doesn't erode

The industry has known about demand heterogeneity for decades. The problem was never insight - it was operationalisation. If your inference method is segmentation, you're capped at group-level estimates no matter how granular your segments get. The decision moment — a person, a context, a set of constraints that exist only right now - stays invisible to the model.

The demand for transport is, as TRL593 reminds us, derived demand.

Passengers aren't buying tickets. They're trying to do something — see someone, get somewhere, make a meeting.

The ticket is the last step in a decision that was made upstream, in a context the model never sees.

That's what the demand curve misses. And why it matters.

What that means for anyone who owns the customer relationship and what we can practically do is the subject of a different post.