TL;DR
March actuals: fuel R418M (R14.62/L delivered), PBT R127M. April actuals: fuel R707M (R26.52/L delivered), PBT R44M — full pass-through of the Iran-spike. All cost figures are findash IS actuals (MC-3517).
FlySafair absorbed 79.2% of the R288M fuel shock: R194M absorbed by higher fares + R34M absorbed by fewer flights. Only R84M fell to PBT.
Material changes detected since 2026-05-07 baseline:- IATA jet fuel moved materially: latest $162.55/bbl vs baseline $181.0/bbl (down 10.2%). Scenario fuel R/L inputs may need updating.
Headline KPIs
Apr PBT
R44M
3.1% — fuel doubled
May Base PBT (full-month, actuals)
−R36M
-3.1% · last-week rev/flight · R24.02/L fuel
Fuel hike absorbed
R288M
Apr vs Mar additional fuel cost
Yield recovery
78%
on per-pax basis
Sensitivity upside
−R33.2M
if remaining days hold MTD rev/flight
Downside floor (fuel flat)
−R96.8M
April R26.52/L held flat, no IATA ease
Fuel Price Trend (IATA Weekly, USD/bbl)
Chart shows IATA jet fuel index (USD/bbl). Massive spike began week of 6 March 2026, driven by Iran-related supply disruption. Crack spreads also surged. Data from Data Fuel.xlsx refreshed by iata-fuel-update task.
March vs April Detailed Comparison
Operating Metrics
| Metric | Mar 2026 | Apr 2026 | Δ |
| Flights | 5,640 | 5,307 | -5.9% |
| Pax | 952,399 | 861,063 | -9.6% |
| Seats | 1,062,072 | 999,135 | -5.9% |
| Load Factor | 89.7% | 86.2% | -3.5pp |
| Yield (R/pax) | R1,329 | R1,628 | +22.5% |
| Revenue | R1,233.5M | R1,427.2M | +15.7% |
Cost Build-up
| Line | Mar | Apr | Δ |
| Fuel volume (L) | 28.6M | 26.6M | -6.9% |
| Fuel R/L delivered | R14.62 | R26.52 | +81% |
| Fuel cost | R418M | R707M | +R288M |
| Non-fuel cost | R718M | R684M | −R34M |
| Total cost | R1,136M | R1,390M | +R254M |
| PBT | R127M | R44M | −R84M |
Cost Mix
| Fuel % of revenue | Fuel % of total costs |
| Mar | 33.9% | 36.8% |
| Apr | 49.5% | 50.8% |
| Pre-spike norm | ~22% | ~25% |
Recovery Analysis
Per-pax basis (cleanest — strips volume effects)
| Mar | Apr | Δ |
| Yield (R/pax) | R1,329 | R1,628 | +R299 |
| Fuel/pax | R439 | R821 | +R381 |
Yield recovery: R299 of R381 = 78%
Per-flight basis
| Mar | Apr | Δ |
| Revenue/flight | R219K | R269K | +R50K |
| Fuel/flight | R74K | R133K | +R59K |
Recovery: R50K of R59K = 85%
Total network basis — full reconciliation
| Mar | Apr | Δ | Effect |
| Revenue | R1,234M | R1,427M | +R194M | Fares hiked → recovers fuel |
| Fuel cost | R418M | R707M | +R288M | The hit being absorbed |
| Non-fuel cost | R718M | R684M | −R34M | Fewer flights (5,640→5,307) saved costs |
| Other IS movement | R30M | R7M | −R24M | Finance costs / tax / non-op items (non-operating IS) |
| Net to PBT | R127M | R44M | −R84M | Waterfall: rev Δ − fuel hike + nonfuel saving + other IS = PBT Δ |
How the R288M fuel hike was absorbed
194M fares
34M cost
84M PBT
R288M fuel increase absorbed via: R194M higher fares + R34M fewer-flight cost savings + R24M other IS items + R84M dropped to PBT.
Total absorption check: R288M ≈ R288M ✓ (revenue + nonfuel saving + other IS + PBT drop = fuel hike).
Operating recovery (revenue + cost savings): R228M of R288M = 79.2%.
Three views of "recovery"
| Definition | Numerator | Denominator | % |
| Revenue ÷ fuel hike (gross) | +R194M revenue | R288M fuel hike | 67.2% |
| Revenue ÷ net cost increase | +R194M revenue | R254M net (288−34) | 76.3% |
| Total absorption (rev + cost cuts) ÷ fuel hike | +R228M (194+34) | R288M | 79.2% |
Reconciling the views. The revenue-only bar understates the real picture — it ignores the non-fuel cost saving from flying fewer flights.
Per-pax recovery is highest because it strips volume effects. Total absorption is the most complete view — it captures both fare recovery and cost reduction. The residual is what actually dropped to PBT.
May 2026 Projection — Updated MTD
Updated 2026-05-26 with MTD signals. Schedule: 5,640 March flights → 5,307 April → 4,991 May. Fuel tariffs easing per latest B4i.
May MTD signals
| Metric | Value | Read |
| Schedule (full month) | 4,933 flights actual+booked | SummaryExcel LF Daily (fresh 2026-05-26T05:42) |
| MTD period | May 2026, days 1–25 flown | Departures through yesterday |
| MTD flights | 3,975 | Flown (actual) |
| MTD revenue | R953.3M | Actual Pax × Pax Yield |
| MTD yield | R1,569 | Easing vs Apr R1,628 |
| MTD LF | 80.9% | vs April 86.2% |
| Rev/flight (last week) | R236,467 | Days 19–25 — remainder basis |
May Inputs (revised)
| Driver | Assumption | Source |
| Revenue (full month) | R1,180M | MTD actual + remaining 958 flights × last-week rev/flight |
| Fuel volume | 24.18M L | Activity×intensity vs April actual (intensity 0.978) |
| Fuel R/L base | R24.02 | Anchored: Apr actual R26.52 − R2.50 B4i easing |
| Uplift mix (blend wt) | JNB 42% · CPT 34% · DUR 9% · HLA 8% | QV fuel burn by departure airport |
| Flights | 4,933 | SummaryExcel actual+booked |
| Fuel R/L floor | R26.52 | April delivered held flat (no ease) |
Three Scenarios (revised)
Optimistic [actuals]
Assumes: Fuel R23.02/L (April −R3.50) · remainder at MTD rev/flight R239,814 (above last-week)
- Fuel R/L: R23.02
- Revenue: R1,183M
- Fuel: R557M
- Non-fuel: R635M
- Flights: 4,933
- Yield: R1,569 (implied)
- LF: 80.9% (implied)
−R9M
-0.8% margin · MTD rev/flight holds + fuel eases further
Base — May full-month [actuals]
· headline Base
Assumes: Fuel R24.02/L (April −R2.50) · remainder at last-week rev/flight R236,467 · 81% of full-month revenue already flown
- Fuel R/L: R24.02
- Revenue: R1,180M
- Fuel: R581M
- Non-fuel: R635M
- Flights: 4,933
- Yield: R1,566 (implied)
- LF: 80.8% (implied)
−R36.4M
-3.1% margin · last-week rev/flight + anchored B4i easing
Sensitivity: if remaining days hold MTD rev/flight (vs the conservative last-week basis)
[upside basis]
| LF |
80.9% |
Revenue |
R1,183M |
| PBT |
−R33.2M |
Margin |
-2.8% |
Upside if the unflown days hold the MTD rev/flight rather than the slightly lower last-week rate. Not the reported Base.
Pessimistic [actuals]
Assumes: Fuel R25.02/L (April −R1.50) · remainder at last-week rev/flight R236,467
- Fuel R/L: R25.02
- Revenue: R1,180M
- Fuel: R605M
- Non-fuel: R635M
- Flights: 4,933
- Yield: R1,566 (implied)
- LF: 80.8% (implied)
−R61M
-5.1% margin · last-week rev/flight + limited fuel easing
Floor — April fuel R/L held flat [downside floor]
Assumes: Fuel R26.52/L (April flat, no ease) · remainder at last-week rev/flight R236,467
- Fuel R/L: R26.52 (Apr actual, no ease)
- Revenue: R1,180M
- Fuel: R641M
- Non-fuel: R635M
- Flights: 4,933
- Yield: R1,566 (implied)
- LF: 80.8% (implied)
−R97M
-8.2% margin · April delivered R/L held flat (no easing — contracts lag spot)
Headline Base [full-month, actuals-based]: Revenue = MTD actual R953.3M (days 1–25 flown, Actual Pax × Pax Yield) + remaining 958 flights × last-week rev/flight R236,467 = R1,179.8M. Fuel = 24.18M L (April actual uplift scaled by flights × burn-intensity 0.978) × R24.02 (anchored: Apr actual R26.52 − R2.50 B4i easing) = R580.8M. Non-fuel = 4,933 × R128,797 (Apr actual) = R635.4M. PBT = −R36.4M.
Sensitivity [upside]: if the unflown days hold MTD rev/flight (R239,814) instead of last-week, revenue = R1,183.0M → PBT = −R33.2M. Fuel-price band (R/L): floor R26.52 (April flat) → central R24.02 → optimistic R23.02. Fuel R/L is the only input not yet factual — GL closes at month-end.
What drives the scenario band (81% of revenue already flown): Opt vs Base = R27.4M — of which R24.2M is fuel R/L (R24.02→R23.02 = −R1.00/L × 24.2M L) and R3.2M is the rev/flight basis (MTD R239,814 vs last-week R236,467). Load factor contributes ~R0 — it is implied (revenue÷pax), not a lever this late. The band is a fuel-price sensitivity, not a demand scenario.
April actual → May projected (as-MTD) — total network reconciliation
May projected on the as-MTD assumption — if the rest of May performs like month-to-date (LF 80.8%, yield R1,566, fuel R24.02/L held flat over the full 4,933-flight schedule).
| APR (actual) | MAY (proj, as-MTD) | Δ | Effect |
| Revenue | R1,427M | R1,180M [proj] | −R247M | Lower LF + yield vs April — fewer and cheaper passengers |
| Fuel cost | R707M | R581M [proj] | −R126M | Fewer flights + easing fuel R/L — a partial cost relief |
| Non-fuel cost | R684M | R635M [proj] | −R48.2M | Reduced schedule: 5,307 → 4,933 flights |
| Other IS movement | R7M | R7M [proj] | +R0M | Finance costs / tax / non-op items (held flat from April) |
| Net to PBT | R44M | −R36M [proj] | −R80M | Revenue erosion exceeds fuel relief + cost savings |
Reduced schedule saving: 5,307 → 4,933 = 374 fewer flights × 4,902 L/flight × R24.02/L fuel + R128,797 non-fuel/flight. Non-fuel saving alone: 374 fewer flights × R128,797/flight = R48.2M. Upper-bound — uses fully-loaded average non-fuel/flight; true marginal saving is lower as part of non-fuel is fixed (leases, base payroll).
What moved PBT April → May (projected): revenue erosion is the driver — demand was not recovered. Fuel relief + reduced-schedule saving are partial cost-relief offsets, not demand recovery.
247M rev loss
126M fuel relief
48M cost saving
80M to PBT
May PBT falls R80M vs April. R174M of that is cushioned by lower costs — R126M fuel relief (partly volume-driven: fewer flights burn less fuel, not purely a price win) + R48.2M from the reduced schedule. The R247M revenue erosion (lower LF + yield — fewer and cheaper passengers) is the driver and is NOT recovered by cost cuts; cost relief cushions 70% of the revenue shortfall, leaving R80M falling to PBT.
Absorption check ✓: PBT Δ = rev Δ (-247M) − fuel Δ (-126M) − non-fuel Δ (-48M) − Apr other IS (6.5M, not projected) = -80M.
Three views of cost-relief offset of revenue erosion — R247M revenue drop is not recovered; these show how much is cushioned
| Definition | Numerator | Denominator | % |
| Fuel relief ÷ revenue erosion | R126M relief | R247M erosion | 50.8% |
| Non-fuel saving ÷ revenue erosion | R48.2M saving | R247M erosion | 19.5% |
| Total offset (fuel relief + cost saving) ÷ revenue erosion | R174M (126+48.2) | R247M | 70.3% |
Reading these views. Revenue erosion is the primary driver of the PBT decline — lost demand is not recovered by cost cuts. Fuel cost falls because fewer flights burn less fuel (volume effect) and May tariffs ease slightly vs April (price effect); the relief is partly volume-driven, not a pure price win. The non-fuel saving reflects the reduced schedule (374 fewer flights) and is an upper-bound figure (fixed costs such as leases and base payroll do not flex with schedule). Together these cost-relief offsets cover ~70% of the revenue shortfall; the remaining ~30% falls to PBT.
Caveats & Methodology Notes
- March + April fuel costs are ACTUALS — pulled from
kpi_data.json fuel_r / fuel_uplift / avg_fuel_per_liter_uplifted / total_costs / pbt_r. No estimates or back-solves used for these months.
- Non-fuel/flight (R128,797) derived at runtime from April actuals:
(total_costs − fuel_r) / flights. Used as the May cost base.
- April delivered R/L (R26.52) is the fuel price anchor for May. May base is April actual × IATA easing ratio (latest weekly ÷ Apr 167.96 $/bbl). B4i May tariffs corroborate easing direction.
- May L/flight (4,902) derived from April actual uplift ÷ flights. Stage-length mix shift could vary this ±2-3%.
- Hedging not modelled — assumes spot pass-through.
- May yield + LF anchored to live MTD data when available; static fallback otherwise.
Generated 2026-05-26 by build_report.py (fuel-impact-report skill, MC-3483) ·
IATA fuel data: Data Fuel.xlsx ·
Operational data: FinDash kpi_data.json ·
B4i: ~/PKA/SecondBrain/wiki/concepts/Fuel-Prices-B4i.md (last updated 2026-05-19) ·
Radixx surcharge: ~/PKA/SecondBrain/wiki/concepts/fuel-surcharge-data/surcharge_history.json (last updated 2026-05-09)
Year-to-Date Fuel Impact — 2026 vs 2025
Calendar YTD (Jan–Apr) · closed-month actuals only · source: kpi_data.json
The fuel shock is cumulative — this is the running total for the year so far. Two headline numbers:
how much extra we have spent on fuel versus the same months last year, and how much of that
has actually fallen through to PBT after fare and capacity recovery.
YTD extra fuel spend vs 2025
+R387M
Jan–Apr 2026: R1,727M vs R1,340M
YTD PBT vs 2025
−R276M
Jan–Apr 2026: R256M vs R533M
Fuel hike absorbed (not in PBT)
R110M
extra fuel offset by fares + capacity
Monthly fuel cost — 2026 vs 2025 (R Million)
Monthly PBT — 2026 vs 2025 (R Million)
YTD comparison (Jan–Apr)
| Metric | 2026 | 2025 | Δ | Δ % |
| Fuel cost | R1,727M | R1,340M | +R387M | +28.9% |
| Fuel volume | 107.4M L | 101.8M L | +5.5M L | +5.4% |
| Blended fuel R/L | R16.08 | R13.16 | +R2.92 | +22.2% |
| Fuel cost / pax | R488 | R396 | +R92 | +23.3% |
| Revenue | R4,633M | R4,395M | +R239M | +5.4% |
| PBT | R256M | R533M | −R276M | -51.9% |
| Pax | 3,538,922 | 3,385,143 | +153,779 | +4.5% |
| Flights | 21,245 | 20,072 | +1,173 | +5.8% |
Apr 2026 vs Apr 2025
Latest closed month, year-on-year · actuals
Apr fuel cost
R707M
+103.4% vs R347M LY
Apr fuel R/L delivered
R26.52
+109.5% vs R12.66 LY
Apr fuel cost / pax
R821
+117.7% vs R377 LY
Apr PBT
R44M
-82.9% vs R255M LY
Apr revenue
R1,427M
+11.9% vs R1,275M LY
Apr: 2026 vs 2025 (R Million)
| Metric | Apr 2026 | Apr 2025 | Δ | Δ % |
| Fuel cost | R707M | R347M | +R359M | +103.4% |
| Fuel R/L | R26.52 | R12.66 | +R13.86 | +109.5% |
| Fuel cost / pax | R821 | R377 | +R444 | +117.7% |
| Revenue | R1,427M | R1,275M | +R152M | +11.9% |
| PBT | R44M | R255M | −R211M | -82.9% |
| Pax | 861,063 | 921,397 | −60,334 | -6.5% |
All figures are closed-month actuals from kpi_data.json (fuel_r, fuel_uplift,
pbt_r, revenue_r, pax, flights). No estimates, no MTD month — the in-progress
month is excluded so the comparison stays like-for-like. See the methodology markdown for the full input log.