TL;DR
March was shielded β Engen/Sasol contract held Feb pricing. April hit with full pass-through, fuel R/L roughly doubled vs Feb. Fares recovered ~88% per pax, but volume softness (LF 89.7%β86.2%, fewer days) dragged total recovery to 55% of the cash hike. PBT R127M Mar β R45M Apr. Fuel jumped from 26% to 43% of revenue. May base case R93M PBT (revised from R110M after MTD signals β schedule 5,031 flights, yield easing R1,620, fuel R20/L). 2x April as fuel surcharges drop ~10%.
Headline KPIs
Apr PBT
R45M
3.2% β fuel doubled
May PBT (base)
R93M
7.0% β fuel eases ~12%
Fuel hike absorbed
R288M
Apr vs Mar
Yield recovery
88%
on per-pax basis
Cash recovery
55%
total network
Fuel Price Trend (IATA Weekly, USD/bbl)
Chart shows IATA jet fuel index (USD/bbl). Massive spike began week of 6 March 2026, climbing from $99β$197 in 3 weeks. Crack spread widened from $28 to $86. Market peaked ~$209 in early April, has since eased back to ~$181.
March vs April Detailed Comparison
Operating Metrics
| Metric | Mar 2026 | Apr 2026 | Ξ |
| Flights | 5,640 | 5,307 | β5.9% |
| Pax | 952,423 | 861,108 | β9.6% |
| Seats | 1,062,072 | 999,135 | β5.9% |
| Load Factor | 89.7% | 86.2% | β3.5pp |
| Yield (R/pax) | R1,329 | R1,654 | +24.5% |
| Revenue | R1,265.5M | R1,423.9M | +12.5% |
Cost Build-up
| Line | Mar | Apr | Ξ |
| Fuel volume (L) | 28.5M | 26.85M | β5.9% |
| Fuel R/L delivered | R11.43 | R22.87 | +100% |
| Fuel cost | R326M | R614M | +R288M |
| Non-fuel cost | R812M | R765M | βR47M |
| Total cost | R1,138M | R1,378M | +R240M |
| PBT | R127M | R45M | βR82M |
Cost Mix
| Fuel % of revenue | Fuel % of total costs |
| Mar | 25.8% | 28.6% |
| Apr | 43.1% | 44.5% |
| Pre-spike norm | ~22% | ~25% |
Recovery Analysis
Per-pax basis (cleanest β strips volume effects)
| Mar | Apr | Ξ |
| Yield (R/pax) | R1,329 | R1,654 | +R325 |
| Fuel/pax | R342 | R713 | +R371 |
Yield recovery: R325 of R371 = 87.6%
Per-flight basis
| Mar | Apr | Ξ |
| Revenue/flight | R224K | R268K | +R44K |
| Fuel/flight | R57.8K | R115.7K | +R57.9K |
Recovery: R44K of R57.9K = 76%
Total network basis β full reconciliation
| Mar | Apr | Ξ | Effect |
| Revenue | R1,265M | R1,424M | +R158M | Fares hiked β recovers fuel |
| Fuel cost | R326M | R614M | +R288M | The hit being absorbed |
| Non-fuel cost | R812M | R765M | βR47M | Fewer flights (5,640β5,307) saved costs |
| Net to PBT | R127M | R45M | βR82M | Unrecovered fuel hit |
How the R288M fuel hike was absorbed
Revenue +R158M (55%)
Non-fuel βR47M (16%)
PBT hit R82M (28%)
R288M fuel increase = R158M absorbed by higher fares + R47M absorbed by fewer flights + R82M dropped to PBT.
Total absorbed (revenue + cost savings): R205M of R288M = 71.5%. Only 28% (R82M) hit PBT.
Three views of "recovery"
| Definition | Numerator | Denominator | % |
| Revenue Γ· fuel hike (gross) | +R158M revenue | R288M fuel hike | 54.9% |
| Revenue Γ· net cost increase | +R158M revenue | R241M net (288 β 47) | 65.6% |
| Total absorption (rev + cost cuts) Γ· fuel hike | +R205M (158+47) | R288M fuel hike | 71.5% |
Reconciling the views. The 55% bar (revenue-only) understates the real picture β it ignores the R47M non-fuel saving from running fewer flights. The 72% absorption is the truer figure: of every R10 of fuel hike, R7.20 was absorbed (R5.50 by fares + R1.60 by flying less), R2.80 hit PBT.
Per-pax recovery (88%) is highest because it strips volume effects. Total absorption (72%) is the cash answer. Both are correct; just different lenses.
May 2026 Projection β Updated MTD
Updated 2026-05-07 with MTD signals. Schedule revealed (5,031 flights, ~9,500 fewer than initial estimate of 5,400). Yield + LF now anchored to live booking curve. Fuel R/L tightened with Bernd's 5 May tariff updates.
May MTD signals (1-7 May, partial)
| Metric | Value | Read |
| Schedule (full month) | 5,031 flights Β· 950,475 seats | Slightly below April (5,307) |
| Pax (flown + booked) | 403,520 | ~42% of seats β mix of flown days + forward bookings |
| Revenue (flown + booked) | R638.9M | Yield blend ~R1,583/pax |
| Implied yield | R1,583 | Easing vs Apr R1,654 (β4%) as fuel surcharges drop |
May Inputs (revised)
| Driver | Assumption | Source |
| IATA week-1 May | $181/bbl | Data Fuel.xlsx 1 May |
| FX | ~16.80 (flat) | Apr trend |
| Tariff moves | PetroSA β171cpl, Engen β222cpl; Shell/Sasol mixed | B4i 5 May email |
| Fuel R/L base case | R20.00 (β12% vs Apr R22.87) | B4i tariff easing + Radixx surcharges β9.3% |
| Flights | 5,031 | May schedule (live) |
| Yield base | R1,620 (β2% vs Apr) | MTD blend R1,583 + recovery as fuel surcharges normalise |
| LF base | 86% | Apr-style demand |
Three Scenarios (revised)
Optimistic
- Fuel R/L: R18.50 (β19% vs Apr)
- Yield: R1,650
- LF: 87%
- Flights: 5,031
- Revenue: R1,364M
- Fuel: R471M
- Non-fuel: R723M
R171M
12.5% margin Β· contracts ease, yields hold
Base case
- Fuel R/L: R20.00 (β12% vs Apr)
- Yield: R1,620
- LF: 86%
- Flights: 5,031
- Revenue: R1,324M
- Fuel: R509M
- Non-fuel: R723M
R93M
7.0% margin Β· partial relief, mild yield slip
Pessimistic
- Fuel R/L: R22.00 (Apr-level holds)
- Yield: R1,580
- LF: 84%
- Flights: 5,031
- Revenue: R1,261M
- Fuel: R560M
- Non-fuel: R723M
βR21M
β1.7% margin Β· loss month if competitor undercuts
Base case math: 5,031 flights Γ 5,059 L/flight = 25.4M L Γ R20.00 = R509M fuel. 950K seats Γ 86% Γ R1,620 = R1,324M revenue. Less R723M non-fuel = R93M PBT. Roughly 2x April's R45M as fuel eases.
What changed vs original projection: Schedule lower (5,031 vs 5,400) β less revenue AND less fuel. Yield revised down R1,620 vs R1,654 reflecting MTD blend. Fuel tighter range (R18.50-R22.00 vs R18.50-R23.00) as B4i easing now confirmed. Net: base case ~R93M (was R110M); pessimistic less catastrophic (βR21M vs βR54M).
Watch list for May confirmation
- Bernd's next weekly email (Tue 12 May) β confirm tariff easing continues
- Pieter's next Fuel levy file (~12 May) β will show R/L direction
- Booking curve mid-May β does yield hold R1,620+?
- Brent + ZAR move β Brent week-1 holding ~$78, ZAR ~16.80 stable
- Mauritius MUR storage fee TBC β could shift regional unit costs
Evidence: B4i Fuel Emails (Bernd Feucht)
13 April 2026: "For the 1st time in 7 weeks the weekly tariffs came down. Shell reduced their fee by 206cpl from tomorrow but is still ~R10 per litre more expensive than Sasol (Jhb)."
5 May 2026: "Although Shell's tariff reduced by 247cpl this week in CPT, it is still R1.59cpl more expensive than Astron, while Energrade is R1.94cpl more expensive than Astron in CPT. Although Shell reduced its weekly tariff in CPT, it increased by 32cpl in JHB, DUR and PLZ. In JHB, Shell is 1cpl cheaper than Sasol who increased their tariff by 111cpl."
5 May 2026 (later): "After our engagement with PetroSA they revised their May-26 tariffs and reduced the fuel surcharge. Instead of an increased β the tariff decreased by 171cpl."
Caveats & Methodology Notes
- April fuel volume estimated β Jan-Feb avg 5,059 L/flight Γ Apr flights. Actual fuel data not yet ingested in IS for Mar/Apr.
- March fuel R/L (R11.43) reverse-derived from your stated PBT R127M, anchored to Feb implied delivered (R11.43/L from Feb fuel_r/uplift).
- Apr fuel R/L (R22.87) = 2Γ Feb per your guidance. B4i email evidence supports β Shell CPT R10/L above Sasol JHB, single-week 200-360cpl moves consistent with ~doubling.
- Non-fuel/flight (R143,617) back-solved from Mar PBT, held flat into April. Real overheads/ACMI variations could shift Apr.
- Stage-length mix between Mar/Apr could shift L/flight Β±2-3% β not material.
- Hedging not modelled β assumes spot pass-through. If FlySafair has fuel hedges, real Apr fuel cost lower.
Generated 2026-05-07 by Luci Β· IATA fuel data: Data Fuel.xlsx Β· Operational data: FinDash kpi_data + contribution_data Β· Email evidence: B4i Fuel Feedback thread (Outlook)
Route-Level Fuel Surcharge (Radixx)
Per-pax surcharge values loaded into Radixx booking system, ZAR incl VAT Β· Source: Pieter Richards weekly Fuel levy XLSX (OneDrive: Microsoft Teams Chat Files)
Peak week
7 Apr 2026
all routes peaked
Cheapest route surcharge
R397
BFN-JNB peak
Most expensive
R1,448
JNB-MRU peak
Eased since peak
β9.3%
7 Apr β 5 May
Top 6 routes β surcharge trajectory
Full route Γ week table
| Route | 03-17 | 03-24 | 03-31 | 04-07 | 04-14 | 05-05 | Peak Ξ |
|---|
| BFN-JNB | 101 | 144 | 212 | 397 | 391 | 360 | +293% |
| CPT-BFN | 161 | 232 | 338 | 635 | 627 | 576 | +294% |
| CPT-DUR | 214 | 307 | 447 | 841 | 830 | 762 | +293% |
| CPT-ELS | 158 | 226 | 329 | 619 | 611 | 561 | +292% |
| CPT-GRJ | 97 | 139 | 202 | 381 | 376 | 345 | +293% |
| CPT-HDS | 254 | 365 | 532 | 999 | 987 | 906 | +293% |
| CPT-HLA | 209 | 301 | 439 | 825 | 814 | 749 | +295% |
| CPT-JNB | 212 | 304 | 444 | 833 | 822 | 756 | +293% |
| CPT-MQP | 254 | 365 | 532 | 999 | 987 | 906 | +293% |
| CPT-PLZ | 133 | 190 | 278 | 523 | 516 | 475 | +293% |
| CPT-WDH | 179 | 257 | 375 | 704 | 694 | 638 | +293% |
| DUR-ELS | 121 | 173 | 253 | 476 | 469 | 431 | +293% |
| ELS-HLA | 158 | 226 | 329 | 619 | 611 | 561 | +292% |
| ELS-JNB | 150 | 215 | 313 | 587 | 580 | 532 | +291% |
| GRJ-HLA | 201 | 289 | 422 | 794 | 783 | 720 | +295% |
| GRJ-JNB | 185 | 266 | 389 | 730 | 720 | 662 | +295% |
| HLA-DUR | 121 | 173 | 253 | 476 | 469 | 431 | +293% |
| JNB-DUR | 117 | 167 | 245 | 460 | 454 | 417 | +293% |
| JNB-HRE | 154 | 222 | 323 | 607 | 599 | 551 | +294% |
| JNB-MRU | 368 | 530 | 771 | 1448 | 1429 | 1314 | +293% |
| JNB-VFA | 151 | 217 | 316 | 593 | 585 | 538 | +293% |
| JNB-ZNZ | 312 | 449 | 654 | 1228 | 1212 | 1114 | +294% |
| MQP-JNB | 93 | 133 | 194 | 365 | 360 | 331 | +292% |
| PLZ-DUR | 137 | 196 | 288 | 539 | 532 | 489 | +293% |
| PLZ-HLA | 174 | 249 | 363 | 682 | 673 | 619 | +292% |
| PLZ-JNB | 161 | 232 | 338 | 635 | 627 | 576 | +294% |
Reading: Surcharges tripled 17 Mar β 7 Apr peak. Easing since: β1.4% to 14 Apr (Astron CPT cut), β8% to 5 May (Engen, PetroSA cuts). May 5 still ~3.5x March 17 baseline.
Each weekly file flows: B4i tariffs β fuel R/L β litres burned per route Γ R/L = surcharge per flight Γ· pax = surcharge per pax β rounded to nearest R5/R10 β loaded into Radixx + displayed on flysafair.co.za/fares/fuel-surcharge.
Full structured data + per-week details in SecondBrain note: ~/PKA/SecondBrain/wiki/concepts/Fuel-Surcharge-Radixx.md
Raw JSON/CSV: ~/PKA/SecondBrain/wiki/concepts/fuel-surcharge-data/surcharge_history.{json,csv}