Doc 4 of 5
RIDERSHIP FORECASTING
& DEMAND MODELS
CEE 4853 — Public Transportation Systems | Based on Week 4 course slides (core + extended module)
Why This Topic Matters
This is the math-heavy part of the course — but the ideas behind the math are simple. Agencies
constantly need to predict: "If we do X (change a fare, add a bus, build a new line), how many people
will actually ride?" This document covers every method used to answer that question, from rough
professional guessing all the way to formal mode-choice equations, with full worked examples.
PART A — FUNDAMENTALS OF TRANSIT DEMAND
1. What Is Transit Demand?
Transit demand is the number of person-trips people wish to make using public transportation in a given
period (usually expressed as passenger-trips per day or year). It's a "derived demand" — nobody travels
just to travel; they travel to reach work, school, shopping, or other destinations.
Key Distinction
Demand ≠ Ridership.
Ridership (actual boardings) is the REALIZED portion of demand — the part of latent demand the system
actually captures, given its current service level, fares, and coverage.
Analogy: demand is everyone who WANTS a seat on the bus; ridership is everyone who actually GOT one.
2. What Influences Transit Demand?
● Supply-side factors (the operator controls these): frequency & reliability, network coverage & stop
spacing, fare levels/structure, travel time & speed, comfort/safety/information systems
● Demand-side factors (socioeconomic & land use): population density, income & car ownership,
employment concentration & land use mix, age structure, trip purpose mix
● External factors: fuel/parking prices for competing modes, urban form, policy environment
(congestion pricing, parking restrictions), infrastructure investment
3. The Demand Curve — Generalised Cost
Just like in regular economics, transit demand goes down as the "cost" of using transit goes up. But
"cost" here isn't just the fare — it also includes time, because time is valuable too.
GC = Fare + VOT × (In-vehicle time + α × Wait time + β × Walk time)
Symbol Meaning
GC Generalised Cost of travel (in money, e.g. BDT)
Fare Out-of-pocket fare paid
VOT Value of Time — money assigned to one unit of travel time
In-vehicle time Time spent riding (minutes)
Wait time Time spent waiting at the stop (minutes)
Walk time Time walking to/from the stop (minutes)
α (alpha) Wait-time penalty weight, typically ≈ 2.0 — waiting feels about twice as bad as riding
β (beta) Walk-time penalty weight, typically ≈ 2.5 — walking feels even more burdensome
In plain words: a minute spent waiting or walking annoys a rider much more than a minute spent
actually sitting on the bus. That's why α and β are bigger than 1 — they're "penalty multipliers" that
make waiting/walking time count for more than its raw minutes.
4. Ridership Metrics — Know Your Vocabulary
Metric Definition
Unlinked Passenger Trips (UPT) Each boarding counts as one trip, even with transfers. The most
commonly reported metric.
Linked Passenger Trips A complete journey from origin to destination — transfers count as just
ONE trip.
Passenger-Miles (PMT) Total distance travelled by all passengers = UPT × average trip length.
Revenue per Passenger Total farebox revenue ÷ UPT. Indicates cost recovery.
Load Factor Ratio of passengers to available seats. Used for capacity planning.
Remember: a single rider who transfers once generates 2 unlinked trips but only 1 linked trip. This is the
same UPT-vs-linked-trip distinction used in TransLink's transfer rules and other planning guideline
examples elsewhere in the course.
PART B — APPROACHES TO ROUTE RIDERSHIP PREDICTION
5. Factors Affecting Transit Ridership
● Exogenous (uncontrollable): auto ownership/cost, fuel prices, demographics,
population/employment distribution — usually treated as "fixed" in the short run
● Endogenous (controllable): fare, headway/wait time, route structure (walk + ride time), crowding,
reliability (last two are often NOT explicitly modeled, even though they matter)
6. Why Ridership Prediction Is Needed
● For fare changes — system-wide prediction; uses fare elasticity, time-series econometric models,
or (best practice) two-stage market-segment models
● For general agency planning/budgeting — system-wide prediction; trend projection or time-series
econometric models
● For service changes — route-level prediction; covers changes in operating hours, headway, route
configuration, stop spacing, or service type (local vs. express)
7. The Traditional (Reactive) Approach
Historically, many agencies don't predict ahead of time — they just react:
● Exogenous change happens → monitor how ridership changed afterward
● Endogenous change needed → modify the system, see what happens
● This does NOT try to anticipate impacts before the change occurs
Current practice critique: little attention is paid to this problem except for fare changes and big capital
projects; traditional 4-step urban transport models are often inappropriate (too complex to run
repeatedly, not detailed enough); ad-hoc judgmental methods dominate in practice.
8. Four Approaches to Predicting Route Ridership
8.1 Professional Judgment
Widely used — based on experience and local knowledge. No evidence of accuracy or reproducibility.
Reflects either a lack of faith in formal models, a lack of data/expertise to build one, or simply that the
topic matters less to the agency than the impact on existing passengers.
8.2 Survey-Based (Non-Committal Survey)
Survey potential riders on how they'd respond to a new/changed service, then extrapolate to the total
population by market segment. You must adjust for "non-committal bias" — people often say they'd ride
something but don't actually follow through — using an adjustment factor that in practice ranges from
0.05 to 0.50. Generally not recommended due to this large uncertainty.
8.3 Cross-Sectional Models
Use route and demographic data to explain route ridership. Four main approaches, in increasing
complexity: rules of thumb; "similar routes" methods; multiple factor trip rate models; aggregate route
regression models.
Typical Transit Elasticities (General Patterns)
● Small cities have larger fare elasticities than large cities
● Bus travel is more elastic than commuter-rail and rapid-rail travel
● Off-peak fare elasticities are about double peak-fare elasticities
● Short-distance trips are more elastic than long-distance trips
● Fare elasticities rise with income and fall with age
● Of all trip purposes, the work trip is the most inelastic
● Promotional fare elasticities are slightly larger than elasticities from permanent fare changes
Limitations of this approach: matching census tract data to route service characteristics is difficult
without GIS tools; well-fitting regression models can end up with oddly large "tract constants"; the
method doesn't recognize network interactions or supply/demand interaction.
8.4 Time-Series Data Models
(Listed as the fourth category alongside professional judgment, surveys, and cross-sectional models —
uses historical ridership data over time to project forward, related to the trend-projection methods
mentioned under "why ridership prediction is needed" above.)
9. Beyond Single-Route Models — Network Approaches
● GIS-based, simultaneous-equation, route-level models — can include competing/complementary
routes, address demand-supply interaction; the logical next step beyond a simple direct-demand
model. Example: Portland Tri-Met Model, which uses GIS to identify whether routes are
independent, complementary, or competing, and modifies the demand equation to capture inter-
route effects.
● Full network models — explicitly handle competing/complementary routes, can include trip
distribution and mode split effects; the logical next step beyond a TTC-type elasticity model.
Both require a computerized representation of the transit network and service area.
10. Transit Origin-Destination (OD) Flow Matrix — Three Levels
● Fixed transit flows — use observed current transit OD flows (e.g., from a telephone survey);
assumes transit demand won't change as service changes, at least short-run. This is the typical
current approach.
● Variable modal split, fixed total demand — use observed total (all-modes) OD flows, then apply a
modal split model to find the transit share. Preferred for significant service changes, but not
generally operational in practice.
● Variable total demand & modal split — requires full demand modeling (generation, distribution,
modal split). Not generally necessary for transit service planning, since total OD flows rarely
change much within a typical planning period.
11. Network Modeling Packages (For Awareness)
The course slides mention several real-world software packages used for network-based forecasting:
MADITUC, EMME/2, and TransCAD, as well as CUBE. Typical outputs from these packages include
link/line volumes, boardings by link/line/node, OD travel times (in-vehicle and out-of-vehicle), and
revenue/cost/energy figures by link, line, or zone.
PART C — DEMAND FORECASTING METHODS (FULL DETAIL)
12. Overview of Forecasting Methods
Method Description Best Used For
Four-Step Model Sequential: Trip Generation → Distribution → Long-range planning, major new
Mode Choice → Assignment infrastructure
Elasticity Models Use historical sensitivity of demand to Short-run service or fare
fare/service changes adjustments
Direct Demand / Regress ridership on socioeconomic variables Existing corridor improvements,
Regression route-level planning
Discrete Choice / Logit Probabilistic model of travellers choosing Mode share estimation, policy
between modes sensitivity
13. The Four-Step Travel Demand Model (4SM)
The standard framework for regional travel demand forecasting. It works at the level of Traffic Analysis
Zones (TAZ) — the geographic units a study area is divided into.
Step 1 — Trip Generation
Estimates how many trips are produced by, and attracted to, each TAZ, using cross-classification or
regression calibrated on household travel surveys.
P_i = a0 + a1 × HH_i + a2 × EMP_i + a3 × INC_i
Symbol Meaning
P_i Total trip productions from zone i (trips/day)
a0 Model intercept — baseline productions independent of zone characteristics
a1, a2, a3 Calibrated coefficients for households, employment, and income
HH_i Number of households in zone i
EMP_i Total jobs in zone i (proxy for trip-attracting activity)
INC_i Median household income in zone i
Step 2 — Trip Distribution (Gravity Model)
Allocates produced trips from each origin zone to destination zones, using an analogy to gravity: bigger
zones attract more trips, and farther zones attract fewer.
T_ij = A_i × O_i × B_j × D_j × f(c_ij)
where the impedance (deterrence) function is f(c_ij) = c_ij^(−n) or exp(−β × c_ij)
Symbol Meaning
T_ij Trips from origin zone i to destination zone j (trips/day)
A_i, B_j Balancing factors ensuring trips leaving i / arriving at j match observed totals
O_i, D_j Total productions of zone i / total attractions of zone j
f(c_ij) Impedance function — how travel friction between i and j reduces trip-making
c_ij Generalised travel cost or time between zone i and j
n Power of the inverse-power impedance function; commonly n = 2.0 (trips decay with the
square of travel time)
β Decay parameter for the exponential form — larger β means stronger distance decay
Analogy: think of zones like cities with different "gravitational pull" — bigger cities (more jobs/people)
pull in more trips, but the pull weakens fast with distance, just like gravity weakens with distance in
physics.
Step 3 — Mode Choice
Determines the probability a traveller chooses transit vs. other modes — typically using a logit model.
Covered fully in Section 16 below.
Step 4 — Trip Assignment
Transit trips are loaded onto the network, identifying which lines/routes carry the demand. Transit
typically uses Optimal Strategy Assignment, which accounts for route frequency in determining how
passengers behave at stops served by multiple lines.
14. Trip Rate Tables — A Simplified Shortcut
A simpler cross-classification approach just uses observed trip rates per household category (published
by national transport authorities, adjusted locally), avoiding the need for a full regression:
Household Category 0 cars 1 car 2 cars 3+ cars
Low income (1-2 persons) 5.2 3.8 2.9 2.1
Low income (3+ persons) 7.1 5.4 4.0 3.2
Medium income (1-2 persons) 4.6 4.1 3.5 2.8
Medium income (3+ persons) 6.5 5.8 5.0 4.1
High income (1-2 persons) 3.9 3.7 4.2 3.8
High income (3+ persons) 5.5 5.0 5.5 5.2
(Illustrative values — daily transit trips per household.) Notice the pattern: more cars generally means
fewer transit trips, except interestingly at the highest income, smallest-household level, where trip rates
actually rise slightly with car count — a reminder these tables are empirical patterns, not rigid laws.
15. Elasticity-Based Demand Models
Elasticity measures how responsive demand is to a change in a variable (fare, frequency, income). It's
dimensionless, so it can be compared across very different contexts.
ε_x = (ΔQ/Q) / (ΔX/X) [or, continuously: ε_x = (dQ/dX) × (X/Q)]
Symbol Meaning
ε_x Elasticity of demand with respect to variable X
ΔQ, Q Change in ridership, and base (current) ridership
ΔX, X Change in variable X, and base (current) value of X
Interpretation: if ε_fare = −0.4, a 10% fare increase reduces ridership by 4%. Transit demand is generally
price-inelastic in the short run (|ε| < 1).
Key Elasticity Values (Reference Table)
Variable Short-run Long-run Notes
Fare (bus) -0.2 to -0.4 -0.6 to -0.9 Higher for off-peak, leisure
Fare (rail) -0.3 to -0.6 -0.7 to -1.1 Higher for long-distance
Service frequency +0.3 to +0.5 +0.5 to +0.8 Positive elasticity
Travel time (in-vehicle) -0.4 to -0.6 -0.8 to -1.2 Negative
Income +0.3 to +0.6 +0.8 to +1.2 Cross-elasticity with car
Fuel / parking price +0.1 to +0.3 +0.4 to +0.7 Cross-elasticity
Arc Elasticity (For Finite/Large Changes)
Point elasticity assumes a tiny change. For a real, finite change, arc (midpoint) elasticity is more
appropriate:
ε_arc = [(Q2 − Q1) / ((Q1+Q2)/2)] / [(X2 − X1) / ((X1+X2)/2)]
For practical planning purposes, though, the simpler point elasticity formula (using base values) is
commonly used anyway.
Power (Log-Linear) Demand Model
A common functional form combines multiple elasticities multiplicatively:
Q = k × F^(εf) × S^(εs) × INC^(εi)
Taking logs linearises this into: ln(Q) = ln(k) + εf·ln(F) + εs·ln(S) + εi·ln(INC), which can be estimated with
ordinary least squares (OLS) regression.
Worked Exercise 1 — Fare Elasticity, Simple Prediction
A city bus route carries 12,000 trips/day at a fare of BDT 25. The operator raises the fare to BDT 30.
Short-run fare elasticity = −0.35. Find new ridership and revenue change.
Solution
Step 1 — % change in fare: ΔF/F = (30−25)/25 = 0.20 → +20%
Step 2 — % change in ridership: ΔQ/Q = (−0.35)(0.20) = −0.070 → −7.0%
Step 3 — New ridership: Q2 = 12,000 × (1 − 0.070) = 11,160 trips/day (loss of 840 trips/day)
Step 4 — Revenue before: 12,000 × 25 = BDT 300,000. Revenue after: 11,160 × 30 = BDT 334,800.
Result: revenue gain of +BDT 34,800/day, despite losing riders, because demand is inelastic (|ε|=0.35 < 1) —
the percentage revenue gain from the higher fare outweighs the percentage ridership loss.
Worked Exercise 2 — Combined Fare and Frequency Elasticity
A metro line runs at 10-min headway, fare BDT 40, 85,000 trips/day. Plan: cut headway to 7.5 min AND
raise fares 15%. ε_headway = −0.4 (shorter headway → more demand), ε_fare = −0.45.
Solution
Step 1 — % change in headway: ΔH/H = (7.5−10)/10 = −0.25 → −25%
Step 2 — Effect on ridership from headway: ΔQ_H/Q = (−0.4)(−0.25) = +0.10 → +10%
Step 3 — Effect on ridership from fare: ΔQ_F/Q = (−0.45)(+0.15) = −0.0675 → −6.75%
Step 4 — Combine multiplicatively: Q2 = 85,000 × 1.10 × 0.9325 ≈ 87,189 trips/day
Result: net ridership GAIN of ~2,189 trips/day (+2.6%) — the service improvement outweighs the fare
increase's deterrent effect.
16. Direct Demand and Mode Choice Models
Direct Demand Regression Model
Direct demand models regress observed ridership directly on explanatory variables, skipping the full 4-
step sequence. Practical for analyzing an existing corridor where data is available.
ln(R_i) = β0 + β1·ln(POP_i) + β2·ln(EMP_i) + β3·ln(FREQ_i) + β4·ln(FARE_i) + ε_i
Symbol Meaning
R_i Daily ridership on route i — the variable being predicted
β1, β2, β3, β4 Coefficients — each directly equals the elasticity of ridership with respect to that variable
(population, employment, frequency, fare)
POP_i, EMP_i Residential population, and destination-area employment, served by route i
FREQ_i Daily service frequency on route i
FARE_i Average fare on route i
The log-linear form is preferred because: (1) it guarantees non-negative ridership predictions, (2)
coefficients are directly interpretable as elasticities, and (3) it tends to fit skewed ridership data better.
Worked Exercise 3 — Direct Demand Prediction
Calibrated model: ln(R) = −2.10 + 0.65 ln(POP) + 0.45 ln(EMP) + 0.38 ln(FREQ) − 0.42 ln(FARE). New
route: POP = 45,000; EMP = 22,000; FREQ = 60 trips/day; FARE = BDT 20. Predict ridership.
Solution
Step 1 — Natural logs: ln(45,000)=10.7149, ln(22,000)=9.9985, ln(60)=4.0943, ln(20)=2.9957
Step 2 — Substitute: ln(R) = −2.10 + 0.65(10.7149) + 0.45(9.9985) + 0.38(4.0943) − 0.42(2.9957)
= −2.10 + 6.9647 + 4.4993 + 1.5558 − 1.2582 = 9.6616
Step 3 — Back-transform: R = e^9.6616 ≈ 15,703 passenger-trips/day
Interpretation: the FARE coefficient (−0.42) is the model's implied fare elasticity. The POP coefficient (0.65)
means a 10% bigger catchment population yields 6.5% more ridership, all else equal.
Discrete Choice Models — The Logit Model
Grounded in utility theory: each traveller chooses the mode that maximizes their own personal utility.
U_nm = V_nm + ε_nm V_nm = β0 + β1·Cost_m + β2·TravelTime_m + β3·WaitTime_m + ...
Symbol Meaning
U_nm Total utility individual n gets from mode m (observed + unobserved parts)
V_nm Systematic (observable, modeled) utility
ε_nm Random error — unobserved taste variation, omitted attributes, measurement error
β0 Mode-specific constant (ASC) — average unobserved utility difference between modes
β1, β2, β3 Coefficients on cost, travel time, wait time — all negative (more cost/time = less utility);
wait-time coefficient is usually larger in magnitude than travel-time, since waiting feels
worse
Multinomial Logit (MNL) Choice Probability
P(m | C) = exp(V_m) / Σ_j exp(V_j) [sum over all available modes j in choice set C]
This elegant closed-form result is the workhorse of mode choice analysis worldwide. Properties:
probabilities are always between 0 and 1, and sum to 1 across all modes.
● Independence of Irrelevant Alternatives (IIA): the ratio P(m)/P(k) depends only on attributes of m
and k, not on other modes. This breaks down for very similar modes (e.g., two competing bus
routes) — Nested Logit can relax this assumption by grouping correlated modes.
Value of Time from Logit Coefficients
VOT = −β_time / β_cost
The ratio of two negative coefficients gives a positive VOT: the money a traveller is willing to pay to save
one unit of travel time.
Worked Exercise 4 — Binary Logit Mode Choice
A commuter chooses car vs. bus. Utilities: V_car = 0.50 − 0.08·Cost − 0.05·Time. V_bus = 0.00 − 0.08·Cost
− 0.05·Time − 0.04·WaitTime.
Scenario A: Car cost=80, time=25 min. Bus cost=20, time=35 min, wait=8 min. Scenario B: Bus time
improves to 28 min, wait to 5 min (car unchanged).
Solution
Scenario A: V_car = 0.50 − 6.40 − 1.25 = −7.15. V_bus = 0.00 − 1.60 − 1.75 − 0.32 = −3.67
exp(V_car) = 0.000786, exp(V_bus) = 0.02548. Sum = 0.026266
P(car) = 3.0%, P(bus) = 97.0%
Scenario B: V_bus = 0.00 − 1.60 − 1.40 − 0.20 = −3.20. exp(V_bus) = 0.04076
Sum = 0.000786 + 0.04076 = 0.041546. P(bus) = 98.11%
VOT = −(−0.05)/(−0.08) = 0.625 BDT/min = 37.5 BDT/hour
Comment: bus was already dominant (97%) due to its cost advantage. The service improvement only nudges
bus share up ~1.1 percentage points — modal shifts are biggest when both modes start out closer to 50/50,
not when one mode already dominates.
Worked Exercise 5 — Gravity Model Trip Distribution
3 zones. Zone 1: O=500, D=200; Zone 2: O=300, D=400; Zone 3: O=200, D=400. Impedance f(t) = t^(−2.0).
Travel times: t12=10, t13=20 (minutes). Distribute Zone 1's 500 trips.
Solution (Production-Constrained Gravity Model)
T_ij = O_i × [D_j × f(t_ij)] / Σ_k [D_k × f(t_ik)]
Step 1 — Impedance: f(t12) = 10^(−2) = 0.0100. f(t13) = 20^(−2) = 0.0025
Step 2 — Weighted attractions: Zone 2: 400 × 0.0100 = 4.000. Zone 3: 400 × 0.0025 = 1.000
Step 3 — Sum = 5.000. T12 = 500 × (4.000/5.000) = 400 trips. T13 = 500 × (1.000/5.000) = 100 trips
Check: 400 + 100 = 500 = O1 ✓
Interpretation: 80% of Zone 1's trips go to the closer Zone 2 (10 min), only 20% to the farther Zone 3 (20 min)
— the inverse-square impedance function strongly discounts longer trips.
17. Model Limitations and Practical Applications
Limitations
● Four-Step Model: assumes stable land use; aggregated to zones (ignores individual variation);
errors propagate through the sequential steps; doesn't explicitly model induced demand
● Elasticity Models: assumes constant elasticity (may fail for large changes); short-run values
underestimate sensitivity if misused for long-range planning; not very transferable between cities
with different land use/income/network characteristics
● Logit Models: IIA violated for close substitutes (e.g., two bus routes vs. rail); assumes utility is
linear in attributes (crowding discomfort needs extensions); doesn't capture individual taste
variation unless using mixed logit or latent class models
Practical Planning Applications
Planning Decision Recommended Approach
Short-term fare change Elasticity model — quick, transparent, calibrated to local data
New bus route ridership Direct demand regression or simplified four-step
Major rail investment Full four-step model with mode choice (Logit/Nested Logit)
Policy analysis (pricing, parking) Logit mode choice — shows substitution between modes
Long-range system planning (20+ Activity-based or agent-based models; four-step with sensitivity analysis
years)
Validation and Calibration
All models must be checked against real, observed data, using:
● Root Mean Square Error (RMSE) and Mean Absolute Percentage Error (MAPE) for aggregate
ridership prediction
● Goodness-of-fit (R², rho-squared) for regression and logit models
● Screenline comparisons — predicted vs. counted volumes at key network points
● Reasonableness checks — sign, magnitude, and statistical significance of every coefficient
Key Formulae Summary
# Name Expression
1.1 Generalised Cost GC = Fare + VOT × (IVT + α×WT + β×WkT)
2.1 Trip Generation P_i = a0 + a1·HH_i + a2·EMP_i + a3·INC_i
2.2 Gravity Model T_ij = A_i·O_i·B_j·D_j·f(c_ij)
3.1 Point Elasticity ε = (ΔQ/Q) / (ΔX/X)
3.2 Arc Elasticity ε = [(Q2−Q1)/avgQ] / [(X2−X1)/avgX]
3.3 Power Demand Model Q = k × F^εf × S^εs × INC^εi
4.1 Direct Demand ln(R) = b0 + b1·ln(POP) + b2·ln(EMP) + ... → R = e^ln(R)
4.2 Random Utility U_nm = V_nm + ε_nm
4.4 Logit Probability P(m) = exp(V_m) / Σ_j exp(V_j)
4.5 Value of Time VOT = −β_time / β_cost
Glossary of Terms (This Document)
Term Simple Meaning
Transit Demand Number of person-trips people WISH to make on transit (not the same as
ridership).
Ridership Actual realized boardings — the portion of demand the system captures.
Generalised Cost (GC) Total "cost" of a trip combining money fare and the time cost of travel.
Value of Time (VOT) Monetary value assigned to one unit of travel time.
Unlinked Passenger Trips (UPT) Each boarding counted separately, even across transfers.
Linked Passenger Trips One full origin-to-destination journey counted as a single trip, regardless
of transfers.
Four-Step Model (4SM) Standard regional forecasting framework: Generation → Distribution →
Mode Choice → Assignment.
Traffic Analysis Zone (TAZ) A geographic unit a study area is divided into for travel demand
modeling.
Gravity Model Trip distribution model where trip flow depends on zone size and
decreases with travel cost/distance.
Impedance Function Mathematical function describing how travel friction (cost/time) reduces
trip-making between zones.
Elasticity The % change in demand caused by a 1% change in some variable (fare,
frequency, etc.).
Arc Elasticity Elasticity computed over a finite (non-marginal) change, using midpoint
averages.
Direct Demand Model Regression of ridership directly on variables like population, employment,
frequency, and fare.
Discrete Choice / Logit Model Probabilistic model of which mode a traveller chooses, based on utility
theory.
Utility (in mode choice) A numerical score representing how attractive a mode is to a traveller.
Multinomial Logit (MNL) The standard formula converting utilities into choice probabilities.
Independence of Irrelevant Logit assumption that the ratio of two modes' probabilities depends only
Alternatives (IIA) on those two modes — breaks down for very similar alternatives.
Trip Generation Step 1 of the 4-step model: how many trips each zone produces/attracts.
Trip Distribution Step 2: how those trips are allocated between origin and destination
zones.
Trip Assignment Step 4: loading trips onto specific network routes/lines.