Mahindra XUV 3XO · 2025 model Data quality: 96.5% clean 3 price corrections applied

Fuel Analytics Dashboard

86 refuelling records · 2025-05-07 to 2026-07-19 (438 days) · generated 22 July 2026, 20:58 · source: Fuelio CSV export
Executive Summary

The headline picture

Fourteen and a half months of ownership, distilled.

Between 2025-05-07 and 2026-07-19 the XUV 3XO covered 33,385 km across 86 refuelling events, consuming 2,840 litres of fuel at a total cost of R63,609 (R62,167 as originally recorded, before 3 data-entry corrections documented in the Data Quality section). That works out to R1.91 per kilometre.

Fuel economy has been remarkably stable at 11.76 km/L (8.51 L/100km) on a distance-weighted basis, with a per-tank average of 11.85 km/L and a coefficient of variation of only 9.6% - tight enough to indicate consistent driving conditions and no signs of a developing mechanical fault. Regression analysis found a statistically significant trend in economy over the tracking period (improving, +0.43 km/L per year, R²=0.019, p=0.222) - in plain terms, the car is running about as efficiently today as it was fourteen months ago.

The real story is fuel price, not fuel efficiency. Price per litre climbed from roughly R21.40/L in the first month of records to a peak of R28.06/L in June 2026 - a 31% increase - before easing slightly in the most recent month. This price trend is statistically significant (R²=0.36, p<0.001) and is the dominant driver of the month-to-month swings in spend visible in the Monthly Performance section: distance driven per month has stayed essentially flat (decreasing, not statistically significant, p=0.80), while spend has not.

Refuelling is frequent and consistent: a fill roughly every 5.2 days (393 km / 33.0 L on average), overwhelmingly at Sasol stations (46% of fills), concentrated around Roodepoort (22 visits). The best single tank (17.30 km/L, Sasol - Newcastle, 2025-06-13) was a highway trip; the worst (8.72 km/L, Sasol - , 2025-08-12) was short-hop city driving - a 98% swing that illustrates how much driving style and road type affect running costs.

At a glance

Key Performance Indicators

Total Distance
33,385 km
2025-05-07 → 2026-07-19
Total Fuel Purchased
2,840 L
across 86 refuels
Total Spend
R63,609
R62,167 as recorded, 3 corrections applied
Avg Fuel Economy
11.76 km/L
8.51 L/100km · median 11.88
Cost per Kilometre
R1.91/km
avg price R22.40/L
Best Tank
17.30 km/L
2025-06-13 · Sasol - Newcastle
Worst Tank
8.72 km/L
2025-08-12 · Sasol -
Avg Refuel Interval
5.2 days
393 km · 33.0 L/fill
Validation

Data Quality

Every record was checked before analysis. Nothing was silently discarded.

Validation checklist

  • ✓Duplicate records: 0 found (checked on date + odometer + fuel + price).
  • ✓Missing values: odometer, fuel volume, price and date are 100% complete across all 86 records. app-reported km/L is missing on 5 rows (the very first fill, where no prior odometer exists to calculate from - expected and unavoidable).
  • ✓Odometer sequence: verified strictly increasing across all 86 records after chronological sorting (0 non-monotonic readings). Two same-day entries lacking a time stamp were correctly ordered using odometer value as a tiebreaker.
  • ✓Fuel economy sanity: 0 physically impossible values (outside a 3-25 km/L plausibility band for a compact SUV). Independent recomputation of km/L from odometer deltas - using proper full-to-full fuel accounting that correctly carries partial top-up fills forward - matched the app's own reported values with 0 discrepancies greater than 15%, which is strong evidence the underlying distance and volume logging is internally consistent.
  • !Price consistency: 3 of 86 records (3.5%) had a recorded price inconsistent with the fuel price at nearby dates. All are explained and corrected below - full details in the Anomalies section.
  • ✓GPS coverage: 53 of 86 fills (62%) have usable coordinates; the remainder show Fuelio's placeholder 0,0 (or near-zero) value, meaning no GPS fix was captured at that fill - treated as missing, not plotted on the map.
  • ✓Non-fuel records: the source file's '## Costs' section contains one placeholder R0.00 service entry, correctly excluded from all fuel statistics since it is not a refuelling event.
  • ✓Nothing discarded: all 86 source rows are retained in cleaned_data.csv. Flagged rows carry boolean flag columns and, where a correction was made, both the original and corrected values are preserved side by side.

Confidence assessment

High confidence

96.5% of records (83 of 86) passed every validation check with no flags at all. The remaining 3 records (3 price corrections + 1 sub-5L top-up fill flagged for transparency, not because it is wrong) are fully explained, not deleted.

Assumption: Fuelio's app-reported km/L is treated as the primary economy figure (it correctly threads together partial "top-up" fills between full tanks). Our independent recomputation from odometer + fuel volume is used only as a cross-check, using the same full-to-full accounting logic - a naive fill-to-fill division would wrongly flag several legitimate tanks as anomalies.
Correction applied: 2 records had a recorded price inconsistent with their own logged price-per-litre, and 1 record had a price + rate pair that was internally consistent but ~93% below every neighbouring fill (both fields likely mistyped together). All 3 were corrected using local median price/L from surrounding fills, adding R1,443 to total spend versus the raw recorded figure. Original values are preserved in the cleaned dataset.
Overview

Overall Statistics

Every headline metric across the full 438-day tracking period.

Cumulative growthKilometres driven (left axis) vs. cumulative spend (right axis) since the first logged fill

Full metric table

MetricValue
Total distance travelled (km)33385.0
Total fuel purchased (L)2840.03
Total fuel cost (R, corrected)63609.41
Total fuel cost (R, as recorded)62166.76
Overall fuel economy - weighted (km/L)11.76
Overall fuel consumption - weighted (L/100km)8.51
Average fuel economy - per tank mean (km/L)11.85
Median fuel economy (km/L)11.88
Std deviation of fuel economy (km/L)1.13
Coefficient of variation (economy)9.6
Best tank (km/L)17.3
Best tank date2025-06-13
Best tank locationSasol - Newcastle
Worst tank (km/L)8.72
Worst tank date2025-08-12
Worst tank locationSasol -
Longest distance between refuels (km)532.0
Shortest distance between refuels (km)19.0
Average litres per refill (L)33.02
Median litres per refill (L)35.69
Average km between refuels (km)392.8
Average days between refuels5.2
Median days between refuels5.0
Cost per km (R/km, corrected)1.905
Number of refuel events86
Number of full-tank fills82
Number of partial/top-up fills4
Average price per litre (R/L, corrected)22.4
Date range start2025-05-07
Date range end2026-07-19
Tracking period (days)438

Fuel economy distributionHistogram of per-tank km/L, all 86 fills

Fuel economy by yearBox plot - median, quartiles and spread

Month by month

Monthly Performance

Spend vs economyMonthly fuel spend (bars, left axis) against average economy (line, right axis)

Cost per kilometreMonthly R/km

Distance travelledMonthly km

Monthly statistics table

MonthDistance (km)Fuel (L) Spend (R)Economy (km/L)Price (R/L) Cost/km (R)Refuels
2025-052,053197.0R4,21510.42R21.40R2.056
2025-062,483208.7R4,44811.90R21.31R1.797
2025-072,451209.9R4,59111.68R21.87R1.877
2025-082,192201.6R4,36210.87R21.64R1.996
2025-092,439221.6R4,77611.01R21.55R1.966
2025-101,718149.5R3,22011.49R21.54R1.884
2025-111,979165.4R3,51211.97R21.24R1.775
2025-122,436193.8R4,14012.57R21.36R1.706
2026-012,047167.8R3,52112.20R20.98R1.726
2026-022,276176.1R3,56112.92R20.22R1.565
2026-032,927237.5R4,81512.32R20.27R1.657
2026-041,647142.1R3,31911.59R23.36R2.024
2026-052,770230.0R5,85812.04R25.47R2.127
2026-062,298195.0R5,47111.79R28.06R2.386
2026-071,669144.1R3,80011.59R26.38R2.284
Year on year

Yearly Performance

Caveat: neither year is a complete calendar year - records begin 2025-05-07 (2025 covers May-Dec, 8 months) and end 2026-07-19 (2026 covers Jan-Jul, ~7.5 months). Compare monthly averages, not raw totals.

Normalised comparisonMonthly average, to correct for partial-year bias

2025 (8 mo)2026 YTD (~7.5 mo)
Avg distance/month2,219 km2,085 km
Avg spend/monthR4,158R4,046
Avg economy11.47 km/L12.09 km/L
Avg price/LR21.50R23.48

Distance and refuelling cadence per month are almost identical between the two periods (2,219 vs 2,085 km/month). Economy improved modestly (11.47 → 12.09 km/L). Average price per litre rose 9.2%, which almost fully explains the higher monthly spend in 2026.

Yearly statistics table

YearDistance (km)Fuel (L) Spend (R)Economy (km/L)Price (R/L) Refuels
202517,7511,547.4R33,26411.47R21.5047
202615,6341,292.6R30,34512.09R23.4839
Habits

Refuelling Behaviour

Refuel frequency
5.2 days
median 5.0 days
Distance between fills
393 km
19-532 km range
Average refill size
33.0 L
median 35.7 L
Fill type split
82 full / 4 partial
95% full-tank fills

Distance between refuelsRed bars = statistical outliers (IQR)

Litres purchased per refillRed bars = statistical outliers (IQR)

Litres vs distance since last fillExpected strong positive correlation validates the data

Preferred fuel brandsSasol accounts for 46% of fills

Preferred suburbs/citiesRoodepoort is the most frequent location (22 visits)

Where the fills happen

Geographic Analysis

53 of 86 fills (62%) carry usable GPS coordinates from the Fuelio log.

Refuelling locationsColour = price paid per litre

Refuelling density heatmapConcentration of fill-up locations

Refuelling is heavily concentrated along a Roodepoort-Krugersdorp-Centurion corridor (west/south-west Johannesburg / north Gauteng), consistent with a regular commuting pattern rather than long-distance travel. The single outlier - a fill in Newcastle (KwaZulu-Natal, ~2025-06-13) - coincides with the best recorded fuel economy of the entire dataset (17.30 km/L), reinforcing that highway trips significantly outperform the everyday city-driving average.

What looked odd, and why

Anomalies

3 of 86 records (3.5%) triggered a data-quality flag. Every one is explained below - nothing was removed.

Flagged records

DateOdometerFuel Price (original → corrected)Explanation
2025-06-133,58329.09 LR448.35 → R617.60Original price R448.35 looks like a data-entry error (implied R15.41/L vs station rate R21.35/L recorded same fill). Corrected estimate R617.60 using neighbouring fill-ups' price/L (R21.23/L).
2025-07-065,77232.63 LR478.30 → R713.60Original price R478.30 looks like a data-entry error (implied R14.66/L vs station rate R21.87/L recorded same fill). Corrected estimate R713.60 using neighbouring fill-ups' price/L (R21.87/L).
2026-07-1333,43541.23 LR78.30 → R1116.40Original price R78.30 (R1.90/L) is ~93% off the R27.08/L local median price for surrounding fills - both price and price-per-litre fields appear mistyped together. Corrected estimate R1116.40 using local median rate.

Price vs economyChecking whether price errors correlate with reported economy (they don't)

Interpretation

The three price anomalies are isolated to the Price and VolumePrice fields only - odometer, fuel volume and the app's own km/L calculation for those same fills are all normal and pass every plausibility check. This points to manual data-entry slips (e.g. a missing digit, or Fuelio's price-per-litre autofill not being updated) rather than any issue with distance or fuel-volume logging, which is what actually drives the economy figures throughout this report.

The single sub-5L fill (2026-01-27, 1.93L) is a legitimate small top-up, not an error - it is flagged purely so a reader scanning refill-size statistics understands why one bar in the histogram is so much smaller than the rest.

What to do with this

Recommendations

1

Fuel price, not driving, is your cost driver

Price per litre rose 31% over the tracking period while distance and economy stayed flat. Budget for continued volatility rather than looking for driving changes to control cost - there's little room left to improve on an already-stable 11.76 km/L.

2

Fix the two data-entry habits behind the price anomalies

Double-check the 'Price' field after Fuelio autofills price-per-litre from your last visit to the same station - it doesn't always update correctly when the pump price has changed, which is the likely cause of the three corrected entries in this report.

3

Consolidate fills at Sasol

46% of fills are already at Sasol, mostly around Roodepoort. If you aren't enrolled in their loyalty/rewards programme, this spending pattern makes it worth doing so.

4

Log full tanks consistently where practical

82 of 86 fills (95%) are marked as full tanks, which is what makes the economy figures in this report reliable. Keep doing that - partial top-ups are fine occasionally but full-to-full fills give the cleanest economy signal.

5

Use highway trips as your economy benchmark

The best tank (17.30 km/L) was a highway trip to Newcastle; the worst (8.72 km/L) was city driving - a 98% gap. For trip-cost planning, use ~8.7 km/L for city-only trips and ~17.3 km/L for open-road trips rather than the blended average.

6

Watch economy again after the next winter

Winter fills averaged 8% worse economy than summer fills in this dataset, but it's based on roughly one seasonal cycle. If the gap widens next winter it's more likely a maintenance signal (tyre pressure, filters) than normal seasonal variation.

Bottom line

Conclusions

Over 438 days and 33,385 km, the Mahindra XUV 3XO has delivered consistent, predictable fuel economy (11.76 km/L, CoV 9.6%) with no statistically significant long-term trend in either direction. The vehicle and driving pattern are stable; there is no evidence in this data of a developing mechanical issue.

The financial picture, however, has shifted meaningfully: fuel price rose roughly 31% over the period, which - combined with essentially unchanged monthly distance - is the primary reason recent months have cost more than early ones. Of the R63,609 total spend, R62,167 was recorded directly and R1,443 reflects corrections to 3 identifiably mistyped records, applied transparently and documented above.

Data quality was high: 96.5% of 86 records passed every validation check outright, and the remainder were fully explained rather than discarded. Refuelling behaviour is habitual and geographically concentrated, dominated by Sasol stations around Roodepoort - useful context for loyalty-programme decisions and for sanity-checking future fill-ups against this established baseline.