How the engines work, and what they refuse to do.
Most solar software gives you a number. This page is the method behind ours — the models, the sources, the thresholds, and the places where the engine stops and says it does not know. Every figure below is read directly from the code that runs your project, so it cannot drift from what actually happens.
Same physics. Different resolution, and different weather.
Both modes run one chain: a single-diode module model with an ASHRAE incidence-angle correction, NOCT or Faiman cell temperature, Hay-Davies or Perez transposition, a Marion two-dimensional bifacial model, a measured inverter efficiency curve, plant AC losses and power-factor limits. What changes is the timestep and where the weather came from.
| Estimate | Bankable | |
|---|---|---|
| Timestep | Monthly average day | 8,760 hours |
| Method | Duffie & Beckman, with the daily split by Erbs and Collares-Pereira | Hour-by-hour over a real year |
| Weather | Long-term climatology | NREL hourly, or a TMY or EPW file you supply |
| Speed | Well under a millisecond | Seconds |
| May state inverter clipping | No | Yes |
That last row is the important one. The monthly model infers an hourly shape from twelve monthly means, so it has never seen a cloud transient and cannot honestly back a clipping claim. The 8,760 run is the only mode permitted to state one, because it is the only mode that has seen the transients that cause it.
The estimate is not a rule of thumb. Duffie & Beckman is the standard textbook method and it runs the same physics; it is fast enough that you can move a row or change a tilt and watch the answer move.
Bankable is earned, not selected.
There is no checkbox that makes a result bankable. A run earns the label only if all three hold:
- it ran at 8,760 hours or finer;
- its meteorology came from a named source, not a fallback;
- nothing anywhere in the chain was invented.
If any input was substituted, the result is still produced — and it is labelled an estimate, with the reason attached. Every result carries its own provenance: meteo source, timestep, thermal and transposition models, timezone, and any fallback that was used. On screen and in the PDF.
Four things the engine will not do.
These are refusals, not warnings. The engine returns an error rather than a plausible number.
Weather that invents its own components
A CSV with only global irradiance, from which beam and diffuse would have to be derived, is refused in bankable mode. Deriving them is a model, and a model inside your input data is indistinguishable from measurement once it is in.
Synthetic hourly weather
An hourly series generated from monthly means is refused for a bankable run. Provide NREL hourly, a TMY or an EPW.
Stringing without a real voltage window
Detailed electrics need the module and inverter datasheet limits. Without them the engine refuses rather than falling back on a nominal string length, because a string sized on a guess is a safety question, not a yield question.
Irradiance that cannot be horizontal
Every incoming series is checked against a monthly clearness index of 0.85. Nothing on Earth exceeds it — the clearest places measured return about 0.78 — so a series above it is not the horizontal irradiance it claims to be, and is rejected before it is stored.
That last check exists because we once shipped the mistake it now catches: a whole climatology table was stored as plane-of-array rather than horizontal irradiance, and the engine transposed it a second time. The guard is a physical-impossibility test, not a preference.
Losses compound. They do not add.
Default assumptions for a representative system. Two per cent then three per cent leaves 95.06%, not 95% — the engine multiplies, and so does this table.
| Loss | Default | What it is |
|---|---|---|
| Soiling | 2.0% | Dust and dirt on the glass |
| Shading | 3.0% | Near-field and horizon not captured by geometry |
| Mismatch | 2.0% | Module-to-module I-V spread |
| DC wiring | 2.0% | String and home-run ohmic loss |
| Connections | 0.5% | Connector and terminal resistance |
| LID | 1.5% | Light-induced degradation, first year |
| Nameplate | 1.0% | Flash-test tolerance against the rating |
| Availability | 3.0% | Grid and plant downtime |
| AC wiring | 1.0% | Inverter to metering point |
| Reaches the meter | 85.1% | Compounded, not summed |
The curve is a band, because the datasheet is.
TOPCon (n-type) loses 0.5–1% in its first year, then 0.4–0.45% a year after that. Those are ranges in the source, so we draw a range. Putting one confident line through them would be a stronger claim than the manufacturer makes.
Each module technology carries its own profile, including whether it is suitable for a 25-year financial model at all.
Wind to the governing code, foundations against uplift.
Wind pressures follow ASCE 7-22, IS 875 Part 3 or EN 1991-1-4, whichever governs the site. Foundations are sized against uplift, not bearing — wind puts a solar foundation in tension, and tension skin friction is only 50–80% of compression friction, so embedment is set by pullout.
Ballasted roof arrays are quantised to whole pavers and capped at 6 blocks per position, because 6 is the largest number any manufacturer publishes. Past it the design is not heavy — it is unbuildable, and the engine says so rather than printing a taller stack.
Checked against the manufacturer's own limit-state capacity tables, our uplift result lands at 48–83% of the tabulated value — always under, never over. The gap is lateral-distortional buckling, which needs a rotational-stiffness figure that the governing standard defers to two documents nobody publishes. So it is measured, bounded, printed on the specification, and left open in the safe direction.
We could close it by choosing a coefficient. We have not, and will not.
Self-hosted, and audited against itself.
The global irradiance grid is ours, on a one-degree grid, so a lookup costs nothing and depends on nobody. Upstream is NREL PVWatts and NASA POWER; a cached cell is re-checked against the horizontal-irradiance test above every time it is read.
Every cell also carries its ground elevation, and cells below 500 m are open ocean and are not offered as sites. That threshold sits below the lowest dry land on Earth, so it removes sea without removing anywhere you could build. It exists because the upstream answers for water: PVWatts delivers its international coverage as rectangular tiles and will return an irradiance figure for a point four kilometres under the Arabian Sea.
Component ratings come from the compliance registries and manufacturer datasheets. A part with no rating on file is priced as unrated — quantity zero, a warning on the proforma — rather than given a plausible default. A module that silently defaulted to 550 W when its datasheet said 690 W is the reason that rule exists.
Read the model, then run one.
Free to start. The live demo is a real account — open it and check any of this yourself.