Skip to content
EV Charging Financial Model

EV Charging Financial Model

The Idea

There is a particular kind of optimism that only strikes after midnight, somewhere between the second coffee and the realization that four Alpitronic HYC300 chargers cost as much as a small apartment. The optimism goes like this: what if I just built a charging park? Eight charging points, a little canopy, maybe a car wash and a row of vacuums for the people who like to detail their car at 23:00 on a Tuesday.

The responsible thing to do, before signing anything, is to build a spreadsheet. I did not build a spreadsheet. I built a React + TypeScript app with Recharts, Tailwind, and a Zustand store, because if I’m going to be told that my dream is financially unsound, I want it told to me with a responsive donut chart.

This is what the model does, and what it had the nerve to tell me.

The app is live at fun.altbrot.at — drag the sliders, watch the heatmap change colour, and discover your own reasons not to build a charging park. No download, no sign-up, no judgement (except from the traffic lights).

The CAPEX, or: where the money goes to die

The model opens on a Dashboard with ten KPI cards, each fitted with a little traffic light — green, yellow, red — so that you can experience disappointment in colour. But the real character-building happens on the Investition tab, where the total investment is assembled one line item at a time.

Four chargers at €50,000 each is €200,000, which feels like a lot until you scroll down to the line that says grid connection: €140,000. That’s right — wiring the things up to the actual electricity costs nearly as much as two of the four chargers combined. Nobody warns you about this. The chargers are the glamorous part; the grid connection is the part where a utility company looks at your dream and quietly attaches a price to it.

After that come civil works (€25k per station), a canopy so people don’t charge in the rain, a €100k car wash, four vacuum units, branding, IT, and a small land deposit. The model then adds two of my favourite line items in all of finance:

Sum of line items
+ Planning costs   (5%  of the sum)
+ Contingency      (10% of the sum incl. planning)
= Total investment ≈ €793,000

Contingency is the line where you formally admit, in writing, that you don’t know what’s going to happen. It is the most honest number in the entire model and it is 10%. Personal experience suggests this is roughly one-third of what it should be.

The car wash, the vacuums, and the canopy are all toggles. Turning them off makes the total investment smaller and the loneliness of the project larger. I left them on.

Revenue, or: optimism in a tooltip

The Erlöse tab is where the model earns its keep, because revenue from a charger is not “price × hope.” It’s a chain of multiplications, each of which is an invitation to deceive yourself:

Charging time   = (45 kWh / 300 kW) × 60 = 9 minutes
Session length  = 9 min + 15 min standstill overhead = 24 min
Max sessions/day = floor(points × operating minutes / session length)
Effective sessions = max sessions × utilization

That 15-minute standstill overhead is the model’s quiet acknowledgement that humans exist. The car finishes charging in nine minutes; the human finishes their coffee, their phone call, and their existential pause in the driver’s seat some time later. The chargers don’t earn money during the pause.

Then there’s utilization, which ramps linearly from 12% in year one to 22% by year three. Read that again. The base case — the realistic case — assumes the eight charging points sit completely idle roughly 80% of the time. This is apparently normal and fine and how the entire industry works, which is a sentence that should keep someone awake at night, and that someone is now me.

A few more delightful details the model insists on modelling correctly:

  • B2B customers get a discount on their share of the revenue. The friends-and-fleet rate.
  • PSP fixed fee: €0.10 per transaction. A tiny toll booth that opens every single time anyone taps a card.
  • Charger efficiency: 93%. You buy electricity, 7% of it becomes heat and regret, and you sell the rest.

The three scenarios and their honest colors

There are three pre-baked scenarios, and whoever assigned the colours was not in a generous mood:

ScenarioColourUtilizationCharging priceElectricity
Konservativ#DC2626 (red)8% → 15%€0.54/kWh€0.18/kWh
Base Case#2563EB (blue)12% → 22%€0.59/kWh€0.15/kWh
Optimistisch#16A34A (green)16% → 30%€0.64/kWh€0.12/kWh

The optimistic scenario assumes you sell more electricity, at a higher price, while buying it cheaper. It is the scenario in which the universe actively cooperates with you. It is green for “go” and also, I suspect, green for “good luck with that.” The conservative one is red, low, expensive, and is the only one I trust, because pessimism has never once let me down.

CAPEX and financing are held identical across all three scenarios. The only things that move are utilization and prices. This is a polite way of saying: the build costs what it costs regardless of how the dream goes.

The heatmap that knows too much

The Analyse tab contains a 9×9 sensitivity matrix: charging price (€0.39–0.79) on one axis, utilization (8–30%) on the other, with each cell showing year-3 EBITDA. Red cells lose money, green cells make it, yellow cells are the breakeven knife-edge where the whole thing wobbles.

It is, functionally, a mood ring for €793,000. The currently selected scenario gets a yellow border so you can find your exact spot on the map between “fine” and “ruin.” I spent an embarrassing amount of time dragging the price slider just to watch a column of cells change colour, which is the financial-modelling equivalent of poking a bruise.

Right next to it sits a break-even curve — EBITDA plotted against utilization — and a vertical line marking where you’ve decided to land. The point where the curve crosses zero is the minimum utilization at which the park covers its operating costs before interest, depreciation, and paying anyone back. It is a smaller number than you’d hope and a larger number than you’d like.

Newton-Raphson does not care about your feelings

The financing engine is where the model stops being a toy. It runs a proper annuity loan schedule:

Annuity = Loan × (r·(1+r)ⁿ) / ((1+r)ⁿ − 1)

…splits every payment into interest and principal, feeds the interest into the P&L as an expense and the principal into the cash-flow statement, and — this is the part I’m unreasonably proud of — adds depreciation back in the cash flow, because depreciation is an expense that never actually leaves your bank account. The money already left, years ago, in one traumatic lump on the Investition tab.

The IRR is computed by Newton-Raphson iteration over the equity cash-flow series, starting at −equity and converging “typically in a few steps.” There is no kinder way to describe what that algorithm does. You hand it your hopes as a series of numbers and it returns a single percentage with no commentary, no encouragement, just a value next to a traffic light that is green if IRR ≥ 10% and otherwise not green. The NPV discounts the same series at 8%, which is the opportunity cost of not simply leaving the money in something boring.

And then there’s the 24% Körperschaftsteuer at the bottom of the P&L, because the one scenario nobody models away is the tax office.

The dashboard interpolates the break-even month linearly between years. So you don’t just learn whether you get your money back — you learn, to the month, when. Mine, in the base case, was further out than I’d care to print here.

Tech Stack

LayerChoice
UIReact + TypeScript
ChartsRecharts (donut, break-even curve, heatmap)
StateZustand store
StylingTailwind CSS
MathHand-rolled annuity schedule + Newton-Raphson IRR, no finance library

What I learned

Three things.

First, the grid connection will get you. Budget for it emotionally before you budget for it financially.

Second, a charger that stands idle 80% of the time is, apparently, a healthy charger. The whole business is a bet on a number — utilization — that you cannot directly control, dressed up in eight tabs of charts that make you feel like you can.

Third, and most importantly: building the model was the cheapest, most honest part of the entire venture. For the price of a weekend and some npm install, I got a tool that lets me discover precisely how my plan fails before spending €793,000 discovering it the other way. The donut chart is just a bonus.

I have not built the charging park. But I have a very nice React app that explains, in green, yellow, and red, exactly why I should think about it a little longer.

Last updated on