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.

circle-info

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 Calculatorarrow-up-right (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

Requirement
Specification

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

Version
Changes

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:

  1. Wall-Glazing U-Value (J4D6a): area-weighted U_sys across all enabled aspects

  2. Solar Admittance Method 1: every aspect must satisfy SA ≤ SA_limit individually

  3. 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

Control
Range
Description

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: % or

  • 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:

Control
Range
Description

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):

Control
Range
Description

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:

Control
Fallback
Description

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:

Property
Description

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 × S

  • S = 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-PDF

  • On-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

  1. Header with logo, title, and generation timestamp

  2. Overall compliance banner

  3. Three metric cards (U, M1, M2)

  4. Visual summary with both chart PNG snapshots embedded as base64

  5. Per-aspect breakdown table

  6. Compliance checks with substituted numbers

  7. 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

Shortcut
Action

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:

  1. Set project basics (20 seconds): Climate Zone: CZ 5, Building Class: Commercial (Class 5--9)

  2. 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

  3. 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

  4. Read result: Compliance banner, U-value card, Method 1 pass count, Method 2 ratio

  5. 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:

  1. Switch to m² mode (click m² in the segmented toggle)

  2. Enter actual wall and glazing areas for each enabled cardinal

  3. Override West's glazing properties: Type 1.5 into West's Glaz U input, 0.18 into West's SHGC input, and leave other aspects blank to inherit globals

  4. Add shading to West: Set D/W = 0.5, W/H = 1.0

  5. Snap to Method 2 max to see the maximum compliant WWR across aspects

  6. 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:

  1. Disable cardinals that aren't external walls: Untick E and S

  2. Click + Add custom orientation: In the advanced panel, set Label to "Main entrance" and Azimuth to 47

  3. Configure the custom aspect: WWR 40%, P/H 0.3, D/W 0.4, W/H 1.2

  4. Check the radar chart: "Main entrance" appears as a new axis between North and East

  5. 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

Term
Definition

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.

Climate zone
Commercial (Class 5--9)
Class 3/9c or 9a ward

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

Climate zone
North
East
South
West

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

Climate zone
North
East
South
West

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).

Climate zone
North
East
South
West

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

Climate zone
North
East
South
West

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.

G/H \ P/H
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.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)

G/H \ P/H
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.7

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

D/W \ W/H
0.5
0.7
1.0
1.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

D/W \ W/H
0.5
0.7
1.0
1.7

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

Table
Axes
Interpolation
Boundary behaviour

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):

Aspect
Weights

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:

Azimuth range
Neighbours
Weight formula (t = (az − a_low) ÷ 90)

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:

Field
Type
Description

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

Element
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 print rules for clean A4 output

  • page-break-inside: avoid on 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?