Key takeaways
- On our sample plane (a placeholder, 40 ft by 14 ft in plan, 6:12), true area is 626.1 ft². The 560.0 ft² plan area is 10.6% short.
- Reading 6:12 as 6 degrees is a unit slip. It leaves the area 10.1% low.
- On that 6:12 plane, a 3 degree pitch error (our test value) moved true area by -2.4% or +2.8%. It moved modelled annual DC kWh at Greensboro NC by only -0.46% or +0.26%.
- Of the five tools in the software table, three document pitch and azimuth per roof plane. Company pages give almost no accuracy figures. The one we found is an EagleView blog claim.
To measure planes in software, see the best solar roof measurement software.
Roof measurement at a glance
Each roof plane needs three numbers: true area, pitch and azimuth. Everything else, such as usable area and module count, follows from them and from your offsets.
| Item | Detail |
|---|---|
| Formula | True area = plan area ÷ cos(pitch angle). Pitch x:12 = 12 × rise ÷ run. |
| Unit and range | ft² or m², degrees or x:12. Our samples run from 2:12 (9.46°) to 12:12 (45°). |
| Where it matters | Layout and module count, yield simulation, structural check, bill of materials and permit drawings. |
| Standard or rule | No single standard is cited. Each tool and AHJ sets its own inputs and formats. |
| In software | Remote tools return pitch, azimuth and area per plane. Design tools let you edit them. See best solar roof measurement software. |
Why roof measurement matters for installers
Every later number comes from the roof model: module count, kW, shade and weight. A wrong plane can reach the proposal before anyone stands on the roof.
Area errors change the bill of materials and the price. Direction and pitch errors change the yield you promise. A site survey catches them cheaply. A remote check, as in remote site assessment, flags which roofs need one.
Figure 1. On our 6:12 sample roof, a 3 degree pitch error changes area by 2.4% to 2.8% and modelled annual yield by less than 0.5%. The area effect grows to 5.7% at 12:12.
The area error grows with pitch. For a 3 degree over-read it is 1.0% at 2:12 and 5.7% at 12:12. The module count on our sample plane stayed at 20.
Plan area versus true area: which one do you need?
Use true (sloped) area for module space, roofing and weight. Plan area, the footprint seen from above, is smaller by the factor cos(pitch): 10.6% short at 6:12. For example, 560 ft² of plan area is 626 ft² of real roof at 6:12 pitch.
How to calculate roof area, pitch and azimuth
Start from the plan dimensions and the pitch, then correct for slope. Do the same for every plane. A hip or multi-plane roof has a different pitch and azimuth on each face.
- Pitch from rise and run: angle = atan(rise ÷ run). A 6:12 roof is 26.57°. A 12:12 roof, 45° and a 100% grade are the same slope.
- True area = plan area ÷ cos(angle). The Google Solar API says its
areaMeters2is the roof area "accounting for tilt". ItsgroundAreaMeters2is the footprint. - Azimuth is the compass direction the roof surface faces, which is the downslope direction. The ridge runs 90° from it. A roof that rises to the north faces south, 180° on a compass bearing. For a near-flat plane azimuth is not defined, and Google sets it to 0 (north). Conventions differ between tools, so read the azimuth page before moving numbers between them.
- Usable area = the plane less your offsets, measured along the roof surface. The offsets are inputs. See keep-out zones and setbacks.
- Modules = whole columns × whole rows inside the usable area. Area divided by module area overstates it. See solar panel layout.
Direction conventions were checked against pvlib: a roof rising to the north faces 180°. The tilt angle page covers how tilt changes yield.
Measurement methods compared
Every method trades site access for assumptions. The table lists what each gives, and the limit a company page or our own test states.
| Method | What it gives | Limit stated or tested |
|---|---|---|
| Tape, level, inclinometer (on site) | Pitch from rise over a level run. Plane lengths. | Needs roof access. Our site survey page shows how a misread rise moves area. |
| Drone photos (on site) | 3D model or ortho map from overlapping photos. | Needs a flight. See drone inspection and orthomosaic. |
| Aerial imagery | Google’s HIGH tier: aerial imagery captured at low altitude, 0.1 m per pixel. MEDIUM: high altitude, 0.25 m per pixel. | Google says imageryDate is approximate. Its data-layers page gives no maximum imagery age. See aerial imagery. |
| Satellite imagery | Google’s BASE tier: enhanced satellite imagery at 0.25 m per pixel. | Pixel size is coarser than the HIGH tier. The approximate imagery date applies here too. |
| LiDAR and 3D model | Aurora says it uses LIDAR to calculate building heights, roof slopes and tree heights. | Aurora: a snapshot in time. Accuracy depends on age and point density. More cautions below the table. |
| Remote report | EagleView’s Inform page lists Pitch and Azimuth as feature rows. Its output is derived from aerial imagery. | Company claim: "98%+" accuracy for roof dimensions (EagleView blog). The post text names no test sample or capture dates. |
Aurora also warns that:
- A roof can show flat in LIDAR but be sloped.
- LIDAR shading leaves out rooftop obstructions such as chimneys.
A 3D solar model built on any of these inherits their errors.
Worked example: area, module count and a 3 degree pitch error
One south-facing gable plane, 40 ft along the eave and 14 ft from eave to ridge in plan. Pitch is 6:12. Plane size, offsets and gap are our placeholders, not measurements of a real roof. Only the module datasheet values are published figures.
| Step | Value |
|---|---|
| Plan area | 40 × 14 = 560.0 ft² |
| Angle and slope factor | 26.57°. 1 ÷ cos = 1.1180 |
| True area and slope length | 626.1 ft². 15.65 ft eave to ridge |
| Offsets (placeholders) | Eave 12 in, ridge 18 in, each rake 12 in |
| Usable area | 456 in × 157.8 in = 499.8 ft² |
| Module (datasheet) | Qcells Q.TRON BLK M-G2+ 425 W, 1722 × 1134 mm, gamma Pmax -0.30 %/K. North America sheet dated 2025-03 (Rev06). Gap 0.5 in (placeholder). |
| Modules, portrait | 10 columns × 2 rows = 20 (8.50 kW) |
| Modules, landscape | 6 columns × 3 rows = 18 |
| Usable area ÷ module area | 23.8 modules, which is 19% above the 20 that fit |
Now test a pitch read 3 degrees low and 3 degrees high, with the plan size held fixed.
| Pitch used | True area (change) | Usable area | Modules (portrait / landscape) | Modelled DC kWh per year |
|---|---|---|---|---|
| True: 26.57° (6:12) | 626.1 ft² (0) | 499.8 ft² | 20 / 18 | 14,046 |
| 3° low: 23.57° (5.23:12) | 610.9 ft² (-2.4%) | 485.4 ft² | 20 / 18 | 13,981 (-0.46%) |
| 3° high: 29.57° (6.81:12) | 643.8 ft² (+2.8%) | 516.6 ft² | 20 / 18 | 14,083 (+0.26%) |
Yield method: pvlib 0.16.1, Perez sky model, azimuth 180°, albedo 0.20. The weather is the Greensboro NC typical-year file (latitude 36.1) that ships with pvlib. It is a typical year, not site data. Cell temperature uses the SAPM close-mount glass/glass model. Power is PVWatts DC at 8.50 kW, with no soiling, shade, reflection, wiring or inverter loss. Error is model minus true.
Area moved by -2.4% to +2.8%. Yield moved by less than half a percent. Annual yield is flat near the best tilt, 32° at this site (see tilt angle). Two portrait rows leave 21.7 in spare. A third would need about 204 in in total, so the count stays 20. It stayed at 20 across errors of -10° to +10°. A roof closer to a row boundary can flip, so run your own numbers below.
Roof plane calculator
The calculator returns true area, usable area, portrait and landscape counts. It also shows the effect of a pitch error. It rejects out-of-range inputs and ambiguous numbers such as 1.000. It does not estimate energy.
How solar software handles roof measurement
Three of the five tools document pitch and azimuth per roof plane, and two do so in part. Ratings below use only company pages checked in October 2026, and ask only about pitch and azimuth. For the wider survey question, see our site survey page.
| Software | Documents pitch and azimuth per roof plane? | Method |
|---|---|---|
| Google Solar API | Yes | Remote, imagery |
| EagleView | Yes | Remote, aerial imagery |
| OpenSolar | Yes | 3D imagery, or manual in 2D |
| Aurora Solar | Partly | Imagery plus LIDAR, or manual |
| HelioScope | Partly | Manual, optional LiDAR fit |
Partly: the company page covers some of this, not every item. How each tool does it, with notes and source:
- Google Solar API.
pitchDegrees(0 is parallel to the ground),azimuthDegrees(0 north, 90 east, 180 south), sloped and ground area per segment. Source: client reference (undated) and RPC reference, updated 2026-08-18.imageryDateis approximate. - EagleView. Inform page lists Pitch and Azimuth as feature rows after "Roof geometry with 3D models". DXF, JSON, XML and PDF output. Source: page metadata 14 April 2025. The page does not state the tier in text. Roof area not mentioned. No tolerance given.
- OpenSolar. Auto Design page: "Pitch, azimuth and shading calculated automatically". In 2D you set slope and mark the gutter edge, which sets the facing direction. Source: Auto Design page last modified 3 March 2026. Support article updated 24 July 2026.
- Aurora Solar. Help page says Aurora AI builds a 3D roof model from HD imagery and LIDAR, and you can edit it. A company blog says it calculates roof slopes. Source: help updated 3 June 2026. Blog modified 11 April 2024. No Aurora help page cited prints pitch or azimuth values.
- HelioScope. Help says "Enter the tilt of the roof". Azimuth aligns to the roof edge you pick. An Aurora blog says Fit to LIDAR can fit pitch for flush mount. Source: help updated 13 June 2026. Blog modified 5 April 2024.
More tools are compared in the best solar roof measurement software list.
What to verify on site
Treat any remote number as a first draft. This is our checklist, not a company or code requirement.
- Pitch of every plane that will carry modules, with a level and a tape, or an inclinometer.
- Roof changes since the imagery date: additions, a new covering, felled or grown trees, existing panels.
- Eave-to-ridge and eave lengths, and the position of vents, skylights and chimneys.
- Azimuth against true north, as the azimuth page explains.
- Framing and rafter data for the structural check.
Common mistakes with roof measurement
FAQs
How do I measure roof pitch for solar?
Hold a level horizontal against the roof and measure the rise over a 12 in run. That rise is the pitch in x:12. Convert with angle = atan(rise ÷ 12). An inclinometer also works. The site survey page shows how a misread rise moves area.
What is a 6:12 pitch in degrees?
A 6:12 pitch is 26.57 degrees, from atan(6 ÷ 12). A 12:12 pitch is 45 degrees.
Is roof area the area I can fill with modules?
No. Usable area is true area less your offsets and keep-outs, and modules fit in whole units. On our plane, 499.8 ft² of usable area holds 20 modules, not the 23.8 that area alone suggests.
How accurate is remote roof measurement?
Company pages give almost no tolerances. The one accuracy figure we found is an unmeasured company blog claim in the methods table, and Google calls its imagery date approximate. Check pitch on site for any roof you will build on, because a pitch error moves area more than it moves yield.
How do I convert plan area to roof area?
Divide plan area by the cosine of the pitch. At 6:12, 560 ft² of plan area is 626.1 ft² of roof. The Google Solar API gives both: its areaMeters2 is the roof surface accounting for tilt, and its groundAreaMeters2 is the footprint.
Related terms
- LiDAR: laser ranging that gives roof slope and heights.
- Aerial imagery: overhead photos used for remote measurement.
- 3D solar modelling: a scaled model that casts the sun’s shadows.
- Solar panel layout: where each module sits on the plane.
- Rooftop solar: a PV array fixed to a building roof.
Next step: before you build a layout on a remote roof model, compare tools in the best solar roof measurement software list.
Sources
- Google Solar API client reference, RoofSegmentSummary (undated).
- Google Solar API RPC reference (last updated 2026-08-18).
- Google Solar API data layers (last updated 2026-10-16).
- EagleView Inform (metadata 14 April 2025) and EagleView aerial roof measurements post (dated 11 December 2025).
- OpenSolar Auto Design (last modified 3 March 2026) and Ada Auto Design support article (updated 24 July 2026).
- Aurora help: creating a 3D site model (updated 3 June 2026).
- Aurora help: LIDAR tips (updated 15 April 2026).
- Aurora LIDAR blog (published 8 February 2023, modified 11 April 2024).
- HelioScope residential design help (updated 13 June 2026) and Aurora blog on LiDAR in HelioScope (published 25 October 2022, modified 5 April 2024).
- Qcells Q.TRON BLK M-G2+ datasheet, North America, 2025-03 Rev06, distributor copy. Qcells’ own page is not cited.
- pvlib python 0.16.1, used for the yield and direction tests.
All sources were checked in October 2026. Last updated 30 October 2026. Next scheduled review: 30 January 2027.