Executive summary — budget bridge (council-reviewed): April was the real miss vs plan (R43.7M published vs R208.4M budget — the R164.7M fuel shock from the Iran-war spike). May closed at −R109.7M published (operating −R122.0M, other IS +R+12M) vs −R64.5M budget (R45.1M worse). Budget bridge: revenue +R92M beat · fuel +R105M tailwind (volume-driven) · non-fuel −R254M over budget (R680M actual vs ~R426M implied) → −R122M operating. June MTD (days 1-11, SummaryExcel updated 2026-06-12): 1,447 flights, 178k pax, 65.0% LF, R247M revenue. Day 11 was a very weak day (3.4 pax/flight), pulling MTD LF down from 76.4% → 65.0%. Base case projects remainder at MTD rate (65% LF) → full month R807M revenue, vs R1011M budget. Non-fuel anchored to 50/50 Apr/May blend (R133k/flt, council unanimous).
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 — published (X3 GL)
−R110M
−R45.1M vs budget · budget −R65M (operating −R122.0M, R+12M other IS)
June PBT — base (forecast)
−R427M
−R328.8M vs budget · budget −R98M
June best case — still a loss
−R203.5M
opt: R1,001M rev · fuel R14.75/L · LF 75%
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 | R807.0M [fcst] | R1,011.2M |
| Fuel cost | R418.4M | R706.5M | — | R601.9M | — | R606.8M | — |
| Non-fuel cost | R717.8M | R683.5M | — | R679.7M | — | R627.0M | — |
| PBT | R127.4M | R43.7M | R208.4M | −R122.0M | −R64.5M | −R426.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-11: 1,447 flights, 65.0% LF, R246.9M) + projected remainder (3,283 scheduled flights × MTD pax/flight 123 = ~404k pax). Total ~R807M base. Opt = 80% remainder LF (school-holiday back-load); pess = 55% remainder LF.Costs: April basis (R67,872/flt direct + R323.3M overheads flat). Fuel R/L: opt 14.75 / base 15.50 / pess 16.50 / stress May flat.
June Optimistic (forecast) [forecast]
- Fuel R/L: R14.75
- Revenue: R1,001M
- Fuel: R577M
- Non-fuel: R627M
- Flights: 4,703
- Yield: R1,388 (implied)
- LF: 75.4% (implied)
−R203M
-20.3% margin · MTD 65% + remainder LF 80% (school-holiday back-load recovers) + soft fuel R14.75
June Base case — MTD rate holds (forecast) [forecast]
- Fuel R/L: R15.50
- Revenue: R807M
- Fuel: R607M
- Non-fuel: R627M
- Flights: 4,703
- Yield: R1,388 (implied)
- LF: 65.0% (implied)
−R427M
-52.9% margin · MTD 65% holds through back-half; remainder at 65% LF (no recovery, no further drop)
June Pessimistic (forecast) [forecast]
- Fuel R/L: R16.50
- Revenue: R766M
- Fuel: R646M
- Non-fuel: R627M
- Flights: 4,703
- Yield: R1,388 (implied)
- LF: 58.1% (implied)
−R507M
-66.2% margin · MTD weakens to 55% remainder LF (back-half even worse than flown) + fuel R16.50
Stress test — May fuel held flat (<10% tail) [stress test]
- Fuel R/L: R13.26 (Apr actual, no ease)
- Revenue: R807M
- Fuel: R519M
- Non-fuel: R627M
- Flights: 4,703
- Yield: R1,388
- LF: 65.0%
−R339M
-42.0% margin · Stress: May actual fuel held flat (no easing) + base revenue. Symmetry with May stress.
May revenue + costs + PBT are ACTUAL (commercial/Radixx + X3 GL closed 2026-06-11). Operating PBT −R122.0M → Published PBT −R109.7M (other IS +R+12M). GL figure is final; Radixx ran within ±1% of GL.
May story — budget bridge: revenue +R92M beat (R1,160M vs R1,068M) · fuel +R105M tailwind (volume-driven, R/L actually ROSE R13.26 → R14.67) · non-fuel −R254M over budget (R680M actual vs ~R426M implied by budget PBT −R65M) → operating PBT −R122M, R45M worse than budget of −R65M. The non-fuel overrun is the swing — and it is the new normal (R138k/flt vs March R127k), not a one-off.
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 (CRITICAL — do not conflate): April reported +R44M vs operating +R37M (R6.5M other IS favour). May reported −R109.7M vs operating −R122.0M (R+12M other IS favour). June forecast shows OPERATING PBT only (other IS line not modelled). The board signs off on REPORTED PBT — the R12M May gap implies June reported PBT ≈ operating + R12M if other IS holds at May run-rate.
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-11, SummaryExcel updated 2026-06-12) + projected remainder (days 12-30 at MTD rate). MTD LF 65.0% is the binding number — day 11 was a very weak day (3.4 pax/flight) pulling MTD down from 76.4%. Back-half is school-holiday-loaded; opt assumes a partial recovery to LF 75% total, base holds MTD at 65%.
Generated 2026-06-12 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.