NCC 2025: The Facade Calculator
Beta Version 1.0 | 20/04/2026
What is this tool?
The NCC 2025: The Facade Calculator is a web-based single-viewport tool for checking building envelope compliance under Specification 37 - the area-weighted wall-glazing U-Value and orientation-weighted Solar Admittance pathway of Section J. It's aimed at architects, engineers, and ESD consultants who need to iterate quickly on glazing, wall, and shading choices without waiting for a full thermal simulation to finish.

The dashboard implements every Spec 37 lookup table and equation and updates Method 1, Method 2, and overall compliance live as inputs change. No black boxes. The calculations are all visible in the Details drawer if you want to check the arithmetic.
It runs as a standalone HTML5 application -- no installation, no login, just a browser. For support or feature requests, contact [email protected] or use the Support Ticket system.
This calculator is not legal or professional advice and at the risk of the user, as per the ABCB NCC 2022 notice and disclaimer. Better Building have thoroughly tested and reviewed all inputs, calculations and outputs in this tool. Any bugs or errors can be reported to [email protected].
Access the tool here: NCC 2025: The Facade Calculator (and save it in your browser)
Key Features
NCC 2025: The Facade Calculator Engine: Every lookup table and equation from Spec 37, covering walls, glazing, and shading
Three Compliance Checks in Parallel: Wall-glazing U-value, Method 1 (per-aspect SA ≤ SA limit), and Method 2 (orientation-weighted energy ratio)
Dual Input Modes: Percentage (%) mode for quick ratio-based exploration; square-metre (m²) mode for detailed area-based calculations
Per-Orientation Material Inputs: In m² mode, each aspect has its own Glazing U-value, SHGC, and Wall R-Value controls that override the global defaults
Nine Orientation Slots: Four cardinals (N, E, S, W), four intercardinals (NE, SE, SW, NW), plus unlimited custom azimuths
Custom Azimuths with Linear Interpolation: Add orientations at any angle 0--359°; ω and SA limits blend between the two adjacent cardinals
Horizontal + Vertical Shading: P/H (overhang), D/W and W/H (vertical fins) with full Table S37C7a/b/c/d/e bilinear interpolation
Lock Controls: Propagate WWR or shading values across all enabled aspects with a single checkbox
Snap to Compliance Boundary: One-click snap to the Method 1 per-aspect maximum or the Method 2 energy-ratio boundary (proportional scaling)
Interactive Visualisation: SA-by-orientation radar chart and compliance-budget gauge update live with every slider movement
Transparency Drawer: Full per-aspect breakdown table, compliance checks with substituted numbers, resolved limits/weightings, and method summary
Column Glossary: Every result table column has hover tooltips and a plain-English definitions list
A4 Report Export: Self-contained HTML with embedded chart snapshots, formatted for A4 print or Save-as-PDF
JSON Project Save/Load: Round-trip the entire project state to a .json file
Light / Dark Mode: Theme toggle with localStorage persistence; charts auto-restyle
Responsive Layout: Fits 1440×900 single-viewport; gracefully stacks on smaller screens down to mobile
20%-WWR Gate: Spec 37 rule S37(6) applied automatically -- aspects with WWR < 20% drop out of Method 2
Include Toggle per Aspect: Exclude party walls or non-external faces from all checks
System Requirements
Browser
Chromium-based (Chrome, Edge, Brave), Firefox, Safari
JavaScript
Enabled
RAM
2 GB minimum, 4 GB recommended
Screen Resolution
1280×720 minimum, 1440×900 recommended for single-viewport mode
Network
Required once to load Vue and Chart.js from CDN; runs offline after initial load
Version History
1.0
Initial release. NCC 2025 Spec 37 engine with Methods 1 and 2. Radar and gauge charts. Dual % / m² input modes. Per-orientation materials. Custom azimuths. Snap buttons. A4 report export. JSON save/load. Light/dark mode. Responsive single-viewport layout.
Quick Start Guide
Basic Workflow (5 Steps)
Step 1: Set Climate Zone and Building Class
Open the tool in your browser. It loads with a default project (CZ 5, Commercial, four cardinals enabled at 25% WWR). Use the top settings bar to set your Climate Zone (CZ 1--8) and Building Class (Commercial Class 5--9, or Class 3 or 9c building, or Class 9a ward area). The U-Value limit and SA limits update immediately to match J4D6a and J4D6c.
Step 2: Set Global Material Properties
Set three global values using the sliders: total system U-value of glazing (0.5--6.0 W/m²·K), total glazing solar heat gain coefficient (0.05--0.85), and opaque wall Total R-value (0.5--8.0 m²·K/W, stored internally as 1 ÷ R).
Step 3: Configure Each Orientation
Tick Include to enable or disable each aspect. In % mode, set WWR and P/H per orientation. In m² mode, set glazing area, wall area, P/H, D/W, and W/H, with the option to override Glaz U, SHGC, and Wall R per aspect. Toggle Show intercardinals to expose NE, SE, SW, and NW rows, or click + Add custom orientation to insert a row at any azimuth.
Step 4: Read the Results
The overall compliance tile (COMPLIES / DOES NOT COMPLY) sits top-left. Three KPI tiles show Wall-Glazing U-Value, Method 1 (aspects passing), and Method 2 (energy ratio). The SA radar and Compliance-budget gauge update live with every input change.
Step 5: Act on the Result
Snap to Method 2 max proportionally scales WWR to hit the M2 boundary. Snap to Method 1 max sets each aspect to its individual SA limit. Export report downloads a self-contained A4 HTML file for printing or PDF export. Save project downloads a .json file for later reload.
Compliance Model
What's Checked
The tool runs three independent checks against NCC 2025:
Wall-Glazing U-Value (J4D6a): area-weighted U_sys across all enabled aspects
Solar Admittance Method 1: every aspect must satisfy SA ≤ SA_limit individually
Solar Admittance Method 2: Σ f·WWR·SHGC·S·ω ≤ Σ f·SA_limit·ω across all enabled aspects
Overall compliance: U-value PASS AND (Method 1 PASS OR Method 2 PASS). Passing either SA method satisfies the SA leg.
Method 1 (Per-Aspect)
For each included aspect, the proposed Solar Admittance SA = WWR × SHGC × S must be at or below the Spec 37 SA limit for that orientation. The check fails as soon as any single aspect exceeds its limit.
Method 2 (Orientation-Weighted)
Each aspect contributes to two sums, weighted by its share f_a = A_wall,a / Σ A_wall:
ER_proposed = Σ f_a · WWR_a · SHGC_a · S_a · ω_a
ER_reference = Σ f_a · SA_limit,a · ω_a
The check passes when ER_proposed ≤ ER_reference. This allows over-admittance on some aspects to be offset by under-admittance on others. Aspects with WWR < 20% are gated (ω_eff = 0).
Combined Shading Factor S
S = min(S_h, S_v) -- the more conservative of horizontal and vertical shading is applied. S_h comes from Table S37C7a (N/E/W and intercardinals) or S37C7b (true south). S_v comes from Tables S37C7c (N), S37C7d (W), S37C7e (E) with climate-zone grouping. South vertical fins have no published multiplier in Spec 37, so S_v = 1.0 is forced on any south-facing aspect regardless of D/W or W/H values entered.
Inputs Overview
Top Settings Bar
Climate Zone
CZ 1--8
Sets UV_limit (J4D6a) and SA_limits (J4D6c)
Building Class
Commercial / Ward
Loads the appropriate limit table
Total system U-value of glazing
0.5--6.0 W/m²·K
NCC term: Total System U-Value
Total glazing solar heat gain coefficient
0.05--0.85
NCC term: Total Glazing SHGC
Opaque wall Total R-value
0.5--8.0 m²·K/W
Calc uses U = 1 ÷ R internally
Orientations Column
Include checkbox per aspect
Input mode segmented toggle:
%orm²Lock WWR (% mode only): dragging any WWR propagates to all enabled aspects
Lock shading: dragging any P/H, D/W, or W/H propagates to all enabled aspects (south-like rows are skipped for D/W / W/H)
Intercardinals chip: show or hide NE, SE, SW, NW rows
+ Add custom orientation: inserts a new editable row
Per-Orientation Controls
In % mode:
WWR
0--100%
Window-to-Wall Ratio
P/H
0--1.0
Horizontal overhang: projection ÷ window height
D/W
0--0.7
Vertical fin depth ÷ window width
W/H
0.5--1.7
Window width ÷ height
In m² mode (all of the above plus):
Glaz
0 to wall area
Glazing area in m²
Wall
0--500 m² (auto-extends)
Total external wall area in m²
Glaz U (per-aspect)
0.5--6.0 W/m²·K
Overrides global; leave blank to inherit
SHGC (per-aspect)
0.05--0.85
Overrides global; leave blank to inherit
Wall R (per-aspect)
0.5--8.0 m²·K/W
Overrides global; leave blank to inherit
Advanced Panel (⋯)
Share (% mode only): relative wall-share weight, 0--200
Label (custom aspects only): text input
Azimuth (custom aspects only): 0--359° numeric input
Remove button (custom aspects only): × icon
Input Modes
Percentage (%) Mode
The simpler of the two modes. Inputs are relative ratios: WWR as a percentage of wall, wall shares as relative weights (auto-normalised to sum to 100% across enabled aspects). Use this when you have architectural intent but geometry isn't resolved yet.
Square Metre (m²) Mode
The detailed mode, where inputs are actual areas. WWR is derived: WWR_a = glazing_area / wall_area. Wall shares come from the actual wall areas. This mode unlocks per-aspect glazing and wall area inputs, per-orientation material overrides (Glaz U, SHGC, Wall R), and editable number readouts next to every slider. Type a value into any readout to override the slider directly, and the slider updates in lockstep.
Per-Orientation Materials (Detailed Methodology)
Available in m² mode. Each aspect exposes three additional controls:
Glaz U
Global Total system U-value of glazing
Per-aspect Total System U-Value override
SHGC
Global Total glazing SHGC
Per-aspect Total Glazing SHGC override
Wall R
Global Opaque wall Total R-value
Per-aspect Total R-Value override
Inheritance: If a per-aspect value is blank, the calculation falls back to the global settings-bar value. Clearing a number input reverts to inheritance.
Common use cases include different glazing products on solar-exposed versus non-solar aspects, high-performance glazing on the West facade with standard product elsewhere, and mixed wall constructions like curtain wall versus masonry.
Shading System
Horizontal Overhang (P/H)
P/H = overhang projection depth ÷ window height, evaluated at G/H = 0 (no gap between window head and eave). Values are interpolated from Table S37C7a for N, E, W, and all intercardinals, and from Table S37C7b for true south. Custom azimuths within ±22.5° of 180° are treated as south-like and use S37C7b.
Vertical Fins (D/W, W/H)
D/W = fin depth ÷ window width. W/H = window width ÷ height. Values are interpolated from Table S37C7c for north aspects, Table S37C7d for west, and Table S37C7e for east. South aspects get S_v = 1.0 forced regardless of input, because Spec 37 doesn't define a south vertical fin table (and the tool respects that gap rather than inventing numbers).
Climate zones are grouped: {1, 2, 3, 5, 6}, {4}, {7}, {8}, each with its own sub-table.
Combined Shading
S = min(S_h, S_v) -- the more conservative of the two reductions is applied to the SA calculation.
Intercardinals and Custom Azimuths
For intercardinals (NE, SE, SW, NW) and custom azimuths, the resolved ω, SA_limit, and S_v are linearly interpolated between the two adjacent cardinals. A custom aspect at 047°, for example, resolves to 52% North + 48% East weighting for both ω and SA_limit.
Custom Orientations
Click + Add custom orientation to insert an editable row. Each custom aspect has:
Label
Editable text name (defaults to "Custom 1", "Custom 2", and so on)
Azimuth
0°--359° (0 = North, 90 = East, 180 = South, 270 = West)
Azimuth tag
Small muted readout shown inline in the aspect cell
× Remove
Red × button in the advanced panel; deletes the row
The main row stays visually consistent with the fixed eight cardinals. Long names truncate with an ellipsis, and the azimuth appears as a compact tag below the name.
Snap to Compliance
Two snap buttons sit in the action bar.
Snap to Method 2 Max
Proportionally scales every enabled aspect's WWR (% mode) or glazing area (m² mode) by a factor k = ER_reference / ER_proposed, landing the Method 2 energy ratio exactly on the compliance boundary. The relative WWR shape across aspects is preserved. The tool uses an iterative solver (up to 60 passes, with early exit on convergence) to handle the 20% gate non-linearity: aspects that would otherwise drop below 20% are clamped at the gate floor rather than being excluded from Method 2 entirely.
Snap to Method 1 Max
Sets each enabled aspect's WWR to the largest value that still satisfies SA ≤ SA_limit for that aspect alone: WWR_max,a = SA_limit,a / (SHGC × S_a). With Lock WWR on, the tool picks the minimum across all aspects so a single shared WWR passes every one of them -- the binding constraint wins.
Charts
Two charts sit in the top-right of the results column.
SA per Orientation (Radar)
A polar chart showing each enabled aspect's SA proposed (filled blue polygon) against its SA limit (dashed red polygon). Any point sitting outside the dashed ring fails Method 1 on that aspect. The scale auto-adjusts to the largest value across aspects multiplied by 1.2.
Compliance Budget Used (Gauges)
Three horizontal bars showing U-value, Method 1 worst face, and Method 2 energy ratio each as a percentage of their respective limit. The x-axis is locked at 0--200%, with a red dashed line at 100%. Bars turn green when under budget and red when over.
Both charts update reactively on every input change and redraw when the light/dark theme switches.
Details Drawer (Calculation Working)
Click Details & working to open a right-side slide-over panel.
Per-Aspect Breakdown Table
15 columns with full precision:
Aspect · Share · WWR · P/H · D/W · W/H · S_h · S_v · S · SA · SA limit · M1 · ω · ER_p · ER_r
Column Definitions
A plain-English definitions list pairing each column name with its formula:
SA = WWR × SHGC × SS = min(S_h, S_v)ER_p = f × WWR × SHGC × S × ωand so on for each column
Compliance Checks
U-value, Method 1 enumerated per aspect, Method 2, and the M1-OR-M2 combining step, all with numbers substituted inline so the arithmetic can be verified directly.
Resolved Limits and Weightings
The exact NCC lookup values used for the current CZ and class combination.
Method Summary
Plain-English notes on the Spec 37 homogeneity reduction, intercardinal approximation, shading table sources, and the 20% gate rule.
Report Export
Click Export report to download a self-contained A4-formatted HTML report.
Format
@page { size: A4 portrait; margin: 15mm 14mm }for clean print or Save-as-PDFOn-screen: a single centred 210×297 mm sheet on a light grey background
In print: full-bleed A4 with page-break rules to keep sections intact
10pt body, 9pt tables, 8pt table headers
Contents
Header with logo, title, and generation timestamp
Overall compliance banner
Three metric cards (U, M1, M2)
Visual summary with both chart PNG snapshots embedded as base64
Per-aspect breakdown table
Compliance checks with substituted numbers
Method notes
File
Downloads as Spec37_Dashboard_YYYY-MM-DD.html. Self-contained (roughly 55 KB), no external JS required to view.
Project Save / Load
Save Project
Click Save project to download the current dashboard state as Spec37_Project_YYYY-MM-DD.json.
The JSON captures every reactive input: climate zone, building class, global glazing U / SHGC, wall U, lock states, input mode, showIntercardinals, and every aspect's full state (key, label, WWR, share, wallArea, glazArea, dw, wh, ph, glazU, glazSHGC, wallU, included, neighbours, custom, azimuth), plus the custom counter.
Load Project
Click Load project to open a file picker. On valid JSON, scalars are validated lightly (CZ 1--8, class enum, type checks) and fall back silently to current state for anything missing or invalid. Aspects are matched by key. Matched aspects are updated in place (preserving Vue reactivity), custom aspects in the loaded file but absent from the current list are appended, and custom aspects in the current list but absent from the loaded file are dropped.
Light / Dark Mode
Toggle in the header (☾ Dark / ☀︎ Light). The choice persists via localStorage under the key spec37-theme.
Dark mode uses a deep slate background (#0f141b), darker slate panels (#161d26), pure white text (#ffffff), and an auto-adjusted chart palette with brighter greens and reds and lighter blues.
All accent colours use #2e4857 in both themes, with theme-specific hover variants. Native browser controls (range sliders, checkboxes) use accent-color: var(--accent) to render in the brand colour.
Keyboard Shortcuts
Esc
Close the details drawer
Tab
Cycle through input fields
Enter
Commit number-input values
Arrow keys
Nudge slider values on focused slider
Ctrl+S
(browser default -- not wired to Save project)
No global hotkeys are defined. All actions are button-driven to keep the interface discoverable.
Workflow Examples
Example 1: Façade Compliance Check for a Class 5 Office in CZ 5
Goal: Verify that a commercial building in Sydney (CZ 5) with 50% WWR on all four cardinals complies under Spec 37.
Steps:
Set project basics (20 seconds): Climate Zone: CZ 5, Building Class: Commercial (Class 5--9)
Global materials (30 seconds): Total system U-value of glazing: 2.7 W/m²·K, Total glazing SHGC: 0.35, Opaque wall Total R-value: 1.5 m²·K/W
Enable four cardinals and set WWR: Tick Include on N, E, S, W, then turn on Lock WWR and drag any slider to 50% -- all four snap together
Read result: Compliance banner, U-value card, Method 1 pass count, Method 2 ratio
Export (5 seconds): Click Export report -- A4 HTML downloads
Result: A one-page A4 compliance summary with all three checks, aspect breakdown, and chart snapshots.
Example 2: Detailed Mixed-Glazing Building
Goal: An office with premium West glazing (low SHGC) and standard glazing elsewhere, with different wall areas per façade.
Steps:
Switch to m² mode (click m² in the segmented toggle)
Enter actual wall and glazing areas for each enabled cardinal
Override West's glazing properties: Type
1.5into West's Glaz U input,0.18into West's SHGC input, and leave other aspects blank to inherit globalsAdd shading to West: Set D/W = 0.5, W/H = 1.0
Snap to Method 2 max to see the maximum compliant WWR across aspects
Export project: Click Save project to preserve the scenario
Result: Detailed per-aspect analysis with heterogeneous materials, with the project saved for future iteration.
Example 3: Odd-Angled Custom Façade
Goal: A building with a main façade at 047° (between North and East) plus standard cardinals.
Steps:
Disable cardinals that aren't external walls: Untick E and S
Click + Add custom orientation: In the advanced panel, set Label to "Main entrance" and Azimuth to 47
Configure the custom aspect: WWR 40%, P/H 0.3, D/W 0.4, W/H 1.2
Check the radar chart: "Main entrance" appears as a new axis between North and East
Inspect in the details drawer: ω shown as a weighted blend of north (0.48) + east (0.52)
Result: Non-cardinal façades modelled correctly with interpolated weights.
Best Practices
Input Mode Selection
Use % mode for early-stage massing and quick what-ifs. Switch to m² mode once geometry is resolved, or when you need per-aspect material overrides.
Method Selection
Method 1 is the strict, per-aspect check -- good for conservative design. Method 2 is the more permissive check, letting over-admittance on one aspect offset under-admittance on another. The tool passes compliance if either method succeeds, so Method 2 is typically the better target if maximising glazing area is the goal.
Using Snap Buttons
Start with Snap to Method 2 max -- it preserves relative WWR shape and typically allows more glazing. If a Method 1 pass is also needed (for conservative reporting, say), follow up with Snap to Method 1 max. Repeated clicks are idempotent once the design is on the boundary.
Custom Azimuths
Keep custom azimuths within 0--359°. Values within ±22.5° of 180° are treated as south-like (uses the S37C7b horizontal table and forces S_v = 1.0). Use meaningful labels like "Bay window SW corner" because they appear on the radar chart.
Shading
P/H reduces SA directly on both methods. D/W / W/H only help on N, E, and W -- south vertical fins have no calculated effect per Spec 37. Lock shading is useful for buildings with uniform overhangs across façades.
Material Overrides
Start with global settings and override per aspect only when materials genuinely differ. Clear a number input to revert to inheritance. The placeholder text shows the global value being inherited, which is a useful reminder when you're iterating quickly.
Troubleshooting
Overall shows DOES NOT COMPLY but Method 2 passes
Symptoms: Overall banner is red despite a green Method 2 badge.
Solution: Check the U-value tile. Overall compliance requires U-value PASS AND (M1 OR M2). If U_sys exceeds the J4D6a limit, even a perfect Method 2 result won't rescue it. Reduce glazing U-value or increase wall R-value.
South D/W and W/H appear locked
Symptoms: Typing into South's fin inputs doesn't change the result.
Solution: This is intentional. NCC Spec 37 doesn't define a south vertical fin table, so S_v = 1.0 is forced regardless of D/W / W/H. The inputs remain editable in V1.0 but have no calculation effect. An asterisk on D/W* / W/H* labels flags this.
Snap button appears to do nothing on second click
Symptoms: Clicking Snap to Method 2 max twice produces identical state.
Solution: This is correct idempotent behaviour. The first click lands the design exactly on the compliance boundary. Subsequent clicks compute k = 1.0 and make no change.
Aspect drops out of Method 2 calculation
Symptoms: An aspect's ER contributions show as 0 in the breakdown table.
Solution: Check its WWR. Any aspect with WWR < 20% is gated under Spec 37 rule S37(6) -- ω_eff is forced to 0. Either raise the WWR above 20% or accept that the aspect contributes nothing to Method 2.
Custom orientation math doesn't match a cardinal
Symptoms: A custom aspect at azimuth 90° gives slightly different results than the built-in East.
Solution: At exact cardinal angles (0, 90, 180, 270°) custom aspects should match cardinals exactly. If they differ, check that the azimuth is typed correctly (not 89 or 91), that WWR and share match, and that shading D/W and W/H match (note that custom aspects use S37C7d for West exactly at 90°).
Report won't print as A4
Symptoms: Printed output has wrong margins or page breaks.
Solution: In the browser print dialog, set destination to Save as PDF (or a physical A4 printer), set paper size to A4, set margins to Default or None (the report supplies its own via @page), and enable background graphics -- otherwise pass/fail colouring won't appear in the printout.
Load project restores wrong layout
Symptoms: The loaded project shows different aspects than were saved.
Solution: Aspects are matched by internal key, not label. Custom aspects get timestamped keys like custom_1745123456789_1, so a project saved before renaming retains the original key. Matched aspects are updated in place; unmatched customs are appended.
Glossary
NCC
National Construction Code (Australia)
Spec 37
NCC Specification 37 -- wall-glazing U-value and solar admittance compliance pathway
J4D6a
NCC clause defining maximum Total System U-Value by climate zone and class
J4D6c
NCC clause defining maximum Solar Admittance by orientation, climate zone, and class
S37C6a / S37C6b
Spec 37 clause defining orientation weighting factor ω for Commercial / Ward buildings
S37C7a / S37C7b
Spec 37 horizontal shading multiplier tables (N/E/W / South)
S37C7c / S37C7d / S37C7e
Spec 37 vertical fin shading multiplier tables (N / W / E)
Total System U-Value
NCC term for a glazed element's U-value inclusive of frame
Total Glazing SHGC
NCC term for the Solar Heat Gain Coefficient of a glazed element
Total R-Value
NCC term for opaque construction thermal resistance, m²·K/W
WWR
Window-to-Wall Ratio -- percentage of wall area occupied by glazing
SA
Solar Admittance -- WWR × SHGC × S per aspect
SA limit
Per-aspect SA ceiling from J4D6c
S_h
Horizontal shading multiplier from S37C7a/b
S_v
Vertical fin shading multiplier from S37C7c/d/e
S
Combined shading factor, min(S_h, S_v)
ω
Orientation weighting factor for Method 2
f
Per-aspect share of total wall area
ER_proposed
Σ f·WWR·SHGC·S·ω across enabled aspects
ER_reference
Σ f·SA_limit·ω across enabled aspects
20% Gate
Rule S37(6): aspects with WWR < 20% have ω_eff = 0 under Method 2
Method 1
Per-aspect SA ≤ SA_limit compliance check
Method 2
Orientation-weighted energy-ratio compliance check
Intercardinal
NE, SE, SW, or NW -- ω and SA_limit are the mean of the two adjacent cardinals
Custom Azimuth
User-defined orientation at any angle 0--359°; ω and limits linearly interpolated
South-like
A custom aspect within ±22.5° of 180°; uses S37C7b and forces S_v = 1.0
P/H
Horizontal overhang ratio: projection ÷ window height
D/W
Vertical fin depth ÷ window width
W/H
Window width ÷ window height
Snap to Method X
One-click scaling of WWR to hit the respective method's compliance boundary
Lookup Tables
All lookup values below are the actual constants used by the Spec 37 Compliance Dashboard v1.0. They are sourced from NCC 2025 Specification 37 and related J4D6 clauses.
Aggregate Wall-Glazing U-Value Limits (J4D6a)
Maximum Total System U-Value of the wall-glazing construction, in W/m²·K.
1
1.6
1.1
2
1.9
1.6
3
1.7
1.2
4
1.7
1.3
5
1.7
1.6
6
1.8
1.6
7
1.7
1.2
8
2.0
1.1
Note. The CZ 5 Commercial value was updated to 1.7 per NCC 2025 Envelope Guidance §2.2.3. Other climate-zone values are retained from prior references; verify against the current published J4D6a if your project is not CZ 5.
Solar Admittance Limits (J4D6c) -- Commercial
1
0.09
0.10
0.11
0.09
2
0.09
0.10
0.11
0.09
3
0.09
0.10
0.11
0.09
4
0.09
0.10
0.11
0.09
5
0.09
0.10
0.11
0.07
6
0.09
0.10
0.11
0.09
7
0.09
0.10
0.11
0.09
8
0.10
0.10
0.20
0.10
Note. CZ 5 West was updated to 0.07 per NCC 2025 Envelope Guidance §2.2.4. CZ 8 Commercial has a relaxed South (0.20) and West (0.10) per the published table.
Solar Admittance Limits (J4D6c) -- Class 3 or 9c building or Class 9a ward area
1
0.06
0.06
0.06
0.06
2
0.06
0.06
0.06
0.06
3
0.06
0.06
0.06
0.06
4
0.06
0.06
0.06
0.06
5
0.06
0.06
0.06
0.06
6
0.06
0.06
0.06
0.06
7
0.06
0.06
0.06
0.06
8
0.06
0.06
0.06
0.06
Orientation Weighting Factor ω (S37C6a) -- Commercial
South is always ω = 1.00 (reference direction).
1
1.47
1.39
1.00
1.41
2
1.95
1.58
1.00
1.68
3
1.95
1.63
1.00
1.65
4
2.05
1.72
1.00
1.69
5
2.28
1.72
1.00
1.75
6
2.12
1.62
1.00
1.67
7
2.40
1.84
1.00
1.92
8
1.88
1.92
1.00
1.25
Orientation Weighting Factor ω (S37C6b) -- Class 3 or 9c building or Class 9a ward area
1
1.42
1.30
1.00
1.37
2
1.77
1.49
1.00
1.54
3
1.72
1.48
1.00
1.50
4
1.55
1.37
1.00
1.36
5
1.88
1.48
1.00
1.52
6
1.52
1.28
1.00
1.33
7
1.60
1.35
1.00
1.40
8
1.24
1.26
1.00
1.05
Horizontal Shading Multiplier -- Table S37C7a (North, East, West, and intercardinals)
Rows are G/H (gap between window head and eave ÷ window height). Columns are P/H (overhang projection ÷ window height). The tool interpolates bilinearly at G/H = 0.
0.0
1.00
0.90
0.80
0.72
0.64
0.57
0.51
0.46
0.41
0.38
0.35
0.1
1.00
0.95
0.89
0.81
0.74
0.66
0.59
0.52
0.47
0.42
0.40
0.2
1.00
0.98
0.94
0.89
0.82
0.75
0.68
0.62
0.56
0.51
0.47
0.3
1.00
1.00
0.97
0.94
0.89
0.84
0.78
0.72
0.66
0.61
0.57
0.4
1.00
1.00
0.99
0.97
0.94
0.90
0.86
0.82
0.77
0.73
0.68
0.5
1.00
1.00
1.00
0.99
0.97
0.95
0.92
0.90
0.86
0.83
0.79
Horizontal Shading Multiplier -- Table S37C7b (South only)
0.0
1.00
0.93
0.87
0.82
0.77
0.73
0.69
0.65
0.62
0.60
0.58
0.1
1.00
0.97
0.93
0.88
0.84
0.79
0.75
0.71
0.67
0.64
0.62
0.2
1.00
0.98
0.96
0.93
0.89
0.85
0.81
0.77
0.73
0.70
0.68
0.3
1.00
0.99
0.98
0.96
0.93
0.90
0.87
0.83
0.80
0.77
0.74
0.4
1.00
1.00
0.99
0.98
0.96
0.94
0.91
0.89
0.86
0.84
0.81
0.5
1.00
1.00
0.99
0.99
0.98
0.96
0.95
0.93
0.91
0.90
0.88
Vertical Fin Shading Multiplier -- Table S37C7c (North)
Rows are D/W (fin depth ÷ window width). Columns are W/H (window width ÷ height). Climate zones are grouped.
Climate zones 1, 2, 3, 5, 6
0.1
0.90
0.90
0.90
0.91
0.3
0.81
0.82
0.83
0.85
0.5
0.74
0.76
0.78
0.82
0.7
0.70
0.73
0.76
0.81
Climate zone 4
0.1
0.90
0.90
0.91
0.91
0.3
0.82
0.83
0.84
0.87
0.5
0.76
0.78
0.80
0.84
0.7
0.73
0.75
0.78
0.83
Climate zone 7
0.1
0.90
0.91
0.91
0.92
0.3
0.82
0.83
0.85
0.87
0.5
0.78
0.79
0.82
0.86
0.7
0.75
0.78
0.80
0.85
Climate zone 8
0.1
0.91
0.91
0.92
0.92
0.3
0.85
0.86
0.88
0.90
0.5
0.83
0.85
0.87
0.91
0.7
0.84
0.86
0.88
0.91
Vertical Fin Shading Multiplier -- Table S37C7d (West)
Climate zones 1, 2, 3, 5, 6
0.1
0.90
0.90
0.91
0.93
0.3
0.84
0.84
0.85
0.87
0.5
0.79
0.80
0.82
0.85
0.7
0.75
0.77
0.79
0.83
Climate zone 4
0.1
0.89
0.90
0.90
0.93
0.3
0.84
0.85
0.86
0.88
0.5
0.81
0.82
0.84
0.87
0.7
0.79
0.81
0.83
0.86
Climate zone 7
0.1
0.95
0.95
0.95
0.96
0.3
0.93
0.94
0.94
0.94
0.5
0.93
0.93
0.93
0.94
0.7
0.92
0.93
0.93
0.94
Climate zone 8
0.1
0.89
0.89
0.90
0.93
0.3
0.87
0.87
0.88
0.90
0.5
0.86
0.87
0.88
0.90
0.7
0.86
0.87
0.89
0.90
Vertical Fin Shading Multiplier -- Table S37C7e (East)
Climate zones 1, 2, 3, 5, 6
0.1
0.93
0.93
0.94
0.94
0.3
0.87
0.88
0.89
0.90
0.5
0.83
0.84
0.85
0.88
0.7
0.79
0.81
0.83
0.87
Climate zone 4
0.1
0.92
0.92
0.93
0.94
0.3
0.88
0.89
0.89
0.91
0.5
0.85
0.86
0.88
0.90
0.7
0.83
0.85
0.87
0.89
Climate zone 7
0.1
0.93
0.94
0.94
0.95
0.3
0.91
0.91
0.92
0.91
0.5
0.89
0.90
0.91
0.93
0.7
0.88
0.90
0.91
0.93
Climate zone 8
0.1
0.92
0.93
0.93
0.94
0.3
0.92
0.93
0.93
0.94
0.5
0.92
0.93
0.94
0.95
0.7
0.93
0.94
0.95
0.95
Vertical Fin Shading Multiplier -- South
South has no published vertical fin table in NCC Spec 37. The tool forces S_v = 1.0 on any aspect classified as south-like (cardinal South, or a custom azimuth within ±22.5° of 180°) regardless of D/W or W/H values entered.
Interpolation Rules
S37C7a / S37C7b
G/H (row) × P/H (col)
Bilinear, at G/H = 0 only
Clamp to nearest edge
S37C7c / S37C7d / S37C7e
D/W (row) × W/H (col), per CZ group
Bilinear within each CZ-group sub-table
Clamp to nearest edge
Values outside the published grid are clamped to the edge; no extrapolation is performed.
Intercardinal and Custom-Azimuth Resolution
For the intercardinals (NE, SE, SW, NW) and any custom azimuth, the resolved ω, SA_limit, and S_v are the linear blend of the two adjacent cardinals, weighted by angular proximity.
Fixed intercardinals (weights fixed at 50/50):
NE
0.50 North + 0.50 East
SE
0.50 South + 0.50 East
SW
0.50 South + 0.50 West
NW
0.50 North + 0.50 West
Custom azimuths -- linear interpolation along the compass:
0°--90°
North ↔ East
{north: 1 − t, east: t}
90°--180°
East ↔ South
{east: 1 − t, south: t}
180°--270°
South ↔ West
{south: 1 − t, west: t}
270°--360°
West ↔ North
{west: 1 − t, north: t}
20% WWR Gate (S37(6))
Any included aspect with WWR < 20% has its effective ω forced to 0 under Method 2, so that aspect contributes nothing to either ER_proposed or ER_reference. Method 1 still evaluates these aspects against their SA limits as normal.
Data Structures
Project JSON Schema
Aspect Object
Fields:
key
string
Stable identifier (matches across save/load)
label
string
Display name (editable for custom aspects)
wwr
number
Window-to-Wall Ratio percentage (0--100)
share
number
Relative wall-share weight for % mode (0--200)
wallArea
number
Actual wall area in m² (m² mode)
glazArea
number
Actual glazing area in m² (m² mode)
dw
number
Vertical fin D/W ratio (0--0.7)
wh
number
Window W/H ratio (0.5--1.7)
ph
number
Horizontal overhang P/H ratio (0--1.0)
glazU
number or null
Per-aspect glazing U override; null inherits global
glazSHGC
number or null
Per-aspect SHGC override; null inherits global
wallU
number or null
Per-aspect wall U override; null inherits global (stored as U, input as R)
included
boolean
Whether aspect contributes to calculations
neighbours
[string, string] or null
Adjacent cardinals for intercardinals
custom
boolean
True for user-added orientations
azimuth
number
0--359° for custom aspects
Export Specifications
Numeric Precision
U-value
2 decimal places in UI, 4 dp in report
SHGC
2 decimal places
Wall R-Value
2 decimal places
WWR
1 decimal place (%)
SA
3 decimal places
ER contributions
4 decimal places
Share / f
1 decimal place (%)
ω
2 decimal places
Azimuth
1 decimal place
Report HTML Structure
Compliant with modern browsers (Chrome, Firefox, Safari, Edge)
Single-file, no external dependencies after download
Embedded Chart.js PNG snapshots via base64 (roughly 10 KB each)
@media printrules for clean A4 outputpage-break-inside: avoidon metric cards, aspect blocks,<pre>blocks, and tables
JSON Save File
UTF-8 encoded
Schema-versioned for future migration safety
Pretty-printed (2-space indent) for human readability
Typical size: 3--10 KB per project
Round-trips through Load project without data loss
Last updated
Was this helpful?

