How the Modelling Works
Every scenario is modelled hour-by-hour across a full year of load data, local site weather, solar production, battery dispatch and your tariff. Figures are indicative estimates, not a quote.
Every figure in Amperage (payback, NPV, year-one savings, self-sufficiency) comes from the same pipeline. It uses real consumption data, local weather, a physical production model, and a lifetime cashflow model. There are no rules of thumb and no "typical household" multipliers. Here is each stage.
Weather: typical-year data for the actual site
Production is driven by TMY (Typical Meteorological Year) data. This is hourly irradiance and temperature built from long-term measurements to represent a typical year, not an unusually good or bad one. Amperage matches the project's location to the closest available TMY dataset. A Cairns roof and a Hobart roof are modelled on their own weather, not a national average.
Production: an hourly solar simulation
For each of the year's 8,760 hours, the model converts irradiance on the panel plane into AC output. It accounts for panel orientation and tilt, temperature effects on efficiency, and system losses (soiling, wiring, inverter efficiency). Long-term panel degradation is applied across the analysis life, so year 20 is not credited with year 1 output.
Consumption: the site's own hours drive the model
The interval data uploaded in the Consumption stage is cleaned and aligned with the weather year. The model then has the site's real load hour by hour. When an upload covers less than a full year, the missing months are estimated from the site's own usage pattern, optionally shaped by an industry seasonality curve. They are clearly labelled as estimated, so the modelled figures always cover a full year.
That hourly alignment is the whole game. Two sites with identical annual kWh but different shapes get very different systems. What matters is how much generation lands on load (self-sufficiency) and how much is exported at a low feed-in rate.
Batteries: simulated dispatch, not nameplate maths
Battery scenarios run an hourly dispatch simulation over the same 8,760 hours. It stays within the battery's usable capacity (depth of discharge), its charge/discharge power and its round-trip efficiency. Nothing is credited that the simulation did not physically do. That is why a battery that looks big on paper can add little value on a daytime-heavy site. There is nothing left to store, or nothing to discharge into.
Every active battery is modelled with three jobs, unless you switch one off on the Solar & Battery stage. They are self-consumption (always on), peak-demand shaving and tariff arbitrage. A job that cannot earn on the project's bill (no demand charge, or a flat tariff with no spread) is still shown, marked as earning nothing. You can see what was modelled and why it made no difference.
The rules, in the order the simulation applies them every hour
- Solar serves the load first. Any surplus charges the battery, up to its power rating. What the battery cannot take is exported at the feed-in rate.
- Cheap hour: buy, but only what the dearer hours ahead will need. With arbitrage on, the battery charges from the grid in the cheapest hours. The rate used is the all-in import rate: retail + network + market + environmental, each on its own TOU windows. It buys only what the dearer hours ahead will need beyond what solar will refill, never simply to full. A buy only happens when a later hour's rate beats the purchase price after the round-trip loss and the arbitrage threshold. A 40c spread on a 90%-efficient battery is worth trading. A 4c one is not.
- Decide how much to discharge. Self-consumption covers the whole shortfall between load and solar. The dearest hours are served first. A middle rate (a shoulder, say) gets only what the dearer hours ahead will not need. Otherwise the battery only discharges to hold grid draw under the month's grid ceiling. In a cheap hour it never spends stored energy on ordinary load. That load is left to the grid so the charge is there for the expensive hours.
- Discharge within the limits. Never below the reserve floor, never faster than the power rating, never more than is stored. Grid-bought energy is kept in a separate bucket from solar charge. It is only released above the grid ceiling, or into an hour whose rate beats what it cost after the round-trip loss. So the battery never cycles grid power at a loss.
- Top up for the next peak. Take an hour where demand shaving and grid charging are both on, the battery is idle and the site sits below the grid ceiling. The battery refills from the grid in the cheapest hours. It takes only what the coming peaks need, and never goes past the ceiling.
Where the numbers come from
- Grid ceiling. Not an input. It is set month by month. Each month the model tried nine ceilings, from the lowest this battery can hold down to none at all. It simulated the month with each and kept the one that saved the most, once the demand charge it cut and the arbitrage it gave up were both counted. A tariff that bills on the highest peak of the last 12 months gets one ceiling for the whole year instead. The model already knows the month's load, so this is the ceiling that worked best in hindsight. A real controller would set these as monthly targets. The ceiling only acts inside the bill's own demand window (weekday 4–8pm, seasonal, anytime, whatever the tariff says). Demand is billed the way that tariff bills it.
- Charge and discharge windows. Derived from your bill. The clock hours whose all-in rate is the year's cheapest form the charge window. The most expensive form the discharge window. On a seasonal tariff the windows are listed per season with their months. The model trades in every hour that is the year's cheapest or dearest, however few months that is.
- Reserve floor, depth of discharge, power, efficiency. From the battery you chose (or the library model it is linked to), on the Solar & Battery stage.
Replicating it on a real controller
Under the Energy Schedule on the Recommendation stage, How The Battery Decides lists these rules for the selected system. It comes with a settings sheet: power, usable capacity, reserve, the grid ceiling for each month (hover a month for why it was chosen), grid charging on or off, and the charge and discharge windows with their rates. Set a commercial BMS to those windows and those monthly import targets and it will behave the way the model assumed. The same one-line summary prints on the deck's assumptions slide and the proposal's assumptions page. The customer's copy says what the model did.
Tariffs and incentives: valued the way the bill is billed
Savings are valued against the project's actual tariff: time-of-use windows, demand charges, daily charges, and the feed-in rate. A kilowatt-hour offset at peak is worth more than one at off-peak. Eligible incentives (STCs, LGCs, VEECs, PDRS) are applied by state, postcode zone and system size. Upfront ones reduce net cost. Annual LGC revenue enters the cashflow as a time-limited stream through 2030.
The financial model
- Year-by-year cashflows over the analysis life, with electricity price escalation and panel degradation applied.
- Payback, NPV and IRR are all computed from that one cashflow series. There is one basis for every system size, so squares in the sizing matrix are genuinely comparable.
- The assumptions are yours to change. Discount rate, escalation, analysis years and optional depreciation live in the scenario settings. Every number on the page updates when you change them.