PORT MOODY · BRITISH COLUMBIA

Exploring a traceable first-pass check for accessory dwelling units.

This research prototype illustrates how municipal requirements might be represented as explicit rules and compared with application details. It is an example of the approach, not a live permit service.

Read before trying the example
  • This demo covers a narrow Port Moody DADU ruleset; no other municipality is configured.
  • Use sample inputs. Uploaded drawing contents are not read: extraction is simulated from the filename.
  • Some rules remain unverified against the bylaw. Results are not official permit decisions and should not be relied on for a real submission.

Interactive example

Detached accessory dwelling unit (DADU) workflow

Port Moody's own permit-timing data

150 days
Median elapsed time, RESIDENTIAL 1 OR 2 FAMILY (n=226) — the review track DADU applications are filed under
301 days
Median elapsed time, DADU-specific (n=2) — thin sample, supporting anecdote only
Seconds
Time for this tool to flag compliance issues, instantly
Source: City of Port Moody Building Permits open dataset (pulled 7/10/2026)

Research prototype: drawing extraction is simulated from the filename. Compliance results come from a deterministic rule engine; no LLM is in the decision path.

Try a sample input

Drop a site plan or drawing here
PDF, CAD (DWG/DXF) or IFC — or click to browse

Simulated extraction — real drawing parsing is the funded R&D and is not wired up yet. Uploads are read by filename only; nothing is sent anywhere.

Or start from a sample drawing
Inspect the engine — 21 cited rules, 18 verified against the bylaw

These are the exact rules the deterministic engine applies. Each rule is a fixed comparison tied to a bylaw clause.

21 rules · 18 verified against primary bylaw text · 3 unverified (engine abstains)
Detached Accessory Dwelling Unit (DADU / Laneway Home)City of Port Moody, BC · rule set port-moody-dadu-v0.2 · last reviewed 2026-07-10

Eligibility

3 rules · 3 verified
Property is in an eligible zonezone ∈ {RS1, RS1-S, RS2, RS3, RS5, RS6, RS7, RS9, RT}✓ verified
A DADU (Additional Dwelling Unit) is only permitted on lots zoned RS1, RS1-S, RS2, RS3, RS5, RS6, RS7, RS9, or RT -- confirmed directly against each zone's Permitted Use table. RS8 is excluded despite appearing in the general SSMUH zone list, because its own permitted-use table does not list Additional Dwelling Unit as a secondary use.
Reference: Zoning Bylaw 2937 s.5.5.1 (SSMUH zone list) cross-referenced against each zone's Permitted Use table for 'Additional Dwelling Unit' as a listed secondary use (RS8 appears in the s.5.5.1 SSMUH list but its own permitted-use table, s.8.12.2, does not list Additional Dwelling Unit -- excluded accordingly)
Lot has qualifying secondary lane accesslaneAccessWidthM ≥ 6✓ verified
The lot must have secondary access to the rear from a street or lane at least 6 metres wide and paved, to ensure emergency vehicle access.
Reference: Port Moody DADU Guide -- Eligibility (not re-confirmed against primary bylaw text this session)
Lane access is pavedlaneAccessPaved = yes✓ verified
The secondary lane access must be paved, not gravel or unimproved.
Reference: Port Moody DADU Guide -- Eligibility (not re-confirmed against primary bylaw text this session)

Size & height

4 rules · 2 verified
Total floor area within maximumtotalFloorAreaM2 ≤ 90UNVERIFIED — confirm before relying on this
A laneway home's total floor area was previously believed not to exceed 90 m², but this figure is unconfirmed against the current bylaw text and should not be relied on.
Reference: UNRESOLVED -- this 90 m2 figure, originally from the DADU guide, could not be located in the current consolidated Zoning Bylaw text (only a 65 m2 lot coverage cap was found, in the per-zone Lot Coverage tables -- see max-lot-coverage). May be stale following the 2024-2025 SSMUH restructuring, or may exist elsewhere in the bylaw not yet checked (e.g. Section 5.3.4 Floor Area Ratio Calculations covers exclusions, not a flat DADU cap). Checked Port Moody's 'Guide to SSMUH' (2026-07-10, doc #658284): it is a site-planning/design guide with illustrative scenarios (one shows a built laneway house at 121 m2, above this claimed 90 m2 cap) and repeatedly defers to Zoning Bylaw 2937 for actual numeric maximums -- it does not itself state a DADU floor area cap, so this remains unresolved.
Lot coverage within maximumlotCoverageM2 ≤ 65✓ verified
The DADU's footprint (lot coverage), including any Additional Dwelling Unit, must not exceed 65 m².
Reference: Zoning Bylaw 2937, per-zone Lot Coverage tables, e.g. s.8.4.3(c)(ii) [RS1]: 'Accessory Building or Structure (including Additional Dwelling Units) – 65m2'. Confirmed identical across RS1, RS1-S, RS2, RS3, RS6, RS7, RS9, RT.
Height within maximum for the Additional Dwelling Unit (DADU)heightM ≤ 6.71✓ verified
The DADU (Additional Dwelling Unit) must not exceed 6.71 m in height, measured from Grade to the highest point of the roof structure, parapet, or guard -- this applies regardless of the number of storeys.
Reference: Zoning Bylaw 2937, per-zone Height tables, e.g. s.8.4.3(b)(iii) [RS1]: 'Additional Dwelling Unit – 6.71m measured from Grade to the highest point of the roof structure, parapet, or guard'. Confirmed identical (single flat figure, not storey-tiered) across RS1, RS1-S, RS2, RS3, RS5, RS6, RS7, RS9, RT.
Number of storeys within maximumstoreys ≤ 2UNVERIFIED — confirm before relying on this
A storey cap of 2 was previously inferred but its basis no longer holds -- treat as unconfirmed.
Reference: UNRESOLVED -- this rule's original basis ('inferred from storey-tiered height maximums') no longer holds now that the current bylaw's height rule for a DADU appears to be a single flat 6.71m figure with no storey differentiation (see max-height-additional-dwelling-unit). No explicit storey cap was found in the current bylaw text. Checked Port Moody's 'Guide to SSMUH' (2026-07-10, doc #658284): illustrative scenarios show 2-3 storey laneway/ADU examples but the guide states no explicit storey cap and defers to Zoning Bylaw 2937 for height regulation -- does not resolve this rule.

Setbacks

6 rules · 5 verified
Setback from principal buildingsetbackFromPrincipalBuildingM ≥ 6✓ verified
The DADU must be set back at least 6 metres from the principal (main) building on the lot.
Reference: Zoning Bylaw 2937, per-zone 'Minimum Setbacks Between Buildings' tables, e.g. s.8.4.3(g)(i) [RS1]: 'Between Principal Building and Additional Dwelling Unit – 6.0m'.
Setback from rear property linesetbackRearPropertyLineM ≥ 1.5✓ verified
The DADU must be set back at least 1.5 metres from the rear property line.
Reference: Zoning Bylaw 2937, per-zone Rear Lot Line Setback tables, e.g. s.8.4.3(f)(iii) [RS1] and s.8.6.3(f)(iii) [RS2]: 'Additional Dwelling Unit – 1.5m'. Confirmed identical across RS1, RS2, RS6, RS7, RS9, RT.
Side yard setback (RS1, RS2, RS9, RT zones)setbackSideYardM ≥ 1.5✓ verified
Applies when zone ∈ {RS1, RS2, RS9, RT}
In RS1, RS2, RS9, and RT zones, the minimum interior side lot line setback is 1.5 metres for all buildings and structures, including a DADU.
Reference: Zoning Bylaw 2937 s.8.4.3(e) [RS1], s.8.6.3(e) [RS2], s.8.13.3(e) [RS9], s.9.1.3(e) [RT] -- Side Lot Line Setback, interior (1.5m applies uniformly to 'All Buildings and Structures', not differentiated by building type in these zones).
Side yard setback (RS1-S zone, Additional Dwelling Unit)setbackSideYardM ≥ 1.2✓ verified
Applies when zone ∈ {RS1-S}
In the RS1-S zone, the minimum interior side lot line setback specifically for a DADU (classified as an Additional Dwelling Unit) is 1.2 metres.
Reference: Zoning Bylaw 2937 s.8.5.3(e)(ii) [RS1-S] -- Side Lot Line Setback, Additional Dwelling Unit, interior: 1.2m (distinct from the 0.9m figure for generic Accessory Buildings and Structures in the same zone, s.8.5.3(e)(iii)).
Side yard setback (RS3 zone)setbackSideYardM ≥ 1.2✓ verified
Applies when zone ∈ {RS3}
In the RS3 zone, the minimum interior side lot line setback is 1.2 metres for all buildings and structures, including a DADU.
Reference: Zoning Bylaw 2937 s.8.7.3(e)(i) [RS3] -- Side Lot Line Setback, interior.
Side yard setback (RS5, RS6, RS7 zones -- width-dependent, not computable by this engine yet)setbackSideYardM ≥ not providedUNVERIFIED — confirm before relying on this
Applies when zone ∈ {RS5, RS6, RS7}
In RS5, RS6, and RS7 zones, the minimum interior side lot line setback is the lesser of 10% of the lot's width or 1.5 metres. This is a confirmed bylaw requirement, but requires lot width as an input the MVP does not currently collect -- always surfaces as Uncertain pending an engine enhancement to support width-dependent formulas, not because the citation is in doubt.
Reference: Zoning Bylaw 2937 s.8.9.3(e) [RS5], s.8.10.3(e) [RS6], s.8.11.3(e) [RS7] -- Side Lot Line Setback, interior: '10% width of Lot minimum, but need not exceed 1.5m'. This citation IS confirmed; the engine cannot evaluate it because it requires the lot's width as an input, which is not currently collected.

Parking

2 rules · 2 verified
Minimum on-site parking for the DADUparkingSpacesDadu ≥ 1✓ verified
At least one on-site parking space is required for the DADU tenant.
Reference: Zoning Bylaw 2937 s.6.3.1, Off-Street Parking table: 'Detached Accessory Dwelling Unit -- 1 space for exclusive use of the Detached Accessory Dwelling Unit.'
Total on-site parking when a secondary suite is also presentparkingSpacesTotal ≥ 4✓ verified
Applies when hasSecondarySuite = yes
When a lot has a DADU AND an attached secondary suite in the main house, 4 total on-site parking spaces are required (1 DADU + 1 suite + 2 main house).
Reference: Zoning Bylaw 2937 s.6.3.1, Off-Street Parking table: Detached Accessory Dwelling Unit (1 space) + Secondary Suite (1 space) + Single Detached Residential principal dwelling (2 spaces per principal Dwelling Unit) = 4 spaces total.

Building-code safety (BCBC Part 9)

6 rules · 6 verified
Minimum ceiling height for habitable roomsceilingHeightM ≥ 1.95✓ verified
Habitable rooms (bedrooms, living areas, kitchens) must have a minimum ceiling height of 1.95 m (6'5") measured from finished floor to finished ceiling.
Reference: BC Building Code 2018, Division B, Part 9, Section 9.5.3 / Table 9.5.3.1
Bedroom egress window minimum clear opening areaegressWindowAreaM2 ≥ 0.35✓ verified
Each bedroom must have at least one outside window or exterior door usable for egress, with an unobstructed clear opening of at least 0.35 m² (unless the suite is sprinklered).
Reference: BC Building Code 2018, Division B, Part 9, Section 9.9.10.1
Bedroom egress window minimum dimensionegressWindowMinDimensionMm ≥ 380✓ verified
The egress window's clear opening must have no dimension (height or width) less than 380 mm.
Reference: BC Building Code 2018, Division B, Part 9, Section 9.9.10.1
Bedroom egress window maximum sill heightegressWindowSillHeightM ≤ 1✓ verified
The egress window sill must be no more than 1.0 m above the finished floor so it is usable for emergency escape.
Reference: BC Building Code 2018, Division B, Part 9, Section 9.9.10.1
Minimum number of exits (Part 3 building)numberOfExits ≥ 2✓ verified
Applies when buildingPart = Part 3
A building outside Part 9's scope -- more than 3 storeys in building height, more than 600 m2 of building area, or a major occupancy Part 9 never covers (e.g. Group A assembly, Group B care/detention, Group F Division 1 high-hazard industrial) -- is classified under Part 3, and every floor area intended for occupancy must be served by at least 2 exits, unless one of Part 3's specific single-exit exceptions (Art. 3.4.2.1 Sentences (2) to (4)) applies. This is deliberately stricter than the single-exit allowances Part 9 grants small residential buildings (Art. 9.9.8.2), which is why the engine must classify occupancy -- not just check zone -- before selecting which exit rule to apply.
Reference: BC Building Code 2018, Division B, Art. 3.4.2.1(1): 'Except as permitted by Sentences (2) to (4), every floor area intended for occupancy shall be served by at least 2 exits.' Applicability gated by Division A Art. 1.3.3.3(1) (Part 9 applies only to buildings of 3 storeys or less, building area not exceeding 600 m2, major occupancy Group C/D/E/F2/F3) and Art. 1.3.3.2(1) (buildings exceeding those thresholds, or classified Group A/B/F1, fall under Part 3).
Interconnected smoke alarms presenthasInterconnectedSmokeAlarms = yes✓ verified
New construction requires interconnected, hardwired smoke alarms in each dwelling unit, per Section 9.10.19.
Reference: BC Building Code 2018, Division B, Part 9, Section 9.10.19