> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plantpredict.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rear Irradiance

export const Azimuth = () => <Tooltip tip="Horizontal angle measured clockwise from north; applies to sun direction or surface orientation.">
    azimuth
  </Tooltip>;

export const AngleOfIncidence = () => <Tooltip tip="Angle between the sun's rays and the perpendicular to a surface; 0° when sun is directly facing the surface.">
    angle of incidence
  </Tooltip>;

export const DiffuseIrradiance = () => <Tooltip tip="Solar radiation scattered by the atmosphere, arriving from all sky directions rather than directly from the sun.">
    diffuse irradiance
  </Tooltip>;

export const RefractiveIndex = () => <Tooltip tip="Ratio of light speed in vacuum to speed in a material; determines how much light bends at interfaces.">
    refractive index
  </Tooltip>;

export const IAM = () => <Tooltip tip="Incidence Angle Modifier: correction factor for optical losses at non-perpendicular light angles.">
    IAM
  </Tooltip>;

export const Transposition = () => <Tooltip tip="Converting horizontal irradiance components to plane-of-array (tilted surface) irradiance.">
    transposition
  </Tooltip>;

export const ZenithAngle = () => <Tooltip tip="Angle between the local vertical and the sun (0° = overhead, 90° = horizon).">
    zenith angle
  </Tooltip>;

export const Isotropic = () => <Tooltip tip="Uniform in all directions; describes diffuse irradiance distributed evenly across the sky dome.">
    isotropic
  </Tooltip>;

export const POAIrradiance = () => <Tooltip tip="Solar irradiance on the tilted module surface (beam + diffuse + reflected); drives PV power generation.">
    POA irradiance
  </Tooltip>;

export const BifacialityFactor = () => <Tooltip tip="Ratio of rear-side efficiency to front-side efficiency (typically 0.65–0.90); used to weight rear-side irradiance.">
    bifaciality factor
  </Tooltip>;

export const Circumsolar = () => <Tooltip tip="Diffuse irradiance concentrated in a bright ring around the solar disk.">
    circumsolar
  </Tooltip>;

export const HorizonBrightening = () => <Tooltip tip="Enhanced diffuse irradiance near the horizon due to atmospheric scattering at low angles.">
    horizon brightening
  </Tooltip>;

export const ViewFactor = () => <Tooltip tip="Fraction of radiation leaving one surface that reaches another; determined by geometry.">
    view factor
  </Tooltip>;

export const Bifacial = () => <Tooltip tip="PV module that absorbs light from both front and rear surfaces, generating additional energy from ground-reflected irradiance.">
    bifacial
  </Tooltip>;

## Summary

PlantPredict calculates rear-side irradiance for <Bifacial /> PV modules using a 2D <ViewFactor /> model based on Marion et al. (2017). The model assumes infinite row length, an infinite number of identical rows, and flat terrain. It discretizes the ground between rows into 100 intervals and calculates sky view factors and ground shading for each interval. Module irradiance is then computed at six evenly spaced positions across the module height by integrating contributions from sky diffuse, <HorizonBrightening />, ground-reflected, module-reflected, and direct beam + <Circumsolar /> components over a 180° field of view. Rear-side irradiance is combined with front-side irradiance weighted by the <BifacialityFactor /> to calculate effective <POAIrradiance />.

In prediction logic Version 10 and later, an optional SunSolve-calibrated mode accepts structure shading, transmission gain, and mismatch factors derived from SunSolve ray-tracing simulations. Light-transmission effects that the view-factor model imperfectly captures—from gaps between modules in a bay, gaps between bays, and transmission through semi-transparent module components—are computed in SunSolve and combined into a single transmission gain $f_T$ applied to rear irradiance. Front and rear mismatch are likewise combined in SunSolve into a single mismatch factor applied to total DC power in [DC system losses](/models/dc-performance/dc_system_losses).

## Inputs

| Name                           | Symbol        | Units   | Description                                                                                                                                                            |
| ------------------------------ | ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Module Tilt Angle**          | $\beta_m$     | degrees | Tilt angle of module from horizontal                                                                                                                                   |
| **Module Azimuth Angle**       | $\gamma_m$    | degrees | Azimuth angle of module surface normal, measured clockwise from North                                                                                                  |
| **Post Height**                | $h_{post}$    | m       | Height of the module center above ground level (hub height for trackers)                                                                                               |
| **Row-to-Row Pitch**           | $p$           | m       | Horizontal distance between rows                                                                                                                                       |
| **Collector Width**            | $\ell_m$      | m       | Width of collector perpendicular to axis                                                                                                                               |
| **Albedo**                     | $\rho$        | —       | Ground reflectance (0–1)                                                                                                                                               |
| **Module Transmission Factor** | $\tau$        | %       | Fraction of direct irradiance transmitted through the module to the shaded ground below (0% = opaque, 100% = fully transparent, set to 0% in SunSolve-calibrated mode) |
| **DNI**                        | $DNI$         | W/m²    | Direct normal irradiance                                                                                                                                               |
| **DHI**                        | $DHI$         | W/m²    | Diffuse horizontal irradiance                                                                                                                                          |
| **Solar Zenith Angle**         | $\theta_z$    | degrees | Angle between sun and vertical                                                                                                                                         |
| **Solar Azimuth Angle**        | $\gamma_s$    | degrees | Sun azimuth, measured clockwise from North                                                                                                                             |
| **Structure Shading**          | $f_{str}$     | %       | Rear-side structure shading loss                                                                                                                                       |
| **Backside Mismatch**          | $f_{MM,rear}$ | %       | Rear-side irradiance mismatch loss (not applied in SunSolve-calibrated mode)                                                                                           |
| **SunSolve Transmission Gain** | $f_T$         | %       | Transmission gain (SunSolve-calibrated mode only)                                                                                                                      |
| **Bifaciality Factor**         | $\phi$        | %       | Ratio of rear-to-front efficiency                                                                                                                                      |

***

## Outputs

| Name                           | Symbol             | Units | Description                                                                                               |
| ------------------------------ | ------------------ | ----- | --------------------------------------------------------------------------------------------------------- |
| **Rear-Side POA Contribution** | $G_{POA,rear,eff}$ | W/m²  | Rear irradiance contribution to effective POA (after bifaciality, structure shading, and mismatch losses) |

***

## Detailed Description

### Geometry and Coordinate System

The model uses a 2D cross-section with origin $(x, y) = (0, 0)$ at ground level below the front edge of the reference row, positive $x$ toward the rear and positive $y$ upward. The front edge of the row behind the reference row is at $x = p$; the front edge of the row in front of the reference row is at $x = -p$. All ground calculations are performed over the interval $[0, p]$; positions outside this interval are mapped back using periodicity.

Three derived geometric quantities (all in meters) define the module profile:

* $\ell_v = \ell_m \sin(\beta_m)$ — vertical projection of the collector width
* $\ell_h = \ell_m \cos(\beta_m)$ — horizontal projection of the collector width
* $c = h_{post} - \ell_v / 2 = h_{post} - \ell_m \sin(\beta_m) / 2$ — ground clearance at the lower edge

For single-axis trackers, $\beta_m$ varies at each timestep, so $\ell_v$, $\ell_h$, and $c$ are recalculated accordingly.

### Sky View Factors

The ground between $x = 0$ and $x = p$ is divided into 100 intervals of width $\Delta = p / 100$ (m). For each interval $i$, the sky view factor is calculated at the midpoint $x = (i + 0.5) \cdot \Delta$ by determining what fraction of the hemisphere above is visible sky versus obstructed by adjacent rows.

All rows are treated as interior rows (rows on both sides). Six elevation angles are computed from each ground point to the edges of the three nearest rows. Each row has two edges visible from below: the **top-rear** edge (at height $\ell_v + c$) and the **bottom-front** edge (at height $c$). The angles sweep from the far side (positive x) to the near side (negative x):

$$
\alpha_1 = \max\left[\arctan\frac{\ell_v+c}{2p + \ell_h - x}, \arctan\frac{c}{2p - x}\right]
$$

$$
\alpha_2 = \min\left[\arctan\frac{\ell_v+c}{p + \ell_h - x}, \arctan\frac{c}{p - x}\right]
$$

$$
\alpha_3 = \max\left[\arctan\frac{\ell_v+c}{p + \ell_h - x}, \arctan\frac{c}{p - x}\right]
$$

$$
\alpha_4 = \arctan\frac{\ell_v+c}{\ell_h - x}
$$

$$
\alpha_5 = \arctan\frac{c}{-x}
$$

$$
\alpha_6 = \arctan\frac{\ell_v+c}{\ell_h - p - x}
$$

where:

* $\alpha_1$ = effective upper boundary of the row two pitches behind (whichever edge projects higher)
* $\alpha_2$ = effective lower boundary of the adjacent row behind (whichever edge projects lower)
* $\alpha_3$ = effective upper boundary of the adjacent row behind
* $\alpha_4$ = top-rear edge of the reference row
* $\alpha_5$ = bottom-front edge of the reference row
* $\alpha_6$ = top-rear edge of the row in front

All angles are adjusted to the range $[0, \pi]$ when negative. The $\max$/$\min$ operations on $\alpha_1$–$\alpha_3$ select the effective obstruction boundary, which may be a row's top-rear or bottom-front edge depending on the ground point's position.

The six angles form three consecutive pairs, each defining the potential sky gap between two adjacent rows:

* $(\alpha_1, \alpha_2)$: gap between the second row behind and the adjacent row behind
* $(\alpha_3, \alpha_4)$: gap between the adjacent row behind and the reference row
* $(\alpha_5, \alpha_6)$: gap between the reference row and the row in front

Within each pair, the odd-indexed angle marks the near edge of one row and the even-indexed angle marks the far edge of the next. If the gap is negative (the two rows overlap as seen from the ground point), the corresponding view factor is clamped to 0. Only the three nearest gaps are considered — gaps beyond the second row behind and beyond the row in front are neglected, as they subtend smaller solid angles and project onto the ground at increasingly oblique angles, making minor irradiance contributions.

The total sky view factor $F_{sky}[i]$ for ground interval $i$ is the fraction of the sky hemisphere visible from that point, computed as the sum of the three gap view factors:

$$
F_{sky}[i] = F_1 + F_2 + F_3
$$

$$
F_1 = \max\left[0,\; \tfrac{1}{2}(\cos\alpha_1 - \cos\alpha_2)\right]
$$

$$
F_2 = \max\left[0,\; \tfrac{1}{2}(\cos\alpha_3 - \cos\alpha_4)\right]
$$

$$
F_3 = \max\left[0,\; \tfrac{1}{2}(\cos\alpha_5 - \cos\alpha_6)\right]
$$

### Ground Shading

The 3D sun position is projected onto the 2D cross-sectional plane as an effective <ZenithAngle /> $\theta_{z,eff}$:

$$
\tan(\theta_{z,eff}) = \tan(\theta_z) \cos(\gamma_m - \gamma_s)
$$

The horizontal shadow cast by a point at position $(x_0, y_0)$ falls on the ground at $x_0 + y_0 \tan(\theta_{z,eff})$. The shaded region is bounded by the shadow of the module's bottom-front edge at $(0, c)$ and top-rear edge at $(\ell_h, \ell_v + c)$:

$$
x_{bot} = c \tan(\theta_{z,eff})
$$

$$
x_{top} = \ell_h + (\ell_v + c) \tan(\theta_{z,eff})
$$

Shadow positions falling outside $[0, p]$ wrap around using periodicity. Each of the 100 ground intervals is flagged as shaded ($S[i] = 1$) or sunlit ($S[i] = 0$) based on whether its midpoint falls within the shadow region. If the total shadow width $|x_{top} - x_{bot}| = |\ell_h + \ell_v \tan(\theta_{z,eff})|$ exceeds the row pitch $p$, the ground is completely shaded and $S[i] = 1$ for all $i$.

### Ground Irradiance

The bifacial model always uses the Perez <Transposition /> model internally—regardless of which transposition model is selected for the front-side calculation—because it requires the individual diffuse components. The Perez decomposition provides:

* $G_{isotropic}$: <Isotropic /> sky diffuse
* $G_{beam}$, $G_{circumsolar}$: beam and circumsolar irradiance on the horizontal surface
* $G_{horizon}$: horizon brightening

The isotropic and horizon components characterize the atmospheric radiance distribution and are independent of surface orientation. They are re-integrated per-degree with the model's own view factors and <IAM /> correction in the sections below. Beam and circumsolar are applied as direct projections onto the relevant surface.

Ground irradiance at each interval combines these components with the sky view factor and shading:

$$
G_{gnd}[i] = G_{isotropic} \cdot F_{sky}[i] + (G_{beam} + G_{circumsolar}) \cdot (1 - S[i] + \tau \cdot S[i])
$$

where $\tau$ is the module transmission factor representing light passing through the semi-transparent module, specified as a percentage and converted to a fraction (divided by 100) before use. When sunlit ($S[i] = 0$), the ground receives the full beam and circumsolar irradiance; when shaded ($S[i] = 1$), only the fraction $\tau$ transmitted through the module reaches the ground. In SunSolve-calibrated mode, $\tau$ is forced to zero to avoid double-counting, since through-module transmission is already accounted for in the SunSolve-derived transmission gain $f_T$.

### Rear Surface Irradiance

The rear surface is sampled at 6 evenly spaced positions across the module height, at coordinates:

$$
x_j = \ell_h \cdot \frac{j + 0.5}{6}, \qquad y_j = c + \ell_v \cdot \frac{j + 0.5}{6}
$$

From each position $j = 0, 1, \ldots, 5$, irradiance is integrated over a 180° field of view (looking outward from the rear surface) using 1-degree increments. The adjacent row behind has its bottom-front edge at $(p, c)$ and its top-rear edge at $(p + \ell_h, \ell_v + c)$. The elevation angles from the position $j$ to these edges, rounded to the nearest integer degree, define the boundaries of three angular regions:

$$
\theta_{sky,j} = \text{round}\!\left(\beta_m - \arctan\frac{(\ell_v + c) - y_j}{(p + \ell_h) - x_j}\right)
$$

$$
\theta_{gnd,j} = \text{round}\!\left(\beta_m + \arctan\frac{y_j - c}{p - x_j}\right)
$$

The field of view is divided into **sky** (0° to $\theta_{sky,j}$), **module behind** ($\theta_{sky,j}$ to $\theta_{gnd,j}$), and **ground** ($\theta_{gnd,j}$ to 180°). Five irradiance components are computed:

#### Isotropic sky diffuse

For each degree $k$ in the sky region:

$$
G_{sky,j} = G_{isotropic} \sum_{k=0}^{\theta_{sky,j}-1} \frac{1}{2}(\cos(k) - \cos(k+1)) \cdot U_{IAM,B}[k]
$$

where $U_{IAM,B}[k]$ is the [Physical IAM model](/models/poa-irradiance/iam#physical) evaluated at each 1-degree increment, with no anti-reflective coating and no glass absorption ($\alpha = 0$), using $n = 1.526$ as the <RefractiveIndex /> of glass.

#### Horizon brightening

In the Perez model, horizon brightening is concentrated in a 6° band above the horizon. From the rear surface, this band may be partially or fully blocked by the adjacent row. The number of visible horizon degrees at position $j$ is:

$$
n_{hor,j} = \max\!\left(0,\; \text{round}\!\left(6 - \arctan\frac{(\ell_v + c) - y_j}{(p + \ell_h) - x_j}\right)\right)
$$

where the arctan term is the obstruction angle (in degrees) of the adjacent row above the local horizon. When this obstruction exceeds 6°, no horizon is visible and $n_{hor,j} = 0$.

The Perez model provides $G_{horizon}$ as a total irradiance integrated over the horizon band. To apply per-degree IAM correction, the model assumes uniform radiance within the band: dividing $G_{horizon}$ by the band's view factor $\frac{1}{2}(\cos(84°) - \cos(90°))$ yields the radiance, which is then re-integrated degree by degree with $U_{IAM,B}[k]$ weighting over the $n_{hor,j}$ visible degrees nearest the horizon:

$$
G_{hor,j} = \frac{G_{horizon}}{\frac{1}{2}(\cos(84°) - \cos(90°))} \sum_{k=\theta_{sky,j}-n_{hor,j}}^{\theta_{sky,j}-1} \frac{1}{2}(\cos(k) - \cos(k+1)) \cdot U_{IAM,B}[k]
$$

#### Ground-reflected

Each 1° angular band in the ground field-of-view region ($\theta_{gnd,j}$ to 180°) projects onto a range of ground from position $x_{gnd}(k+1)$ to $x_{gnd}(k)$, where:

$$
x_{gnd}(k) = x_j + \frac{y_j}{\tan(k - \beta_m)}
$$

The ground irradiance for that band is the area-weighted average over the projected range:

$$
\overline{G}_{gnd}(k) = \frac{1}{x_{gnd}(k) - x_{gnd}(k+1)} \int_{x_{gnd}(k+1)}^{x_{gnd}(k)} G_{gnd}(x) \, dx
$$

where $G_{gnd}(x)$ is the piecewise-constant ground irradiance from the 100-element array, extended periodically beyond $[0, p]$. The total ground-reflected irradiance at position $j$, accounting for the ground albedo $\rho$, is then:

$$
G_{gnd,j} = \rho \sum_{k=\theta_{gnd,j}}^{179} \frac{1}{2}(\cos(k) - \cos(k+1)) \cdot U_{IAM,B}[k] \cdot \overline{G}_{gnd}(k)
$$

#### Reflected irradiance from front module surface

In the Physical IAM model, the Fresnel reflectance at incidence angle $\theta$ is related to the IAM transmittance by:

$$
R(\theta) = 1 - U_{IAM,B}(\theta) \cdot (1 - R_0)
$$

where

$$
R_0 = \left(\frac{n - 1}{n + 1}\right)^2
$$

is the Fresnel reflectance at normal incidence, with $n$ the refractive index of the cover material ($n = 1.526$ for glass, $n = 1.300$ for AR glass).

First, reflected <DiffuseIrradiance /> is computed at 6 evenly spaced positions on the front surface of the row behind. At each front position, sky, horizon, and ground-reflected irradiance are integrated using the same view factor approach as above, but weighted by the Fresnel reflectance $R(\theta)$ instead of $U_{IAM,B}$. Beam, circumsolar, and secondary back-surface reflections are not included.

Then, from each rear position $j$, the module field-of-view region ($\theta_{sky,j}$ to $\theta_{gnd,j}$) is integrated degree by degree. Each 1° angular band projects onto a range along the front module slope, and $\overline{G}_{refl,front}(k)$ is the length-weighted average of the 6 front-surface reflected values within that projected range — identical in structure to $\overline{G}_{gnd}(k)$, but over 6 positions on the sloped module surface instead of 100 on the ground.

The reflected irradiance at position $j$ is then:

$$
G_{refl,j} = \sum_{k=\theta_{sky,j}}^{\theta_{gnd,j}-1} \frac{1}{2}(\cos(k) - \cos(k+1)) \cdot U_{IAM,B}[k] \cdot \overline{G}_{refl,front}(k)
$$

#### Direct beam and circumsolar

The Perez model is called with the rear-facing orientation (tilt $180° - \beta_m$, <Azimuth /> $\gamma_m - 180°$) to project beam and circumsolar onto the rear surface, yielding $G_{beam,rear}$ and $G_{circumsolar,rear}$. The <AngleOfIncidence /> on the rear surface is:

$$
\cos(\theta_{inc,rear}) = -\sin(\theta_z)\sin(\beta_m)\cos(\gamma_s - \gamma_m) - \cos(\theta_z)\cos(\beta_m)
$$

If the sun is visible from the rear surface ($\theta_{inc,rear} < 90°$):

$$
G_{beam,j} = (G_{beam,rear} + G_{circumsolar,rear}) \cdot U_{IAM,B}(\theta_{inc,rear})
$$

Otherwise ($\theta_{inc,rear} \geq 90°$) $G_{beam,j} = 0$. Inter-row shading of the rear surface by the row behind is neglected; the direct component is uniform across all 6 positions.

### Structure Shading and Mismatch

The five components are summed to give the total rear irradiance at each sampled position:

$$
G_{rear,j} = G_{sky,j} + G_{hor,j} + G_{refl,j} + G_{gnd,j} + G_{beam,j}
$$

The average rear irradiance is the mean of the 6 values:

$$
\overline{G}_{rear} = \frac{1}{6}\sum_{j=0}^{5} G_{rear,j}
$$

Structure shading and mismatch losses are then applied to the average. The input values $f_{str}$, $f_T$, and $f_{MM,rear}$ are specified as percentages and converted to fractions (divided by 100) before use in the equations below.

**Version 9 and earlier:** only structure shading is applied at this stage: $G_{POA,rear} = \overline{G}_{rear} \cdot (1 - f_{str})$. Backside mismatch is applied separately downstream as a weighted factor in the [DC system losses](/models/dc-performance/dc_system_losses) combined coefficient.

**Version 10 and later:** both structure shading and backside mismatch are applied here: $G_{POA,rear} = \overline{G}_{rear} \cdot (1 - f_{str}) \cdot (1 - f_{MM,rear})$. Backside mismatch is no longer included in the DC system losses combined coefficient.

**Version 10 and later, SunSolve-calibrated mode:** structure shading and transmission gain calculated in SunSolve are applied: $G_{POA,rear} = \overline{G}_{rear} \cdot (1 + f_T) \cdot (1 - f_{str})$. The module transmission factor $\tau$ is forced to zero in this mode to avoid double-counting, since through-module transmission is already accounted for in SunSolve simulations and captured in $f_T$. No rear mismatch is applied here; it is instead folded into the SunSolve-calculated combined front + rear mismatch loss in [DC system losses](/models/dc-performance/dc_system_losses).

### Effective POA Irradiance

The contribution of rear irradiance to effective POA is:

$$
G_{POA,rear,eff} = \phi \cdot G_{POA,rear}
$$

where $\phi$ is the bifaciality factor (ratio of rear-to-front efficiency), specified as a percentage and converted to a fraction (divided by 100) before use.

### User-Specified Backside POAI

If the user provides rear-side irradiance directly (bypassing the model above), the measured or externally computed value $G_{rear,user}$ replaces the calculated $\overline{G}_{rear}$. The same structure shading and mismatch treatment applies:

**Version 9 and earlier:** $G_{POA,rear} = G_{rear,user} \cdot (1 - f_{str})$ (backside mismatch applied downstream in [DC system losses](/models/dc-performance/dc_system_losses))

**Version 10 and later:** $G_{POA,rear} = G_{rear,user} \cdot (1 - f_{str}) \cdot (1 - f_{MM,rear})$

**Version 10 and later, SunSolve-calibrated mode:** $G_{POA,rear} = G_{rear,user} \cdot (1 + f_T) \cdot (1 - f_{str})$. No rear mismatch is applied here; it is instead folded into the SunSolve-calculated combined front + rear mismatch loss in [DC system losses](/models/dc-performance/dc_system_losses).

The bifaciality factor is then applied as above: $G_{POA,rear,eff} = \phi \cdot G_{POA,rear}$.

***

## References

* Marion, B., MacAlpine, S., Deline, C., Asgharzadeh, A., Toor, F., Riley, D., Stein, J., & Hansen, C. (2017). *A practical irradiance model for bifacial PV modules.* 2017 IEEE 44th Photovoltaic Specialist Conference (PVSC), 1537–1542. DOI: [10.1109/PVSC.2017.8366263](https://doi.org/10.1109/PVSC.2017.8366263)
* Perez, R., Ineichen, P., Seals, R., Michalsky, J., & Stewart, R. (1990). *Modeling daylight availability and irradiance components from direct and global irradiance.* Solar Energy, 44(5), 271–289. DOI: [10.1016/0038-092X(90)90055-H](https://doi.org/10.1016/0038-092X\(90\)90055-H)
* Duffie, J. A., & Beckman, W. A. (2013). *Solar Engineering of Thermal Processes* (4th ed.). Wiley. DOI: [10.1002/9781118671603](https://doi.org/10.1002/9781118671603)
* Deline, C., Ayala Pelaez, S., MacAlpine, S., & Olalla, C. (2020). *Bifacial PV system mismatch loss estimation and parameterization.* Progress in Photovoltaics, 28(7), 691–703. DOI: [10.1002/pip.3259](https://doi.org/10.1002/pip.3259)
* PV Lighthouse (2024). *Step-by-step guide to determine PVSyst bifacial inputs with SunSolve™* (Version 6.0, Apr-2024, Info0030). Available at: [https://www.pvlighthouse.com.au/sunsolve](https://www.pvlighthouse.com.au/sunsolve)
