🚖 Haggis Hoppers – Pricing Deep Dive

February 2024  |  3,068 trips  |  Analysis: Pricing Structure · Correlations · Anomalies · Dynamic Pricing Assessment

3,068
Total Trips
£15.48
Avg Fare
£2.20
Median £/km
0.918
Fare–Distance r
342
Fare Discrepancies
29.6%
Trips with Tip
7.38 km
Avg Distance
18 trips
High £/km Anomalies

1 · Pricing Structure & Tariff Inference

The fare model was reverse-engineered via Ordinary Least Squares regression on cleaned trips (distance < 50 km). The implied tariff structure is:

ComponentImplied RateInterpretation
Base Fare (flag-fall)£3.74Charged at trip start regardless of distance
Per km rate£0.77 / kmPrimary distance component
Per minute rate£0.33 / minTime component (traffic, slow roads)
Model R²0.991Extremely high — fare is almost entirely deterministic
Key finding: The R² of 0.991 confirms Haggis Hoppers runs a purely formula-based flat tariff. Once distance and duration are known, the fare is essentially fixed — there is no demand-based pricing layer.

Price-per-km Summary

StatValue
Minimum£1.10 / km
25th percentile£1.87 / km
Median£2.20 / km
75th percentile£2.75 / km
Mean (excl. extreme outliers)£2.73 / km

The wide std (£10.09) is driven by a handful of very short trips where the fixed base fare inflates the £/km. Median is the reliable measure.

Fare correlations

2 · Correlation Analysis

PairPearson rStrength
Fare vs Distance0.918Very Strong
Fare vs Duration0.891Very Strong
Distance vs Duration0.652Moderate
Distance is the stronger driver of fare (r=0.918 vs 0.891). Both are highly significant. The moderate distance–duration correlation (0.652) suggests meaningful speed variation across trips — some routes are congested while others are fast, creating independent contributions of both variables to fare.

Tip Behaviour

Tip %TripsShare
0% (no tip)2,16170.4%
5%56618.5%
10%2257.3%
15%1163.8%

Only 4 discrete tip levels exist — this is a prompted/selectable tip system, not free-entry. Tips are card-exclusive; cash trips show £0 tip universally.

3 · Anomalies & Outliers

Pricing distribution

Category 1 — The Giant Trip (row 2019)

⚠ Critical outlier: A single trip on 20-Feb-2024 14:56 recorded 402.5 km, 388 minutes, fare £442.59 — consistent with a Glasgow-to-London run or a data entry error. This is the sole Z-score >3 outlier and inflates all distance/fare averages. Action: verify this trip in source records.

Category 2 — High £/km Anomalies (18 trips)

18 trips showed £/km > £10 — all are very short-distance rides (≤ 0.87 km) where the £3.74 base fare dominates. This is mathematically expected, not a fraud signal. The shortest flagged trip is 0.006 km (6 metres) at £3.31 — almost certainly a cancelled or mis-recorded trip.

Recommendation: Set a minimum fare floor of £4.50 (currently implied ~£3.74 base + small distance). Flag trips < 0.1 km for driver/admin review as potential meter-on errors.

Category 3 — Fare Discrepancies (342 trips, 11.1%)

342 trips where Total Amount ≠ Fare + Tip (avg gap £0.87, max £3.80). These are exclusively Cash (184) and Unknown (158) payment types — zero Card trips have discrepancies. This strongly suggests cash rounding, informal surcharges, or driver discretionary pricing on non-card transactions.
Payment TypeTrips with DiscrepancyAvg GapMax Gap
Card0
Cash184~£1.02£3.80
Unknown158~£0.68£2.41
Anomaly breakdown

4 · Dynamic Pricing Assessment

Dynamic pricing patterns
Finding: No dynamic pricing detected. ANOVA across five time bands (Night, AM Peak, Daytime, PM Peak, Evening) returned F=0.374, p=0.827 — statistically indistinguishable fare/km rates across all hours. The median £/km range is only £2.00–£2.61 across all 24 hours (1.30× spread), which is entirely explained by trip-mix variation, not intentional pricing.

Demand Pattern vs Flat Pricing

Time BandTripsMedian £/kmvs Daytime
Night (0–5)548£2.20+6.3%
AM Peak (6–9)577£2.35+13.5%
Daytime (10–15)693£2.07baseline
PM Peak (16–19)594£2.37+14.5%
Evening (20–23)655£2.14+3.4%

AM and PM peaks generate naturally higher £/km (shorter but slower congestion trips) yet are priced identically to off-peak. This is unrealised revenue.

Case for Introducing Dynamic Pricing

📈 Peak Demand Uplift

AM (6–9) and PM (16–19) account for 38% of trips. A 10–15% surge multiplier on fare during these windows is industry-standard and customers in peak slots are less price-elastic.

🌙 Late Night Premium

Night trips (0–5) represent 18% of volume with higher driver costs (unsocial hours). A 10% night tariff is standard in Glasgow and legally permissible under Hackney carriage rules.

📅 Weekend Uplift

Fri/Sat evenings show higher demand density. A 5–10% weekend evening multiplier captures willingness-to-pay for leisure travel without alienating regular commuter riders.

⚖️ Elasticity & Competition

Before implementing, benchmark vs Glasgow minicab and platform (Uber/Bolt) rates. A/B test a 5% uplift on peak hours for 2 weeks to measure cancellation sensitivity.

Conservative revenue estimate: Applying a 10% peak multiplier to AM+PM peak trips (~38% of volume) with zero demand destruction would generate an estimated +3.8% total fare revenue per month. At the Feb 2024 run rate, that equates to roughly £1,800–2,200/month additional gross revenue.

5 · Geographic & Demand Insights

Aggregating full postcodes (G131, G413…) into 2-digit districts reveals clear geographic patterns in both demand and revenue.

Top Areas by Trip Volume

AreaTripsShare of FleetAvg Duration
G13 (Jordanhill / Knightswood)2708.8%18.6 min
G41 (Pollokshields / Shawlands)2668.7%18.7 min
G12 (West End)2548.3%16.5 min
G51 (Govan / Ibrox)2197.1%16.6 min
G20 (Maryhill)1986.5%16.7 min

Note: "% of Fleet" above reflects true share of all 3,068 trips. The "Top 5 by Density" chart in the presentation shows each area's share relative to the top 5 combined — not the total fleet — producing inflated-looking figures (~22%) that should be corrected before customer delivery.

Top Areas by Revenue

AreaTotal FareRev/km
G13£4,293£2.08/km
G41£4,227£2.09/km
G12£3,525£2.32/km
G52 (Cardonald)£3,291£1.90/km
G21 (Springburn)£3,290£1.94/km
G12 (West End) stands out: 3rd by revenue but generates £2.32/km — highest of the top 5 — suggesting shorter, city-adjacent trips with a favourable fare mix.

Top Routes (Area Level)

RouteTripsImplication
G12 → G1329West End to Jordanhill — commuter corridor
G13 → G2029Jordanhill to Maryhill — cross-suburb flow
G13 → G1327Intra-district trips — local short hops
G41 → G1325Southside to West — regular cross-city run
G21 → G1323Springburn to Jordanhill — northside commute

Valentine's Day Effect

14 February revenue: £2,500 — the single highest day in February (+50% vs the rest-of-month daily average of £1,667). This is a clear demand spike, confirming that event-driven dynamic pricing (special days, concerts, football matches) would be a low-friction way to capture surge revenue without alienating regular riders on standard days.

Temporal Duration Patterns (confirmed from heatmap)

Average trip duration rises sharply in two windows — confirming the case for peak pricing:

PeriodAvg Durationvs Off-Peak (avg 15 min)
AM Peak 7–9~24 min+60% — congestion-driven
PM Peak 16–18~24 min+60% — congestion-driven
Off-peak (rest)~15 minbaseline

Drivers spend 60% more time per trip during peaks yet earn the same fare — a direct cost to driver efficiency that dynamic pricing would address.

6 · Summary & Recommendations

#FindingSeverityAction
1402 km mega-trip on 20-FebHighVerify against raw records; exclude from KPI dashboards
2342 cash/unknown payment discrepanciesHighAudit cash-handling process; enforce POS reconciliation
3No dynamic pricing in placeMediumPilot 10% peak surcharge (AM 7–9, PM 17–19) + event-day uplift
418 very-short-distance high-£/km tripsMediumFlag <0.1 km trips for review; set operational minimum fare £4.50
5158 "Unknown" payment type recordsMediumEnforce payment type logging in dispatch/meter system
6G13 & G41 dominate demand but have low rev/kmLowInvestigate whether longer/slower routes in these areas warrant a time-component uplift
7Daytime (10–15) lowest volume & fare/kmLowExplore off-peak corporate account packages for these quiet hours

7 · Presentation Accuracy Notes (internal — resolve before customer delivery)

Issue A — "Top 5 Areas by Density" percentages are relative, not absolute.
The bar chart shows G41 at 22.7%, G13 at 21.7%, etc. These are each area's share of the top-5 combined total, not of all trips. To a customer audience, 22% implies one area handles nearly a quarter of all business — the true figure is ~8.7%. Either relabel the axis to "% share within top 5" or switch to absolute trip counts (266, 270 etc.).
Issue B — G21 "Fare per KM" bar showing ~400 is not a valid average.
The correct average fare/km for G21 is £1.94 (or £2.63 median). The ~400 value on the x-axis does not correspond to any correct calculation (it is not pence, not per-100km, not a weighted average). The chart likely contains a formula error — it may be summing individual trip fare/km values rather than averaging. This slide should be removed or corrected before the deck goes to the customer.
Confirmed correct numbers for your slides: Total trips 3,068 ✓  |  Total revenue £47,507 ✓  |  Avg fare £15.48 ✓  |  Card 72.26% / Cash 14.99% / Unknown 12.74% ✓  |  Area revenue map (G41=£4,227, G13=£4,083) ✓  |  Feb 14 Valentine's spike ✓  |  Duration heatmap peak windows ✓

Bonus · Geographic Zone Clustering (K-Means on Postcodes)

Using approximate centroids for each Glasgow postcode district, K-Means (K=4) was run on a combined feature set of location (lat/lon), trip volume, median revenue/km, peak share, evening share, and average duration. This is meaningfully different from distance-only clustering — each zone has a distinct operational and demand profile.

Geographic clusters
ZoneAreasTripsFleet %Med £/kmAvg FareAvg DurPeak%Evening%
Zone A — Core Urban Belt G11 G12 G13 G14 G20 G21 G22 G31 G40 G41 G42 G51 G52 2,50781.7%£2.19£15.4117.9 min32.5%21.5%
Zone B — SE Evening Fringe G24 G25 G26 G27 G28 G29 G36 G37 G38 G49 G50 31310.2%£2.60£13.4816.1 min34.4%26.9%
Zone C — Northern Periphery G15 G23 2076.7%£2.14£17.5921.5 min43.0%20.7%
Zone D — SW Boundary G58 G59 401.3%£2.64£12.4114.1 min28.1%6.2%

Pricing Implications by Zone

Zone A — Standard Rate

82% of all trips, balanced demand across hours. Apply the base tariff here. Dynamic pricing changes here have the biggest revenue impact — a 10% peak uplift in Zone A alone would cover most of the projected £1,800–2,200/month gain.

Zone B — Evening Premium

Evening trips are 27% of Zone B volume (vs 21% fleet average) and already yield £2.60/km. Formalise this with an evening surcharge from 20:00 — demand is concentrated and less price-elastic after dark.

Zone C — Peak Distance Premium

Highest peak share (43%) and longest average duration (21.5 min). Drivers heading to Drumchapel or Lambhill spend disproportionate time in congestion yet earn a standard fare. A peripheral distance band surcharge during peak hours would compensate.

Zone D — Minimum Fare Zone

Only 40 trips from Renfrew/Paisley fringe. Almost no evening demand. These are likely cross-boundary trips where drivers deadhead back empty. A zone boundary minimum fare (e.g. £15 floor) recovers dead mileage cost.

Caveat: Coordinates here are district-level centroids (e.g. all G13 trips mapped to one point), not individual address geocodes. The cluster boundaries would sharpen considerably if the actual postcodes were geocoded via an API like postcodes.io. The zone logic and pricing implications are directionally valid, but the geographic map should be treated as indicative rather than exact.