Energy as a Service
Design a hybrid site and price it. Change any input and every figure below re-computes immediately — the same engines that price a real quote. Nothing here posts to the ledger, and no figure includes tax.
No site saved yet — pick or name a project below, plus a reference and country, to create one on first save. Every save after that updates this exact site.
Running on a latitude-band irradiance ESTIMATE — not measured data.
Learn more →Quick start
Quick conditions
Tap again to turn a condition back off — solar and outage hours are restored to what they were.
Quick optimum design
Pick an objective — each runs a real redesign for this site, shown below before anything is applied.
Site & load
Solar & weather
Supercapacitor
Landed cost
Costs & commercial
Total cost of ownership — summary
IRR and breakeven are against the diesel-only baseline directly above — switching FROM running a generator 24/7 TO this hybrid option.
| Option | Initial capex | Replace every | Annual fuel (Y0) | NPV over term | IRR vs baseline | Breakeven |
|---|---|---|---|---|---|---|
| Diesel only (baseline) | — | — | 8,351 L (AED 8,768) | AED 71,315 | — | — |
| VRLA | AED 21,584 | 2.4 yr | 0 L (AED 0) | AED 59,527 | never pays back | Y2 +10mo |
| Lithium (LFP) | AED 9,372 | 12.0 yr (outlasts term) | 0 L (AED 0) | AED 34,548 | 139.4% | Y1 +9mo |
| Supercapacitor | AED 5,325 | 25.0 yr (outlasts term) | 0 L (AED 0) | AED 7,686 | never pays back | Y0 |
Chemistry comparison
Sorted by cost per kWh actually DELIVERED over life — not sticker price, which usually ranks them differently. Typical published figures; replace with your supplier's datasheet at your real operating temperature.
| Chemistry | Buy | Life | Limited by | /kWh delivered | Cost /year |
|---|---|---|---|---|---|
| Supercapacitor | AED 4,260 | 25 yr | calendar | AED 0.0276 | AED 182 |
| Lithium iron phosphate (LFP) | AED 3,124 | 12 yr | calendar | AED 0.0744 | AED 338 |
| Flooded lead-acid | AED 3,408 | 3.24 yr | cycles | AED 0.5424 | AED 1,336 |
| VRLA sealed lead-acid (AGM/gel) | AED 4,544 | 2.43 yr | cycles | AED 0.7413 | AED 1,988 |
Tariff options
Pre-tax. Pick the payback you want and read across. A rate marked * is the nearest reachable year — payback moves in whole years — and is still a valid quote.
| Payback | Structure | Rate /kWh | Capacity fee /kW/mo | Actual payback | IRR |
|---|---|---|---|---|---|
| 2 yr | Single rate | AED 0.4080 | — | 2 yr | 48.4% |
| 2 yr | Two-part | AED 0.3378 | AED 50.00 | 2 yr | 49.2% |
| 3 yr | Single rate | AED 0.2971 * | — | 4 yr | 30.5% |
| 3 yr | Two-part | AED 0.2252 | AED 50.00 | 3 yr | 31.5% |
| 4 yr | Single rate | AED 0.2427 | — | 4 yr | 20.9% |
| 4 yr | Two-part | AED 0.1689 | AED 50.00 | 4 yr | 22.0% |
| 5 yr | Single rate | AED 0.2108 | — | 5 yr | 14.9% |
| 5 yr | Two-part | AED 0.1351 * | AED 50.00 | 6 yr | 16.0% |
| 6 yr | Single rate | AED 0.1902 * | — | 7 yr | 10.7% |
| 6 yr | Two-part | AED 0.1126 | AED 50.00 | 6 yr | 11.7% |
| 7 yr | Single rate | AED 0.1762 | — | 7 yr | 7.7% |
| 7 yr | Two-part | AED 0.0965 * | AED 50.00 | 8 yr | 8.5% |
| 8 yr | Single rate | AED 0.1662 | — | 8 yr | 5.4% |
| 8 yr | Two-part | AED 0.0844 * | AED 50.00 | 9 yr | 6.0% |
Recommended design
Solar sizing options
Same generator, rectifier, and load — what changes at each fixed solar size you could actually install.
| Solar | Battery | Total capex | Annual diesel | Levelised $/kWh | Shortest payback | Best IRR |
|---|---|---|---|---|---|---|
| None | 0.0 kWh | AED 7,441 | 3,504 L | AED 0.280 | 2 yr | 42.8% (2 yr) |
| 5.0 kWp | 0.0 kWh | AED 11,191 | 1,266 L | AED 0.180 | 2 yr | 47.0% (2 yr) |
| 10.0 kWp | 0.0 kWh | AED 13,065 | 0 L | AED 0.130 | 2 yr | 48.2% (2 yr) |
| 15.0 kWp | 0.0 kWh | AED 16,815 | 0 L | AED 0.140 | 3 yr | 30.4% (3 yr) |
| 20.0 kWp | 0.0 kWh | AED 20,565 | 0 L | AED 0.150 | 2 yr | 48.5% (2 yr) |
| 25.0 kWp | 0.0 kWh | AED 24,315 | 0 L | AED 0.170 | 3 yr | 30.6% (3 yr) |
Each row's battery is sized by the same real optimal search used elsewhere on this page (smallest real size that stays within this chemistry's own cycle-life ceiling) — it does not yet account for solar reducing what the battery needs to bridge, so it is a real, safe answer, not necessarily the smallest battery solar could theoretically allow.
Site configuration
Solar production by month
16,932 kWh/year · best July (1,747) · worst December (1,003) · seasonal ratio 0.575 · average daily production overlaid on the right axis
Diesel needed by month
No diesel expected in any month — storage and solar cover the outage year-round.
24-hour supply mode — December (worst month)
Grid, solar, battery and generator stack to the 3 kW load every hour. No generator needed on this representative day. Lowest state of charge: 13.37 kWh.
Generator run pattern
Battery cycling — December (worst month)
Cycling between 20% and 90% SoC.
31DG status
State of charge (replaces voltage)
Charge/discharge current (approximate, 48V DC assumed)
Generator hours by month
No generator hours in any month — storage and solar carry the site year-round.
Capex by scenario — solar and outage duration34
Capex and annualised storage cost by technology35
Same site, same outage, same solar target — only the storage chemistry changes.
Scenario detail — grid availability and solar
| Scenario | Solar | Battery | Total capex | Annual diesel | Generator hrs/yr |
|---|---|---|---|---|---|
| With solar (45%) | 10.57 kWp | 28.4 kWh | AED 17,753 | none | — |
| Without solar (0%) | none | 7.1 kWh | AED 8,506 | 3,504 L | 1,095 |
| Fully off-grid (24h) | 10.57 kWp | 92.3 kWh | AED 29,214 | 5,782 L | 1,738 |
| Partial (6h) | 10.57 kWp | 21.3 kWh | AED 16,688 | none | — |
| Partial (4h) | 10.57 kWp | 14.2 kWh | AED 15,623 | none | — |
Improving the return37
This design reaches 49.2% IRR, at or above the 15% target.
See the 3 levers that could improve it →Price required per payback period
Single-rate tariff, AED/kWh. Shortest achievable payback: 2 years.
Technology comparison — full detail
Each row is this exact site, fully redesigned for that chemistry. Battery size differs because each chemistry has its own depth of discharge and round-trip efficiency — sorted cheapest-to-own first.
| Chemistry | Battery | Total capex | Annual diesel | /kWh delivered (life) | Annualised storage |
|---|---|---|---|---|---|
| Supercapacitorbest value | 28.4 kWh | AED 17,753 | none | AED 150.00 | AED 170/yr |
| Lithium iron phosphate (LFP) | 49.7 kWh | AED 18,960 | none | AED 110.00 | AED 456/yr |
| Flooded lead-acid | 85.2 kWh | AED 23,717 | none | AED 120.00 | AED 3,397/yr |
| VRLA sealed lead-acid (AGM/gel) | 78.1 kWh | AED 25,989 | none | AED 160.00 | AED 5,204/yr |
Total cost of ownership
Diesel-only baseline (no hybrid at all) against a real redesign in each chemistry, over 10 years at 12% discount / 5% inflation. VRLA and lithium include real air-con capex and its own continuous load; supercapacitor needs neither.
What to check (17 items)
- Of this battery's 27.45 kWh usable requirement, 21.6 kWh is a WEATHER RESERVE — capacity held back specifically to survive 2 consecutive poor-weather day(s) at solar's 45% share of load, not routine day-to-day cycling. The remaining 5.85 kWh covers the ordinary 2 h bridge/autonomy duty. This reserve grows directly with how much solar this design leans on and how many poor-weather days it must survive — a bigger solar share or a longer poor-weather requirement both grow this line, not the routine cycling duty. Set consecutivePoorWeatherDays to 0 to see the battery size without this reserve.
- Battery/supercapacitor sized to bridge 2 h between generator on-cycles (CYCLE_BRIDGING), not the full 8 h outage. Daily generator runtime below is UNCHANGED by this choice — it is still the same daily energy balance (outage energy less what solar can produce), which does not depend on storage size. What this choice DOES change is how the generator's daily runtime is split into cycles, and how many times a day it starts — neither of which this day-level model can itself compute. Run hourlyDispatch.ts's simulation with this exact battery/supercap size, the real rectifier capacity, and the chemistry's own charge-rate limit to see the actual cycle count and confirm it matches real-world expectations before committing to this size.
- No measured irradiance data is in use — monthly output is based on a LATITUDE-BAND ESTIMATE and is indicative only. Import real data (PVGIS, NASA POWER or a site survey) before pricing a tender or committing to a diesel budget.
- This diesel forecast rests on ESTIMATED irradiance, not measured data. Treat the monthly litres as indicative until real solar data is imported — fuel is usually the largest operating cost, so an estimate here propagates straight into the tariff.
- With solar (45%): Of this battery's 27.45 kWh usable requirement, 21.6 kWh is a WEATHER RESERVE — capacity held back specifically to survive 2 consecutive poor-weather day(s) at solar's 45% share of load, not routine day-to-day cycling. The remaining 5.85 kWh covers the ordinary 2 h bridge/autonomy duty. This reserve grows directly with how much solar this design leans on and how many poor-weather days it must survive — a bigger solar share or a longer poor-weather requirement both grow this line, not the routine cycling duty. Set consecutivePoorWeatherDays to 0 to see the battery size without this reserve.
- With solar (45%): Battery/supercapacitor sized to bridge 2 h between generator on-cycles (CYCLE_BRIDGING), not the full 8 h outage. Daily generator runtime below is UNCHANGED by this choice — it is still the same daily energy balance (outage energy less what solar can produce), which does not depend on storage size. What this choice DOES change is how the generator's daily runtime is split into cycles, and how many times a day it starts — neither of which this day-level model can itself compute. Run hourlyDispatch.ts's simulation with this exact battery/supercap size, the real rectifier capacity, and the chemistry's own charge-rate limit to see the actual cycle count and confirm it matches real-world expectations before committing to this size.
- Without solar (0%): Battery/supercapacitor sized to bridge 2 h between generator on-cycles (CYCLE_BRIDGING), not the full 8 h outage. Daily generator runtime below is UNCHANGED by this choice — it is still the same daily energy balance (outage energy less what solar can produce), which does not depend on storage size. What this choice DOES change is how the generator's daily runtime is split into cycles, and how many times a day it starts — neither of which this day-level model can itself compute. Run hourlyDispatch.ts's simulation with this exact battery/supercap size, the real rectifier capacity, and the chemistry's own charge-rate limit to see the actual cycle count and confirm it matches real-world expectations before committing to this size.
- Without solar (0%): Rectifier auto-sized to 6 kW -- the generator's full real output (3 kW) rounded up to the next 3 kW increment -- so the generator, not the rectifier, limits how fast energy reaches the load and the battery. The bare minimum to serve the 3 kW load alone would be only 3.33 kW, which would leave almost no capacity to charge storage during generator run-hours. Set fixedRectifierKw to override with a real purchasable size.
- Fully off-grid (24h): Of this battery's 82.65 kWh usable requirement, 64.8 kWh is a WEATHER RESERVE — capacity held back specifically to survive 2 consecutive poor-weather day(s) at solar's 45% share of load, not routine day-to-day cycling. The remaining 17.85 kWh covers the ordinary 6 h bridge/autonomy duty. This reserve grows directly with how much solar this design leans on and how many poor-weather days it must survive — a bigger solar share or a longer poor-weather requirement both grow this line, not the routine cycling duty. Set consecutivePoorWeatherDays to 0 to see the battery size without this reserve.
- Fully off-grid (24h): Battery/supercapacitor sized to bridge 6 h between generator on-cycles (CYCLE_BRIDGING), not the full 24 h outage. Daily generator runtime below is UNCHANGED by this choice — it is still the same daily energy balance (outage energy less what solar can produce), which does not depend on storage size. What this choice DOES change is how the generator's daily runtime is split into cycles, and how many times a day it starts — neither of which this day-level model can itself compute. Run hourlyDispatch.ts's simulation with this exact battery/supercap size, the real rectifier capacity, and the chemistry's own charge-rate limit to see the actual cycle count and confirm it matches real-world expectations before committing to this size.
- Fully off-grid (24h): Rectifier auto-sized to 6 kW -- the generator's full real output (3 kW) rounded up to the next 3 kW increment -- so the generator, not the rectifier, limits how fast energy reaches the load and the battery. The bare minimum to serve the 3 kW load alone would be only 3.33 kW, which would leave almost no capacity to charge storage during generator run-hours. Set fixedRectifierKw to override with a real purchasable size.
- Partial (6h): Of this battery's 20.55 kWh usable requirement, 16.2 kWh is a WEATHER RESERVE — capacity held back specifically to survive 2 consecutive poor-weather day(s) at solar's 45% share of load, not routine day-to-day cycling. The remaining 4.35 kWh covers the ordinary 1.5 h bridge/autonomy duty. This reserve grows directly with how much solar this design leans on and how many poor-weather days it must survive — a bigger solar share or a longer poor-weather requirement both grow this line, not the routine cycling duty. Set consecutivePoorWeatherDays to 0 to see the battery size without this reserve.
- Partial (6h): Battery/supercapacitor sized to bridge 1.5 h between generator on-cycles (CYCLE_BRIDGING), not the full 6 h outage. Daily generator runtime below is UNCHANGED by this choice — it is still the same daily energy balance (outage energy less what solar can produce), which does not depend on storage size. What this choice DOES change is how the generator's daily runtime is split into cycles, and how many times a day it starts — neither of which this day-level model can itself compute. Run hourlyDispatch.ts's simulation with this exact battery/supercap size, the real rectifier capacity, and the chemistry's own charge-rate limit to see the actual cycle count and confirm it matches real-world expectations before committing to this size.
- Partial (4h): Of this battery's 13.65 kWh usable requirement, 10.8 kWh is a WEATHER RESERVE — capacity held back specifically to survive 2 consecutive poor-weather day(s) at solar's 45% share of load, not routine day-to-day cycling. The remaining 2.85 kWh covers the ordinary 1 h bridge/autonomy duty. This reserve grows directly with how much solar this design leans on and how many poor-weather days it must survive — a bigger solar share or a longer poor-weather requirement both grow this line, not the routine cycling duty. Set consecutivePoorWeatherDays to 0 to see the battery size without this reserve.
- Partial (4h): Battery/supercapacitor sized to bridge 1 h between generator on-cycles (CYCLE_BRIDGING), not the full 4 h outage. Daily generator runtime below is UNCHANGED by this choice — it is still the same daily energy balance (outage energy less what solar can produce), which does not depend on storage size. What this choice DOES change is how the generator's daily runtime is split into cycles, and how many times a day it starts — neither of which this day-level model can itself compute. Run hourlyDispatch.ts's simulation with this exact battery/supercap size, the real rectifier capacity, and the chemistry's own charge-rate limit to see the actual cycle count and confirm it matches real-world expectations before committing to this size.
- VRLA sealed lead-acid (AGM/gel): At 365 cycles a year this battery reaches its rated 600 cycles in about 1.64 years — SHORTER than its 5-year warranty. The duty cycle, not the warranty, is what will determine replacement timing.
- Flooded lead-acid: At 365 cycles a year this battery reaches its rated 800 cycles in about 2.19 years — SHORTER than its 6-year warranty. The duty cycle, not the warranty, is what will determine replacement timing.