Why cold weather, not hot weather, sets the string limit
A silicon solar cell's open-circuit voltage falls as it warms and rises as it cools, by roughly a quarter to a third of a percent per degree Celsius. Current barely moves. That asymmetry means a PV string's voltage peaks on the coldest, clearest morning of the year — typically just after sunrise, when the modules are at air temperature and the sun has just hit them — and that peak is what can exceed an inverter's absolute maximum input and destroy it.
NEC 690.7 turns this into a design rule. The maximum PV system voltage is the sum of the series-connected modules' rated open-circuit voltage, corrected for the lowest expected ambient temperature. That corrected value is what must stay below the inverter's rating, below the DC disconnect and conductor voltage ratings, and below the 600 V ceiling that applies to one- and two-family dwellings unless the system qualifies for one of the code's exceptions.
The opposite bound comes from the inverter rather than the code. Under load on a hot roof, cell temperature can reach 70 °C or more, and the maximum-power voltage falls with it. If it falls below the MPPT window's lower limit, the inverter stops tracking and the array's output collapses at exactly the time of day the sun is strongest. A string that is legal but too short is a production problem; a string that is too long is a safety and warranty problem.
So string sizing is a bracketing exercise: long enough to stay above the MPPT start point when hot, short enough to stay below the maximum input when cold. This page evaluates both ends.
The correction, term by term
The correction is a straight linear extrapolation from standard test conditions: V = VSTC × [1 + (coefficient/100) × (T − 25)]. Everything hangs on getting three things right.
The coefficient is negative and is a percentage per degree. A module with β = −0.26 %/°C loses 0.26% of its Voc for each degree above 25 °C, and gains the same for each degree below. At −10 °C the bracket is 1 + (−0.0026)(−35) = 1.091, so the module produces 9.1% more open-circuit voltage than its datasheet says. Some datasheets print the coefficient in mV/°C instead; divide by Voc and multiply by 100 to convert.
The cold case uses ambient temperature; the hot case uses cell temperature. This trips people up, and it is not an inconsistency. At open circuit no current flows, so the module dissipates almost nothing and sits close to air temperature — which is why NEC 690.7 says ambient. Under load the cell runs well above air temperature because it is absorbing sunlight and converting only a fifth of it, so the Vmp check has to use a cell temperature. A close-mounted roof array commonly runs 25–30 °C above ambient; a ground-mounted or racked array with free airflow runs closer to 20 °C above.
The design minimum temperature is a statistical figure, not the coldest day you remember. The convention in the industry is the extreme annual mean minimum design dry-bulb temperature published in the ASHRAE climatic design data for the nearest station, which is the number the Solar ABCs expedited-permit process and most plan reviewers expect. Using a mild winter average instead of an extreme value is the single most common way a string ends up over voltage.
Then divide. The maximum modules per string is floor(inverter maximum ÷ corrected Voc) — floor, not round, because a fractional module is not a thing and rounding up is the failure mode you are trying to avoid. The minimum is ceil(MPPT lower limit ÷ hot Vmp). If the minimum exceeds the maximum, no string length works and you need different equipment.
Worked example: a 10-module string on a 600 V inverter
The module has Voc = 49.8 V, Vmp = 41.8 V, β = −0.26 %/°C and γ = −0.35 %/°C. The site's design minimum ambient is −10 °C, the roof array is expected to reach 70 °C cell temperature, and the inverter is rated 600 V maximum input with an MPPT window of 200–550 V. You plan ten modules per string.
- Cold temperature swing. −10 − 25 = −35 °C below STC.
- Cold correction factor. 1 + (−0.26 ÷ 100) × (−35) = 1 + 0.091 = 1.091.
- Corrected Voc. 49.8 × 1.091 = 54.3318 V per module.
- String voltage when cold. 10 × 54.3318 = 543.3 V. That is 56.7 V below the 600 V limit, so the string passes with 9.4% headroom.
- Maximum string length. 600 ÷ 54.3318 = 11.043, and the floor of that is 11 modules. Twelve modules would give 651.98 V — 52 V over the limit and an immediate inverter failure on the first cold morning.
- Hot correction factor. 1 + (−0.35 ÷ 100) × (70 − 25) = 1 − 0.1575 = 0.8425.
- String Vmp when hot. 10 × 41.8 × 0.8425 = 10 × 35.2165 = 352.2 V, comfortably inside the 200–550 V window.
- Minimum string length. 200 ÷ 35.2165 = 5.679, and the ceiling of that is 6 modules.
So any string from 6 to 11 modules works electrically, and 10 is a sensible choice because it sits near the top of the window where the inverter is most efficient without crowding the cold limit. Move the same array to a site with a −25 °C design minimum and the correction factor becomes 1.13, the corrected Voc becomes 56.274 V, and the maximum string drops to 600 ÷ 56.274 = 10.66, or 10 modules — the ten-module design still works, but there is no longer an eleventh available.
How much headroom is enough
Treat the inverter maximum as absolute. It is not a nominal figure with a hidden margin; exceeding it can break down the input stage, and manufacturers routinely deny warranty claims when the string calculation shows an overvoltage design. There is no benefit in landing at 599 V.
Five percent headroom is a reasonable working target, and it is not a code requirement. It absorbs module-to-module Voc tolerance, which is commonly ±3% on the datasheet, and a colder-than-design morning. The calculator flags anything below 5% so you make that call deliberately.
A high cold-morning Vmp is a production issue, not a hazard. If the operating voltage on a cold morning exceeds the MPPT upper limit, the inverter clamps its input and operates off the true maximum power point until the array warms up. You lose a little energy in the first hour of a cold clear day. That is a design trade-off worth making if it buys a longer string.
Short strings cost more than they look. Below the MPPT window the inverter produces nothing at all, but even well inside the window a low string voltage means higher current for the same power, which increases conductor losses and can push you into larger DC wire. Sizing that side of the system is covered in the solar panel array sizing calculator and the voltage drop calculator.
Check the balance-of-system ratings too. The corrected maximum voltage applies to conductors, DC disconnects, fuses, combiner boxes and the modules' own maximum system voltage rating, not just the inverter. A 1,000 V-rated module on a 600 V inverter is fine; a 600 V-rated component in a string calculated at 620 V is not.
Corrected Voc and maximum string length for common modules
| Voc (STC) | β (%/°C) | Design Tmin | Corrected Voc | Max in a 600 V string | Max in a 1000 V string |
|---|---|---|---|---|---|
| 40.0 V | −0.28 | −10 °C | 43.92 V | 13 | 22 |
| 45.0 V | −0.28 | −10 °C | 49.41 V | 12 | 20 |
| 49.8 V | −0.26 | −10 °C | 54.33 V | 11 | 18 |
| 49.8 V | −0.26 | −25 °C | 56.27 V | 10 | 17 |
| 49.8 V | −0.26 | −40 °C | 58.22 V | 10 | 17 |
| 55.0 V | −0.24 | −10 °C | 59.62 V | 10 | 16 |
| 38.5 V | −0.32 | −20 °C | 44.04 V | 13 | 22 |
Note the third and fourth rows: the same module loses a whole position in the string purely because the site is 15 °C colder. Latitude changes string design more than module choice does.
Mistakes that put a string over voltage
- Using average winter low instead of the extreme design minimum. The difference between a −5 °C average January low and a −25 °C extreme minimum is about 5% of string voltage, which is exactly the headroom most designs have.
- Applying the coefficient of Pmax to Voc. The power coefficient is steeper than the voltage coefficient — typically −0.34 %/°C against −0.26 %/°C — so using it for the cold calculation overstates the maximum voltage and costs you a module per string.
- Correcting Voc at cell temperature. At open circuit the module is near air temperature; adding a 25 °C rise to the cold case understates the voltage and defeats the purpose of the calculation.
- Ignoring module tolerance. A ±3% Voc tolerance on a string calculated at 595 V of a 600 V limit means some strings ship over the limit.
- Mixing module types in one string. Series-connected modules must share a current, so mismatched modules cost production; they also make the voltage calculation the sum of two different corrections rather than a multiple of one.
- Assuming 1,000 V equipment is permitted on a house. NEC 690.7 restricts one- and two-family dwellings to 600 V maximum, with narrow exceptions. Commercial and utility systems routinely run 1,000 or 1,500 V.
- Forgetting the DC conductors and disconnects. Every component in the DC circuit must be rated for the corrected maximum voltage, not for the STC sum.
What NEC 690.7 actually requires
Under the 2017 and later editions of NFPA 70, the maximum PV source and output circuit voltage is calculated as the sum of the parallel-connected modules' rated open-circuit voltage corrected for the lowest expected ambient temperature, using either the manufacturer's temperature coefficient or, for crystalline and multicrystalline silicon modules where the coefficient is not supplied, the correction factors published in the code. An alternative method based on an industry-standard engineering calculation is also permitted for systems of 100 kW or larger under the supervision of a licensed professional engineer. Adoption is by jurisdiction: confirm which edition your AHJ enforces before you finalise a string design.
String sizing among the other PV calculations
String voltage sizing is one of four independent constraints on a PV array, and satisfying it says nothing about the others.
Current and inverter capacity. The number of strings in parallel is set by the inverter's maximum input current per MPPT and by its DC-to-AC ratio, not by voltage. Most designs deliberately oversize the array 1.15 to 1.3 times the inverter's AC rating, because clipping a handful of peak hours a year costs less than the extra inverter capacity.
Conductor sizing. DC circuit conductors are sized from short-circuit current with the NEC 690.8 factors applied, then checked for voltage drop. That is a separate exercise from this one and is covered in the wire size and ampacity calculator.
Battery-coupled systems. If the array charges a battery through a charge controller rather than feeding a grid-tie inverter, the voltage window belongs to the controller, and an MPPT controller's maximum input voltage is corrected exactly the same way. The solar charge controller sizing calculator covers that case, and the inverter sizing calculator handles the AC side of an off-grid system.
Module-level electronics change the problem. Microinverters and DC optimisers put one or two modules on their own conversion stage, so the long-string voltage problem largely disappears — replaced by a per-device limit and a maximum number of units per branch circuit. If the roof has multiple orientations or partial shade, that architecture usually wins on production regardless of what the string arithmetic says.
Key terms
- Voc
- Open-circuit voltage — what a module produces with nothing connected. The highest voltage the module ever presents, and the basis of the NEC 690.7 maximum system voltage.
- Vmp
- Voltage at the maximum power point under load at standard test conditions. Roughly 80–85% of Voc for crystalline silicon, and the figure the MPPT window is compared against.
- MPPT window
- The input voltage range within which an inverter can track the array's maximum power point. Above it the inverter clamps; below it the inverter produces nothing.
- STC
- Standard test conditions: 1,000 W/m² irradiance, 25 °C cell temperature and air mass 1.5. Every datasheet figure used here is quoted at STC.
- Temperature coefficient
- The fractional change in a module parameter per degree Celsius away from 25 °C. Negative for voltage and power on silicon modules, slightly positive for short-circuit current.
