PV system size calculator: how an electricity bill becomes 8.77 kWp

An energy demand calculator in a B2B store with the system size result in kWp and the balance of energy exported to the grid

The customer doesn't know how much energy they use — they know how much they pay: 431.67 zł a month. From that single amount the calculator derives annual consumption, the balance of energy exported to the grid and bought back, and finally the number that really matters — a target system size of 8.77 kWp. Along the way something happens that most quick converters skip: the size doesn't end with dividing consumption by the efficiency of the roof. This article shows what else goes into it and why.

An energy demand calculator in a B2B store: bill and consumption fields next to a result card with the target size in kWp and the balance of energy exported to the grid
Bill and consumption are one field calculated both ways. On the right — the target size and the balance it comes from.

Why this is harder than it looks

At first glance, sizing a PV system is a one-division task: divide annual consumption by the yield per kilowatt-peak and you're done. In reality three things stand between those two numbers, and each of them can shift the result by over ten percent — that is, by two or three modules and one inverter size.

The first is roof geometry: the same kilowatt-peak on a south-facing roof with a moderate pitch and on a steep east–west roof gives two completely different annual yields. The second is grid settlement: energy exported in summer doesn't come back one-to-one in winter, because it is sold for less than it is bought back. The third is self-consumption, the part of production that never reaches the grid at all and so isn't subject to that settlement.

The calculator handles all three, and that is exactly why its result is often over ten percent higher than simple division. Companies that sell PV systems know this number and base their quotes on it.

The starting point: the customer knows the bill, not the consumption

The form has two fields — the monthly bill in złoty and annual consumption in megawatt-hours — and they are one field calculated both ways. Entering one recalculates the other. Naturally it works in both directions, and it's most often used starting from the bill, because the customer has the bill on their phone, while they'd have to look up consumption on the settlement invoice.

The price isn't entered by hand — it comes from the tariff chosen from a list. And the tariff carries two prices, not one: the purchase price for energy drawn from the grid and the sale price for energy exported. That difference is the core of the whole calculation that follows, and for a business customer it can be even sharper than for a household. Tariffs are market data, maintained centrally — the company doesn't fill them in.

Roof efficiency: a table instead of a single number

The pitch and orientation of the roof enter the calculation through an efficiency table, in which the optimal conditions for Poland serve as the reference point and everything else is a deviation from them.

The table says a few counterintuitive things. On an almost flat roof, orientation hardly matters — the differences come more from how cloud cover is distributed over the day than from the azimuth. An east–west layout loses the most only on steep roofs, and on a roof with a moderate pitch it is surprisingly competitive. A vertical installation on a south-facing wall does noticeably worse than a roof, but not so badly that it should be dismissed out of hand.

When no orientation is given — ground-mounted systems, trackers — the roof doesn't limit the yield and efficiency takes the reference value.

Exact parameters mode

Pitch ranges and four compass directions are a grid good enough for a quote, but not for every roof. That's why the calculator has a second mode in which you enter the actual angle and the actual azimuth, and efficiency is read from a 130-row table instead of the simplified matrix. The difference is often small, but in projects where a few tenths of a kilowatt-peak decide the choice of inverter, it stops being irrelevant.

The balance: what happens to energy exported to the grid

This is where the part that simple division lacks begins. In summer the system produces more than the house uses at any given moment — the surplus goes to the grid. In winter it's the other way round, and energy has to be bought back. The problem is that you export for less than you buy, so the energy balance is not a financial balance.

The result card shows this calculation in five lines: how much energy the customer will use on the spot, how much they will export to the grid, how much they will get for the exported energy, how much they will pay for energy bought back, and the difference left to pay. In the example in the screenshot, that difference is almost a thousand złoty a year — for a system sized "to consumption", that is, theoretically ideal.

Most conversations about PV end at that amount. The calculator goes one step further.

Why the target size is larger than "consumption divided by efficiency"

If a system sized to consumption alone still leaves an amount to pay, the natural question is: how much capacity has to be added so that there's nothing left to pay? The calculator answers it with two increments.

The first makes up for the loss due to the roof's orientation — the worse the roof, the more capacity is needed to produce the same amount of energy. The second covers the energy the customer will buy from the grid anyway after the surplus is settled, turning the financial loss back into kilowatt-peaks.

In the example in the screenshot the roof is optimal, so the first increment is zero and the entire difference between consumption and target size comes from the second. On a less favourably oriented roof the proportions reverse: the first increment starts to dominate and the total comes out noticeably higher. That's why two quotes for "a house using the same amount of energy" can differ by several modules — and neither is wrong; they differ in the roof data.

From kilowatt-peaks to units

The target size is a number you can't order. What you can order is a set of modules and an inverter — and that's where the calculator ends.

The number of panels follows from the power of a single module entered on the product and is rounded up, because you can't buy half a module. The inverter is chosen differently — by the system size range entered on the specific product, not by comparing rated power with the result. DC-side oversizing is a design decision that depends on the model, so it's set by whoever knows that model. A product without a range entered is not suggested at all.

A PV panel catalog in a B2B store with net prices and the customer's discount shown
The suggested products come from the same catalog and the same price list as the store — including this customer's discount.

The price of the set, not the price of one unit

Suggestions are priced through the same mechanism the store uses to calculate prices in the cart — and, importantly, with the quantity of the whole set. That isn't an accounting detail: quantity discount thresholds are counted from the real number of units, so a set of twenty panels can fall into a completely different threshold than a single module.

For panels the tile also has a stepper. Changing the quantity recalculates both the price and the power coverage at the same time, so matching the number of modules to what really fits on the roof stops being a shot in the dark. The stepper is capped by the stock level, and when there aren't enough units for the set, the item stays at the end of the list with a badge saying how many are available. The sales rep sees this immediately, not after the order is placed.

Filtering works the same way as for heat pumps in the heat demand calculator: out of stock and an incompatible number of phases remove the item entirely, while phases not specified on the company's side only push it behind the compatible products.

What this calculator doesn't calculate

The tool's limits are as important as its mechanism, because they decide when you can rely on it:

  • Shading. A chimney, a tree or a neighbouring building doesn't enter the calculation. Roof efficiency describes geometry, not surroundings.
  • Several roof surfaces at once. A calculation describes one orientation; a system split across two roofs with different azimuths needs two calculations or an averaged value.
  • Energy storage. A battery changes self-consumption, and therefore the whole balance — but it enters the calculation only through a manually set self-consumption share.
  • Module degradation and tariff changes over time. The calculation is annual and static; it's sizing, not a twenty-year return-on-investment analysis.
  • Connection capacity and grid operator conditions. The number of phases is used only to filter units, not to check whether the operator will issue connection conditions.

None of these limits is accidental. Adding each further dimension — several roof surfaces, an hourly consumption profile, battery simulation — would turn a sales tool into a design tool, which is something an installer won't fill in with the customer at the kitchen table.

Self-consumption: the field that changes the result the most

Of all the inputs, the self-consumption share is the most underrated. It goes straight into the balance: the more energy the customer uses on the spot, the less goes to the grid, the smaller the loss on the price difference and the less capacity is needed to cover it. The difference between a household that uses electricity mainly in the evening and one with a heat pump and an EV charger can take a whole module off the system.

A customer who moves laundry and water heating to midday really does change the required system size. That's why the field is editable rather than a fixed constant. A question about how consumption is spread over the day changes the quote more than most questions about the building itself.

How you know it calculates correctly

The energy calculator has a regression test with 45 cases. They cover the bill ↔ consumption conversions, the full efficiency table and edge cases: no orientation given, a pitch outside the ranges and the exact parameters mode.

The tests run on every change to the algorithm or to the tariff data, so a fix in one place won't quietly shift the result in another.

Frequently asked questions

Why is the result higher than simply dividing consumption by yield?

Because, besides the loss from roof efficiency, the calculator also covers the financial loss on grid settlement. Exported energy is sold for less than it is later bought back for; that difference, converted back into capacity, adds more kilowatt-peaks to the system.

Do I enter the bill or the consumption?

Whichever the customer has to hand. Both fields are one value calculated both ways at the price from the chosen tariff. Consumption from the settlement invoice is more accurate, because the monthly bill is often a forecast rather than a reflection of actual usage.

What do I enter for a ground-mounted system or trackers?

Leave the orientation unspecified — then the roof doesn't limit the yield. The pitch isn't needed in that case.

Where do I get the self-consumption share from?

From the customer's consumption profile. A household whose members work away from home will have a lower share; a house with a heat pump, air conditioning or an EV charger a noticeably higher one. The field changes the result so much that it's better to ask than to leave the default value.

Why doesn't the calculator account for shading?

Because shading requires data about the surroundings that can't be collected in a form filled in with the customer. The result describes the potential of a roof with the given geometry; the installer applies a correction for a chimney or a tree deliberately, by assuming a more conservative scenario.

Why is the number of panels rounded up?

Because you can't buy half a module, and a system below the target size doesn't cover the balance that size was calculated for. The stepper on the tile lets you go lower if that many modules don't fit on the roof.

Can I use the calculator for businesses, not just homes?

Yes — tariffs have separate prices for business customers, and the difference between the purchase price and the buy-back price is usually bigger there, so the second capacity increment is more pronounced. The other limits, however — one roof surface, no battery, no hourly profile — weigh more for industrial installations.

Does the store's customer see the calculation breakdown?

No. They see the result, the balance and the suggested products. The breakdown into components and the parameter weights are trimmed on the API side, not just hidden in the interface — so they aren't in the server response either.

What if no inverter in my catalog fits?

The list will be empty and you'll get a message saying so — a different one from the message shown when no category is tagged. That usually means one of two things: either the result falls outside the ranges entered on the products, or nobody has filled the ranges in. An empty catalog here is information, not a failure.

Can a calculation be saved and revisited later?

Yes. Every customer has their own list of calculations in the store; loading one restores the form, and the next save overwrites the same record. The company sees all customers' calculations in the panel — with the same data and the same result.

We've described the three renewable-energy calculators separately, because each answers a different question: PV mounting, building heat demand and this one. What connects them — and why an industry tool only makes sense on a working sales platform — is in the article on dedicated tools in B2B. The whole picture in the context of the industry: vendispace for renewable energy.

Read also

Start selling B2B under your own brand.

Free FreeSpace account: add a product, invite a customer, take your first order. No card, no commitment.

Create a free account

Have a question? Write to us.