Language : EN (English)
Simulate for free
Reference document

Technical documentation: complete methodology of the solar simulator

Calculation formulas, constants, sources and known limitations of the calcul-solaire.fr simulator. This document details each step of the calculation, from the raw weather data to the financial indicators displayed, with the assumptions used and the reasons for them.

Last updated: 3 octobre 2026 · Public document, freely citable with attribution · Summary version of the article

1. Overview of the simulator

1.1 Purpose and scope

The calcul-solaire.fr simulator allows a household (or a professional installer) to estimate the solar generation, the achievable savings and the payback period of a photovoltaic installation on a property in metropolitan France.

The tool covers:

  • Self-consumption with sale of the surplus to the grid
  • Pure self-consumption (no export)
  • The plug-and-play kit (very low power, < 3 kWp, no export)
  • Full export of the generation (≥ 9 kWp, EDF OA feed-in tariff contract)
  • Physical storage with a home battery (5 to 15 kWh)
  • Virtual storage on the grid (virtual battery)

1.2 Technical architecture

The simulator is a web application developed in Python (Django framework). The simulation calculations, which can take some time (analysis of 8,760 hourly data points per simulation), run asynchronously in the background: the user sees a progress page while the calculation engine works, without blocking the browser.

1.3 Simulation pipeline in 7 steps

1. Retrieval of PVGIS weather data (8,760 h)          [20 %] 2. Generation calculation for 1 kWp                    [40 %] → geometric transposition + temperature + shading + inverter efficiency 3. Generation of hourly consumption profiles          [60 %] → breakdown by category + personalised profile 4. Multi-size optimisation                            [80 %] → sweep of configurations according to the goal 4b. Financial simulation of the selected configuration [85 %] 5. Pre-calculation of home battery scenarios (5 capacities) [90 %] 6. Saving the results                                [95 %] 7. Notification (where applicable)                    [100 %]

1.4 The two access routes

Free simulation (private individuals): the user fills in a public form. The simulation runs in standard mode: PVGIS weather data, declared shading. Everything is free: the full simulation and the detailed report (interactive recalculation, complete battery scenarios, 25-year projection).

Professional offer (installers): an installer can submit simulations for their customers through a dedicated area. The simulation then runs in advanced mode: precise hourly shading from satellite imagery, the real characteristics of the equipment chosen from a catalogue, a customised report branded for the installer. See section 12.

1.5 Input data and output data

Input: the physical and financial parameters of the installation (location, area, orientation, consumption, goal).

Output: all the calculated results: generation, savings, self-consumption, ROI, home battery scenarios, hourly/monthly/seasonal profiles.


2. User input data

2.1 Installation parameters

ParameterUse
Address / Latitude / LongitudePVGIS weather query, Google Solar satellite imagery, geocoding
Available roof area (m²)Sets the maximum size tested by the optimiser
Orientation (N, NE, E, SE, S, SW, W, NW)Determines the irradiation actually captured
Tilt (°)Determines the irradiation actually captured
Roof type (tiles, slate, zinc, sheet metal, concrete)Extra installation cost, no effect on generation
Inverter type (string, micro, optimisers)Performance Ratio + behaviour under shading
Mounting typeEfficiency correction linked to ventilation
Shading factor (0–30 %)Loss applied to the direct component of the irradiation
Declared annual consumption (kWh)Fallback source if no consumption calculator is used
Module power (Wp)Sets the optimiser step (e.g. 400 Wp → 0.4 kWp step)
Selected panel (catalogue)Real thermal characteristics and packing density
Selected inverter (catalogue)Real European efficiency
Custom quote (€)Replaces the automatic cost estimate

The coordinates can be entered manually (interactive map) or derived from the address. Google Solar satellite imagery automatically enriches the orientation and tilt detected on the roof when this data is available.

2.2 Self-consumption modes

ModeDescriptionFed into the gridSelf-consumption bonus (prime à l'autoconsommation)Export tariff
Self-consumption with surplusStandard self-consumption with sale of the surplusYesYes (if the tariff in the ministerial order (arrêté) is > 0)Yes
Pure self-consumptionAll generation consumed on site, surplus not monetisedNoNoNo
Plug-and-play kitSmall balcony/terrace installation (≤ 3 kWp)NoNoNo
Full exportFull export of the generation (≥ 9 kWp)100 %NoEDF OA tariff

2.3 Sizing goal

GoalLogic
Financial returnMinimise the payback period (ROI)
Self-sufficiencyMaximise coverage of needs (self-sufficiency rate)
BalanceCompromise between financial return and coverage of needs
SaleMaximise the net gain over 20 years (EDF OA contract, ≥ 9 kWp)

2.4 Constraints in detailed mode

In detailed analysis mode, the user can set limits on the selected solution: maximum payback period (years), minimum savings (€/year), minimum coverage (%). If no configuration satisfies all the constraints, the best unconstrained configuration is selected, and the incompatibility is flagged to the user.

2.5 Priority of consumption sources

  1. Consumption calculator (quick or expert): if the user has used it, its total value is used.
  2. Manual entry: if entered directly by the user on the form.
  3. Typical value for the selected profile: used only as a last resort.

Whatever the source, the generated hourly profile (8,760 values) is then rescaled so that its sum matches the selected annual consumption exactly.


3. Weather data: PVGIS

3.1 What is PVGIS?

PVGIS (Photovoltaic Geographical Information System) is a free database developed by the Joint Research Centre (JRC) of the European Commission. It provides solar irradiation data for Europe, Africa, Asia and the Americas. The simulator uses version 5.3.

3.2 Typical meteorological year (TMY)

The simulator retrieves a typical meteorological year (Typical Meteorological Year): for each hour of the year, PVGIS calculates representative values derived from the statistical analysis of several years of satellite observations. The response contains 8,760 hourly records.

3.3 Data retrieved

DataUnitDescription
GHI (global horizontal irradiance)W/m²Total solar irradiation received on a horizontal surface
DNI (direct normal irradiance)W/m²Direct component of the radiation
DHI (diffuse horizontal irradiance)W/m²Diffuse component (cloudy sky, reflections)
Air temperature°CUsed for the temperature correction (§5.3)
Wind speedm/sContextual data

The three components GHI / DNI / DHI are essential for calculating the irradiation actually received by the panels according to their orientation and tilt (§5.1).

3.4 Time alignment

The raw weather data use an arbitrary reference year; they are automatically shifted to the current year so that the seasonal profiles and the hourly shading line up correctly.

3.5 Caching and error handling

The weather data for a given location are cached for 24 hours. If the weather source is unavailable, the simulation fails cleanly rather than producing a result based on incomplete data.

3.6 Distant shading (terrain)

Distant shading (terrain, mountains) is already taken into account in the generation, because the PVGIS data natively include a terrain horizon model applied directly to the irradiance returned. Verified empirically (comparison with and without the horizon model enabled):

SiteAnnual GHIAnnual DNI (direct)DHI (diffuse)
Chamonix (deep valley)−6.5%−24.0%0.0%
Bordeaux (plain, reference site)−0.1%−0.8%0.0%

It is the direct component that is reduced when the sun passes behind the terrain (strong in the mountains, negligible on the plain); the diffuse component is not reduced (a PVGIS modelling choice). This distant shading is therefore already reflected in the final calculation, so no double counting is applied.

The simulator also displays, for information only, a horizon curve of the site in the report (best-effort, with no impact on the generation calculation).


4. Enrichment from satellite imagery (Google Solar)

Google Solar is a service that analyses satellite images to extract information about roofs and their solar potential. The simulator uses it at two distinct levels.

4.1 Automatic roof detection (on the form)

When: when the address is entered in the form, provided the service is available.

What it does: the service identifies the roof segments of the building and selects the best segment (best solar exposure). It extracts from it:

  • The real azimuth of the roof face
  • The real pitch of the face
  • An estimated shading factor, derived from the median sunshine of the segment

These data pre-fill the orientation/tilt/shading fields of the form. The user can correct them manually.

4.2 Hourly shading mask (during the simulation, detailed offer only)

When: during the calculation, only for simulations in detailed or professional mode.

What it does: for each month of the year, the service provides an hourly matrix (24 hours) giving the fraction of the days of the month on which each point of the roof receives direct sunlight at the hour in question.

The simulator averages the sunshine over the actual installation area (the declared roof outline, or a small area at the centre by default) rather than relying on a single point, which reduces the noise caused by local obstacles (chimney, roof window). The result is a 12 months × 24 hours matrix of sunshine fractions, applied hour by hour to the annual generation.

Acknowledged limitation: this spatial average is an energy approximation (direct irradiance available on the panel array); it does not model the fine electrical imbalance between panel “strings” under partial shading with a central inverter.

Validity threshold: if the data are not available for most of the year, the mask is judged unreliable and the simulation falls back to the shading declared on the form.

4.3 Service availability

If satellite imagery is not available for a location, or is temporarily unavailable, the simulation continues normally without this enrichment; it is never a blocking factor.

4.4 Summary: who benefits from what

FeatureFree simulationDetailed / professional offer
Automatic detection of orientation/tilt✓ on the form✓ on the form
Estimated shading (overall factor)✓ on the form✓ on the form
Precise hourly shading mask (12×24)✗✓ during the calculation

5. Solar generation calculation

The generation is calculated hour by hour over the 8,760 hours of the year, then summed to obtain the annual generation. The calculation first produces the generation for 1 kWp installed, which is then multiplied by the selected size.

5.1 Geometric transposition (plane of the panels)

Why: the raw weather data represent the irradiance on a horizontal surface. The generation of a tilted, oriented panel, for example due south at 30°, differs from the horizontal irradiance. This calculation determines the irradiance actually received in the plane of the panels, given their orientation and tilt.

How: the calculation uses the Hay-Davies sky model (a standard academic reference in photovoltaic engineering), which breaks the diffuse radiation down into a circumsolar component (close to the sun) and an isotropic component (the rest of the sky). The three weather components (GHI, DNI, DHI) are used directly, with no additional empirical decomposition.

Result: for each hour, three quantities are obtained: the total irradiance in the plane of the panels (used for the generation calculation), the direct component (the only one that shading can reduce), and the diffuse component (which reaches the panel even when the direct component is blocked).

Ground albedo: default value of 0.20 (grass / urban environment), a standard in the literature.

Fallback: if this calculation fails in exceptional cases (missing data), the calculation falls back to the raw horizontal irradiance; the simulation is never blocked.

5.2 Base Performance Ratio (PR)

The Performance Ratio is an overall coefficient that represents the real efficiency of the installation relative to its theoretical potential. It aggregates the losses from wiring, mismatch between panels, dust, and so on.

Inverter typeBase PR
String (central)0.85
Microinverters0.84
Inverters with optimisers0.86
Mounting typePR correction
On-roof mounting (on tiles)0.00 (reference)
Ballasted trays (flat roof)0.00
Building integration−0.03 (less ventilated)
Fixed ground mount+0.01 (excellent ventilation)
Canopy+0.01 (excellent ventilation)

The final PR is limited to between 0.70 and 0.95.

5.3 Temperature correction: cell temperature

Why: the efficiency of a photovoltaic panel falls as its temperature rises. This loss depends not on the air temperature but on the temperature of the cell’s silicon, which is significantly higher in direct sunshine. Using the air temperature alone would produce an optimistic bias in a temperate climate.

Model used (NOCT model, the manufacturers’ standard):

T_cell = T_air + (NOCT − 20) / 800 × Panel_plane_irradiance

Where NOCT is the nominal operating cell temperature (taken from the datasheet of the selected panel, or 45 °C by default).

Temperature derating:

factor = 1 + (γ / 100) × (T_cell − 25)

Default values (if no specific panel is selected): γ = −0.35%/°C, NOCT = 45 °C. The hourly factor is limited to between 0.70 and 1.10.

5.4 Shading correction

Hourly mode (detailed / professional offer): the hourly sunshine matrix (§4.2) modulates the generation hour by hour. Only the direct component is reduced:

shading_ratio_h = (diffuse_irradiance + direct_irradiance × mask_h) / total_irradiance

Declarative mode (all users): if no precise hourly mask is available, an overall shading factor (0–30%) is applied to the direct component only:

loss = shading_factor × reduction_coefficient ratio = 1 − loss × (direct_irradiance / total_irradiance)
Inverter typeReduction coefficient
String1.0 (full loss)
Microinverters0.5 (loss divided by 2)
DC optimisers0.5 (loss divided by 2)

Source: NREL, “DC Optimizer Field Performance” (2019).

5.5 Real inverter efficiency correction

The reference weather data implicitly assume an inverter efficiency of 96%. If a specific inverter model is selected (professional catalogue) and its real European efficiency differs from 96%, a proportional correction factor is applied.

5.6 Summary formula for the generation per 1 kWp

generation_1kWp (kWh/h) = (panel_plane_irradiance / 1000) × PR × thermal_factor × shading_factor × inverter_factor annual_generation = sum(generation_1kWp over 8,760 h) × P    [kWh/year]

5.7 Packing density and maximum permissible power

max_power = roof_area_m² / area_per_kWp
  1. If a specific panel model is selected: the real density from its datasheet.
  2. Otherwise, a flat allowance by panel type: standard monocrystalline 6.5 m²/kWp, TOPCon/HJT 5.5 m²/kWp, bifacial 6.0 m²/kWp.

The maximum power is rounded down to the nearest 0.5 kWp, capped at 500 kWp, and cannot be lower than the power entered by the user.

5.8 Multi-face roofs (multi-orientation)

An installation can cover several roof faces with different orientations and tilts (typically East/West, or South + East). Each face carries a share of the power (up to 4 faces, the shares adding up to 100%).

The generation per 1 kWp is the weighted average of the generation of each face, each face being calculated with its own orientation, its own temperature correction and its own shading. The Performance Ratio, the shading mask (tied to the location) and the inverter efficiency correction remain common to all faces.

An East/West roof thus has a flattened generation curve (generation spread over morning + evening), which typically improves self-consumption compared with a single face oriented due south.


6. Hourly consumption profile

To calculate self-consumption (the fraction of the solar generation consumed directly), an hourly consumption profile aligned hour by hour with the generation is needed. This profile is calculated in two stages: breakdown of the annual consumption by category, then generation of an hourly profile based on occupancy habits.

6.1 Source of the annual consumption

The arbitration between sources is described in §2.5. The final value selected serves as the rescaling target: the generated hourly profile is adjusted proportionally so that its sum equals the target annual consumption exactly.

6.2 Breakdown by category (ADEME 2022 ratios)

Fixed-consumption categories (subtracted first): electric vehicle 2,500 kWh/year fixed (15,000 km/year at 17 kWh/100 km); swimming pool 2,000 kWh/year fixed (pump 8 h/day × 5 months).

Electric heating or heat pump (calculated from the energy performance certificate (DPE) class and the floor area): the DPE class gives the total regulatory consumption of the 5 uses. The heating share represents 63% of this total for an electrically heated home (source ADEME/CEREN). Heating is capped at 70% of the remaining consumption.

This fixed 63% share applies only to profiles without a detailed consumption calculator. If you used the calculator (as in almost all simulations), your heating is obtained differently, by difference. See the next section.

DPE classTotal kWh primary energy/m²/yearEstimated heating share (kWh final energy/m²/year)
A50≈ 14
B90≈ 25
C145≈ 40
D215≈ 59
E290≈ 80
F375≈ 103
G500≈ 137

Electric domestic hot water: 900 kWh × number of occupants, divided by 2.5 for a heat pump water heater. Capped at 50% of the remaining consumption.

CategoryRatio
Cooking25 %
Household appliances (washing, etc.)25 %
Refrigeration10 %
Lighting20 %
Multimedia20 %

If the user has used a detailed consumption calculator, the real breakdown that results is used directly, without going through these statistical ratios.

6.2bis Your heating, when it is worked out by the calculator

Your DPE label covers five regulatory uses: heating, hot water, cooling, lighting and auxiliaries (VMC mechanical ventilation, pumps). It is therefore not the consumption of your home: household appliances, cooking and multimedia are not included.

Rather than assuming what fraction of this envelope goes to heating, the simulator deduces it: it subtracts the four other uses, which it already calculates separately from your declared equipment. What remains is your heating.

DPE envelope − hot water − lighting − ventilation − cooling = heating

A constant fraction would be physically wrong: heating depends on insulation, whereas hot water depends mainly on the number of occupants. The share obtained therefore varies with your class: roughly 20% of the envelope for an A-rated home, 73% for a G-rated home.

What your label already contains

A DPE label is a consumption per m², measured on your home, at its location. It therefore already includes the local climate, your ventilation and your insulation. Applying them a second time would count them twice: the simulator does not do this. Two homes genuinely rated D consume the same number of kWh/m² in Lille as in Nice: if the one in Lille achieves it, it is because it is better insulated, and its label already says so.

On the other hand, what depends on your use rather than on the building always applies: set-point temperature, regulation, intensity of use. Since the DPE is calculated on a conventional scenario (19 °C, standardised occupancy), your difference from that scenario is never counted twice.

From conventional to real

The DPE does not claim to predict real consumption, and the gap is systematic: in very poorly insulated homes, occupants do not heat everything to 19 °C: they close off rooms and lower the set-point. In high-performance homes, the opposite happens (rebound effect). A correction is applied, from +30% for an A-rated home to −35% for a G-rated home. These are orders of magnitude drawn from the literature, which we will recalibrate on field data.

Your DPE label, known or not

If you know the exact figure on your DPE, enter it: the letter alone is a range. Class C covers 110 to 180 kWh/m²/year, that is ±25% around the average value applied by default.

If you do not know it, it is estimated from the year of construction and the type of home. With the same insulation for the period, a detached house with four exposed walls loses about twice as much heat per m² as a mid-floor flat: the type of home shifts the estimate by one class.

6.3 Generation of the personalised hourly profile (8,760 hours)

Two versions are produced in parallel: the current profile (spontaneous use) and the optimised profile (programmable appliances shifted to the solar generation peak, 10:00–13:00).

ProfileDescriptionPresence during the day (weekdays)
Working, away during the dayWorking people leaving for the officeNo
Partial remote workingRemote working 2 days, office the restPartial
Full-time remote workingAlways at homeYes
RetiredAt home during the day, free rhythmYes
FamilyAdults at the office, strong presence evenings/weekendsNo (evenings/weekends)

Seasonal modulation: heating is amplified in winter and almost zero in summer. Lighting follows the hours of darkness.

Optimisation: programmable appliances (washing machine, dishwasher, tumble dryer, electric hot water, electric vehicle on solar charging) are shifted to 10:00–13:00. Refrigeration, heating and cooking cannot be moved.

6.4 Expert mode (precise schedules)

If the user has declared precise schedules for their appliances (power, months of operation, switch-on hours), the hourly profile is rebuilt directly from these real data. For the optimised profile, the time slot of household appliances, hot water and the electric vehicle is replaced by the solar window.

6.5 Swimming pool and electric vehicle

Swimming pool: the annual consumption is distributed over the operating period according to a defined time slot (starting at 09:00 in the current profile, 10:00 in the optimised profile).

Electric vehicle: three charging modes: off-peak hours (00:00–05:00 + 22:00–23:00), solar (10:00–15:00), or mixed.


6.6 Your monthly readings: measuring your heating instead of estimating it

If you enter your monthly consumption in kWh, the simulator can measure your heating share instead of deducing it from your DPE. This is the reference method in energy efficiency.

Your consumption breaks down into two parts of a different nature: a baseload that does not depend on the weather (hot water, refrigeration, cooking, lighting, multimedia), and a temperature-sensitive part, your heating, proportional to the cold outside. By comparing your readings with the real degree-days of your location, a regression separates the two. Two months are enough: one in winter, one in summer.

In kWh read, not in euros. If you pay by monthly instalments, the amount debited each month is smoothed over the year and says nothing about your consumption. Your real kWh appear in your customer account, under consumption tracking. The simulator detects identical readings and then refuses to draw a conclusion, rather than announce a wrong heating share.

The calculation is also abandoned if the readings do not allow a conclusion: fewer than two months, two months from the same season, or values that fit no consistent model. It is better to announce nothing than to announce a wrong heating share.

6.7 Your peak / off-peak hours: measuring your consumption pattern

If you are on a peak / off-peak (HP/HC) tariff, the two lines on your bill show how much of your energy is used at night. This is the only measure of your consumption pattern available without a smart meter, and the pattern determines how much of your solar generation you will use on site.

The simulator uses it to identify which appliances run at night, starting with the most likely ones: the hot water tank on a contactor (the usual reason for a peak / off-peak tariff), then electric vehicle charging, then the washing machine on delayed start. Each appliance's energy is preserved: only its timing changes.

Two useful results: a diagnosis (“your night-time consumption is mainly explained by the hot water tank” points to exactly the appliance to shift to the solar hours); and a consistency alert: if your declared appliances do not explain the night-time share recorded, either an appliance is missing from your declaration, or the off-peak window in your contract is not the standard 22:00–06:00 one.

What remains estimated. These readings say nothing about the distribution within the day (morning, midday or evening). Yet that is what decides whether consumption coincides with your generation. This share therefore remains estimated from your occupancy profile, and the optimisation gains shown are orders of magnitude.

7. Power optimiser

7.1 General principle

The optimiser tests every possible configuration within the permitted power range, with a step equal to the power of one module (e.g. 400 Wp = 0.4 kWp). For each configuration it calculates the economic indicators from the same hourly profiles, then selects the best one according to the chosen goal.

7.2 Calculation per configuration

production_horaire = production_1kWp × P
autoconso_kWh      = sum(min(production_horaire[h], consommation_horaire[h]))  for h over 8,760 h
injection_kWh      = production_annuelle − autoconso_kWh
economie_annuelle  = autoconso_kWh × tarif_achat + injection_kWh × tarif_injection
coût_brut          = coût_par_kWp(P) × P
prime              = prime_autoconsommation(P)    (0 since June 2026)
coût_net           = coût_brut − prime
ROI_simple         = coût_net / economie_annuelle    (years)

7.3 Selection logic according to the goal

Financial return: selects the power with the shortest payback period. No artificial threshold is applied: the cost model (fixed costs + a declining price per kWp, see §8.2) naturally penalises very small systems.

Self-sufficiency: maximises the self-sufficiency rate, provided the configuration remains reasonably profitable.

Balance: a weighted compromise between financial return and coverage of needs, with a soft penalty to avoid recommending an oversized system with little return.

Resale (full export): maximises the net benefit over 20 years. The minimum power is forced to 9 kWp, the regulatory threshold of the EDF OA feed-in tariff contract.

7.4 Constraints in detailed mode

In detailed mode, optional filters can be applied after the calculation: maximum payback period, minimum savings, minimum coverage. If no configuration passes the filters, the best unconstrained configuration is kept and a warning is shown.

7.5 Optimiser result

The optimiser returns the optimal power along with the full table of all configurations tested. If the user has chosen a custom power, that value replaces the automatic recommendation.


8. Financial simulation

8.1 Valuation modes

Self-consumption with surplus:

economie_annuelle = autoconso_kWh × tarif_achat + injection_kWh × tarif_injection

Pure self-consumption / plug & play kit:

economie_annuelle = autoconso_kWh × tarif_achat (injection = 0, tarif_injection = 0, prime = 0)

Full export:

revenu_annuel = production_annuelle × tarif_vente_totale (100% exported, electricity bill unchanged, no bonus)

Peak / off-peak hours option : solar generation takes place exclusively during the day, hence entirely in peak hours. For users on a peak / off-peak contract, the purchase price used in all calculations is the customised peak-hours rate (default: 0.2142 €/kWh, regulated tariff as at 1 August 2026).

8.2 Estimated installation cost

The cost is modelled as the sum of two components, expressed excluding VAT and converted to figures including VAT at the end of the calculation:

coût_total_TTC = (frais_fixes_HT + coût_variable_HT + surcoûts_HT/kWp × P) × (1 + TVA) + surcoût_batterie_TTC
System sizeVATLegal basis
≤ 9 kWp5.5%Ministerial order (arrêté) of October 2025: residential self-consumption
> 9 kWp20 %Standard rate

Fixed costs excl. VAT: 2,200 €, independent of power. They cover: the installer's travel and mobilisation, safety scaffolding, technical visit, ten-year (décennale) site liability insurance, CONSUEL inspection (the French electrical compliance certification; ≈ 150-200 €), Enedis grid connection agreement (Enedis, the grid operator; ≈ 300-500 €), administrative procedures.

TierPrice excl. VAT/WpCumulative example (excl. VAT)
0 – 3 kWp1.453 kWp → 6,550 € excl. VAT (6,910 € incl. VAT)
3 – 6 kWp1.35 on additional Wp6 kWp → 10,600 € excl. VAT (11,183 € incl. VAT)
6 – 9 kWp1.20 on additional Wp9 kWp → 14,200 € excl. VAT (14,981 € incl. VAT)
9 – 36 kWp1.05 on additional Wp12 kWp → 17,350 € excl. VAT (20,820 € incl. VAT)
> 36 kWp0.90 on additional Wp—

The degressive pricing reflects economies of scale on panels (bulk purchasing) and optimised installation time. Calibration source: field data from professional installers, corroborated by French market ranges for 2025-2026.

FactorSurcharge excl. VAT/kWp
String inverter0 (reference)
Inverter with optimisers+100
Microinverters+200
Tile roof0 (reference)
Slate roof+80
Zinc roof+60
Metal sheet roof−80
Concrete roof+150

Battery surcharge: +800 €/kWp incl. VAT. Exception: plug & play kit mode applies a flat fee of 500 €/kWp incl. VAT, with no fixed costs or surcharges. If the user has entered a custom quote, it entirely replaces the automatic estimate.

8.3 Regulated tariffs (CRE arrêtés)

The regulated tariffs (surplus, full export, and the self-consumption bonus, or prime à l'autoconsommation) are updated about 4 times a year in line with the orders (arrêtés) of the Commission de Régulation de l'Énergie (CRE, the French energy regulator), and are never hard-coded in the simulator.

Power tierSurplus tariff (June 2026)
≤ 3 kWp0.0110 €/kWh
≤ 9 kWp0.0110 €/kWh
≤ 36 kWp0.0110 €/kWh
≤ 100 kWp0.0110 €/kWh

Full export rate : < 9 kWp → 0 (support abolished since March 2025); ≥ 9 kWp → according to the tier in force. Self-consumption bonus : abolished since the order (arrêté) of 1 June 2026 (0 €/kWp). Grid purchase tariff : 0.2001 €/kWh incl. VAT for 3 and 6 kVA, 0.1985 €/kWh incl. VAT from 9 to 36 kVA, regulated Base tariff as at 1 August 2026.

8.4 Multi-year projection

The financial projection is calculated year by year over 25 years (or 20 years for full export, the duration of the EDF OA contract):

For each year n (1 to N):
  facteur_production = (1 − dégradation_annuelle)^(n−1)   ← panel degradation
  facteur_tarif_élec = (1 + 0.03)^(n−1)                    ← electricity price increase (self-consumption)
  facteur_tarif_rachat = (1 + 0.02)^(n−1)                  ← indexation of the export / sale tariff

If self-consumption:
  cash_flow_n = autoconso_kWh × tarif_achat × facteur_production × facteur_tarif_élec
              + injection_kWh × tarif_injection × facteur_production × facteur_tarif_rachat
              − TURPE (26.40 €/year)

If full export:
  cash_flow_n = production_kWh × tarif_vente × facteur_production × facteur_tarif_rachat
              − TURPE (26.40 €/year)

Net benefit = sum of annual cash flows − net cost. Each cash flow is net of the TURPE grid access charge for self-producers (26.40 €/year, the only recurring cost). This calculation is done after the year-by-year loop, so as to correctly reflect inflation, degradation and TURPE.

8.5 Financial indicators

IndicatorFormula
Simple payback periodnet cost / year 1 annual savings (years)
Net gain 25 yearssum of annual cash flows − net cost (€)
NPVcash flows discounted at the chosen discount rate
IRRequivalent annualised rate of return
LCOE(gross cost − bonus) / generation over 25 years (€/kWh generated)

8.6 CO2 avoided

CO2_évité = production_annuelle_kWh × 0.0520    [kgCO2e/year]

The 52.0 gCO2e/kWh factor corresponds to the average emission factor of the French electricity mix. It is applied to total generation, not just to self-consumption, because all the energy generated is clean energy that displaces the national mix.

8.7 TURPE for residential self-producers

TURPE = 26.40 € excl. VAT/year

Source: regulated tariff of the CRE / Enedis. Shown in the detailed projections but not included in the cash flows of the main projection (marginal impact).


9. Battery scenarios

9.1 Principle and timing of calculation

Battery scenarios are systematically pre-calculated at the end of each simulation, before the results are saved.

9.2 Five standard capacities

Capacity (kWh)Indicative price incl. VAT
5.04,500 €
7.55,880 €
10.07,500 €
12.59,000 €
15.011,250 €

9.3 Real hour-by-hour simulation

For each capacity, a detailed simulation runs over the 8,760 hours of the year (not an approximate statistical formula). Initial state: charge level = 50% of usable capacity.

ParameterValue
Usable capacity (max depth of discharge 90%)capacity × 0.9
Maximum charge / discharge powercapacity × 0.5 kW
Round-trip efficiency95 %
Minimum charge level10% of usable capacity

Surplus case (generation > consumption): direct self-consumption is counted immediately; the excess charges the battery (95% efficiency); whatever cannot be stored is exported to the grid.

Deficit case (consumption > generation): direct self-consumption is counted; the battery discharges to cover the shortfall; whatever cannot be covered is imported from the grid.

9.4 Indicators produced per scenario

IndicatorDescription
Self-consumption rate with battery%
Self-consumption gainCompared with the no-battery scenario (% points)
Net additional annual savings€
Battery cost incl. VAT€
Estimated annual cyclesnumber
Simple payback period (no degradation)battery cost / additional annual savings
Cumulative savings over 25 yearswith capacity degradation (€)
Estimated replacement yearcapped at 25 years
Actual payback period over 25 yearsaccounting for replacement (years)

9.5 25-year projection with battery capacity degradation

For each year n (1 to 25):
  facteur_n = max(plancher_dégradation, 1.0 − dégradation_annuelle × n)
  contribution_n = économie_supplémentaire_annuelle × facteur_n

économie_25ans_batterie = sum of the contributions

Degradation: 2%/year → 70% floor reached in year 15 (years 16–25: constant factor of 0.70). Analytical cumulative factor ≈ 19.6× (versus 25× with no degradation, i.e. −22%). The replacement year is derived from the manufacturer's cycle warranty, capped at 25 years; if a replacement is needed earlier, the total cost doubles.

9.6 Real model (professional offer)

If a specific battery model is chosen from a professional catalogue, its actual characteristics replace the generic parameters, and a single scenario is calculated (instead of the 5 standard ones).

9.7 Source of truth for results

The battery scenarios calculated in this way are the only source of truth shown to the user: the values are never recalculated on the fly from a simplified estimation formula.


10. Virtual battery

10.1 Principle

A virtual battery is a service offered by specialist third-party operators that lets you store surplus solar electricity virtually on the grid and recover it later. No additional physical equipment is needed: the smart meter measures the exports, which are credited to a redeemable kWh account. Applicable only to self-consumption with surplus.

10.2 Calculating savings and payback period

Typical pricing structure: activation 299 € incl. VAT (one-off), subscription 1.20 €/kWp/month incl. VAT, return fees (grid re-routing costs + applicable taxes).

The virtual battery values the exported surplus at the return price rather than at the regulated buy-back tariff (0.011 €/kWh), which is a better valuation as long as the extra subscription cost is covered.

valeur_surplus    = surplus_annuel_kWh × (tarif_achat − frais_restitution)
économies_nettes  = valeur_surplus − abonnement_annuel
ROI = (coût_activation + sum of the subscriptions) / économies_nettes     (years)

The projection factors in a rise in the purchase tariff of +3%/year.


11. Results and indicators displayed

11.1 Main indicators

IndicatorCalculation
Annual generation (kWh/year)Sum of hourly generation
Self-consumption rate (%)Self-consumption / annual generation × 100
Self-sufficiency rate (%)Self-consumption / annual consumption × 100
CO2 avoided (kgCO2e/year)Generation × 0.052

11.2 Charts

Four types of chart: average daily profile, monthly balance, seasonal profiles (winter / spring / summer / autumn), and a power comparator (an interactive table of all the configurations tested).

11.3 Low financial return warning

A warning is shown when the calculated 25-year net benefit is negative, typically for a household that is away during the day with large surpluses that are poorly valued.

11.4 Power comparator

All the configurations tested by the optimiser are displayed as an interactive table, making it possible to compare different power levels without running a full simulation again.


12. Professional offer: specifics

A dedicated offer for professional installers lets them run simulations for their clients through an online workspace. Main differences from the consumer journey:

  • Precise hourly shading always enabled (satellite mask instead of a declared global factor)
  • Real equipment catalogue: specific panel, inverter and battery with the exact datasheet characteristics
  • Custom pricing: the professional's own purchase prices
  • Custom report in the installer's branding
  • Instant interactive recalculation without running a full simulation again

The technical architecture and security aspects of this offer are not detailed in this public document.


Appendix A: Reference constants and assumptions

ConstantValueDescription
Grid purchase tariff (Base option)0.2001 €/kWh incl. VAT (3 and 6 kVA), 0.1985 €/kWh incl. VAT (9 kVA and above)Regulated tariff as at 1 August 2026 (CRE), depending on meter power
Default peak-hours tariff0.2142 €/kWh incl. VATRegulated tariff as at 1 August 2026 (CRE)
Electricity price increase3%/yearSelf-consumption inflation
Buy-back tariff indexation2%/yearExport / sale
Panel degradation0.5%/yearGeneration loss (default)
String inverter PR0.85Performance Ratio
Microinverter PR0.84Performance Ratio
PR for inverters with optimisers0.86Performance Ratio
Default temperature coefficient (γ)−0.35%/°CFallback when no specific panel is selected
Default NOCT45 °CFallback when no specific panel is selected
Default ground albedo0.20Grass / urban
CO2 factor52.0 gCO2e/kWhFrench electricity mix
Self-producer TURPE grid access charge26.40 € excl. VAT/yearLow voltage ≤ 36 kVA
Annual battery degradation2%/yearLithium-ion
Battery degradation floor70 %Reached in year 15
Battery efficiency (round trip)95 %Default value
Battery max depth of discharge90 %Default value
Installation fixed costs2,200 € excl. VATNon-negotiable costs
Reduced VAT5.5%≤ 9 kWp, residential
Standard VAT20.0%> 9 kWp

Appendix B: Sources and references

SourceUse
PVGIS 5.3, Joint Research Centre, European CommissionHourly weather data (irradiance, temperature)
Google SolarRoof orientation / tilt detection, hourly shading mask
pvlib (open-source scientific library)Geometric calculation, solar position, Hay-Davies model
ADEME, Key building figures 2022 (Chiffres clés du bâtiment 2022)Breakdown ratios of consumption by use
CRE / tariff orders (arrêtés)Surplus, full export and self-consumption bonus tariffs
Enedis / CRETURPE for residential self-producers
NREL, DC Optimizer Field Performance (2019)Shading reduction with optimisers / microinverters
French-market virtual battery operatorsReference pricing structure
Field data from professional installers (2026)Cost model calibration

Appendix C: Known limitations and areas for improvement

Current limitations

  • Generation accuracy: the gap between simulated generation and the PVGIS reference measurements is about +5 to +8% on average. The weather data themselves carry an uncertainty of about ±5%.
  • Estimated consumption: the quick calculator produces a statistical estimate. Actual consumption may vary by ±20% depending on individual habits.
  • Declared shading: in the free simulation, shading is a global factor (no detailed modelling of partial shading between strings of panels).
  • Future tariffs: the 25-year projection assumes a steady rise of 3%/year in electricity prices, a reasonable assumption as a trend but uncertain over the long term.
  • Full export ≤ 9 kWp: the EDF OA feed-in tariff has been abolished for installations ≤ 9 kWp since March 2025; the simulator reflects this situation correctly.

Identified areas for improvement

  • Systematic validation of simulated generation against measured real-world generation data
  • Extension of the tariff catalogue to other electricity suppliers
  • Taking collective self-consumption into account for co-owned buildings
  • More refined modelling of the non-linear degradation of panels early in life

Recently delivered improvements (June 2026)

  • Multi-face roofs: 1 to 3 roof faces with different orientations / tilts, detected automatically (see §5.8)
  • Hourly shading averaged over the actual installation area (see §4.2)
  • Peak / off-peak hours option (see §8.1, §8.3)
  • Battery capacity degradation over 25 years with replacement built into the total cost (see §9.5)

See this methodology in action

Run a free simulation and get your personalised results in 2 minutes.

Simulate for free