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 $159.85/bbl vs baseline $181.0/bbl (down 11.7%). Scenario fuel R/L inputs may need updating.
Headline KPIs
Apr PBT
R44M
3.1% — fuel doubled
May Base PBT (full-month, actuals)
−R59M
-5.0% · 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
−R58.2M
if remaining days hold MTD rev/flight
Downside floor (fuel flat)
−R119.5M
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 | Δ Mar→Apr | May 2026 (proj) |
| Flights | 5,640 | 5,307 | -5.9% | 4,931 |
| Pax | 952,399 | 861,063 | -9.6% | 754,146 |
| Seats | 1,062,072 | 999,135 | -5.9% | 931,740 |
| Load Factor | 89.7% | 86.2% | -3.5pp | 80.9% |
| Yield (R/pax) | R1,329 | R1,628 | +22.5% | R1,568 |
| Revenue | R1,233.5M | R1,427.2M | +15.7% | R1,182.7M |
Cost Build-up
| Line | Mar | Apr | Δ Mar→Apr | May (proj) |
| Fuel volume (L) | 28.6M | 26.6M | -6.9% | 24.2M |
| Fuel R/L delivered | R14.62 | R26.52 | +81% | R24.02 |
| Fuel cost | R418M | R707M | +R288M | R581M |
| Non-fuel cost | R718M | R684M | −R34M | R661M |
| Direct costs (ex-fuel) | R388M | R360M | −R28M | R335M |
| Overheads (all other costs) | R330M | R323M | −R6M | R327M |
| Total cost | R1,136M | R1,390M | +R254M | R1,242M |
| PBT | R127M | R44M | −R84M | −R59M |
Cost Mix
| Fuel % of revenue | Fuel % of total costs |
| Mar | 33.9% | 36.8% |
| Apr | 49.5% | 50.8% |
| May (proj) | 49.1% | 46.8% |
| Pre-spike norm | ~22% | ~25% |
Recovery Analysis
Per-pax basis (cleanest — strips volume effects)
| Mar | Apr | Δ Mar→Apr | May (proj) |
| Yield (R/pax) | R1,329 | R1,628 | +R299 | R1,568 |
| Fuel/pax | R439 | R821 | +R381 | R770 |
Yield recovery: R299 of R381 = 78%
Per-flight basis
| Mar | Apr | Δ Mar→Apr | May (proj) |
| Revenue/flight | R219K | R269K | +R50K | R240K |
| Fuel/flight | R74K | R133K | +R59K | R118K |
Recovery: R50K of R59K = 85%
Total network basis — full reconciliation
| Mar | Apr | Δ Mar→Apr | May (proj) | Effect |
| Revenue | R1,234M | R1,427M | +R194M | R1,183M | Fares hiked → recovers fuel |
| Fuel cost | R418M | R707M | +R288M | R581M | The hit being absorbed |
| Non-fuel cost | R718M | R684M | −R34M | R661M | Fewer flights (5,640→5,307) saved costs |
| Direct costs (ex-fuel) | R388M | R360M | −R28M | R335M | Variable — moves with flights flown |
| Overheads (all other costs) | R330M | R323M | −R6M | R327M | Largely fixed — barely moves |
| Other IS movement | R30M | R7M | −R24M | — | Finance costs / tax / non-op items (non-operating IS) — not projected for May |
| Net to PBT | R127M | R44M | −R84M | −R59M | 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%.
May (proj) columns show the Base-case projection (SummaryExcel revenue + QV fuel burn + anchored B4i fuel R/L) — not a closed month. The fuel-hike absorption % above is a March→April measure: April→May fuel falls (smaller, lower-volume month + B4i easing), so there is no hike to absorb into May.
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-27 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,931 flights actual+booked | SummaryExcel LF Daily (fresh 2026-05-27T09:19) |
| MTD period | May 2026, days 1–26 flown | Departures through yesterday |
| MTD flights | 4,119 | Flown (actual) |
| MTD revenue | R988.7M | Actual Pax × Pax Yield |
| MTD yield | R1,569 | Easing vs Apr R1,628 |
| MTD LF | 81.0% | vs April 86.2% |
| Rev/flight (last week) | R238,969 | Days 20–26 — remainder basis |
May Inputs (revised)
| Driver | Assumption | Source |
| Revenue (full month) | R1,183M | MTD actual + remaining 812 flights × last-week rev/flight |
| Fuel volume | 24.17M 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,931 | 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 R240,027 (above last-week)
- Fuel R/L: R23.02
- Revenue: R1,184M
- Fuel: R556M
- Non-fuel: R661M
- Flights: 4,931
- Yield: R1,569 (implied)
- LF: 81.0% (implied)
−R34M
-2.9% 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 R238,969 · 84% of full-month revenue already flown
- Fuel R/L: R24.02
- Revenue: R1,183M
- Fuel: R581M
- Non-fuel: R661M
- Flights: 4,931
- Yield: R1,568 (implied)
- LF: 80.9% (implied)
−R59.1M
-5.0% 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 |
81.0% |
Revenue |
R1,184M |
| PBT |
−R58.2M |
Margin |
-4.9% |
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 R238,969
- Fuel R/L: R25.02
- Revenue: R1,183M
- Fuel: R605M
- Non-fuel: R661M
- Flights: 4,931
- Yield: R1,568 (implied)
- LF: 80.9% (implied)
−R83M
-7.0% 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 R238,969
- Fuel R/L: R26.52 (Apr actual, no ease)
- Revenue: R1,183M
- Fuel: R641M
- Non-fuel: R661M
- Flights: 4,931
- Yield: R1,568 (implied)
- LF: 80.9% (implied)
−R119M
-10.1% margin · April delivered R/L held flat (no easing — contracts lag spot)
Headline Base [full-month, actuals-based]: Revenue = MTD actual R988.7M (days 1–26 flown, Actual Pax × Pax Yield) + remaining 812 flights × last-week rev/flight R238,969 = R1,182.7M. Fuel = 24.17M L (April actual uplift scaled by flights × burn-intensity 0.978) × R24.02 (anchored: Apr actual R26.52 − R2.50 B4i easing) = R580.6M. Non-fuel = R334.7M direct (ex-fuel, 4,931 flights × Apr rate, variable) + R326.5M overheads (held flat, Mar–Apr avg) = R661.2M. PBT = −R59.1M.
Sensitivity [upside]: if the unflown days hold MTD rev/flight (R240,027) instead of last-week, revenue = R1,183.6M → PBT = −R58.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 (84% of revenue already flown): Opt vs Base = R25.0M — of which R24.2M is fuel R/L (R24.02→R23.02 = −R1.00/L × 24.2M L) and R0.9M is the rev/flight basis (MTD R240,027 vs last-week R238,969). 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.9%, yield R1,568, fuel R24.02/L held flat over the full 4,931-flight schedule).
| APR (actual) | MAY (proj, as-MTD) | Δ | Effect |
| Revenue | R1,427M | R1,183M [proj] | −R245M | 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 | R661M [proj] | −R22.3M | Reduced schedule: 5,307 → 4,931 flights |
| Direct costs (ex-fuel) | R360M | R335M [proj] | −R25.5M | Variable — falls with fewer flights |
| Overheads (all other costs) | R323M | R327M [proj] | +R3.2M | Fixed — held flat (Mar–Apr avg) |
| Other IS movement | R7M | R7M [proj] | +R0M | Finance costs / tax / non-op items (held flat from April) |
| Net to PBT | R44M | −R59M [proj] | −R103M | Revenue erosion exceeds fuel relief + cost savings |
Reduced schedule saving: 5,307 → 4,931 = 376 fewer flights. Only the variable direct (ex-fuel) cost falls: 376 × R67,872/flight = R25.5M. Overheads are fixed — held flat at the Mar–Apr average, so they do not fall with fewer flights. (Fuel relief is shown separately above.)
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.
245M rev loss
126M fuel relief
22M cost saving
103M to PBT
May PBT falls R103M vs April. R148M of that is cushioned by lower costs — R126M fuel relief (partly volume-driven: fewer flights burn less fuel, not purely a price win) + R22.3M from the reduced schedule. The R245M revenue erosion (lower LF + yield — fewer and cheaper passengers) is the driver and is NOT recovered by cost cuts; cost relief cushions 61% of the revenue shortfall, leaving R103M falling to PBT.
Absorption check ✓: PBT Δ = rev Δ (-245M) − fuel Δ (-126M) − non-fuel Δ (-22M) − Apr other IS (6.5M, not projected) = -103M.
Three views of cost-relief offset of revenue erosion — R245M revenue drop is not recovered; these show how much is cushioned
| Definition | Numerator | Denominator | % |
| Fuel relief ÷ revenue erosion | R126M relief | R245M erosion | 51.5% |
| Non-fuel saving ÷ revenue erosion | R22.3M saving | R245M erosion | 9.1% |
| Total offset (fuel relief + cost saving) ÷ revenue erosion | R148M (126+22.3) | R245M | 60.6% |
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 (376 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 ~61% of the revenue shortfall; the remaining ~39% 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-27 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-26) ·
Radixx surcharge: ~/PKA/SecondBrain/wiki/concepts/fuel-surcharge-data/surcharge_history.json (last updated 2026-05-26)
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.