Supply is capped at the contracted capacity in every hour — the drawee holds a GNA contract demand and cannot draw above it. CUF = energy delivered ÷ (contracted capacity × 8760), scored annually and held as a hard floor in year 1.
%
x
yrs
yrs
% of PPA
% of equity
Group-captive equity is drawn at COD and returned at face value at PPA end, so the developer equity IRR separates from the SPV's. 0 = pure developer equity.
Objective
What to solve ▶
MWp
MW
The solver holds the decided capacity and searches only the battery (and anything you leave free) that reaches the target CUF at the lowest tariff.
CTU
PGCIL charges & ISTS waiver ▶
L/MW/mo
The capacity charge is spread over the units delivered to the customer — never over exchange spill — and lands on the customer’s tariff, not the developer’s opex. The ISTS waiver steps by commissioning date; confirm the ladder against the current CERC sharing regulations before quoting it.
The customer ▶
INR/MW/mo
%
INR/kWh
%
Generation is still injected at the CTU periphery, so the sizing, the dispatch and the CUF are unchanged — all measured at the injection point. What changes is the path to the meter. Losses are taken in kind and cascade, so the customer pays the PPA on units injected but receives fewer: the energy rate at their meter is tariff ÷ (1 − loss). The state charge is a capacity charge like PGCIL and is spread the same way, and it carries no ISTS waiver. Charges are seeded from the state’s published figures — override them with whatever the customer will actually be billed.
INR/kWh
MW
MW
The customer pays for every unit supplied against the contract, and all losses and charges are to their account. Anything the dispatch pushes above the contracted capacity is the developer’s exchange spill — the customer neither receives nor pays for it. So a unit billed is not always a unit used: two rates are reported, the landed tariff per billed unit (what the invoice works out to) and the effective cost per unit actually consumed, which carries the network losses and any surplus delivered above the customer’s instantaneous demand. Savings compare the blended tariff against what the customer pays today.
Excess energy
Excess treatment & limit ▶
%
100 = no limit · 0 = no spill at all. Any value in between is honoured exactly.
Left unlimited in sell mode the solver will oversize and run to the capacity bounds — at a healthy exchange price the marginal MW funds itself on spill.
%
%/yr
Exchange price profile ▶
The hourly merchant price the excess stream sells at (e.g. IEX DAM), 8,760 rows. Its own template, deliberately separate from generation — a zero or missing price column silently overstates every solved tariff. Without an upload the bundled price curve applies; a price upload always wins over any price column inside a generation file.
Bundled exchange price curve.
Dispatch & battery
Battery technical ▶
h
%
%
%
%
The battery discharges into any hour with a deficit — a flat CUF obligation has no window to reserve state of charge for.
Degradation
%/yr
%/yr
Battery degradation schedule (25-yr) ▾
CUF compliance ▶
Which one applies is a commercial question, so it is an input rather than a house rule. Year 1 sizes the battery to clear the target at COD and lets it decay after that. Every year holds the target for the whole term — and it does not mean sizing for 25 years of decay: the battery only has to carry as far as the first augmentation, because each top-up restores it for the cycle that follows. So the binding year is the last one before that first event. Solar and wind decay across that window too, which is why that year binds and every earlier one comes free. Every-year compliance makes augmentation structural, so “None” is switched to “Maintain CUF” and the result says so.
Battery augmentation ▶
yrs
Top-up per event (MWh)
%
The CUF floor binds year 1. Maintain CUF sizes each window's top-up to hold that floor to the end of the window; None lets it decay, which is the default and the conservative offer.
Buildable units & search
Order units & bounds ▶
MW
MWh
MWp
MWp
MW
MWh
MWp
The search is exhaustive, not sampled: every buildable solar × wind cell that could hold the CUF floor and stay inside the excess limit is fully priced, then solar is refined around the winner. Wind moves only in whole turbines; the battery and every top-up are ordered in whole blocks, so the winner is a system that can actually be ordered. Battery may be zero where solar and wind alone clear the target. The budget caps priced cells — if a full walk would not fit, the step is widened and reported, which is still a complete walk of a coarser lattice rather than a sample of a finer one.
Profiles
Generation & price profiles ▶
Download the template, fill the two value columns — solar pu of MWp, wind pu of MW — for all 8,760 hours, and upload it back. The original RTC workbook layout (cols E/F/U) and a 2- or 3-column CSV are accepted too. Leave empty to use the shipped CTU profiles.
Every input in this panel is included, matched back by its Key column — reorder or delete rows freely. Generation profiles are uploaded separately.
Solar CAPEX ▶
Cr/MWp
%
Cr/MWp
%
yr
Cr/MWp
Wind CAPEX ▶
Cr/MW
%
Cr/MW
%
BESS CAPEX ▶
$/kWh
%
%
$/kWh
$/kWh
$/kWh
%
INR/$
Common infra CAPEX ▶
Cr/MW
Cr/MW
Cr/MW
km
Cr/km
Sized on the installed quantum (solar AC + wind), which is also the connectivity figure reported in the results. Instantaneous injection is not capped in this build.
CTU connectivity charges ▶
%
INR/kWh
L/MW/mo
%
Losses thin the billable contracted energy only — never the exchange sale. Charges come off the tariff. The GNA charge applies to the installed quantum, not the contracted capacity.
Other CAPEX & insurance ▶
%
%
%
%
%
Depreciation asset blocks
yrs
yrs
%
%
CAPEX splits pro-rata into an RE block (solar, wind, land, infra) and a battery block, each with its own life and WDV rate. Leave blank to use the project life and the headline WDV — which reduces exactly to a single pool.
Land assumptions ▶
ac/MWp
ac/MW
L/acre
/ac/yr
%
yrs
/ac
O&M ▶
L/MWp
%
L/MW
yrs
%
L/MWh
yrs
%
kWh/MWh
/kWh
%
%
Construction & CAPEX phasing ▶
Draw phasing by construction month, as a % of hard CAPEX. IDC is solved as a fixed point against this, so the column must sum to 100%.
Financing ▶
%
%
%
%
%
yrs
yrs
days
days
months
INR/kWh
%
Tariff override
Price at another tariff ▶
Re-prices the solved sizing on the server — the same engine, so the figures can never disagree with the solve. Recalculate refills the solved tariff.
Loading configuration…
Set your contracted capacity and target CUF, then run the sizing engine.
Run the engine to see the cheapest buildable configuration that holds your target CUF, the supply split and the augmentation schedule.
Contract compliance▾
CUF of supply
—%
Weakest year
—%
Connectivity
—MW
installed quantum
Excess energy
—%
Minimum DSCR
—x
over the debt tenure
Customer outcome▾
Annual savings
₹—Cr
Blended tariff
₹—/kWh
Landed RE tariff
₹—/kWh
Effective RE cost
₹—/kWh
RE penetration
—%
Component
Energy (MWh)
Rate (₹/kWh)
Supply over the life▾
Contracted supply & excess (GWh)
CUF over the project life▾
Annual CUF by operating year
Monthly CUF — year 1
The contract is scored annually, so the monthly chart is diagnostic. A wide seasonal spread is normal on a wind-heavy build and is not a breach — but it is what a monthly availability clause would bite on.
Battery augmentation schedule▾
Augmentation year
Added (MWh)
Blocks
Added (MW)
Cumulative (MWh)
RTC options matrix (Excel)download▾
Every RTC offer a fixed solar + wind build can support. Give each axis its lower and upper bound — the range is divided evenly into six values, both bounds included, so the rows and columns are your numbers. One sheet per excess limit (three limits, three inputs), each carrying two tables — battery capacity and tariff — with contracted capacity down the rows and target CUF across the columns. Cells that cannot be built read Not feasible.
MWp
MW
MW
MW
%
%
%
%
%
Seeded from the fixed capacity in the panel, or from the last solve.
Year-by-year detail▾
Op yr
Annual CUF
Worst month
Supplied (GWh)
Excess (GWh)
Excess share
Battery (MWh)
Run the engine. The financial model shows developer returns at the solved tariff, re-priced live via the tariff override.
Download the results workbook▾
Sizing, a cash flow statement, a balance sheet that balances on every column, and the full 8,760-hour dispatch at the solved configuration. The annual P&L lives on this tab, live and re-priceable, rather than in the file.
Built at the sizing shown above.
Developer returns▾
Project IRR
—%
post-tax, ungeared
Developer equity IRR
—%
SPV —%
Min / Avg DSCR
—x
over the debt tenure
Tariff
₹—/kWh
Returns visualised▾
Profit & loss (₹ Cr)
DSCR by year (1.0x floor)
Revenue split (₹ Cr)
Free cash flow to equity (₹ Cr)
CAPEX & funding▾
Total CAPEX
₹—Cr
Debt
₹—Cr
Equity
₹—Cr
Component
₹ Cr
Share
P&L by year (₹ Cr)▾
Yr
Contract rev
Exchange rev
EBITDA
Depreciation
Interest
Tax
PAT
FCFE
DSCR
Cash flow statement (₹ Cr)▾
Yr
CFO
CFI
CFF
Net change
Closing cash
Balance sheet (₹ Cr)▾
Yr
Net fixed assets
Working capital
Cash
Total assets
Equity
Reserves
Debt
Total L&E
Check
Cash is rolled from the cash flow statement, so assets = liabilities + equity every year. Reserves = retained PAT (no dividend payout modelled); no DSRA or working-capital loan. The Check column is the residual and should read zero throughout.
Indicative-day dispatch for the solved configuration. Each curve is the hour-of-day average across all 365 days — the value at 18:00 is the mean across every evening of the year. Hours on the x-axis, average MW on the y-axis.
Run the engine to see the dispatch profile.
Download the 8,760-hour dispatchfor verification▾
Every hour of the solved year as values, not formulas — total generation, direct supply, battery charging, state of charge, discharging, total supply and supply to excess, hour by hour with column totals in row 2. Sheet Dispatch (8760h) of the results workbook.
Year 1 at the solved configuration.
1 · Generation vs the contracted ceiling
2 · Supply delivered against the contract
3 · Battery charge, discharge & state of charge
4 · Excess to the exchange
Which assumptions actually move the developer's return, and by how much. Every point is re-priced on the same engine at the solved sizing — nothing is re-solved, so the sizing and CUF stay exactly as shown.
Run the engine first. Sensitivity is measured around the solved configuration.
What moves the return▾
Flex each assumption by
%
Each bar moves one assumption up and down on its own, holding everything else at the solved case. The longest bar is what this project is most exposed to.
Assumption
IRR if lower
As solved
IRR if higher
Swing
What changed between your last two runs. Every time you alter an assumption and run again, the previous answer is kept so you can see what the change actually bought you.
Run the engine to start the history.
Only one run so far. Change an assumption and run again, and the two will be compared here side by side.
Runs on this project—
Previous vs latest▾
Measure
Previous
Latest
Change
The current run written up as a board document, table-led and executive: the recommendation, compliance year by year, the dispatch day hour by hour, capital, the three financial statements, the customer’s own arithmetic and a full assumptions register. The current run only — run history stays in Compare runs.
Run the engine first. The report is written from a solved configuration.
Download the reportPDF▾
Fourteen sections: executive summary, method, the recommended build, contract compliance and month-by-month delivery, the average dispatch day, capital cost and funding, P&L, debt service and returns, cash flow, balance sheet, then every assumption the run used. Each exhibit leads its table, and every operating year and every hour of the dispatch day is tabulated, so the length follows the project life.