Executive summary — budget reframe: April was the real miss vs plan (R43.7M actual vs R208.4M budget — the R164.7M fuel shock from the Iran-war spike). May closed at −R122.0M vs −R64.5M budget (R57.5M worse) — revenue was ahead of plan (R1,160M vs R1,068M = +R92M), but non-fuel cost was the swing. June MTD (days 1-10): 1,227 flights, 177k pax, 76.4% LF, R246M revenue. Project remainder (3,476 flights) at MTD rate → base case R942M revenue, vs R1011M budget. Fuel itself has eased (May R14.67/L); LF is normal, the swing is post-Eid back-end demand.
Material changes detected since 2026-05-07 baseline:- IATA jet fuel moved materially: latest $146.25/bbl vs baseline $181.0/bbl (down 19.2%). Scenario fuel R/L inputs may need updating.
- May MTD yield R1,388 differs from original R1,583 baseline (-12.3%). May scenario yields may need adjustment.
- May MTD LF 78.0% differs from original 81.5% baseline by >3.5pp.
How to read this report & glossary
What this report does: compares 4 months of FlySafair P&L against budget and prior actuals, projects May/June PBT under fuel-R/L scenarios. March + April + May are all closed actuals (X3 GL closed 2026-06-11); June is MTD-anchored (days 1-10 flown at 76.4% LF, R245.7M) with remainder (days 11-30) projected at the MTD rate.
- PBT
- Profit Before Tax — operating revenue minus all costs before income tax
- LF
- Load Factor — passengers ÷ available seats, as a %
- R/L
- Rand per litre of jet fuel delivered (into-plane, all-in price)
- Yield
- Revenue per passenger (R/pax); excludes surcharges modelled separately
- Non-fuel
- All costs except fuel: crew, maintenance, leases, overheads, etc.
- B4i
- Bernd Feucht (fuel buyer) weekly tariff feedback — the source for into-plane price moves
- Radixx
- Reservation system; revenue data ±1–4% vs GL (X3) at month-end close
- X3
- Sage X3 — the GL (general ledger); final revenue/cost authority
- MTD
- Month-to-date — accumulated from the 1st of the month to date
- YTD
- Year-to-date — accumulated from January
- [ACTUAL]
- Confirmed closed figure from GL or Radixx flight data
- [proj]
- Projected — computed from actuals + assumptions (e.g. fuel R/L not yet closed)
- [forecast]
- Forward estimate — booking-pace or YoY-softened; not yet actual
- [stress test]
- Tail scenario (<10% probability) — April fuel held flat, no easing assumed
- [implied]
- Derived from other actuals (e.g. yield implied from revenue ÷ pax)
Headline KPIs — PBT & Budget
Mar PBT (actual)
R127M
10.3% margin
Apr PBT (actual)
R44M
−R164.7M vs budget · budget R208M
May PBT — base (actual rev)
−R122M
−R57.5M vs budget · budget −R65M
June PBT — base (forecast)
−R244M
−R145.7M vs budget · budget −R98M
June best case — still a loss
−R173.2M
opt: R993M rev · fuel R14.50/L
Budget context (management plan): Apr budget R1,321.4M rev / R208.4M PBT. May budget R1,067.8M rev / −R64.5M PBT. Jun budget R1,011.2M rev / −R98.0M PBT. Budget is spine only (revenue + PBT); cost lines are not cross-cast.
PBT & Fuel Cost by Month (R Million)
Consolidated P&L Build-up
| Line | Mar (actual) | Apr (actual) | Apr Budget | May (actual rev) | May Budget | Jun (forecast) | Jun Budget |
| Revenue | R1,233.5M | R1,427.2M | R1,321.4M | R1,159.5M [actual] | R1,067.8M | R942.0M [fcst] | R1,011.2M |
| Fuel cost | R418.4M | R706.5M | — | R601.9M | — | R587.2M | — |
| Non-fuel cost | R717.8M | R683.5M | — | R679.7M | — | R598.6M | — |
| PBT | R127.4M | R43.7M | R208.4M | −R122.0M | −R64.5M | −R243.8M | −R98.0M |
Budget spine only (revenue + PBT). Cost budget lines are not cross-cast — per findash-actuals-precedence rule. Budget columns are management budget (signed as reported: revenue positive, PBT profit = positive).
May 2026 — ACTUAL Revenue · April-cost scenarios
Revenue is ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). Only fuel R/L varies across scenarios.
May Optimistic (actual rev) [actual rev]
Revenue: ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). All inputs are factual; only the operating-PBT presentation varies.
- Fuel R/L: R14.17
- Revenue: R1,160M [ACTUAL]
- Fuel: R581M
- Non-fuel: R680M
- Flights: 4,929 (actual)
- Yield: R1,517 (actual)
- LF: 82.1% (actual)
−R102M
-8.8% margin · Strong demand, soft fuel — opt pairing
May Base — central (actual rev) [actual rev]
Revenue: ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). All inputs are factual; only the operating-PBT presentation varies.
- Fuel R/L: R14.67
- Revenue: R1,160M [ACTUAL]
- Fuel: R602M
- Non-fuel: R680M
- Flights: 4,929 (actual)
- Yield: R1,517 (actual)
- LF: 82.1% (actual)
−R122M
-10.5% margin · Central; revenue actual, fuel actual — base pairing
May Pessimistic (actual rev) [actual rev]
Revenue: ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). All inputs are factual; only the operating-PBT presentation varies.
- Fuel R/L: R15.17
- Revenue: R1,160M [ACTUAL]
- Fuel: R622M
- Non-fuel: R680M
- Flights: 4,929 (actual)
- Yield: R1,517 (actual)
- LF: 82.1% (actual)
−R143M
-12.3% margin · Weak demand, sticky fuel — pess pairing
Stress test — fuel held flat (<10% tail) [stress test]
Revenue: ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). All inputs are factual; only the operating-PBT presentation varies.
- Fuel R/L: R16.00
- Revenue: R1,160M [ACTUAL]
- Fuel: R656M
- Non-fuel: R680M
- Flights: 4,929 (actual)
- Yield: R1,517 (actual)
- LF: 82.1% (actual)
−R177M
-15.2% margin · Stress: fuel R16.00/L held flat + actual revenue
June 2026 — Forecast (MTD + projected remainder)
Revenue: MTD (days 1-10: 1,227 flights, 76.4% LF, R245.7M) + projected remainder (3,476 scheduled flights × MTD rev/flight R200k = R696M). Total ~R942M base. Opt = 82% LF in back-half (school-holiday); pess = 60% LF in back-half. Costs: April basis (R67,872/flt direct + R323.3M overheads flat). Fuel R/L: opt 14.50 / base 15.00 / pess 15.50 / stress May flat.
June Optimistic (forecast) [forecast]
- Fuel R/L: R14.50
- Revenue: R993M
- Fuel: R568M
- Non-fuel: R599M
- Flights: 4,703
- Yield: R1,388 (implied)
- LF: 80.5% (implied)
−R173M
-17.4% margin · MTD holds + remainder LF 82% (school-holiday back-load) + soft fuel
June Base case — MTD rate holds (forecast) [forecast]
- Fuel R/L: R15.00
- Revenue: R942M
- Fuel: R587M
- Non-fuel: R599M
- Flights: 4,703
- Yield: R1,388 (implied)
- LF: 76.4% (implied)
−R244M
-25.9% margin · MTD (1,227 flt, R245.7M) + remainder (3,476 flt × MTD R200k/flight) = R942M
June Pessimistic (forecast) [forecast]
- Fuel R/L: R15.50
- Revenue: R793M
- Fuel: R607M
- Non-fuel: R599M
- Flights: 4,703
- Yield: R1,388 (implied)
- LF: 64.3% (implied)
−R412M
-52.0% margin · MTD holds but remainder LF drops to 60% (demand softens) + sticky fuel
Stress test — May fuel held flat (<10% tail) [stress test]
- Fuel R/L: R13.26 (Apr actual, no ease)
- Revenue: R942M
- Fuel: R519M
- Non-fuel: R599M
- Flights: 4,703
- Yield: R1,388
- LF: 76.4%
−R176M
-18.6% margin · Stress: May actual fuel held flat (no easing) + base revenue. Symmetry with May stress.
May revenue: ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). May PBT scenario band is −R101.5M to −R142.6M (opt R14.17/L to pess R15.17/L). GL figure is final; Radixx ran within ±1% of GL.
May story: the May operating swing is a revenue-seasonality + non-fuel overrun story. Revenue fell −R268M (seasonal demand, lower LF 82.1% vs Apr 86.2%); fuel HELPED (+R105M relief); non-fuel was broadly flat. At normal pre-Iran fuel (~R19/L), May would be a smaller loss; the residual fuel premium (R14.67 vs R19 = ~R177M) is a swing factor but not the dominant one — non-fuel came in R130M above the April-rate projection, and revenue fell R268M.
Fuel R/L method: delivered R/L = lagged-Platts jet × ZAR/USD + ~R6.40/L fixed delivery differential (into-plane, levy, transport, margin). May actual R14.67 closed in line with the lagged-Platts-plus-differential framework.
Sensitivity: R1/L fuel = R41.0M PBT (May) / R39.1M PBT (June) — i.e. R1/L move × uplift volume = PBT impact. FX note: ZAR/USD is the main overhead+fuel swing — a R1/USD move changes effective R/L by ~R1.35–1.50.
Operating vs reported PBT: April reported +R44M vs operating +R37M — the +R6.5M is non-operating (net finance/other income). May/June figures are operating PBT; do not compare April reported vs May/June operating directly.
Scenario pairing: opt = strong demand + soft fuel; pess = weak demand + sticky fuel. The band is NOT a confidence interval — it represents paired demand+fuel assumptions. "Stress test — April fuel held flat" is a <10% tail, shown for symmetry with May. Base (central) is the headline scenario.
Costs for both months projected off April actuals: R67,872/flight direct (variable) + R323.3M overheads (flat).
April actual → May actual — driver decomposition (operating PBT swing)
May revenue, costs, PBT are ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). Fuel cost at base R14.67/L.
This table decomposes the −R159.2M operating PBT swing
into its three drivers. The key insight: fuel HELPED (fell R104.7M) — the swing is
driven by the R267.7M seasonal revenue drop and a non-fuel overrun, cushioned only partially by fuel relief.
| APR (actual) | MAY (actual rev / base fuel) | Δ | Driver note |
| Revenue | R1,427.2M | R1,159.5M [ACTUAL] | −R267.7M | Seasonal demand drop — fewer and cheaper passengers (LF 81.9% vs Apr 86.2%) |
| Fuel cost | R706.5M | R601.9M [ACTUAL R14.67/L] | +R104.7M | Fuel HELPED (volume-driven): fewer flights (5,307 → 4,929) drove most of the relief; R/L actually ROSE R13.26 → R14.67. Net fuel cost fell R104.7M |
| Non-fuel cost | R683.5M | R679.7M [ACTUAL] | +R3.8M | Reduced schedule (5,307 → 4,929 flights) saved variable direct costs; overheads held flat at ~R333M |
| Operating PBT swing | R43.7M (operating) | −R122.0M [base] | −R159.2M | Revenue seasonality drove the swing; fuel + cost savings partially offset |
Fuel premium context. At normal pre-Iran fuel (~R19/L), May operating PBT would be ≈ −R299.7M (a R177.6M swing vs actual). The ~R-178M fuel premium (actual vs ~R19/L) is the swing. The story is revenue seasonality + non-fuel overrun + residual fuel premium — revenue fell R267.7M, non-fuel was broadly flat, fuel helped R104.7M.
FX & Fuel Sensitivity
Fuel ≈ USD 1.00/L (Platts-linked), so ZAR/USD is the dominant fuel swing. Sensitivity = fuel volume × R1/L (or USD/ZAR × ~R1.35–1.50 per USD step).
Overheads carry additional USD exposure (leases, maintenance) not captured here.
| ZAR/USD move | May PBT impact | June PBT impact | Note |
| −R1.00 (ZAR stronger) | +R41.0M | +R39.1M | Fuel FX only; overheads carry additional USD exposure not modelled |
| −R0.50 (ZAR stronger) | +R20.5M | +R19.6M | Fuel FX only; overheads carry additional USD exposure not modelled |
| Base (R17.67) | — | — | Base assumption |
| +R0.50 (ZAR weaker) | −R20.5M | −R19.6M | Fuel FX only; overheads carry additional USD exposure not modelled |
| +R1.00 (ZAR weaker) | −R41.0M | −R39.1M | Fuel FX only; overheads carry additional USD exposure not modelled |
Fuel R/L sensitivity (holding revenue fixed)
| R/L move | May PBT impact | June PBT impact |
| −R2.00/L | +R82.1M | +R78.3M |
| −R1.00/L | +R41.0M | +R39.1M |
| −R0.50/L | +R20.5M | +R19.6M |
| Base | — | — |
| +R0.50/L | −R20.5M | −R19.6M |
| +R1.00/L | −R41.0M | −R39.1M |
| +R2.00/L | −R82.1M | −R78.3M |
Caveats & Methodology
NOTE — findash reconciliation gap > R15M (warn threshold)- Mar reconciliation gap R30.2M > R15.0M (warn threshold = max(R15M, 1% rev R1234M)): revenue - total_costs = 97.2M vs pbt_r 127.4M. Non-operating IS items (finance costs, tax, other income) likely explain the gap.
Non-operating IS items (finance costs, tax, other income) likely explain the gap. Gap = published PBT − (revenue − total costs).
Methodology notes & assumptions
- March + April + May 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 (R127,276) derived at runtime from April actuals:
(total_costs − fuel_r) / flights. Used as the May cost base.
- April delivered R/L (R13.26) was the fuel price anchor. May actual delivered R/L = R14.67 (kpi_data fuel_r / fuel_uplift) — fuel has eased from April.
- May L/flight (8,324) derived from April actual uplift ÷ flights. Stage-length mix shift could vary this ±2-3%.
- Hedging not modelled — assumes spot pass-through.
- May revenue, yield, LF, pax are ACTUAL (commercial/Radixx · X3 GL closed 2026-06-11). Only May fuel R/L was a projection (now confirmed at R14.67). June revenue, yield, LF are MTD (days 1-10) + projected remainder (days 11-30 at MTD rate). MTD LF 76.4% is the binding number — not the 52% full-month forward-booking average (which conflates flown with unbooked).
Generated 2026-06-11 by build_report.py (fuel-impact-report skill, MC-3483/v3) ·
IATA fuel: Data Fuel.xlsx · Ops: kpi_data.json ·
Budget: budget_data.json ·
B4i: ~/PKA/SecondBrain/wiki/concepts/Fuel-Prices-B4i.md (updated 2026-06-09) ·
Surcharge: ~/PKA/SecondBrain/wiki/concepts/fuel-surcharge-data/surcharge_history.json (updated 2026-06-09)
Mar → Apr Deep-dive — Fuel Shock Absorption Analysis
April fuel hike: how much was absorbed vs dropped to PBT · closed actuals · kpi_data.json
Fuel hike (Mar→Apr)
R288M
additional fuel cost in April vs March
Absorbed by fares + cost cuts
79%
194M fares + 34M cost savings
Dropped to PBT
84M
the residual not recovered
Operating Metrics
| Metric | Mar 2026 | Apr 2026 | Δ Mar→Apr | May 2026 (actual rev) |
| Flights | 5,640 | 5,307 | −5.9% | 4,929 |
| Pax | 953,355 | 864,006 | −9.4% | 764,240 |
| Seats | 1,062,072 | 999,135 | −5.9% | 930,865 |
| Load Factor | 89.8% | 86.5% | −3.3pp | 82.1% |
| Yield (R/pax) | R1,329 | R1,628 | +22.5% | R1,517 |
| Revenue | R1,233.5M | R1,427.2M | +15.7% | R1,159.5M |
Cost Build-up
| Line | Mar | Apr | Δ Mar→Apr | May (actual rev) |
| Fuel volume (L) | 57.2M | 53.3M | −6.9% | 41.0M |
| Fuel R/L delivered | R7.31 | R13.26 | +81% | R14.67 |
| Fuel cost | R418M | R707M | +R288M | R602M |
| Non-fuel cost | R718M | R684M | −R34M | R680M |
| Total cost | R1,136M | R1,390M | +R254M | R1,282M |
| PBT | R127M | R44M | −R84M | −R122M |
Cost Mix
| Fuel % of revenue | Fuel % of total costs |
| Mar | 33.9% | 36.8% |
| Apr | 49.5% | 50.8% |
| May (proj) | 51.9% | 47.0% |
| Pre-spike norm | ~22% | ~25% |
Recovery Analysis
Per-pax basis (cleanest — strips volume effects)
| Mar | Apr | Δ Mar→Apr | May (actual rev) |
| Yield (R/pax) | R1,329 | R1,628 | +R299 | R1,517 |
| Fuel/pax | R439 | R818 | +R379 | R788 |
Yield recovery: R299 of R379 = 79%
Per-flight basis
| Mar | Apr | Δ Mar→Apr | May (actual rev) |
| Revenue/flight | R219K | R269K | +R50K | R235K |
| Fuel/flight | R74K | R133K | +R59K | R122K |
Recovery: R50K of R59K = 85%
Total network basis — full reconciliation
| Mar | Apr | Δ Mar→Apr | May (actual rev) | Effect |
| Revenue | R1,234M | R1,427M | +R194M | R1,160M | Fares hiked → recovers fuel |
| Fuel cost | R418M | R707M | +R288M | R602M | The hit being absorbed |
| Non-fuel cost | R718M | R684M | −R34M | R680M | Fewer flights (5,640→5,307) saved costs |
| 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 | −R122M | 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% |
Reading these 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.
Route-Level Fuel Surcharge (Radixx) appendix
Per-pax surcharge values loaded into Radixx booking system, ZAR incl VAT · Source: Pieter Richards weekly XLSX · auto-updated by flysafair-fuel-surcharge-update task
Peak week
2026-04-07
all routes highest
Cheapest route (peak)
R365
MQP-JNB
Most expensive (peak)
R1,448
JNB-MRU
Eased since peak
-40.9%
2026-04-07 → 2026-06-02
Top 6 routes — surcharge trajectory
Full route × week table
| Route | 03-31 | 04-07 | 04-14 | 05-05 | 05-12 | 06-02 |
|---|
| BFN-JNB | R212 | R397 | R391 | R360 | R347 | R233 |
| CPT-BFN | R338 | R635 | R627 | R576 | R555 | R374 |
| CPT-DUR | R447 | R841 | R830 | R762 | R735 | R496 |
| CPT-ELS | R329 | R619 | R611 | R561 | R542 | R365 |
| CPT-GRJ | R202 | R381 | R376 | R345 | R334 | R224 |
| CPT-HDS | R532 | R999 | R987 | R906 | R874 | R589 |
| CPT-HLA | R439 | R825 | R814 | R749 | R721 | R486 |
| CPT-JNB | R444 | R833 | R822 | R756 | R728 | R491 |
| CPT-MQP | R532 | R999 | R987 | R906 | R874 | R589 |
| CPT-PLZ | R278 | R523 | R516 | R475 | R458 | R268 |
| CPT-WDH | R375 | R704 | R694 | R638 | R615 | R477 |
| DUR-ELS | R253 | R476 | R469 | R431 | R416 | R281 |
| ELS-HLA | R329 | R619 | R611 | R561 | R542 | R365 |
| ELS-JNB | R313 | R587 | R580 | R532 | R513 | R346 |
| GRJ-HLA | R422 | R794 | R783 | R720 | R693 | R468 |
| GRJ-JNB | R389 | R730 | R720 | R662 | R638 | R430 |
| HLA-DUR | R253 | R476 | R469 | R431 | R416 | R281 |
| JNB-DUR | R245 | R460 | R454 | R417 | R403 | R271 |
| JNB-HRE | R323 | R607 | R599 | R551 | R531 | R358 |
| JNB-MRU | R771 | R1,448 | R1,429 | R1,314 | R1,267 | R854 |
| JNB-VFA | R316 | R593 | R585 | R538 | R519 | R350 |
| JNB-ZNZ | R654 | R1,228 | R1,212 | R1,114 | R1,074 | R724 |
| MQP-JNB | R194 | R365 | R360 | R331 | R320 | R215 |
| PLZ-DUR | R288 | R539 | R532 | R489 | R472 | R319 |
| PLZ-HLA | R363 | R682 | R673 | R619 | R597 | R403 |
| PLZ-JNB | R338 | R635 | R627 | R576 | R555 | R374 |
Reading: Surcharges tripled 17 Mar → 7 Apr peak. Easing since as B4i tariffs came down.
Each weekly file flows: B4i tariffs → fuel R/L → litres burned per route × R/L = surcharge per flight ÷ pax = surcharge per pax.
Full structured data: ~/PKA/SecondBrain/wiki/concepts/fuel-surcharge-data/surcharge_history.json
Year-to-Date Fuel Impact — 2026 vs 2025 appendix
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 | 214.7M L | 101.8M L | +112.9M L | +110.9% |
| Blended fuel R/L | R8.04 | R13.16 | −R5.12 | −38.9% |
| Fuel cost / pax | R487 | R395 | +R92 | +23.2% |
| Revenue | R4,633M | R4,395M | +R239M | +5.4% |
| PBT | R256M | R533M | −R276M | −51.9% |
| Pax | 3,544,499 | 3,389,985 | +154,514 | +4.6% |
| 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
R13.26
+4.7% vs R12.66 LY
Apr fuel cost / pax
R818
+117.2% 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 | R13.26 | R12.66 | +R0.60 | +4.7% |
| Fuel cost / pax | R818 | R377 | +R441 | +117.2% |
| Revenue | R1,427M | R1,275M | +R152M | +11.9% |
| PBT | R44M | R255M | −R211M | −82.9% |
| Pax | 864,006 | 922,438 | −58,432 | −6.3% |
All figures are closed-month actuals from kpi_data.json. 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.