SolarSoftwares
Book a demo

What Is Air Mass and Solar Spectrum (AM)?

How we keep reviews fair

Quick answer

Air mass (AM, also called optical air mass) is how much atmosphere sunlight crosses, compared with the shortest path. It is 1.0 with the sun overhead at sea level. The solar spectrum is how that light spreads across wavelengths. Modules are rated at the AM1.5 reference spectrum.

Ready to see how it works?

Tell the SolarSoftwares team which tool you are considering. We reply by email to book your demo.

Book a demo
Jump to a section

Key takeaways

  • Air mass is about 1 / cos(zenith). That gives 1.00 overhead, 1.50 at a 48.19° zenith and 2.00 at 60°. The Kasten-Young formula gives exactly 1.5 at 48.26°.
  • Module ratings use the AM1.5G reference spectrum, which integrates to 1,000.4 W/m² over 280 to 4,000 nm. Real site light shifts with sun height and altitude.
  • The 1 / cos shortcut runs 0.3% above Kasten-Young at 60° and 3.1% above it at 80°. Near the horizon the error grows fast.
  • AM1.5 is an absolute air mass. At 1,500 m (standard atmosphere, 84,556 Pa) the sun must sit at a 56.3° zenith to give 1.5, not 48.3°.
  • At the example 52°N site, noon air mass was 1.62 on 20 March, 1.14 on 21 June and 3.91 on 21 December. Only June reached 1.5 or lower, for 6.85 hours.

To apply spectral correction in a yield model, see the best solar simulation software list. Pvlib and PVsyst document it.

Air mass and solar spectrum at a glance

Air mass says how much atmosphere the sun’s light crosses. The spectrum says what that light is made of. A module’s rating assumes one fixed spectrum, AM1.5.

ItemDetail
FormulaRelative AM ≈ 1 / cos(zenith). Absolute AM = relative AM × site pressure ÷ 101,325 Pa (pvlib).
Unit / typical rangeNo unit. 1.0 with the sun overhead at sea level, rising towards about 38 at the horizon in the Kasten-Young formula.
Where it mattersThe datasheet rating, spectral correction in yield models, and thin-film and CdTe yield.
Standard or ruleASTM G173-03 (data via NREL, ASTM’s page lists G173-23 as the active version and G173-03 as historical). Module STC cites IEC 60904-3, as in the Qcells datasheet on the standard test conditions page.
In softwareAir mass is computed inside simulation engines. Some apply it in a spectral correction.

Why air mass and the spectrum matter for installers

They explain why a module rated at AM1.5 rarely sees that spectrum. They also explain why spectral losses differ by module technology. Sandia’s PVPMC treats it as one step between broadband plane-of-array irradiance and effective irradiance.

The rating itself is set under standard test conditions. See our standard test conditions page. HelioScope applies a spectral adjustment to CdTe modules. PVsyst corrects amorphous modules automatically when spectral correction is on. See thin-film solar.

Air mass is also a quick check on sun height. See DNI and solar irradiance.

How is air mass calculated?

Divide 1 by the cosine of the sun’s zenith angle. That is exact for a flat Earth and good for a high sun. Near the horizon, use a fitted formula such as Kasten-Young (1989).

  1. Find the sun’s zenith angle for the time and site. See solar zenith and incidence angle. pvlib says most air mass models expect the apparent zenith.
  2. Take relative air mass as 1 / cos(zenith) for a high sun. Sandia’s PVPMC calls this quite accurate below 80°. Our test puts it 0.7% above Kasten-Young at 70° and 3.1% above it at 80°.
  3. Near the horizon, use Kasten-Young: AM = 1 / (cos z + 0.50572 × (96.07995 − z)^(−1.6364)), with z in degrees. The exponent −1.6364 applies to the bracket (96.07995 − z), not to the whole sum. This is the form in pvlib’s code, and it is pvlib’s default model.
  4. For absolute air mass, multiply by site pressure and divide by 101,325 Pa. Get pressure from a measurement, or from altitude with pvlib’s alt2pres.

Table 1 feeds the same zenith number to each model. pvlib says Young 1994 expects the true zenith and the others expect the apparent zenith. So rows near the horizon include that difference.

Table 1. Relative air mass by model (pvlib 0.16.1).

Zenith (°)1 / cos zKasten-Young 1989Young 19941 / cos z vs Kasten-Young
01.001.001.00+0.0%
301.151.151.15+0.1%
48.191.501.501.50+0.1%
602.001.991.99+0.3%
702.922.902.90+0.7%
805.765.595.54+3.1%
8511.4710.3110.06+11.3%
8828.6519.4318.06+47.4%

Kasten-Young and Young 1994 agree within 0.3% up to 70°. At 88° they run from 18.1 (Young 1994) to 28.7 (1 / cos z). The 1 / cos z shortcut passes 1% error at 72.9° and 5% at 82.2° in our scan.

What is the AM1.5 spectrum?

AM1.5 is the reference sunlight spectrum behind module ratings. NLR (formerly NREL)’s page says ASTM G173-03 holds two terrestrial spectra. One is direct normal (AM1.5D). One is total (AM1.5G) on a plane tilted 37° towards the equator.

NREL lists these conditions: the 1976 U.S. Standard Atmosphere, 0.34 cm of ozone, 1.42 cm of water vapour and an aerosol optical depth of 0.084. It also lists an absolute air mass of 1.5. ASTM’s page says the tables assume a cloudless atmosphere favourable to PV. They were made with the SMARTS model. The 37° tilt represents the average latitude of the 48 contiguous US states. AM0 is the spectrum outside the atmosphere, as PVEducation puts it.

On the sea-level secant model, an absolute air mass of 1.5 means a zenith of 48.19°. Kasten-Young puts it at 48.26°. Sandia’s page gives the tilt as 38°. NREL and pvlib say 37°.

Three charts: standard solar spectra, air mass against zenith angle, and error of the secant shortcut

Figure 1. The direct spectrum totals 900.1 W/m², 33% below AM0, and the 1 / cos error grows fast above 70°. Totals integrate 280 to 4,000 nm. The plot shows to 2,500 nm.

The totals come from integrating pvlib’s copy of the G173 data. pvlib states about 1000.37 W/m² for the global spectrum, and we get 1000.37. PVEducation says AM1.5D can be approximated by reducing AM0 by 28%. On these totals the cut is 33.2%, so treat the 28% as a rough rule.

Worked example: air mass through the year, then altitude

At an example sea-level site at 52°N, the noon sun reached AM 1.5 only in summer. Inputs: 0°E, one-minute steps, apparent zenith from pvlib’s NREL SPA, Kasten-Young air mass, 2026 dates, UTC clock.

Table 2. Noon air mass and time at or below AM 1.5 (example site).

DayNoon apparent zenith (°)Noon air massDaylight hoursHours at or below AM 1.5
20 March52.021.6212.120.00
21 June28.551.1416.656.85
21 December75.383.917.680.00

The sun was never that high on 20 March or 21 December. In June, 6.85 of 16.65 hours qualified. Noon zenith is about latitude minus declination. So on an equinox, AM 1.5 at noon needs a latitude below about 48°. See the sun path diagram.

Altitude changes the answer. Table 3 keeps relative air mass at 1.50 (zenith 48.26°) and applies pvlib’s standard-atmosphere pressure.

Higher sites reach lower absolute air mass for the same sun position.

Table 3. Absolute air mass for a relative air mass of 1.50, by altitude.

AltitudePressure, PaPressure ÷ 101,325Absolute air mass
sea level101,3251.0001.500
500 m95,4610.9421.413
1,500 m84,5560.8351.252
3,000 m70,1090.6921.038

At 1,500 m the sun must drop to a 56.3° zenith before absolute air mass reaches 1.5. Real pressure varies with weather. See weather and solar resource data.

Spectrum detail (optional)

Table 4 shows how much power each wavelength band loses between AM0 and the AM1.5 spectra.

The atmosphere cuts UV most. Visible light holds up best.

Table 4. Power in four wavelength bands, W/m² (share of that spectrum). The band edges are our own round numbers.

BandAM0AM1.5DAM1.5G
UV 280-400 nm102.8 (7.6%)30.5 (3.4%)46.1 (4.6%)
Visible 400-700 nm530.0 (39.3%)374.8 (41.6%)429.8 (43.0%)
Near-IR 700-1,100 nm377.3 (28.0%)305.1 (33.9%)328.6 (32.9%)
IR 1,100-4,000 nm337.8 (25.1%)189.7 (21.1%)195.8 (19.6%)
Total, 280-4,000 nm1,347.9900.11,000.4

Going from AM0 to AM1.5D removes 70% of the 280 to 400 nm power. It removes 44% of the 1,100 to 4,000 nm power. The visible share rises from 39.3% to 41.6% of a smaller total.

How does the spectrum change as air mass rises?

More atmosphere removes blue light faster than red. The blue-to-red ratio of the direct beam (400 to 500 nm over 600 to 700 nm) falls as air mass rises. That shifts the light towards wavelengths that suit some cell types better than others.

Table 5 uses pvlib’s SPECTRL2 (Bird simple spectral model, cloudless sky, 300 to 4,000 nm). Inputs are G173-style: 101,325 Pa, 1.42 cm water, 0.34 cm ozone, aerosol optical depth 0.084, Kasten-Young air mass. The model is a lower-detail estimate. At AM 1.5 it gives 882 W/m² direct against 900 in G173 (-2.0%, 300 to 4,000 nm against 280 to 4,000 nm). Its blue-to-red ratio at AM 1.5 is 0.994 against 0.914 in the G173 direct data. Use the trend, not the levels.

Table 5. Modelled direct beam (SPECTRL2, modelled not measured) by air mass.

Relative air massDirect beam total, W/m²400-500 nm, W/m²600-700 nm, W/m²Blue-to-red ratio
1.00966115.1105.41.093
1.5088297.698.20.994
1.9981282.991.50.906
2.9071061.680.60.764
5.5951026.155.90.467

From AM 1.0 to 5.6 the modelled direct beam falls 47%, and the 400 to 500 nm band falls 77%. The 600 to 700 nm band falls 47%.

Air mass calculator

Enter an apparent zenith or elevation angle and an altitude or pressure. Defaults reproduce the AM1.5 sea-level case.

Open the calculator on its own page

How solar software handles air mass and the spectrum

pvlib and PVsyst document both air mass and spectral correction. SAM has air mass equations inside some models, HelioScope adjusts CdTe modules only, and PV*SOL’s page mentions neither. Ratings reflect the page read, not model quality.

SoftwareDocuments air mass or spectrum handling?Page read
pvlib pythonYespvlib 0.16.1 docs, October 2026
PVsystYesPVsyst help, two pages, no date shown, October 2026
SAMPartlyNREL/TP-6A20-64102, May 2015 (SAM 2015.1.30), so older than current SAM
HelioScopePartlyHelioScope help, no date shown, October 2026
PV*SOL premiumNot statedPV*SOL help, irradiation page, no date shown, October 2026

Partly: the page covers air mass or the spectrum for only some models. Not stated: the page we read does not mention either. The notes below give each page’s detail.

  • pvlib python: get_relative_airmass offers eight models, default kastenyoung1989. get_absolute_airmass multiplies by pressure ÷ 101325. get_reference_spectra returns ASTM G173-03. spectral_factor_firstsolar takes precipitable water and absolute air mass.
  • PVsyst: The Spectral Correction page says the FirstSolar model takes air mass and precipitable water. It is "Disabled by default; user must enable it manually in ‘Detailed losses’". Amorphous and Sandia-database modules get an automatic correction when spectral correction is on.
  • SAM: The 2015 technical reference says the sun position algorithm does not include an air mass equation. The Perez diffuse model has an absolute air mass equation, and the Sandia and CEC module models have their own.
  • HelioScope: The Spectral Analysis page describes a "Spectral Adjustment" for CdTe modules based on precipitable water, calculated hourly. It does not mention air mass.
  • PV*SOL premium: The irradiation calculation page lists seven steps, from sun position to ground reflection, with no mention of air mass or spectrum. Other PV*SOL pages are not covered here.

For more tools that run spectral and air mass corrections, see the best solar simulation software list. Library users can read our pvlib page.

Common mistakes with air mass

FAQs

Why are modules rated at AM1.5?

AM1.5 is the reference spectrum behind module ratings. NREL says ASTM G173-03 holds two terrestrial spectra, direct normal (AM1.5D) and total (AM1.5G), so ratings compare on one fixed light.

What do AM1.5G and AM1.5D mean?

AM1.5G is the global spectrum on a 37° tilted plane. AM1.5D is the direct normal spectrum. PVEducation calls AM1.5G the standard spectrum at the Earth’s surface.

What is AM0?

AM0 is sunlight outside the atmosphere. PVEducation quotes a solar constant of 1.353 kW/m². The G173 AM0 data totals 1,347.9 W/m², but it covers only 280 to 4,000 nm.

Does altitude change air mass?

Yes. Absolute air mass scales with pressure, so the same sun position gives a lower value at altitude. Standard-atmosphere pressure falls with height, so the sun must sit lower in the sky to reach the same absolute air mass. See Table 3.

Can air mass be below 1?

Absolute air mass can. With the sun overhead at 3,000 m it is about 0.69, because pressure there is 70,109 Pa against 101,325 Pa at sea level. Relative air mass is 1.0 overhead, and the Kasten-Young fit reads 0.9997.

Next step: check whether your yield tool corrects CdTe or amorphous modules for spectrum (PVsyst and HelioScope do, per the table above). Then compare options in the best solar simulation software list.

Sources

Last updated 30 October 2026. Next scheduled review: 30 January 2027.

See the software on your shortlist.

Tell the SolarSoftwares team what you want in your solar software.

Your request goes by email to the SolarSoftwares team. A demo time is set only after we reply.