CoreVecta AtlasPractical knowledge
Economics & life · price per throughput

Storage cost per kWh cycled

Amortise an installed battery bank over every usable kilowatt-hour its rated cycle life delivers, giving stored energy a per-kWh price beside a tariff.

✓ Verified engine No account required

Workspace

The calculator's own fields, action and results arrive with the verified pack when you load it. Nothing is computed in this page.

Verified engine

Calculator

The calculator runs on the same signed pack and certified engine as the CoreVecta apps. It is fetched and verified when you need it, so this page stays light until then.

Nothing is computed in this page. Every figure comes back from the verified engine, or the calculator refuses.

What the engine returns
The engine returns the wear cost of moving one kilowatt-hour through the bank, in currency per kilowatt-hour. Set it against the spread the storage exploits — what the displaced energy would have cost minus what the charging energy did cost. A wear figure that rivals the retail tariff means the cycling is buying hardware, not saving money; one comfortably inside the spread leaves room for the losses and ageing this simple form ignores.
Installed bank cost
Rated cycle life
Usable capacity
MethodThe installed bank cost is divided by the product of rated cycle life and usable energy per cycle, returning the amortised cost per kilowatt-hour cycled; the declared reverse workflow solves for the installed cost a target per-kWh figure permits.
StandardCycle-life throughput cost, cost per kWh cycled = bank cost / (cycle life × usable kWh)
GuardA zero cycle life is refused — the pack ships that refusal as a declared test vector. With no cycles to amortise over the division has no finite answer, and the refusal also catches the blank or defaulted entry a hurried comparison would otherwise never notice.

How the cycled cost moves with the rated cycle life

What a kilowatt-hour through a battery costs, and what that figure leaves out

The denominator is the bank’s lifetime throughput: usable energy per cycle, times the number of cycles the manufacturer rates the cells for before they fade to end of life. Dividing the installed cost by that total converts a capital purchase into a per-unit cost of service — the screening form of levelized cost of storage, whose fuller treatment, with efficiency and lifetime energy discounting inside it, this pack ships as a dedicated sibling.

The figure exists for comparison, and the comparison that matters is a SPREAD. Energy cycled through a bank is bought twice: once at the price that charged it — midday solar, an off-peak tariff — and once in hardware wear, which is what this number prices. Cycling pays only when the value of the displaced energy exceeds the charging price by more than the wear cost, so this page’s output belongs beside a tariff differential, not beside zero.

Cycle life is not a constant of the cells; it is a rating AT a depth of discharge, and the usable energy in the same denominator is set by that same depth. Cycle the bank deeper and each cycle delivers more but the cycle count falls; shallower, and the count rises while each cycle delivers less. The two terms move against each other by design, which is why the honest inputs are a matched pair off one datasheet line — and why the pack carries a depth-versus-life sibling to explore the trade.

What the simplicity omits is systematic, and all of it points one way. Money is not discounted, so a kilowatt-hour delivered in the bank’s last year counts like one this year; round-trip losses are ignored, though every stored kilowatt-hour costs more than one to put in; and calendar ageing is invisible, though a lightly cycled bank dies of age before it dies of cycling. Each omission flatters storage, so the figure is a floor on the true cost — useful precisely because anything that fails the screen at a floor fails it in reality.

The installed bank cost is divided by the product of rated cycle life and usable energy per cycle, returning the amortised cost per kilowatt-hour cycled; the declared reverse workflow solves for the installed cost a target per-kWh figure permits.

When this calculation is used

  • Comparing chemistries or quotations whose price, cycle life and usable capacity all differ, on one per-kilowatt-hour scale.
  • Testing whether storing midday solar beats exporting it, by holding the wear cost against the gap between export and retail prices.
  • Screening tariff-arbitrage schemes, where charging off-peak only pays if the peak/off-peak spread clears this figure with margin for losses.
  • Solving backwards — the declared reverse workflow — for the installed price a target wear cost permits, which turns a business case into a purchasing ceiling.

Worked example

Price the cluster’s reference bank: an installed cost of $6,000, cells rated for 3,000 cycles at their design depth of discharge, delivering 10 kWh of usable energy per cycle.

The engine returns the wear cost of moving one kilowatt-hour through the bank, in currency per kilowatt-hour. Set it against the spread the storage exploits — what the displaced energy would have cost minus what the charging energy did cost. A wear figure that rivals the retail tariff means the cycling is buying hardware, not saving money; one comfortably inside the spread leaves room for the losses and ageing this simple form ignores.

Now double the rated cycle life at the same price and the wear cost halves — which is why cycle life, not nameplate, is the number to interrogate hardest in a storage quotation, and why a cheap bank with a short life is so often the expensive one.

What each input represents

Installed bank cost

The all-in price of the working storage system — cells, battery management, enclosure, installation labour — net of any incentive actually received. Cell price alone understates the figure badly, and a cost that omits installation produces a wear rate no real project will ever see.

Rated cycle life

The number of full cycles the manufacturer rates the bank for before capacity fades to the end-of-life threshold, AT the design depth of discharge. The default is illustrative; the datasheet figure for the chosen chemistry and depth is the only number that means anything, and it must be the same depth the usable-capacity entry assumes.

Usable capacity

The energy one cycle actually delivers, in kilowatt-hours — the nameplate discounted by the depth of discharge, as this cluster’s second page computes it. Entering the label figure here inflates the lifetime throughput and makes the storage look cheaper per kilowatt-hour than it can ever be.

Assumptions and limits

  • Every rated cycle is assumed to deliver the full usable energy; real service mixes partial cycles, and throughput counted in full-cycle equivalents is only an approximation of it.
  • The cycle life and the usable capacity must describe the same depth of discharge — mixing a deep-cycle energy figure with a shallow-cycle life rating overstates the throughput on both ends.
  • Money is undiscounted: the upfront cost is spread evenly over kilowatt-hours delivered across many future years, with no time value applied.
  • Round-trip losses, calendar fade and end-of-life capacity decline are all outside the division; this pack’s efficiency, degradation and replacement-horizon siblings price each separately.

What the guards protect against

  • A zero cycle life is refused — the pack ships that refusal as a declared test vector. With no cycles to amortise over the division has no finite answer, and the refusal also catches the blank or defaulted entry a hurried comparison would otherwise never notice.
  • The installed cost must be positive and below a project-scale cap: a free bank prices its energy at nothing and a figure beyond the cap is a currency or magnitude slip, and each is refused rather than dressed up as economics.
  • The usable capacity must be positive and inside the utility-scale band, so a watt-hour entry — a thousandfold error — is refused as a unit mistake instead of quietly making the storage look a thousand times cheaper.

Provenance

Cycle-life throughput cost, cost per kWh cycled = bank cost / (cycle life × usable kWh)

The installed bank cost is divided by the product of rated cycle life and usable energy per cycle, returning the amortised cost per kilowatt-hour cycled; the declared reverse workflow solves for the installed cost a target per-kWh figure permits.

Screening and reference material, to be checked against the governing standard and a qualified engineer; not a design determination. The signed pack carries its own citation, and the page reports the verification state of the release it mounted.