⌂ Home ☷ Board

Fuel Impact Forecast — Methodology

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.


1. Data Sources

# 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.


2. Step-by-Step Calculation

Step 1 — Establish the March baseline (the shielded month)

March was protected: the Engen/Sasol contract held February pricing through March, so the fuel spike had not yet hit the P&L.

March is the anchor. Every April number is measured as a delta off it.

Step 2 — Build April actuals

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:

  1. Fuel volume = Jan–Feb average 5,059 L/flight × 5,307 flights = 26.85M L
  2. Fuel R/L (April) = R22.87 = 2× February delivered rate (per Elmar's guidance). Corroborated independently by the B4i emails — Shell CPT running ~R10/L above Sasol JHB, single-week tariff moves of 200–360 cpl, both consistent with a ~doubling.
  3. Fuel cost = 26.85M L × R22.87 = R614M
  4. Non-fuel cost = R143,617/flight × 5,307 = R765M
  5. PBT = R1,423.9M revenue − R614M fuel − R765M non-fuel = R45M

Result: PBT fell R127M → R45M; fuel rose from 26% to 43% of revenue.

Step 3 — Recovery analysis (three lenses)

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.

Step 4 — May projection

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%

3. Caveats (what is estimated vs actual)


4. How to Refresh

  1. Pull latest Data Fuel.xlsx (iata-fuel-update task) → new IATA $/bbl.
  2. Read latest B4i email from Bernd → update fuel R/L direction.
  3. Read latest Radixx Fuel levy XLSX from Pieter → update route surcharge trajectory.
  4. Pull FinDash kpi_data → swap estimated April fuel for actuals once ingested; add May actuals as the month closes.
  5. Re-run Step 4 base/optimistic/pessimistic with revised drivers.