Residential methodology for Germany
How Voltary calculates energy flows, costs and investment returns for household PV, battery storage and electricity tariffs in Germany.Last updated: 10 November 2026
Overview
Voltary simulates how a household generates, consumes, stores and pays for electricity. Each interval accounts for demand, PV generation, battery charging and discharge, grid imports and exports. Voltary uses these flows to calculate electricity costs, feed-in revenue and investment returns for the proposed system.
Battery retrofit for regular PV supports German rooftop systems with self-consumption and EEG surplus feed-in, original PV commissioning from 1 August 2014, capacity below 100 kWp and one common PV commissioning date. Full feed-in, direct marketing and later PV additions with separate commissioning dates are excluded. The PV commissioning date applies, rather than registration or battery installation. Balcony PV has a separate model.
This page documents the calculation rules, assumptions and data sources. Results depend on your inputs and the model assumptions. Actual savings and returns can differ.
Calculation basis at a glance
Voltary lets you compare how PV, battery size and electricity tariffs affect grid imports and costs. The investment calculation also includes purchase and maintenance costs over the selected period.
Voltary compares the evaluated configurations using the same consumption and price assumptions. You can select either the highest net present value or the highest self-sufficiency within your budget.
- How much of the household’s electricity demand can PV and a battery cover?
- How does a battery change grid import, feed-in, and self-consumption?
- Which of the evaluated PV or battery sizes has the highest net present value?
- How do electricity prices, feed-in revenue, investment, and operating costs interact?
- How do the results differ when selecting for investment value or self-sufficiency?
PV and storage results depend on when you use electricity. Two households with the same annual consumption can use different amounts of their own PV generation and have different electricity costs.
Voltary evaluates consumption, PV generation and prices in 15- or 60-minute intervals. Each interval determines how much PV electricity is used directly or stored and how much electricity is needed from the grid.
You can upload measurements or create a household profile, then enter PV, battery, tariff and cost settings. Voltary uses the defaults listed on this page for settings you leave unspecified.
For existing systems, enter any active 70% limit and its removal date if applicable. A dynamic limit applies to grid export after self-consumption and battery charging; a fixed inverter limit applies to available PV generation. The same setting is used with and without the new battery. Curtailed generation is not reconstructed from measured data; hourly values only approximate short power peaks.
- Consumption, generation, and grid data from uploads or generated household profiles
- PV capacity, location, orientation, tilt, and location-based yield profiles
- Battery capacity, power limits, efficiencies, reserve, and aging assumptions
- Electricity tariffs, feed-in remuneration, market prices and the Solarspitzengesetz rules described below
- Investment, maintenance, analysis horizon, price development, and discount rate
Compare configurations using the same consumption, price and cost assumptions. Self-sufficiency measures the share of demand supplied by your own PV. Net present value assesses the investment using payment dates and the selected discount rate.
- Check which inputs differ between the configurations you compare.
- Results over many years depend on assumed prices, costs and usage.
- Changing price or cost assumptions shows how they affect the assessment.
- Technical planning, concrete quotes, financing, and contract review remain separate steps.
Voltary offers automatic sizing and manual configuration. Automatic sizing compares storage capacities and power limits within your settings. Manual configuration lets you enter the technical specifications and complete price of a specific offer. Selection or recommendation of named storage products is unavailable.
Capacity, charging and discharging power, state-of-charge limits, efficiencies, auxiliary consumption and aging determine the modeled behavior. Defaults are adjustable modeling assumptions. Use documented values from your offer and check that they describe the same technical measurement boundary. Unknown properties remain assumptions; the calculation does not reproduce manufacturer-specific control strategies.
Include the complete price of required metering, accessories, installation and applicable taxes. Do not count costs already included twice. For balcony PV, AC/DC connection and inverter limits remain part of the configuration. Device and sensor compatibility and electrical connection requirements need separate verification before purchase.
Technical methodology in detail
The chapters below explain the calculation, its assumptions and sources. Fractions and interest rates enter the equations as decimal values: 1 means 100%, and 0.05 means 5%. For display as a percentage, the value is multiplied by 100.
Simulation pipeline
Voltary prepares the time series, simulates PV and storage, then calculates costs and investment metrics.
1. Inputs
The calculation uses consumption data, PV and battery settings, and the selected prices and tariff components.
2. Normalization
Voltary aligns timestamps and units, handles missing values and places demand, PV generation and prices on a common interval grid. For uploads without an existing battery, later years retain the measured hourly overlap between PV and consumption. This includes hours with grid imports despite PV generation. Recalculating direct PV supply solely from hourly generation and demand could hide those imports and understate the potential benefit of an added battery.
3. PV modelling
Voltary uses uploaded PV measurements or calculates a generation profile from PVGIS 5.3 hourly data with the crystSi2025 crystalline-silicon model. The request includes location, IANA time zone, surface orientation and tilt, mounting type and system losses. Each distinct surface geometry receives a checked 1 kWp profile, scaled to its allocated capacity. Defaults are 14% system losses and free-standing, ventilated mounting. Month selection follows the PVGIS typical meteorological year (TMY) method under ISO 15927-4 for 2005–2023. The calculation uses the hourly PVGIS values from the selected source years. If only part of the configured capacity is requested, Voltary allocates it first to surfaces with the highest site-specific annual yield per kWp. Unavailable, incomplete or invalid PVGIS data stops the calculation. No synthetic replacement profile is used.
4. Battery operation
PV supplies household demand first and surplus charges storage. The battery covers later demand above its reserve at a positive consumer import price, subject to power and efficiency limits. There are no PV/load forecasts or price-based grid charging. Investment cost affects the investment evaluation, not this operating rule.
5. Tariff settlement
Voltary calculates grid import costs and feed-in revenue using the applicable prices, then includes annual fixed charges and credits.
6. Evaluation
The model derives self-sufficiency, useful household PV utilisation, payback, NPV, IRR and net profit from simulation results and dated project cash flows. Configurations are selected by NPV or self-sufficiency.
Project start and timing conventions
The simulation and financial calculation start on the confirmed project date. Energy charts show calendar years; finance groups payments into operating years from the project start.
Battery model
PV electricity supplies household demand and battery auxiliaries first. Surplus charges the battery, with the remainder exported or curtailed. The battery supplies unmet demand when the current import price is positive and stored energy exceeds the minimum reserve, subject to the configured power limits and efficiencies. Self-discharge reduces stored energy; any reserve deficit is restored. Grid charging is used only for reserve restoration. Uploaded flows from an existing battery remain part of the measured comparison baseline.
The change in available capacity over time is explained in Battery ageing.
Minimum and maximum stored energy are the configured SoC fractions multiplied by available capacity. As ageing reduces capacity, these kWh limits also fall.
- available battery capacity in interval t and nominal initial capacity, both in kWh
- index of the simulation interval being considered
- active simulation day containing interval t, starting at 0; d(t) − 1 denotes the preceding day
- cumulative calendar and cycle capacity losses up to the end of the preceding day, as fractions of initial capacity; 0.05 means 5% loss
- lower and upper stored-energy limits in interval t, in kWh; the lower limit is the minimum reserve
- configured minimum and maximum state of charge (SoC) as fractions of available capacity; e.g. 0.1 and 0.9 for 10% and 90%
Charge and discharge power are first converted into the maximum amount of energy that can be moved during one interval. This limit applies in addition to the SoC bounds.
- maximum gross charging energy and maximum battery-side withdrawal per interval, both in kWh
- battery charging and discharging power in kW
- simulation interval length in hours
- index of the simulation interval being considered
Before the battery reacts, household demand is first covered directly from concurrent PV generation. This yields the residual load for possible discharge and the PV surplus for later charging or export.
- prepared PV generation and household load for the added battery in interval t
- direct PV coverage from generated coincidence or measured flows
- residual load, available surplus and measured PV export before the added battery
- index of the simulation interval being considered
Chemical idle losses are modeled separately from charge and discharge efficiency. They reduce stored energy in proportion to the current SoC even when the battery is otherwise inactive.
- self-discharge loss in interval t
- compounded self-discharge factor derived from the monthly rate
- stored energy immediately after self-discharge, in kWh
- stored energy carried over from the previous interval, limited to the current upper energy bound, in kWh; starting value before self-discharge
- index of the simulation interval being considered
Available PV restores a reserve deficit first, followed by the grid within remaining charge-power and hardware limits. PV auxiliary supply is accounted for before this step; battery auxiliary and household discharge follow it.
- gross reserve-restoration energy from PV and from grid
- stored energy after self-discharge and after subsequent PV reserve restoration, respectively, in kWh
- PV surplus after supplying auxiliaries from PV, and the total charging-energy budget for the interval. Grid reserve charging uses only the budget remaining after PV reserve charging
- minimum battery reserve in interval t, in kWh
- charging efficiency as a fraction between 0 and 1; 0.95 means 95%. It converts gross input energy into stored energy
- index of the simulation interval being considered
Auxiliary power is an effective system load. Available PV supplies it before battery charging. The battery covers the remainder only when discharge is permitted by price, reserve and power limits; otherwise the available grid path supplies it.
- total auxiliary demand in interval t
- auxiliary demand supplied by PV, battery and grid
- auxiliary power in kW and maximum battery-side energy withdrawal per interval in kWh
- available PV surplus after directly supplying the household, before auxiliary demand and battery charging, in kWh
- PV surplus after directly supplying the household and PV-supplied auxiliaries, before reserve restoration, in kWh
- stored energy after self-discharge and reserve restoration, before withdrawals for auxiliaries and the household, in kWh
- minimum battery reserve in interval t, in kWh
- discharging efficiency as a fraction between 0 and 1; 0.95 means 95%. Delivering energy requires a correspondingly larger withdrawal from the battery
- current grid import price including the assumed price components, in €/kWh
- simulation interval length in hours
- index of the simulation interval being considered
The battery supplies household demand left after direct PV use when the current import price is above zero.
- battery energy delivered to load in interval t
- residual load after direct PV consumption
- stored energy after reserve restoration, before the withdrawal for auxiliary demand, and the current grid price. The equation explicitly subtracts the auxiliary withdrawal
- auxiliary demand supplied by the battery after discharge losses, in kWh; divide by discharge efficiency to obtain the battery-side withdrawal
- minimum battery reserve in interval t, in kWh
- discharging efficiency as a fraction between 0 and 1; 0.95 means 95%. Delivering energy requires a correspondingly larger withdrawal from the battery
- maximum battery-side energy withdrawal within the interval, in kWh
- index of the simulation interval being considered
PV surplus charges storage within available headroom and charging power, after auxiliary demand and reserve restoration.
- PV surplus after direct household supply and PV-supplied auxiliaries, before reserve restoration
- stored energy after withdrawals for auxiliaries and the household, before regular PV charging, in kWh
- maximum charge energy in the interval
- gross PV energy for regular battery charging after reserve restoration, before charging losses, in kWh
- gross PV energy used to restore the minimum reserve, before charging losses, in kWh
- gross grid energy used to restore the minimum reserve, before charging losses, in kWh
- upper stored-energy limit in interval t, in kWh
- charging efficiency as a fraction between 0 and 1; 0.95 means 95%. It converts gross input energy into stored energy
- index of the simulation interval being considered
The battery does not charge from the grid to exploit price differences, including under a dynamic tariff.
- discretionary gross grid charging in addition to reserve restoration, in kWh; always zero in this model
- index of the simulation interval being considered
Any PV surplus left after battery charging is first treated as potential export and then, if required, capped by the active feed-in limit.
- potential export before limitation
- actual export and curtailed energy
- export factor as a fraction between 0 and 1 and nominal PV capacity in kWp; 0.6 means a limit of 60% of nominal power
- PV surplus after directly supplying the household and PV-supplied auxiliaries, before reserve restoration, in kWh
- gross PV energy used to restore the minimum reserve, before charging losses, in kWh
- gross PV energy for regular battery charging after reserve restoration, before charging losses, in kWh
- simulation interval length in hours
- index of the simulation interval being considered
Grid import comprises residual household demand, required grid-backed reserve restoration and uncovered auxiliary demand. Discretionary tariff charging is zero.
- grid import used to serve household load
- total grid import in interval t
- grid reserve top-up and auxiliary demand covered directly from the grid
- remaining household demand after direct PV supply, in kWh
- energy delivered from the battery to the household after discharge losses, in kWh
- discretionary gross grid charging in addition to reserve restoration, in kWh; always zero in this model
- index of the simulation interval being considered
End-of-interval state of charge subtracts self-discharge and battery withdrawals and adds PV charging and reserve restoration after charging losses. Discretionary grid charging is zero.
- opening stored energy after clipping to the current maximum SoC, before self-discharge, and stored energy at the end of the interval
- self-discharge loss and auxiliary demand supplied by the battery
- reserve-restoration energy from PV and from grid
- charging efficiency as a fraction between 0 and 1; 0.95 means 95%. It converts gross input energy into stored energy
- discharging efficiency as a fraction between 0 and 1; 0.95 means 95%. Delivering energy requires a correspondingly larger withdrawal from the battery
- energy delivered from the battery to the household after discharge losses, in kWh
- gross PV energy for regular battery charging after reserve restoration, before charging losses, in kWh
- discretionary gross grid charging in addition to reserve restoration, in kWh; always zero in this model
- index of the simulation interval being considered
Balcony PV and battery connection
The general battery operating equations describe regular PV. Voltary uses a separate calculation for balcony PV, with separate AC and DC power limits. As with regular PV, the minimum reserve is replenished first from PV and then from the grid where grid charging is supported. The simulation does not intentionally export battery energy.
DC storage can use surplus before inverter clipping. AC storage only receives limited AC generation. For modelled PV, the selected losses apply before the inverter; inverter efficiency is then applied exactly once.
The model assumes a compatible consumption sensor and demand-following operation. Response delays and small control deviations within an interval are not simulated separately. The sensor is not a regulatory smart metering system.
AC measurements cannot support a DC battery calculation. First create a PV profile using the existing module surfaces.
Timing and financial calculations follow the same rules as for regular PV. Existing systems compare the retrofit with unchanged operation. New systems use whole-module layouts; the comparison also includes PV without storage and no purchase. Sensor and other retrofit costs enter the budget and investment only for storage candidates.
Enter the complete cost including any required metering, accessories and installation. Do not count costs already included twice. Check device and sensor compatibility before purchase.
Power limits, remuneration and connection requirements are explained under Balcony PV in Germany.
Battery ageing
Batteries lose capacity over time, even when they are not in use. Charging and discharging cause additional ageing. Voltary calculates both contributions with one of the models below and accounts for the declining capacity in the simulation. Naumann is selected by default. If you turn ageing off, Voltary uses a constant capacity.
Naumann · Sony/Murata LFP
This model combines the calendar-ageing equations from Naumann et al. (2018) with the cycling-ageing equations from Naumann et al. (2020). Both studies examine the same Sony/Murata LFP/graphite cell type. Voltary uses the published coefficients, converting capacity losses from percentages to fractions. Naumann et al. (2018); Naumann et al. (2020)
Calendar ageing depends on elapsed time, cell temperature and state of charge. Cycling ageing depends on how much energy passes through the cell, how deeply it is discharged and how fast it charges or discharges. Charging and discharging speed is expressed as a C-rate.
Voltary evaluates continuous charging and discharging phases as half-cycles. Naumann et al. describe this method in Section 3.3.2. In our calculation, a rest period, a new day or a new year does not end a half-cycle. The initial state of charge and the final unfinished phase are also included. Naumann et al. (2020), § 3.3.2
At constant temperature and state of charge, this model’s calendar capacity loss grows with the square root of time. Factors A and B describe the effects of temperature and state of charge. When the state of charge changes, Voltary calculates the additional loss under the new conditions while accounting for the ageing already accumulated.
- capacity lost through calendar ageing by the end of interval i, as a fraction of initial capacity. A value of 0.05 means a 5% loss. Initially L₀ = 0
- elapsed time and the duration of one calculation interval, both in seconds
- calendar coefficient in s⁻¹ᐟ². A describes the temperature effect and B the state-of-charge effect. Both factors are dimensionless
- cell temperature in kelvin and degrees Celsius, respectively. = 8.3144598 J/(mol·K) is the gas constant
- state of charge at the start and end of interval i and their mean, each as a fraction between 0 and 1; 0.5 means 50%
For each charging or discharging phase, Voltary calculates a stress coefficient from cycle depth and mean C-rate. This determines the additional capacity loss. The equations account for accumulated cycling ageing when the stress changes. This approach excludes the additional, partly reversible losses observed during shallow cycling. Those losses did not occur in the two dynamic test profiles.
- half-cycle h and calculation interval i. h(i) identifies the half-cycle to which an active interval belongs. Iₕ contains its intervals with active energy flow
- difference between the lowest and highest state of charge during the active parts of the half-cycle. Values are fractions between 0 and 1
- mean C-rate during charging or discharging in h⁻¹ and active interval duration in hours. Rest periods are excluded from this mean. The C-rate factor was fitted to measurements at 0.2 C, 0.5 C and 1 C, each at 40 °C and 80% cycle depth
- cycling coefficient in EFC⁻¹ᐟ², combining C-rate and depth factors. Division by 100 converts the paper’s percentages to capacity fractions
- accumulated equivalent full cycles (EFC) and the increase during the interval. Charging and discharging each contribute half their energy throughput divided by initial capacity
- active energy change on the battery side in kWh, excluding passive self-discharge, and nominal initial capacity in kWh
- capacity lost through cycling ageing as a fraction of initial capacity. A value of 0.05 means a 5% loss. Initially L₀ = 0
Gasper / BLAST-Lite · Sony/Murata LFP
This model uses the same laboratory tests by Naumann et al. on the 3 Ah Sony/Murata LFP/graphite cell. Naumann et al. (2018): calendar experiments; Naumann et al. (2020): cycling experiments
Gasper et al. (2022) derived a different set of ageing equations from these data. Their approach separates calendar ageing, long-term cycling loss and an additional loss early in intensive use. Voltary calculates these three contributions using the linked BLAST-Lite code version and its fixed coefficients. Gasper et al. (2022): model equations; BLAST-Lite: adopted code revision
Gasper describes calendar capacity loss with an S-shaped curve. Temperature and state of charge determine its shape and saturation level. The tanh equation is mathematically equivalent to the form in the paper. Under constant conditions, loss can be calculated directly from elapsed time. For changing conditions, BLAST uses the update described below.
- is the S-shaped curve and L the loss as a fraction of initial capacity. A value of 0.05 means 5%. Elapsed ageing time is given in days
- T is cell temperature in kelvin and s the state of charge between 0 and 1. U(s) approximates the graphite anode potential in volts from state of charge, following Gasper, Appendix A.1. It is not the cell’s terminal voltage
- a determines the saturation level and c the curve shape. bₜ = 0.000130510034211874 d⁻¹. BLAST calculates daily means of a and c using the trapezoidal rule over SOC values at interval boundaries
- fixed coefficients from the linked code version. Table IV in the paper contains rounded values. The temperature and SOC functions follow Equations (7) and (8)
- generic sigmoid input and its scaling coefficient; calendar ageing uses time in days and bₜ, while early cycle ageing uses EFC and bₑ
- temperature-dependent intermediate terms in the exponents for a and c, calculated from the stated fixed coefficients
Cycling loss has two contributions. The long-term loss grows with equivalent full cycles. An additional early loss appears in the model under intensive use and approaches a saturation level. The curves shown here apply at constant stress.
- N is the number of equivalent full cycles (EFC), D is the daily range between minimum and maximum SoC from 0 to 1, and is the daily C-rate in h⁻¹ calculated with the weighting shown
- long-term loss coefficients: k₀ ≈ −6.813·10⁻⁶, kᴅ ≈ 2.596·10⁻⁵, kᴇ ≈ 2.116·10⁻⁶ and β ≈ 1.12848. Voltary calculates with the unrounded values from the reference code
- b is the saturation level of early loss. The coefficients are b₀ ≈ 0.58226, bₑ ≈ 0.00303554 EFC⁻¹, cₑ ≈ 1.43752 and g ≈ 25.41308. is the S-shaped curve from the calendar equation
- functions describing the effects of SOC and cycle depth. φ and Φ are the standard normal density and cumulative distribution functions; ξ and ω are fixed shape parameters. The bar denotes the daily mean of the SOC function, calculated with the trapezoidal rule
- long-term and early cycling loss, each as a fraction of initial capacity. Their sum is added to calendar loss
- rᵢ is the absolute SoC change in an interval divided by its duration Δtₕ in hours. r̂ᵢ sets values below 0.01 h⁻¹ to zero. m counts all equally spaced intervals in the daily window, including idle intervals
- remaining capacity fraction at the end of the previous day. It scales both the daily C-rate and EFC
- depth- and C-rate-dependent coefficient for long-term cycle loss, in EFC⁻¹
- relative state of charge between 0 and 1; indexed values are at the start and end of calculation interval i
- index of the daily window; d − 1 denotes the preceding day
- skew-normal function Ψ with input z: state of charge s for Ψₛ or cycle depth D for Ψᴅ. u is the input shifted by 0.5 and scaled by ω
- sigmoid evaluated at N EFC with saturation value b, scaling coefficient bₑ and shape parameter cₑ
- total cycle loss as a fraction of initial capacity, consisting of long-term and early loss
When state of charge or stress changes, the corresponding loss curve changes too. For each of the three loss contributions, BLAST finds the point on the new curve that matches the loss already calculated. The slope at that point determines the additional loss in the next calculation step.
- daily index d; loss curve f with that day’s stress factors, its inverse f⁻¹ and derivative f′. x* is the virtual time or EFC count corresponding to the previous loss
- previous loss, additional loss and updated total for the contribution being calculated. Each of the three contributions is updated separately
- additional time in days for calendar ageing or additional EFC for cycling ageing. is the actual duration of the daily window in days
- remaining capacity fraction at the end of the previous and current day d; s denotes relative states of charge at interval i boundaries. The factor H in the EFC equation comes from the BLAST code
- cumulative calendar and total cycle losses at day end and the daily increment of early cycle loss, each as a fraction of initial capacity
Assumptions and limitations
Both models were developed for a particular cell type. We have not independently checked their predictions for other LFP cells or complete home batteries. Naumann’s dynamic tests lasted 885 days. A 20-year simulation therefore extends far beyond the period covered by measurements. The gap between the two model curves is not a statistically determined uncertainty range. Naumann et al. (2020), §§ 3.2.1–3.2.5 and 3.3.2
The selected cell temperature applies throughout the calculation. The default is 25 °C; you can enter values from 10 to 45 °C. Heating during operation, room temperature and cooling are not calculated separately. Not every combination of temperature, state of charge and cycling conditions has been tested experimentally. Neither cycling model has a separate temperature factor. The calculation also omits resistance growth, additional damage from charging in cold conditions and differences between individual cells.
Voltary first calculates operation at the initial capacity and uses that result to determine ageing. A second pass calculates operation with the reduced capacity. The changed energy flows from this second pass are not used to calculate ageing again.
Each day’s loss reduces the available capacity from the following day. Daylight-saving changes and partial days use their actual duration. Reaching 80% remaining capacity does not trigger battery replacement. To let the calculation continue even at very high losses, we set a lower limit of 1% on available capacity. This does not establish whether a real battery would still work.
Time resolution limits both models. Quarter-hourly or hourly values cannot reveal shorter charging and discharging reversals. Comparisons with published reference code check whether we have implemented its calculation correctly.
Regulatory framework in Germany
System type, capacity and the commissioning and installation dates entered determine which rules Voltary applies to exports and remuneration.
Balcony PV: power limits and connection
The simplified connection rule in Section 8(5a) EEG applies to plug-in solar devices with a combined module capacity of at most 2 kW and inverter capacity of at most 800 VA, operated behind a final consumer’s withdrawal point and assigned to export without remuneration. Registration in the Marktstammdatenregister is required. Section 8(5a) EEG
Voltary assumes no feed-in remuneration in its balcony PV model. The calculation covers households without additional PV or an existing battery.
A separate AC battery may have a higher connection rating. This does not automatically qualify the combined system for simplified connection procedures. Check compatibility, connection and registration with the manufacturer and a qualified installer before purchasing.
Solarspitzengesetz
Voltary accounts for the temporary export-power limit and the loss of remuneration during negative wholesale prices. Both affect the value of storage. The calculation uses the system details entered and the selected price time series.
25 February 2025 is the relevant cutoff for applying the new rules. For older systems, transitional provisions determine which version of the EEG applies. Section 100(3), (3b) and (46) EEG
Voltary models these rules for fixed PV systems in Germany with capacity below 100 kW and EEG feed-in remuneration. Direct marketing, project-specific aggregation of installations and systems of 100 kW or more are outside this regulatory model. Balcony PV is calculated separately.
For a new system, each simulated variant’s capacity is used. Roof potential is only the upper limit. Voltary does not activate the new rules described here for systems commissioned before 25 February 2025. Earlier technical requirements and a voluntary switch to the new remuneration rules are not fully modelled.
For the new systems covered here, export power at the grid connection is limited to 60% of installed PV capacity until an intelligent metering system (iMSys) and control equipment are installed and the grid operator has completed the first successful control test. This also applies to fixed PV systems below 2 kWp. The plug-in solar exemption additionally requires the appropriate device type and connection arrangement. Section 9(1) and (2) EEG; Clearingstelle: technical requirements
Voltary supplies household demand first and charges the battery where capacity and charging power are available. It then limits the remaining exports. The energy lost to curtailment depends on the time profiles of generation, demand and battery operation.
Example: An affected 10 kWp system has a 6 kW export limit. If it generates an average of 8 kW during an interval, while the household consumes 1 kW and 1 kW reaches the battery’s charging input, 6 kW remains for export. No additional curtailment is needed in that interval.
The PV commissioning date determines which rules and remuneration periods apply in the calculation. The iMSys installation date affects the start of zero remuneration during negative prices. The first successful control-test date ends the 60% limit. Installing an iMSys alone does not end that limit. Section 9(2) EEG; Section 51(2) EEG
For existing PV, the iMSys installation date and the control-test date may be unknown. Without a successful control-test date, Voltary applies the 60% limit throughout the analysis period in the affected scenario. Without an iMSys installation date, the model assumes no start of zero remuneration; exports during the EEG funding period are then remunerated even when wholesale prices are negative.
An unknown date does not establish whether installation or control testing has already occurred. These assumptions affect battery sizing and financial results. Recalculate the results after adding or changing dates.
For a newly planned system, both dates are required. The fields initially use the planned PV commissioning date and can be adjusted. These are planning assumptions. The successful control test cannot precede PV commissioning or iMSys installation.
For the systems covered here from exactly 2 kWp to below 100 kW, Voltary sets EEG feed-in remuneration to zero in intervals with a negative day-ahead wholesale price, starting no earlier than 1 January after the year of iMSys installation. The wholesale price determines this treatment. The household import price includes additional tariff components and may still be positive. Section 51(1) and (2) EEG
Below 2 kWp, the calendar year of a corresponding BNetzA determination must also have ended. Voltary assumes no future determination and therefore calculates no negative-price remuneration loss for these small systems. The 60% limit is assessed independently. Exactly 2 kWp is outside this additional exemption. Section 51(2), point 2 EEG; Clearingstelle: negative prices
With 15-minute energy data, Voltary assigns remuneration to each interval. Where energy data is hourly but prices are quarter-hourly, the model distributes the energy evenly across the four quarters. If one quarter is negative, this approximation removes 25% of the otherwise applicable hourly remuneration. After EEG remuneration ends, the configured post-EEG export price applies; the model does not set that price to zero under Section 51.
A battery can absorb solar energy that would otherwise be curtailed or exported without remuneration. This requires free capacity and sufficient charging power in that interval. Using the stored energy later can avoid grid imports. The financial benefit depends on factors including electricity prices, losses, ageing and purchase costs.
Voltary charges the battery from the current PV surplus within the configured limits. Its controller uses no generation, demand or price forecast and does not deliberately reserve capacity for the midday peak. A full battery cannot absorb further surplus. The calculated results describe this operation; they do not establish the performance of forecast-based control.
For the systems modelled here, ordinary EEG remuneration ends on 31 December of the twentieth year following commissioning. Section 51a can extend that period when remuneration is suspended under Section 51. Section 25(1) EEG; Section 51a EEG
Voltary counts the affected quarter-hours in the commissioning year and the following 19 calendar years. For PV, this count is multiplied by 0.5 and rounded up to the next whole quarter-hour. The resulting full-load quarter-hour allowance is used up after the ordinary remuneration period according to the statutory monthly quotas. The extension runs through the end of the month containing the final such quarter-hour. Section 51a(1) and (2) EEG
The extension adds periods eligible for remuneration. Their revenue depends on later exports and the remuneration conditions that apply then. It does not guarantee repayment of the same euro amount previously lost. Voltary repeats the selected historical price profile for future years; the resulting extension is a scenario assumption.
Within the analysis period, Voltary uses simulated exports. If the extended remuneration falls later, the model estimates its value from the final operating year’s exports and negative-price pattern, with continued PV degradation. It retains that year’s battery operation without projecting additional battery ageing beyond the analysis period. The estimated revenue enters the financial calculation as a dated terminal value.
Tariff and cost model
We separate fixed energy prices, dynamic interval prices, and annual fixed components. Price charts usually focus on variable EUR/kWh components; annual base charges are included in annual totals when configured.
A fixed energy price can still be combined with time-varying network charges. Voltary therefore prices imports in each interval at the applicable total unit price, then adds the annual fixed components.
- total import price per kWh in interval t, and its constant value in the special case without price changes over time
- grid imports in interval t and their annual sum
- annual fixed tariff components after applicable flat credits
- annual electricity import costs under the fixed tariff, including fixed tariff components, in €
- index of the simulation interval being considered
Under dynamic pricing, grid import is always priced on the chosen simulation time axis: hourly in hourly simulations and quarter-hourly in 15-minute simulations. Annual fixed charges are then added on top.
- time-varying price in interval t
- grid import in interval t
- annual fixed tariff components after applicable flat credits
- annual electricity import costs under the dynamic tariff, including fixed tariff components, in €
- index of the simulation interval being considered
Reported metrics
These metrics describe electricity supplied by PV and storage, the resulting costs and the investment outcome over the selected period.
Uploaded data can already include an existing battery’s operation. A case with 0 kWh of added storage retains that operation in the baseline. The reported storage benefit then measures the effect of the additional battery.
PV utilisation measures the share of PV generation that supplies household loads directly or through storage.
- fraction of PV input energy supplying the household directly or through storage; 0.4 means 40% self-consumption
- PV energy delivered directly to the household and the PV share of battery energy delivered to the household in interval t, both in kWh; storage losses and grid-charged energy are excluded
- PV input energy in interval t, in kWh, at the input boundary specified for the system
- index of the simulation interval being considered
Share of household consumption supplied by own PV
- self-sufficiency: fraction of household demand supplied by PV directly or through storage; 0.4 means 40%
- PV energy delivered directly to the household and the PV share of battery energy delivered to the household in interval t, both in kWh; storage losses and grid-charged energy are excluded
- household consumption in interval t, in kWh
- index of the simulation interval being considered
Compare three versions of the same household: keep the current setup (0), add the proposed PV without a new battery (P), and add the selected PV and battery (S).
- comparison case v and its net electricity costs in interval t, in €: continued operation (0), planned PV without a new battery (P), and selected configuration (S)
- Metered imports and exports in each version, import price and feed-in remuneration
- Additional operating benefit of the new battery, added PV, and complete added project
- index of the simulation interval being considered
The interval-level battery benefit is first summed across all simulated intervals and only then annualized.
- cumulative battery benefit over the analysis period
- battery benefit in interval t
- index of the simulation interval being considered
The reported cycle count divides net charged energy by nominal capacity. It measures charging throughput. Time to 80% remaining capacity is calculated separately from the simulated capacity trajectory.
- total and average annual charge-cycle equivalents based on charging throughput
- net stored charging energy, including reserve restoration, and initial nominal capacity
- time to 80%, retained capacity fraction Rᵢ, number M of valid active simulation intervals and first threshold index j
- length of the analysis period in years
- index of the simulation interval being considered
- index of a valid active simulation interval; R₀ = 1 is the initial value, Rⱼ₋₁ and Rⱼ bracket the first crossing of 80%
The operating benefit of storage over the analysis period is expressed as an annual average.
- total battery benefit over Y years
- analysis horizon in years
- average annual operating benefit of the added battery in €/year, before investment and maintenance costs
Compare keeping the current setup with adding the proposed PV, without a new battery, over the same period.
- net electricity costs in interval t under continued operation and planned PV without a new battery, in €; their difference is the added PV operating benefit
- Analysis period in years
- average annual operating benefit of the added PV in €/year, before investment and maintenance costs
- index of the simulation interval being considered
Payback is the first payment date when cumulative nominal battery cash flow is no longer negative.
- battery investment at project start d₀, in €
- dated nominal payments including investment, payment dates and first recovery in ACT/365F years
- project start and payment date being tested; j indexes tested dates and k the cash flows summed up to that date. Date differences are measured in days and divided by 365 to obtain ACT/365F years
Total profit is obtained by summing all nominal PV and battery net cash flows after maintenance and subtracting the relevant investments.
- total system profit over the analysis period
- nominal battery and PV net cash flows after maintenance
- battery investment, PV investment, and number of cash flows
- payment-date index; 0 denotes the initial investment
Voltary selects the evaluated configuration with the highest value for the chosen objective: net present value or self-sufficiency.
- configuration consisting of PV size, battery capacity, and power
- for a focus on economics or self-sufficiency for a focus on self-sufficiency
- selected configuration within the evaluated search space that maximizes objective g
- discounted project value over the analysis horizon
- self-sufficiency: fraction of household demand supplied by PV directly or through storage; 0.4 means 40%
Investment calculation
The investment calculation assigns each payment a date. Purchase costs occur at project start t₀; operating savings, revenue and maintenance are dated at month-end. Amounts are nominal and include the assumed price changes.
Advanced finance metrics
Net present value (NPV) and internal rate of return (IRR) use the same payments: purchase costs at t₀ and operating savings and revenue after prorated maintenance at each month-end.
discounts every nominal net cash flow back to t₀ using its actual payment date.
- discounted project value over the analysis horizon
- dated nominal cash flow j, including CF₀ = −I₀
- annual discount rate as a decimal value; r = 0.05 means 5% per year
- payment date dⱼ and project start d₀; ACT/365F year fraction
- number of cash flows after the initial investment at index 0
- initial investment in the project in €; its cash flow at project start is negative
- payment-date index; 0 denotes the initial investment
is the annual discount rate that makes equal zero for the same dated cash-flow stream.
- internal rate of return as a decimal value; a result of 0.05 is displayed as 5% per year
- dated nominal cash flow j, including the upfront investment
- payment date dⱼ and project start d₀
- number of cash flows after the initial investment at index 0
- payment-date index; 0 denotes the initial investment
In the cumulative cash-flow chart, the dashed discounted line ends at NPV, while the solid nominal line shows the nominal payback path. Displayed yearly rows aggregate the underlying monthly dated cash flows; maintenance is allocated pro rata to the actual project periods.
Assumptions and defaults
Voltary uses these defaults when you do not enter your own values. You can adjust the settings to match your system and offer.
- Analysis horizon
- 20 yearsYou can change the period used for the investment calculation.
- Project start
- Confirmed local date t₀New assets are active exactly from t₀; the financial horizon and operating years are measured from that date.
- Time basis
- Fixed-interval simulation at 15 or 60 minutesInput series are normalized to a common 15-minute or 60-minute interval grid before dispatch, depending on the selected or detected dataset granularity.
- Annual fixed tariff components
- Included in annual totals when configuredEUR/kWh charts often show only variable price components.
- SoC bounds
- 10% min / 95% max / 50% initialApplied only when no explicit configuration is present.
- Efficiencies
- 95% charge / 95% dischargeAffect stored energy, delivered electricity and actual import/export costs.
- Self-discharge
- 3.0 %/monthApplied as a compounded interval loss on stored energy before reserve restoration.
- Standby / auxiliary power
- 5 WAuxiliary demand uses available PV first. The battery covers the remainder at a positive import price above reserve and within power limits, followed by the available grid path.
- Cycle evaluation
- Naumann: half-cycles; BLAST: daily windowsFixed published coefficients. A user-defined reference cycle count does not change these models.
- Cell chemistry
- LiFePO4 (LFP) / graphiteBoth models refer to Sony/Murata cells. Shared chemistry alone does not establish transferability to other products.
- Battery ageing
- Naumann · Sony/Murata LFP (default) or BLAST-Lite · Sony/Murata LFPVoltary calculates ageing with the selected cell model. Results are not a product warranty.
- Ageing stressors
- Calendar: time, SOC, temperature; cycling: throughput, depth, C-rateThe cycle terms have no explicit temperature factor. BLAST adds SOC-dependent early-cycle loss.
- Adjustable inputs
- Cell temperature: 25 °C; allowed range 10–45 °CThe app accepts this input range. Not every combination of temperature, state of charge and load was tested experimentally. Model coefficients are fixed; you can switch ageing off.
- PV degradation
- 0.5% per yearDefault used in multi-year PV projections.
Profile and scenario continuation
Notation and units
Fractions and interest rates enter the equations as decimal values: 0.95 means 95% efficiency, and 0.05 means a 5% capacity loss or 5% annual interest. Equations from the sources are expressed in this notation; any unit conversions are explained beside the relevant formula. Intermediate markers such as (sd), (reserve), (d) and (pv) identify stored-energy states within a simulation interval.
- Energy quantity
- UnitkWh
- Power
- UnitkW
- Price or tariff component
- UnitEUR/kWh
- Cost or annual savings
- UnitEUR
- Investment
- UnitEUR
- Total profit over the analysis horizon
- UnitEUR
- Charging or discharging efficiency; 0.95 means 95%
- Unit1
- Energy stored in the battery; s denotes the relative state of charge
- UnitkWh
- Simulation interval
- Unitindex
- Analysis horizon
- Unityears
- State of charge and operating limits as fractions between 0 and 1
- Unitdimensionless
- Cycle depth as a SOC difference: 0.8 means 80 percentage points
- Unitdimensionless
- Calendar and cycling losses as fractions of initial capacity
- Unitdimensionless
- Capacity relative to initial capacity: H at day end for BLAST, R at a simulation interval for the 80% metric
- Unitdimensionless
- PV utilisation and self-sufficiency as ratios; 0.75 is displayed as 75%
- Unitdimensionless
- Annual discount rate and internal rate of return; 0.05 means 5% per year
- Unitdimensionless
- Charging or discharging rate relative to capacity; 0.5 h⁻¹ means 0.5 C
- Unith⁻¹
- Universal gas constant in the temperature function
- UnitJ/(mol·K)
- Sigmoid function for capacity loss in the BLAST model
- Unitdimensionless
- Exponent of long-term BLAST cycling loss, approximately 1.12848
- Unitdimensionless
- Elapsed ageing time: τ in seconds for Naumann, in days for BLAST
- Unitseconds / days
- Comparison case: current setup (0), added PV (P), added PV and storage (S)
- Unitdimensionless
- Number of cash flows after the initial investment, which has index 0
- Unitdimensionless
Indices, suffixes, and arrow notation
- energy before efficiency losses
- Example is gross energy charged from the grid.
- energy after efficiency losses or expressed as a net effect
- Example is energy stored net inside the battery.
- remaining quantity after an earlier step
- Example is residual load after direct PV coverage.
- potential export before regulatory limitation
- Example is only later capped to if required.
- dynamic tariff notation or feed-in scaling reference
- Example is the interval price; scales permitted feed-in.
- directed energy flow from source a to sink b
- Example means direct PV-to-load coverage; means battery charging from the grid.
- temporary battery state of charge within the same interval
- Example is after self-discharge, after reserve restoration, after discharge, and after PV charging.
Data sources
The calculation uses your inputs, uploaded measurements and the following external data.
Ageing model references
Sources support cell experiments, model equations and numerical implementation. They do not independently validate transferability to a specific home battery.
BLAST-Lite · Sony/Murata LFP
Implemented capacity equations and coefficients; pinned revision with numerical comparison. Voltary adapts execution and daily aggregation; it does not run a thermal pack simulation.
lfp_gr_SonyMurata3Ah_2018.py · BSD-3-ClauseNaumann et al. (2018) · LFP calendar ageing
Calendar model and coefficients of the Naumann approach; also an experimental basis of the BLAST model.
Analysis and modeling of calendar aging of a commercial LiFePO4/graphite cellNaumann et al. (2020) · LFP cycle ageing
Cycle model and coefficients of the Naumann approach, with dynamic validation for the investigated cell type.
Analysis and modeling of cycle aging of a commercial LiFePO4/graphite cellGasper et al. (2022) · Model identification
Identification of the BLAST model equations. The underlying cell measurements and adopted code revision are attributed separately.
Machine-Learning Assisted Identification of Accurate Battery Lifetime Models with UncertaintyNaumann (2018) · Dissertation
Chapter 5, Tables 5.1 and 5.3: coefficients and units; section 5.3.2: half-cycle evaluation in dynamic validation.
Techno-economic evaluation of stationary battery energy storage systems with special consideration of agingSimSES · Naumann continuation
Separate loss states as an implementation reference; pinned code version. No additional cell study or independent validation for home batteries.
sony_lfp_cyclic.py · BSD-3-Clause
Short worked example
This simplified example calculates battery discharge over one hour. Self-discharge and auxiliary demand are zero; ageing and annual fixed charges are excluded. The final step gives a separate simplified payback calculation.
1. Inputs
Load 4.0 kWh; PV 1.0 kWh; starting SoC 6.0 kWh; capacity 10.0 kWh; SoC bounds 10% and 95%; P_d = 3.0 kW; η_d = 0.95; price 0.30 EUR/kWh.Inputs for one hour.This example isolates one hour: self-discharge and auxiliary consumption are zero; degradation and annual fixed costs are excluded.
2. Direct coverage and residual load
PV→load = min(1.0, 4.0) = 1.0. Therefore L^res = 4.0 - 1.0 = 3.0.Direct PV coverage 1.0 kWh; residual load 3.0 kWh.The battery supplies demand left after direct PV use.
3. Discharge and grid import
Maximum deliverable to load: 0.95 × min(6.0 - 1.0, 3.0) = 2.85. Remaining grid import: 3.0 - 2.85 = 0.15.Battery discharge 2.85 kWh; grid import 0.15 kWh.Energy above the minimum reserve, discharge power and efficiency limit delivery to the household.
4. Updated SoC and interval benefit
S_t = 6.0 - 2.85 / 0.95 = 3.0. Interval benefit: 2.85 × 0.30 = 0.855 EUR.End-of-interval SoC 3.0 kWh; interval monetary value 0.855 EUR.In this hour, the battery displaces grid imports. There is no forgone feed-in revenue or grid-charging cost, so the benefit equals the cost of the avoided grid electricity.
5. Cash flow and payback
With 720 EUR of operating battery benefit, 120 EUR maintenance per full operating year and 6,000 EUR investment, nominal net cash flow is 600 EUR per year. Under constant nominal cash flows, the investment is recovered after 10 years.600 EUR annual net cash flow; nominal payback 10 years.This simplified example shows nominal cash flows and payback. NPV and IRR use the actual payment dates. NPV uses the selected discount rate; IRR finds the rate at which NPV is zero.
Model limitations
- Future electricity prices, levies and regulation are uncertain. The calculation uses the selected assumptions and does not guarantee future prices.
- The Solarspitzengesetz path covers fixed PV below 100 kW with EEG feed-in remuneration. Balcony PV is modeled separately without remuneration; direct marketing and project-specific system aggregation are not modeled. Below 2 kWp, no future BNetzA determination is assumed. Section 51a recovery outside the analysis period is estimated from the final operating year with continued PV degradation. The model is not a legal compliance assessment.
- Voltary calculates individual result values for each configuration under the selected assumptions. It does not calculate statistical uncertainty ranges or confidence intervals.
- Ageing uses a constant cell temperature and specific Sony/Murata LFP cell models. Independent home-battery validation, a thermal model and ageing-dependent efficiencies or power limits are absent. Long horizons extrapolate the measurement duration.
- If an upload already contains battery flows, we keep that existing battery's measured total charge and discharge fixed in every modeled interval and neither re-optimize nor synthetically age it. When PV degradation reduces the PV energy available for that fixed charging, the shortfall is assigned to grid import. Long-horizon projections with an uploaded existing battery are therefore conditional fixed-dispatch projections rather than a technical battery-aging forecast.
- Household behaviour changes, manual intervention, and manufacturer-specific control strategies are only captured to the extent that they are represented in the inputs and assumptions.
- Installer quotes, financing costs, tax edge cases, and project-specific ancillary costs are outside the baseline equations documented here.
- Advanced finance outputs are pre-tax and unlevered. Taxes, grants, depreciation, salvage value, and automatic replacements are excluded from the base calculation. For a selected configuration, the app can separately deduct one additional future payment from NPV and nominal net profit. This optional cost scenario changes neither the recommendation nor energy flows or ageing, and does not predict failure.
- Even a comparison using the same assumptions can differ from later outcomes. Before investing, check that consumption, prices, costs and technical specifications match your project.