How Our Calculators Work: Formulas, Assumptions and Limits
This page explains exactly how the five free calculators on PassiveSolarArchitecture.com work: the formulas they use, the inputs and units they expect, what they assume, where they stop being reliable, and a reference test you can repeat yourself.
The calculators support early-stage design exploration. They do not replace project-specific professional analysis such as energy modelling, overheating assessment, structural design or building-code review.
Formulas below are taken from the calculators’ published code, not from a description of it. If the code and this page ever disagree, that is an error. Please report it.
Contents
- Solar Angle Calculator
- Roof Overhang Calculator
- Window-to-Wall Ratio Calculator
- Thermal Mass Calculator
- Passive Solar Orientation Calculator
- What these tools are not
- Sources
1. Solar Angle Calculator
Purpose. Find the sun’s altitude (height above the horizon) and azimuth (compass direction) at a given place, date and clock time, plus sunrise, sunset and day length.
Method. The calculator implements the NOAA “General Solar Position Calculations” method, which uses the Fourier-series approximations for the solar declination and the equation of time published by Spencer (1971).
- Fractional year: γ = 2π/365 × (day of year − 1 + (hour − 12)/24)
- Equation of time (minutes): 229.18 × (0.000075 + 0.001868 cos γ − 0.032077 sin γ − 0.014615 cos 2γ − 0.040849 sin 2γ)
- Declination (radians): 0.006918 − 0.399912 cos γ + 0.070257 sin γ − 0.006758 cos 2γ + 0.000907 sin 2γ − 0.002697 cos 3γ + 0.00148 sin 3γ
- True solar time (minutes) = clock time + equation of time + 4 × longitude − 60 × UTC offset; hour angle = true solar time ÷ 4 − 180°
- Altitude: sin(altitude) = sin(latitude) sin(declination) + cos(latitude) cos(declination) cos(hour angle)
- Azimuth: measured clockwise from true north, from the east and north components of the sun’s direction (atan2)
- Sunrise and sunset: hour angle at a zenith of 90.833°, which allows for atmospheric refraction and the size of the sun’s disc
Inputs and units. Latitude and longitude in decimal degrees (north and east positive), date, local clock time, and UTC offset in hours (−12 to +14).
Assumptions. The UTC offset you enter already includes daylight saving time where it applies; the calculator does not look up time zones. The altitude shown is the geometric altitude (no refraction correction except at sunrise and sunset). A 365-day year is used, as in the NOAA formula; in leap years the error this causes is a small fraction of a degree.
Limitations. The method is an approximation intended for design, typically within a fraction of a degree of precise astronomical algorithms for present-day dates. It says nothing about cloud, climate or obstructions: the sun being above the horizon does not mean it reaches your window. Near the poles, sunrise and sunset are reported as “does not rise” or “does not set” when that is the case. A blank latitude or longitude field is currently read as 0 (the equator or the Greenwich meridian), so check that both fields are filled.
How to read the result. For passive solar design, the most useful values are the noon altitudes on the winter solstice, the equinoxes and the summer solstice. They set the range your shading and glazing must work across.
Reference test. London, latitude 51.5, longitude −0.12, 21 June, 12:00, UTC offset 0 → altitude 61.95°, azimuth ≈ 179.1° (south), day length ≈ 16 h 38 min. These match the NOAA Solar Calculator for the same inputs.
2. Roof Overhang Calculator
Purpose. Estimate how deep a horizontal overhang must be to shade a window at a chosen summer sun angle, and how much of the glass it shades in summer and winter.
Method. A two-dimensional section through the window and the overhang:
- Depth for full shade = (gap + glass height) ÷ tan(summer altitude)
- Depth at which the shadow first reaches the glass = gap ÷ tan(summer altitude)
- Shadow drop on the wall = proposed depth × tan(sun altitude)
- Glass shaded (%) = clamp(shadow drop − gap, 0, glass height) ÷ glass height × 100, at the summer and at the winter angle
“Gap” is the vertical distance from the overhang’s edge down to the top of the glass.
Inputs and units. Gap, glass height and (optionally) a proposed depth, all in the same length unit (metres or feet); summer and winter sun altitudes in degrees (1–89°). If you leave the proposed depth blank, the calculator evaluates the full-shade depth.
Assumptions. The sun is directly in front of the facade (perpendicular to it). The overhang is horizontal, solid and wide enough that no sun passes around its ends.
Limitations. Because the sun’s azimuth is ignored, the result is only valid for a window facing the sun squarely at the chosen moment, typically an equator-facing window at solar noon. For facades turned away from due south (north in the southern hemisphere), the sun reaches the glass at an angle and the correct depth is different; for east- and west-facing windows a horizontal overhang is often ineffective. The sun angles are entered by you: use the Solar Angle Calculator for your latitude and dates. A blank gap field is currently read as 0.
How to read the result. Compare the summer shading with the winter sunlit share. In heating-led climates a depth that shades the glass fully at the summer solstice may also block useful sun at the equinoxes, so the “right” depth is a trade-off you decide, not a single answer.
Reference test. Gap 0.3 m, glass height 1.5 m, summer altitude 70°, winter altitude 25° → full-shade depth 0.66 m (1.8 ÷ tan 70° = 0.655). Proposed depth 0.5 m → 71.6% of the glass shaded at 70°.
3. Window-to-Wall Ratio Calculator
Purpose. Express how much of each facade, and of the whole envelope entered, is glazing.
Method. For each facade: wall area = width × height; WWR = window area ÷ wall area × 100. The total WWR is the sum of window areas divided by the sum of wall areas of the facades you completed.
Inputs and units. For up to four facades (north, east, south, west): wall width, wall height and total window area, in metres/m² or feet/ft². At least one facade must be complete; window area cannot exceed wall area.
Assumptions. Gross wall area (openings are not subtracted from it). Window area is the value you enter; whether it is glass-only or includes frames is your choice, so keep it consistent.
Limitations. The ratio says nothing on its own about comfort or energy: the same WWR can suit one climate and overheat in another. The descriptive bands (none, low below 10%, low–moderate below 20%, moderate below 35%, high below 50%, very high from 50%) are the calculator’s own screening categories for early review. They are not a standard or a performance limit. Only the four cardinal facade labels are offered.
How to read the result. Look at the facades, not only the total. A moderate total can hide an unshaded west facade with high glazing.
Reference test. Four facades with a combined wall area of 108 m² and 16.8 m² of windows → total WWR 15.6%. A single facade of 10 × 3 m with 6 m² of windows → 20.0%.
4. Thermal Mass Calculator
Purpose. Estimate how much heat a layer of material can store for a given temperature swing.
Method. Stored heat Q = density × (area × effective thickness) × specific heat capacity × temperature change. The result is shown in kJ, in kWh (kJ ÷ 3,600) and in Btu (kJ × 0.947817), and as kWh per m² of exposed surface.
Inputs and units. Material (or custom density in kg/m³ and specific heat in kJ/kg·K), exposed area (m² or ft²), effective active thickness (mm or inches), and temperature change. Imperial inputs are converted with 1 ft² = 0.092903 m² and 1 in = 0.0254 m.
Assumptions. The whole layer you enter changes temperature by the full amount. In reality only the surface layer takes part in a daily cycle, which is why the calculator asks for an effective thickness rather than the full wall or slab thickness.
Limitations. Stored heat is not a prediction of indoor temperature, comfort or energy savings; that needs a dynamic thermal model. Storage only helps if winter sun or warm air actually reaches the surface and the surface is not covered (carpet, rugs, timber flooring). The temperature change is always treated as °C/K, also in imperial mode. Enter the swing in °C/K even when using imperial units (a 7 °F swing is about 3.9 K).
Material values. The presets are typical values. We compared them with the ASHRAE Handbook of Fundamentals values as published in the U.S. Department of Energy’s EnergyPlus material dataset, and with published ranges for earth construction:
| Preset | Calculator (kg/m³ · kJ/kg·K) | Reference value | Difference in heat capacity per m³ |
|---|---|---|---|
| Concrete | 2,400 · 0.88 | Heavyweight concrete 2,240 · 0.90 (ASHRAE) | about +5% |
| Brick masonry | 1,800 · 0.84 | Fired clay brick 1,760–1,920 · 0.79 (ASHRAE) | about 0% to +9% |
| Stone | 2,600 · 0.80 | Stone 2,560 · 0.79 (ASHRAE) | about +3% |
| Ceramic or stone tile | 2,200 · 0.84 | Fired ceramic (clay) 2,240–2,400 · 0.79; stone and terrazzo 2,560 · 0.79 (ASHRAE) | about −3% to +4% vs fired ceramic; about −9% vs stone |
| Adobe | 1,700 · 0.84 | Published ranges for earth materials: density about 1,400–2,150, specific heat about 0.70–1.00 | within the range |
| Rammed earth | 2,000 · 0.84 | Measured rammed earth: density 1,490–2,150, specific heat 0.70–1.00 (peer-reviewed study) | within the range |
| Water | 1,000 · 4.18 | Physical property of water at about 20 °C | — |
Real products vary by several percent or more, so treat any result as an order of magnitude. The tile preset sits between fired ceramic and natural stone, which is what “ceramic or stone tile” covers. (ASHRAE’s generic “slate or tile” roofing/finish layer lists a much higher specific heat, 1.26 kJ/kg·K, than any fired ceramic or stone in the same dataset, so it is not used for comparison.) Tiles are usually only 8–20 mm thick, so they add little storage on their own; the slab or screed beneath matters more. If you know your product’s density and specific heat, choose “Custom” and enter them.
How to read the result. Use it to compare options: a sunlit, uncovered concrete floor versus a timber floor, for example, or 50 mm versus 100 mm of effective thickness.
Reference test. 20 m² × 100 mm of concrete (2,400 kg/m³, 0.88 kJ/kg·K), temperature change 5 K → 5.87 kWh (21,120 kJ; 20,018 Btu).
5. Passive Solar Orientation Calculator
Purpose. Give a simple screening rating of how close a facade is to the ideal solar-facing direction.
Method. Ideal direction = 180° (true south) in the northern hemisphere or 0° (true north) in the southern hemisphere. Deviation = the smallest angle between the entered azimuth and the ideal. Base score = 100 − deviation ÷ 90 × 100 (not below 0). A winter solar-access penalty is subtracted: 0 for clear access, 15 for partial, 35 for heavy obstruction. The score is limited to 0–100. The rating label uses deviation bands of up to 15°, 30°, 45° and 60°, and more than 60°.
Inputs and units. Hemisphere, facade azimuth in degrees clockwise from true north (0–360), and a winter solar-access category.
Assumptions. The score is a heuristic for early comparison. The weighting (a straight line to zero at 90°) and the penalty values are the calculator’s own simplifications, not values from a standard.
Limitations. The score is not an energy figure and should not be compared between different sites or climates. It rates one facade at a time. Compass readings give magnetic north: convert to true north first (the difference can be many degrees in some regions). A blank azimuth field is currently read as 0° (north).
How to read the result. A deviation within about 15–30° usually leaves good potential for passive solar heating; beyond that, shading, room layout and envelope quality matter more than orientation.
Reference test. Northern hemisphere, 200°, partial winter access → deviation 20°, score 63/100. Southern hemisphere, 350°, clear access → deviation 10°, score 89/100.
What these tools are not
- They are not energy models: none of them predicts heating or cooling demand, bills or savings.
- They are not overheating or comfort assessments, and they do not check compliance with any building regulation or standard.
- They do not know your climate, site obstructions, construction or products unless you enter them.
- They are not a substitute for an architect, engineer or energy assessor. Use them to explore options and to ask better questions.
Sources
- NOAA Global Monitoring Laboratory, General Solar Position Calculations. gml.noaa.gov/grad/solcalc/solareqns.PDF (accessed 30 September 2026)
- NOAA Global Monitoring Laboratory, NOAA Solar Calculator. gml.noaa.gov/grad/solcalc/
- Spencer, J. W. (1971). Fourier series representation of the position of the sun. Search, 2(5), 172.
- ASHRAE (2005). Handbook of Fundamentals, material thermal properties as published in the U.S. DOE EnergyPlus dataset ASHRAE_2005_HOF_Materials. github.com/NREL/EnergyPlus (accessed 30 September 2026)
- Thermophysical Characteristics of Clay for Efficient Rammed Earth Wall Construction (2023). Materials, 16(17), 6015. mdpi.com/1996-1944/16/17/6015
- U.S. Department of Energy, Passive Solar Home Design. energy.gov/energysaver/passive-solar-homes
Calculator versions documented: code as deployed on 22 September 2026. Formulas and reference tests last checked on 30 September 2026 against an independent reference script. See also our Editorial Policy and Sources and References.