SolarSoftwares
Book a demo

What Is Diffuse Horizontal Irradiance (DHI)?

How we keep reviews fair

Quick answer

Diffuse horizontal irradiance (DHI, also called sky or diffuse radiation) is sunlight scattered by the atmosphere that reaches a flat, level surface, in W/m². It excludes the direct beam, so a shadow that blocks only the beam leaves it in place. Under thick cloud the diffuse fraction nears 1.0, so DHI is nearly all of GHI.

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

  • Sandia’s PVPMC defines DHI as irradiance on a horizontal surface "scattered or diffused by the atmosphere". It "does not come from the beam of the sun". A shaded pyranometer or a shadow band reads it.
  • The Erbs model in pvlib sets DHI = diffuse fraction × GHI. The fraction falls from 1.0 at clearness index 0 to 0.165 above 0.8.
  • In a Miami typical-year file bundled with pvlib, DHI is 45.2% of annual GHI (809.5 of 1,792.6 kWh/m²). Erbs runs 2.3% above the file’s DHI.
  • Shade removes beam light, not sky light. In our example, a 25° plane with its beam blocked keeps 98% of its light at GHI 150 and 12% at GHI 750.

If your weather file has only GHI, the simulator splits it into DHI. To compare how tools handle that, see the best solar simulation software. For shade losses, see the best solar shading analysis software.

DHI at a glance

DHI is the sky part of sunlight on a level surface. The beam is left out.

ItemDetail
FormulaIn decomposition models, DHI = diffuse fraction × GHI (pvlib’s erbs function). The closure with DNI is on the GHI page.
Unit and rangeW/m². The diffuse fraction (DHI ÷ GHI) runs from 0 to about 1.
Where it mattersSky-diffuse transposition, shaded planes, bifacial rear light and weather-file checks.
Standard or ruleBSRN (status 1 April 2017) lists diffuse radiation as obligatory and recommends a shading ball, not a band.
In softwarepvlib’s erbs returns DHI. HelioScope needs a DHI column. PVsyst estimates DHI when it is not measured.

Why DHI matters for installers

A shadow that blocks only the beam does not remove DHI. It sets how much a shaded, steep or bifacial surface still receives. Every sky-diffuse model needs it.

A file with GHI only forces a model to split it. The split changes the answer. PVsyst’s help says: "To compute shading losses, global irradiance must be decomposed into diffuse and direct components." See shading analysis and the best solar shading analysis software.

Bifacial rear sides collect sky light too. Our bifacial modelling page records IEA PVPS Task 13 (April 2021). It says gain rises with albedo, diffuse fraction, array height, row spacing and module gaps. See bifacial module and albedo.

What decides the diffuse share of GHI?

The clearness index, kt. It is GHI divided by the extraterrestrial irradiance on a horizontal plane. It is low when the atmosphere passes little light, as under thick cloud.

The Erbs model turns kt into a diffuse fraction (DF). The pvlib docs give DHI = DF × GHI. As pvlib’s own next step, DNI = (GHI − DHI) ÷ cos(Z). They cite Erbs, Klein and Duffie (1982). The pieces below are as printed in the pvlib 0.16.1 source.

  • kt = GHI ÷ (E0 × cos Z). E0 is the extraterrestrial normal irradiance. pvlib floors cos Z at 0.065 and caps kt at 1.
  • DF = 1 − 0.09 kt, when kt is 0.22 or less.
  • DF = 0.9511 − 0.1604 kt + 4.388 kt² − 16.638 kt³ + 12.336 kt⁴, when kt is above 0.22 and up to 0.8.
  • DF = 0.165, when kt is above 0.8.

Figure 1 plots the curve against hourly values from a Miami typical-year file.

Chart of diffuse fraction falling from 1.0 to 0.165 as clearness index rises, with hourly file points

Figure 1. The Erbs diffuse fraction falls from 1.0 to 0.165 as kt rises. Hourly values in a Miami typical-year file follow it with a mean gap of 0.098.

Table 1. Diffuse fraction by clearness index in the Miami typical-year file (pvlib’s bundled TMY2, WBAN 12839).

kt rangeHoursShare of GHI energyDHI ÷ GHI in fileDHI ÷ GHI from Erbs
0 to 0.21471%1.0010.986
0.2 to 0.477510%0.8670.919
0.4 to 0.61,45833%0.5590.612
0.6 to 0.81,43156%0.2960.273
0.8 to 15under 1%0.2040.165

The table counts 3,816 hours with zenith below 80° and GHI above 20 W/m². The 45.2% annual share above uses all 8,760 hours. Monthly shares in that file run from 37.1% (February) to 53.3% (August).

Fractions are energy-weighted. A value above 1.000 means DHI slightly exceeds GHI in that range. Erbs runs above the file at kt 0.2 to 0.6 and below it elsewhere. Hours with kt 0.2 to 0.6 supply 61% of the file’s DHI and carry 43% of its GHI.

The file’s DHI is a typical-year value. So the 0.098 mean gap in diffuse fraction compares a model with a file value, and it is not a validation.

How is DHI measured?

A pyranometer measures DHI when its sensor is kept in the shade of the sun’s beam. A ball or disc on a sun tracker is the most accurate option. A fixed shadow band or ring needs no tracker but needs a correction.

Table 2. Four routes to a DHI number.

RouteHow it works
Ball or disc on a trackerA shade follows the sun and covers only the sensor.
Shadow band or ringA band or ring shades the sensor all day, or rotates over it.
Fixed photodiode arrayA shadow mask keeps at least one photodiode fully shaded.
Derived or modelledSubtract the beam from GHI, or estimate DHI from GHI with a model.

The pages say this about each route.

  • Ball or disc on a tracker: Sandia: the ball or disc "only removes the 5° cone around the sun" and "must utilize a tracker". Hukseflux (note V2505) calls a tracker "the most accurate method available" but says it "introduces significant acquisition and O&M costs".
  • Shadow band or ring: Sandia: a horizontal band needs no tracker, a vertical band needs a horizontal tracker. Bands are "generally less accurate as they remove some of the diffuse light". Data "should be measured and corrected" by a location- and time-dependent factor. Hukseflux: a ring must be aligned to solar azimuth and zenith and has "relatively low acquisition costs". A rotating band has "increased acquisition costs and decreased accuracy".
  • Fixed photodiode array: Hukseflux (note V2505): no moving parts. It rates this route "+" for accuracy, against "+++" for a tracker.
  • Derived or modelled: Hukseflux: a shaded sensor allows "cross-checking using the equation for GHI". pvlib’s gallery compares DISC, DIRINT, Erbs and Boland. It warns that TMY3 DNI and DHI are themselves model outputs.

The Baseline Surface Radiation Network (BSRN) requirements overview (status 1 April 2017) makes diffuse radiation obligatory, with one-minute averages. "For DIF measurements pyranometers should be used with a solar tracker and a shading ball (not a shading ring or band)," it says.

Sandia counts light inside the 5° cone around the sun as beam. It is not in DHI. The circumsolar term in sky-diffuse models is a separate modelling step (see below).

The Hukx library summarises de Simón-Martín et al. (2016, Solar Energy 139). That study compared four correction methods for shaded-band data and found the LeBaron method best. See the pyranometer page for the sensor itself and the DNI page for the pyrheliometer route.

Worked example: one decomposition, five skies

The same sun position can give very different DHI. The split depends on how much light gets through.

All inputs are example: day 172 (extraterrestrial normal irradiance 1,321.6 W/m²), zenith 50°, GHI from 150 to 750 W/m². The plane tilts 25° and faces the sun’s azimuth. Albedo is 0.20 and the sky is isotropic. DHI and DNI come from the Erbs steps above.

Table 3. Erbs split and plane light for five example hours (irradiance in W/m²).

GHIkt / DFDHI / DNIPlane totalLeft if beam blocked
1500.177 / 0.984147.6 / 3.7145.597.7%
3000.353 / 0.901270.2 / 46.3302.486.1%
4500.530 / 0.596268.1 / 283.1516.350.3%
6000.706 / 0.234140.7 / 714.6787.317.7%
7500.883 / 0.165123.8 / 974.31,008.012.4%

DHI is not highest in the dullest hour. It is 270.2 at GHI 300 and 268.1 at GHI 450, against 147.6 at GHI 150. At GHI 750 the beam supplies most of the plane light. So a shadow removes at least 87% of it.

The last column is an upper bound. It assumes an obstruction removes only the beam, but a real one also hides some sky. The isotropic formula is on the solar irradiance page, and the component split is on the plane-of-array page.

Calculator: DHI and the light left in shade

Enter GHI, zenith and day of year. You get kt, the Erbs DHI and DNI, plane light, and the share left when the beam is blocked. You can type a measured DHI instead. Presets are the example hours in Table 3.

Open the calculator on its own page

Which sky-diffuse models need DHI?

pvlib’s get_sky_diffuse takes dhi, dni and ghi for every model, and lists seven models with isotropic as the default. Every one of them needs DHI.

Sandia’s PVPMC splits sky diffuse light into three parts. The isotropic part is "the uniform irradiance from the sky dome". The others are a circumsolar part, from forward scattering near the sun, and horizon brightening. Use tilt angle and a trusted dataset such as NSRDB to keep the inputs consistent.

How solar software handles DHI

All four tools we read in October 2026 use DHI: pvlib, HelioScope and PVsyst document it, and PV*SOL estimates it from GHI.

Table 4. Documented DHI use in four tools.

SoftwareDocumented DHI use
pvlib pythonYes
HelioScopeYes
PVsystYes
PV*SOL premiumYes

Yes: the page we cite documents DHI use.

How each tool uses DHI, with notes:

  • pvlib python: erbs returns dhi, dni and kt. get_sky_diffuse requires dhi. Open-source library, not a design tool. pvlib docs "latest" and 0.16.1 source.
  • HelioScope: A weather file needs GHI (column E) and DHI (column K) as required standard values. DNI (column H) is optional. Help page "Error Parsing Weather File", no date shown.
  • PVsyst: When diffuse is not measured, "it should be estimated". Custom imports use ENGERER2. Erbs was used alone until version 8.1 and was replaced for hourly runs from 8.1.6. Help page "Diffuse Irradiance model", no date shown.
  • PV*SOL premium: "The global radiation on the horizontal GHI is divided into the direct and the diffuse components." Hofmann is the default model and Erbs is listed. DHI is estimated from GHI. Help page "diffuse irradiation", no date shown. No DHI input documented.

The best solar simulation software list ranks the tools whose sky models need DHI.

Common mistakes with DHI

FAQs

Can DHI be estimated from GHI alone?

Yes, with a decomposition model. Erbs and Boland return DHI directly. DISC and DIRINT return DNI, and DHI follows from the closure on the GHI page. The answer is an estimate, so label the model beside any DHI you report.

Why does a shadow band read low?

The band also blocks part of the diffuse sky, not only the beam. Sandia says the data need a location- and time-dependent correction.

Is DHI the same as sky diffuse light on a tilted panel?

No. DHI is on a level surface. A model such as isotropic or Perez converts it to the panel plane. See plane-of-array irradiance and GTI.

Which datasets carry DHI?

The NSRDB does. NREL’s developer page says it includes GHI, DNI and DHI, and one product has 4 km and 30-minute steps. Check each file’s columns. See weather and solar resource data and TMY.

  • GHI: all sunlight on a level surface, and the closure equation.
  • DNI: beam light measured facing the sun.
  • pvlib: the open-source library whose Erbs function this page uses.

Next step: when a shaded array underperforms, test its sky-diffuse inputs in the best solar simulation software. To review the obstruction, use the best solar shading analysis software.

Sources

NREL (the National Renewable Energy Laboratory) was renamed the National Laboratory of the Rockies (NLR) in December 2025. Its nrel.gov pages retired in May 2026. This page links to the current nlr.gov addresses and keeps the name NREL where it describes the NSRDB’s long-standing programme.

Numbers: model script with example inputs and the Miami file bundled with pvlib 0.16.1. 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.