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.89/bbl vs baseline $181.0/bbl (down 10.0%). Scenario fuel R/L inputs may need updating.
- May MTD LF 76.1% differs from original 81.5% baseline by >5.4pp.
Headline KPIs
Apr PBT
R44M
3.1% — fuel doubled
May Base PBT (MTD run-rate)
R-164M
-14.5% · LF 76.1% MTD
Fuel hike absorbed
R288M
Apr vs Mar additional fuel cost
Yield recovery
79%
on per-pax basis
Sensitivity upside
R-8.7M
if LF matures +10.5pp to 86.6%
Downside floor (fuel flat)
R-183.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,408 | 864,907 | -9.2% |
| Seats | 1,062,072 | 999,135 | -5.9% |
| Load Factor | 89.7% | 86.6% | -3.1pp |
| 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 | R-84M |
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 | R817 | +R378 |
Yield recovery: R299 of R378 = 79%
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-18 with MTD signals. Schedule: 5,640 March flights → 5,307 April → 5,031 May. Fuel tariffs easing per latest B4i.
May MTD signals
| Metric | Value | Read |
| Schedule (full month) | 5,005 flights · 945,726 seats | Slightly below April (5,307) |
| MTD period | May 2026 MTD (17 days, through 17 May) | Live from dashboard_data.json |
| MTD flights | 2,725 | Flown through period |
| MTD pax | 391,714 | Flown through period |
| MTD revenue | R613.6M | Flown revenue |
| MTD yield | R1,566 | Easing vs Apr R1,628 as surcharges drop |
| MTD LF | 76.1% | vs April 86.6% |
May Inputs (revised)
| Driver | Assumption | Source |
| IATA latest week | $162.89/bbl | Data Fuel.xlsx |
| FX | ~16.80 (flat) | Apr trend |
| Fuel R/L base case | R25.72 (auto-derived from MTD) | B4i tariff easing + Radixx surcharges |
| Flights | 5,005 | May schedule (live) |
| Yield base | R1,566 (auto-derived from MTD) | MTD blend + recovery as surcharges normalise |
| LF base | 76% (auto-derived from MTD) | Apr-style demand |
Three Scenarios (revised)
Optimistic [live MTD]
- Fuel R/L: R24.22
- Yield: R1,613
- LF: 78.1%
- Flights: 5,005
- Revenue: R1,191M
- Fuel: R608M
- Non-fuel: R645M
−R62M
-5.2% margin · contracts ease further, yields hold
Base — May MTD run-rate [live MTD]
· headline Base
- Fuel R/L: R25.72
- Yield: R1,566
- LF: 76.1%
- Flights: 5,005
- Revenue: R1,127M
- Fuel: R646M
- Non-fuel: R645M
−R163.7M
-14.5% margin · data-derived: yield/LF from May MTD; fuel from Apr actual × IATA ratio
Sensitivity: if May LF matures to April's 86.6%
(requires +10.5pp vs MTD 76.1%)
[full-month proj]
| LF |
86.6% |
Revenue |
R1,282M |
| PBT |
−R8.7M |
Margin |
-0.7% |
Sensitivity upside: bookings mature to April-like close. Not the reported Base.
Pessimistic [live MTD]
- Fuel R/L: R27.72
- Yield: R1,519
- LF: 74.1%
- Flights: 5,005
- Revenue: R1,064M
- Fuel: R696M
- Non-fuel: R645M
−R277M
-26.0% margin · sustained pressure, demand soft
Floor — April fuel R/L held flat [downside floor]
- Fuel R/L: R26.52 (Apr actual, no ease)
- Yield: R1,566
- LF: 76.1%
- Flights: 5,005
- Revenue: R1,127M
- Fuel: R666M
- Non-fuel: R645M
−R184M
-16.3% margin · Pieter floor: April cost/flight held flat; you can't save into profit
Headline Base [live MTD run-rate]: 5,005 flights × 5,019 L/flight (Apr actual uplift÷flights) = 25.12M L × R25.72 = R646.1M fuel. 945,726 seats × 76.1% LF × R1,566 yield = R1,127.0M revenue. Non-fuel = 5,005 × R128,797 (Apr actual) = R644.6M. PBT = R-163.7M.
Sensitivity [full-month proj]: Same fuel/flights/non-fuel; LF projected to 86.6% (Apr actual full-month close as maturity proxy, requires +10.5pp vs MTD). 945,726 seats × 86.6% × R1,566 = R1,282.0M revenue. Sensitivity PBT = R-8.7M.
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 76.1%, yield R1,566, fuel R25.72/L held flat over the full 5,005-flight schedule).
| APR (actual) | MAY (proj, as-MTD) | Δ | Effect |
| Revenue | R1,427M | R1,127M [proj] | −R300M | Lower LF + yield vs April — fewer and cheaper passengers |
| Fuel cost | R707M | R646M [proj] | −R60M | Fewer flights + easing fuel R/L — a partial cost relief |
| Non-fuel cost | R684M | R645M [proj] | −R38.9M | Reduced schedule: 5,307 → 5,005 flights |
| Other IS movement | R7M | R7M [proj] | +R0M | Finance costs / tax / non-op items (held flat from April) |
| Net to PBT | R44M | R-164M [proj] | −R207M | Revenue erosion exceeds fuel relief + cost savings |
Reduced schedule saving: 5,307 → 5,005 = 302 fewer flights × 5,019 L/flight × R25.72/L fuel + R128,797 non-fuel/flight. Non-fuel saving alone: 302 fewer flights × R128,797/flight = R38.9M. 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.
300M rev loss
60M fuel relief
39M cost saving
207M to PBT
May PBT falls R207M vs April. R99M of that is cushioned by lower costs — R60M fuel relief (partly volume-driven: fewer flights burn less fuel, not purely a price win) + R38.9M from the reduced schedule. The R300M revenue erosion (lower LF + yield — fewer and cheaper passengers) is the driver and is NOT recovered by cost cuts; cost relief cushions 33% of the revenue shortfall, leaving R207M falling to PBT.
Absorption check ✓: PBT Δ = rev Δ (-300M) − fuel Δ (-60M) − non-fuel Δ (-39M) − Apr other IS (6.6M, not projected) = -207M.
Three views of cost-relief offset of revenue erosion — R300M revenue drop is not recovered; these show how much is cushioned
| Definition | Numerator | Denominator | % |
| Fuel relief ÷ revenue erosion | R60M relief | R300M erosion | 20.1% |
| Non-fuel saving ÷ revenue erosion | R38.9M saving | R300M erosion | 13.0% |
| Total offset (fuel relief + cost saving) ÷ revenue erosion | R99M (60+38.9) | R300M | 33.1% |
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 (302 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 ~33% of the revenue shortfall; the remaining ~67% 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 (5,019) 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-18 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-12) ·
Radixx surcharge: ~/PKA/SecondBrain/wiki/concepts/fuel-surcharge-data/surcharge_history.json (last updated 2026-05-09)