logo

NCC 2025: The Facade Calculator v1.2

{{ glazU.toFixed(1) }}
{{ glazSHGC.toFixed(2) }}
{{ wallR.toFixed(2) }}
Overall compliance
{{ overallLabel }}
⚠ Non-compliant glazing: {{ glazingUNonCompliantAspects.join(', ') }}
U {{ uPass ? '✓' : '✗' }} · M1 {{ m1Pass ? '✓' : '✗' }} · M2 {{ saPass ? '✓' : '✗' }} · passes if U AND ({{ saMethod === 'm1' ? 'M1' : saMethod === 'm2' ? 'M2' : 'M1 OR M2' }})
Enable at least one orientation
Wall-glazing U-value
{{ hasIncluded ? (uPass ? 'PASS' : 'FAIL') : '—' }}
{{ hasIncluded ? uSys.toFixed(2) : '—' }} W/m²·K
Limit {{ uLim.toFixed(2) }} · CZ{{ climateZone }} {{ buildingClass === 'commercial' ? 'Comm.' : 'Ward' }}
Method 1 (per-aspect)
{{ hasIncluded ? (m1Pass ? 'PASS' : 'FAIL') : '—' }}
{{ hasIncluded ? m1PassCount + '/' + m1PerAspect.length : '—' }} aspects pass
Method 2 (energy ratio)
{{ hasIncluded ? (saPass ? 'PASS' : 'FAIL') : '—' }}
{{ hasIncluded ? erProposed.toFixed(2) : '—' }} / {{ hasIncluded ? erReference.toFixed(2) : '—' }}
ERprop ≤ ERref · {{ hasIncluded ? ((erProposed / (erReference || 1)) * 100).toFixed(0) + '% of budget used' : '—' }}
{{ showSolutionPanel ? 'Solution: max WWR per face, unshaded and with required shading' : (radarView === 'm1' ? 'SA per orientation · Method 1 footprint' : radarView === 'm2' ? 'ER contributions per orientation · Method 2 footprint' : 'SA + ER per orientation · Both methods') }}
{{ hasIncluded ? (radarBadgePass ? 'within limits' : 'over limits') : '—' }}
FaceNo shadingWith shadingRequired shadingBinding
{{ r.label }} {{ r.unshadedMax > 0 ? '≤ ' + Math.floor(r.unshadedMax * 100) + '%' : '—' }} {{ r.feasible ? '≤ ' + Math.floor(r.maxWWR * 100) + '%' : '—' }} {{ shadingText(r) }} {{ bindingLabel(r.binding) }}
Facade average max WWR {{ Math.floor(solverFacadeSummary.avgUnshaded * 100) }}% unshaded, {{ Math.floor(solverFacadeSummary.avgMaxWWR * 100) }}% with the listed shading, at glazing U {{ glazU.toFixed(1) }}, SHGC {{ glazSHGC.toFixed(2) }}.
The shaded figures assume the required shading is actually built; where it will not be, design to the No-shading column.
WWR shown is a maximum; required shading is a minimum (more is fine). Values sit at the compliance boundary, so verify built dimensions.
Enable at least one orientation to solve.
Compliance budget used
{{ hasIncluded ? (overallPass ? 'complies' : 'over budget') : '—' }}