Skip to content
GuideJuly 15, 20266 min read

Sizing a hybrid renewable system is an optimisation problem, not a heuristic

How much solar, wind, and battery to build is a 25-year, multi-million-dollar decision whose variables interact, the right battery size depends on how you’ll dispatch it, and the best solar-to-wind ratio depends on your load and tariff. Rules of thumb, spreadsheets, and configuration-testing tools all answer a smaller question than the equity IRR investors actually underwrite.

A Capital Decision You Live With for 25 Years#

Sizing a hybrid means fixing a small set of numbers: how many megawatts of solar and wind, and how much battery power and energy. They look modest written down, and they are the most consequential choices in the project: once the steel is bought they are locked in for a roughly 25-year life, and they are effectively irreversible. You cannot un-build a battery that turned out too small, or recover capital sunk into wind the load never needed. Because the decision is single-shot and long-lived, small errors do not stay small, a design that lands a few points of equity IRR below the achievable optimum compounds that gap across every year of operation, over millions of dollars of committed capital. It shows up as revenue that never arrives, quietly, for two decades.

The Variables Refuse to Be Chosen One at a Time#

The intuitive approach is to take the components in turn: size solar to the daytime load, add wind for the hours solar misses, bolt on a battery to smooth the rest. It feels orderly; it is wrong, because the variables interact. The right battery size is not a property of the battery, it depends on how you intend to dispatch it. A battery run only to shift midday surplus into the evening peak wants one size; the same battery asked to firm wind and arbitrage price blocks wants another. The solar-to-wind ratio is entangled the same way: the best split depends on the shape of the load you serve and the tariff you are paid against, and it moves the moment either does. No component can be chosen in isolation, because each one’s best value is conditional on all the others.

What is left is a combinatorial space: every plausible solar rating pairs with every wind rating pairs with every battery power and duration, and each combination only reveals its worth under its own best dispatch across the year. Take 20 candidate sizes each for solar and wind, 15 for battery power and 6 for duration: 36,000 designs, each needing its own year of dispatch before it can be valued. Sampling a handful of scenarios explores a vanishing fraction of it, and nothing guarantees the best of your handful is anywhere near the best that exists.

Why the Usual Methods Fall Short#

A rule of thumb such as oversizing solar to a fixed multiple of peak load, or one hour of storage per so many megawatts, is a past project’s answer frozen and reused as if it were universal; it carries none of this project’s load, resource, or tariff, which are exactly what determine the right answer. A spreadsheet is more honest but no more capable of finding the optimum: it prices the configuration you type in, with no mechanism to search for a better one. Worse, most sizing spreadsheets quietly hard-code a dispatch rule and size around it, fixing half the problem before the sizing begins, with a rule that was never itself optimised.

Configuration-testing tools, the simulation-and-enumeration approach, are a real step up, and for simple systems they suffice. But they carry two limits. They walk a grid of pre-chosen configurations, and every asset class multiplies that grid until it can only be sampled coarsely. And they evaluate each configuration under a fixed, rule-based dispatch, applied, not optimised. Since the worth of a battery is what its best dispatch would earn, judging it against a hand-written rule systematically undervalues and under-builds it. Sizing and dispatch are not separable, and testing configurations under fixed dispatch is exactly what these tools cannot escape.

LCoE Answers a Question Investors Don’t Ask#

There is also the question of what you optimise for, and most tools pick the wrong target. They minimise levelised cost of energy (LCoE) in $/MWh, or chase the shortest payback. Neither is what the capital is underwritten on. Investors underwrite equity IRR out of a full three-statement financial model, leveraged debt with amortising interest, accelerated depreciation, and corporate tax. Those mechanics reshape the optimum in ways LCoE cannot see: debt changes what a marginal dollar of capacity costs the equity, and accelerated depreciation front-loads tax savings, so capital deployed earlier is worth more to equity than any per-megawatt-hour average can show. The lowest-LCoE system and the highest-IRR system are, as a rule, not the same system. This is why bolting a finance model onto the end of an energy optimisation fails, it has already chosen the sizes against the wrong objective. The financial model has to sit inside the sizing loop, not after it.

Averages Hide What Determines Value#

Underneath all of this is a resolution problem India makes unavoidable: power is scheduled and settled in 15-minute blocks, and time-of-day tariffs, banking limits, and net-injection caps are all expressed at that granularity. The rules that decide what a hybrid is worth operate at 15 minutes, so a credible sizing study has to watch the asset operate at 15 minutes across a full representative year, tens of thousands of consecutive intervals, in order. Load-duration curves and “typical day” averages throw away the one thing that carries the value: the chronology. Averaging collapses the coincidences that decide whether a design pays, surplus solar arriving in the same block a banking cap bites, an evening price spike landing when the battery is already depleted. An average tells you how much energy flowed; it cannot tell you whether the battery was full when the peak arrived, and that single fact can separate a strong design from a weak one.

What Optimisation Does Differently#

Mathematical optimisation treats sizing and dispatch as a linked problem, searching over the capacities and the full year of dispatch together, against the project’s sub-hourly generation and consumption profiles. Keeping the financial model inside the sizing loop lets the search target the objective the investor cares about, equity IRR. It holds, at once, what every simpler method is forced to drop:

  • Capacities and dispatch, co-optimised: the size of each asset and the way it is operated across the year are solved together, because the worth of any component is whatever its best dispatch can earn, never what a fixed rule extracts from it
  • Full sub-hourly chronology: a representative year at 15-minute resolution, in sequence, so the coincidences of generation, load, tariff, banking, and injection limits are seen rather than averaged into invisibility
  • The real financial model: leveraged debt with amortising interest, accelerated depreciation, and corporate tax carried inside the sizing itself, so the design is chosen against the economics the equity is actually underwritten on
  • The true objective: equity IRR, targeted in the sizing search, instead of a lowest-cost proxy that points at a different system than the one investors would fund

A spreadsheet or configuration-testing tool returns a design that works, meets the load, clears the limits, pencils out. For a formulation that supports a global optimality certificate, a solver can prove, to its stated tolerance, that no feasible design beats the result on the modelled objective and constraints. That proof belongs to the model: proving an inner sizing or dispatch solution optimal does not by itself prove that an outer search has found the highest equity IRR. “Feasible” and “optimal” are different claims, and the distinction matters over 25 years. This is what ES Solve is built to address: co-optimise solar, wind, and battery capacities with a full year of 15-minute dispatch, against the project’s profiles and a full three-statement financial model, targeting equity IRR in the sizing search.

What This Costs to Actually Compute#

The objection to optimisation is usually that it is too slow to be practical. That is no longer true at this problem size. A year at 15-minute resolution is 35,040 intervals. On our own benchmarks a full sizing run completes in 1.7 to 287 seconds depending on resolution, on open-source tooling rather than a commercial licence, and the outer IRR search takes a handful of those runs. The whole design question is minutes of compute, not an overnight batch.

When a sizing run takes minutes, the engineer can afford to ask the question again under a different tariff, a different curtailment rule or a different debt structure. When it takes a day, they ask once and defend the answer.

Two Ways a Storage Model Quietly Lies#

Both of these are easy to write and hard to notice, and both inflate the result rather than degrade it, which is the dangerous direction.

The first is phantom energy. If the battery's state of charge is free at the start of the horizon and nothing ties the end back to the beginning, the optimiser will begin the year with a full battery and end it with an empty one. It has just generated energy from no source, and it books the benefit. Over a year the extra energy is small. Its effect on the answer is not, because it lands exactly where the model is deciding how much storage to buy. Requiring the state of charge to return to where it started removes it identically.

The second is fictitious disposal. Nothing in a naive formulation prevents charging and discharging in the same interval, which is physically meaningless. It appears when surplus generation has nowhere to go and the model is not permitted to curtail: round-trip losses become a convenient way to destroy energy that would otherwise breach an export cap. In our experiments this produced 60.7 MWh of simultaneous charge and discharge throughput in a single month. The optimum it reports is not physically realisable, and it overstates what the system can achieve. Allowing surplus to be curtailed removes this disposal incentive, but does not by itself rule out simultaneous charging and discharging. That requires an appropriate operating constraint or validated conditions under which the formulation gives an equivalent result.

The same round-trip efficiency that makes disposal attractive to a careless model is a real cost in a real system: 8 to 15% of everything cycled through the battery is lost. A model that treats storage as lossless is not conservative, it is wrong in the direction of buying too much of it.

Not Just Solvers#

The solver is the settled part. Maximising a return rather than minimising a cost is a studied problem, the methods for keeping risk constraints tractable are long established, and solvers at this scale are mature.

What decides whether a sizing exercise holds up is everything around it. Getting a full year of real sub-hourly generation and consumption into a form the model can use. Encoding one state's settlement rules exactly rather than approximately, then doing it again for the next state. Keeping every approximation visible enough that a lender can audit the result instead of trusting it. Returning an answer fast enough that the question can be asked again under different assumptions. Policy is one of those assumptions, and it moves: banking windows, injection caps and time-of-day slabs are set by state commissions and change with each tariff order, and transmission-charge waivers phase out on published schedules. A design optimised under last year’s order can be the wrong design under this year’s, which is one more reason the run has to be cheap enough to repeat. Each of those is unglamorous, and each of them is where a sizing exercise quietly stops being credible. It is also what ES Solve is built to do.

Key Sources#