Import your data once. TradeFlux applies your tariffs, works out what you should have paid or been credited, and shows where the bills differ.
Bring the files you already have
Upload CSV or Excel exports from any meter or portal. TradeFlux guesses the columns, checks every interval and tells you exactly what it could not read.
CSV and Excel, with sheet selection
Column and timestamp format detection
Interval start or end, in any timezone
Gaps, duplicates and estimates flagged
Import history per location
Sample meter data import: a CSV with 2,880 rows is being mapped to TradeFlux fields, with 2,876 valid, 3 estimated and 1 missing reading.
Meter data import
Sample data
Upload
2Map columns
3Review
karoo-sol-2_september.csv
2,880 rows, half-hourly
Columns detected
Source column
TradeFlux field
Match
meter_id
Meter ID
Auto-detected
read_start_utc
Interval start
Auto-detected
kwh_export
Energy (kWh)
Auto-detected
qual_flag
Quality flag
Confirmed
Valid
2,876
Estimated
3
Missing
1
Your tariff, modelled exactly
Start from an Eskom template or build your own: seasons, day types, TOU bands, demand and fixed charges. A new tariff year is a new version, so last year’s bills still check out.
Eskom Megaflex and Nightsave templates
Fixed, time-of-use and dynamic prices
Seasons, day types and public holidays
Versions by validity date
Check which period any moment falls in
Sample Megaflex tariff, 2026/27 version, with weekday and Saturday TOU schedules for the high and low demand seasons and energy rates per period.
Tariffs
Sample data
Megaflex, non local authority
2026/27 version
From Eskom template
High demand, weekday
Off-peakPeakStandardStandard
0006121824
Low demand, weekday
Off-peakPeakStandard
0006121824
Low demand, Saturday
Off-peakStandardOff-peakOff-peak
0006121824
Energy rates, R/kWh
Peak
Standard
Off-peak
High demand
6.924
2.108
1.160
Low demand
2.263
1.562
0.991
What the bill should say
For each connection and billing period, TradeFlux turns half-hourly readings into energy, demand and fixed charges per TOU period, before the bill arrives.
kWh and rand per season and TOU period
Demand from kVA data, or estimated and labelled
Tariff year changes handled mid-period
Data gaps shown, never hidden
Every figure traced to its inputs
Rerun any month and keep the history
Sample expected charges for one connection in September 2026: energy per TOU period, network demand estimated from kWh, ancillary and service charges, a wheeling credit from Overberg Wind, and the expected total.
Expected charges
Sample data
Vaal Foods, main intake 11 kV
September 2026, Megaflex, non local authority
1,438 of 1,440 intervals, 2 interpolated
Line
Quantity
Rate
Amount
Energy, peak
41,280 kWh
R 2.2630
R 93,416.64
Energy, standard
118,940 kWh
R 1.5620
R 185,784.28
Energy, off-peak
96,410 kWh
R 0.9910
R 95,542.31
Network demandEstimated
1,182 kVA
R 31.40
R 37,114.80
Ancillary service
256,630 kWh
R 0.0041
R 1,052.18
Service and admin
30 days
R 412.60
R 12,378.00
Wheeling credit, Overberg Wind
38,600 kWh
−R 1.1240
−R 43,386.40
Expected total, excl. VAT
Expected total, excl. VAT
R 381,901.81
See exactly where a bill is wrong
Enter or upload the Eskom, municipal or trader statement. TradeFlux lines it up with the expected charges and flags every difference above your threshold.
Utility, municipal and trader statements
Rate, quantity and missing-line checks
Thresholds per organisation or connection
Open, acknowledged and resolved, with notes
PDF and Excel report to send on
Sample comparison of an Eskom bill against expected charges for September 2026. Three lines match, standard energy is billed on more kWh than metered, off-peak energy is billed at the wrong rate, demand differs from an estimate, and a wheeling credit is missing. The bill is about R53,000 higher than expected.
Statement comparison
Sample data
Eskom bill, account 5102 8841
Vaal Foods, main intake 11 kV, September 2026
Export report
Expected
R 381,902
Billed
R 434,894
Difference
+R 52,992
Open items
4
Line
Expected
Billed
Difference
Check
Energy, peak
R 93,417
R 93,417
R 0
Matches
Energy, standard
R 185,784
R 189,564
+R 3,780
Quantity
Energy, off-peak
R 95,542
R 100,363
+R 4,821
Rate
Network demand
R 37,115
R 38,120
+R 1,005
Estimate
Ancillary service
R 1,052
R 1,052
R 0
Matches
Service and admin
R 12,378
R 12,378
R 0
Matches
Wheeling credit, Overberg Wind
−R 43,386
-
+R 43,386
Missing
Off-peak billed at the wrong rate
Billed at R1.0410/kWh. Your 2026/27 tariff says R0.9910/kWh for the low demand season.
AcknowledgeAdd note
Expected
R 95,542.31
Billed
R 100,362.81
Difference
+R 4,820.50
96,410 kWh at R0.0500 too much
Coming next
Built on the same engine, in the order founding members ask for them.
Sample allocation of one wind farm’s September output across three offtakers by fixed share, capped at each site’s consumption, with 7 percent spilled and a 2.5 percent loss factor.
Allocation
Sample data
Overberg Wind, 3 offtakers
September 2026
Loss factor 2.5%
Generated1,248.6 MWh
Spilled 87.4 MWh
Offtaker
Share
Delivered
Expected credit
Vaal Foods, Vereeniging
45%
547.9 MWh
R 615,786
Paarl Cold Storage
30%
365.2 MWh
R 410,524
Midrand Office Park
25%
219.1 MWh
R 246,249
Wheeling allocation
Split one generator’s output across many offtakers by share or priority, capped at what each site used, with losses applied once.
Fixed share, priority or pro rata
Spilled energy tracked, not lost
Expected credit per offtaker and TOU period
Statements per contract
Sample hindsight optimisation for a site with a 400 kWh battery. On a typical weekday the battery charges off-peak and discharges in the two peak windows, cutting the September bill from R438,210 to R401,760.
Optimisation
Sample data
Paarl Cold Storage, 400 kWh battery
September 2026, Megaflex, non local authority
Battery size200 kWh400 kWh800 kWh
Before
R 438,210
Optimised
R 401,760
Saving
R 36,4508.3%
Grid import on a weekday, kW
4002000
0006121824
Grid import as metered
Grid import with battery schedule
Peak period
Site optimisation
See the battery schedule that would have cut last month’s bill on your tariff, and test a bigger battery or another tariff before you commit.
Schedules within your battery’s limits
Energy and demand charges both counted
Scenarios side by side
Savings you can check by hand
From checked bills to a virtual power plant
The meter data and tariffs you verify today are what flexible assets are scheduled against tomorrow. TradeFlux is built to grow in that order.
1
MeasureAvailable now
Half-hourly meter data and tariffs, already checked for billing.
2
Optimise each siteComing next
Find the battery and solar schedule that would have cut your bill on your tariff, then plan the next month with it.
3
AggregateLater
Pool batteries, solar and flexible load across sites for licensed traders and aggregators as the wholesale market opens.
TradeFlux is software for licensed traders and aggregators. It does not trade or take ownership of electricity itself.
Sample virtual power plant portfolio pooling four sites into 0.94 MW of flexible capacity for peak shaving, TOU optimisation and demand response. On the roadmap.
Flexibility portfolio
Sample data
Cold storage, Paarl
Refrigeration load control
250 kW
Packhouse, Ceres
1 MWh battery
480 kW
Office park, Midrand
400 kWp solar with HVAC control
120 kW
Retail centre, Gqeberha
HVAC and lighting load
90 kW
Pooled flexible capacity0.94 MW
Peak shavingTOU optimisationDemand response
On the roadmap
Built in phases, with the people who use it
Founding members shape each phase before it ships, and the order follows what they need most.
Now
Bill and statement verification
Meter data import from CSV and Excel
Eskom and custom tariffs with TOU schedules
Expected charges per TOU period
Statement comparison with flagged differences
Next
Allocation and optimisation
Wheeling allocation to many offtakers
Battery optimisation against your tariff
Verification reports to send on
Later
Telemetry and VPP
Live data from inverters and meters
Curtailment logging and claims
Aggregation for licensed traders
Bring us one month of bills
Join the founding program. Share a month of meter data and bills, and we will show you what the numbers should have been.