Companion to: 2026-05-07-fuel-impact-april-may.html
Prepared: 2026-05-07 (Luci) · for Elmar
Purpose: step-by-step record of how the April fuel impact and May PBT projection were built, and every data source used.
| # | Source | What it gave | Where it lives |
|---|---|---|---|
| 1 | IATA Jet Fuel Price Monitor | Weekly global jet fuel index (USD/bbl), crack spread vs Brent | Data Fuel.xlsx (Reporting Data) — refreshed by iata-fuel-update task |
| 2 | B4i Fuel Feedback thread (Bernd Feucht) | Weekly supplier tariff moves in cents-per-litre (Shell/Sasol/Astron/PetroSA/Engen) | Outlook — "B4i Fuel Feedback" email thread |
| 3 | Radixx route surcharge (Pieter Richards) | Per-pax fuel surcharge per route per week, ZAR incl VAT | Weekly "Fuel levy" XLSX → OneDrive (Microsoft Teams Chat Files mirror) |
| 4 | FinDash | April operating actuals — flights, pax, seats, LF, yield, revenue | ~/PKA/Projects/findash/data/kpi_data.json + contribution_data.json |
| 5 | May schedule (live) | Confirmed May flight + seat count | FlySafair published schedule — 5,031 flights / 950,475 seats |
| 6 | May MTD bookings (1–7 May) | Flown + forward-booked pax and revenue → implied yield | Booking curve / live commercial data |
Three external inputs (1, 2, 3) are received weekly — the forecast is only as fresh as the latest of each. Two (4, 6) are internal actuals.
March was protected: the Engen/Sasol contract held February pricing through March, so the fuel spike had not yet hit the P&L.
fuel_r ÷ uplift = R11.43/L).March is the anchor. Every April number is measured as a delta off it.
Operating metrics taken directly from FinDash (no estimation):
| Metric | April 2026 |
|---|---|
| Flights | 5,307 |
| Pax | 861,108 |
| Seats | 999,135 |
| Load factor | 86.2% |
| Yield | R1,654/pax |
| Revenue | R1,423.9M |
Fuel cost — estimated, because actual fuel volumes were not yet ingested into the IS for Mar/Apr:
Result: PBT fell R127M → R45M; fuel rose from 26% to 43% of revenue.
How much of the R288M fuel hike (R326M → R614M) was clawed back:
| Lens | Formula | Result |
|---|---|---|
| Per-pax | yield Δ R325 ÷ fuel/pax Δ R371 | 88% — strips volume noise |
| Per-flight | rev/flight Δ R44K ÷ fuel/flight Δ R57.9K | 76% |
| Network (revenue-only) | +R158M revenue ÷ R288M hike | 55% |
| Network (total absorption) | +R205M (rev + R47M non-fuel saving from fewer flights) ÷ R288M | 72% |
All correct — different denominators. Headline cash answer = 72% absorbed, 28% (R82M) dropped to PBT.
Inputs revised on 2026-05-07 with MTD signals (1–7 May partial actuals):
| Driver | Base assumption | Source |
|---|---|---|
| Flights | 5,031 (live schedule) | May schedule |
| Fuel R/L | R20.00 (−12% vs April) | B4i tariff easing (PetroSA −171cpl, Engen −222cpl) + Radixx surcharges −9.3% peak→5 May |
| Yield | R1,620 (−2% vs April) | MTD blend R1,583 + mild recovery as surcharges normalise |
| Load factor | 86% | April-style demand |
| Non-fuel | R723M | 5,031 flights × R143,617/flight |
| IATA price | $181/bbl week-1 May | Data Fuel.xlsx |
| FX | ~16.80 flat | April trend |
Base case math: - Fuel: 5,031 flights × 5,059 L/flight = 25.4M L × R20.00 = R509M - Revenue: 950,475 seats × 86% LF × R1,620 = R1,324M - PBT: R1,324M − R509M − R723M = R93M (≈2× April as fuel eases)
Three scenarios — vary fuel R/L, yield, LF; flights and non-fuel held constant:
| Scenario | Fuel R/L | Yield | LF | PBT | Margin |
|---|---|---|---|---|---|
| Optimistic | R18.50 | R1,650 | 87% | R171M | 12.5% |
| Base | R20.00 | R1,620 | 86% | R93M | 7.0% |
| Pessimistic | R22.00 | R1,580 | 84% | −R21M | −1.7% |
iata-fuel-update task) → new IATA $/bbl.