How it works
Address and option in.
Cited rules, a massing and a dated memo out.
The rules are held as data, with a source and a date on every line. A deterministic engine reads them. A person confirms twice. No language model is in the loop.
01Inside the tool
Five inputs. Six layers of rules. Six outputs.
Every rule in the stack is a structured clause with its source, its section and the date it took effect. From then on it is data, reused for every address and re-read only when a rule changes.
What goes in
Inside
What comes out
↺ rule or program changes: rerun with a new revision, and the memo says what moved
02The logic
The engine decides. A person confirms twice.
Twelve steps: eight are script, one reads text once, three are checks that stop on failure, two belong to a person. A rule marked unsure stops that rule and is reported as uncertain, never passed.
A massing that fails the "matches the rules" check is redrawn. When a rule or program changes, the run restarts at the rule table and the memo gets a new revision with a list of what changed. Every arrow carries a file: the rule table as data, the ledger, the massing, the memo with its stamp.
03The rule stack
Six layers apply to one address at the same time.
Each is written by a different body and changes on its own date. Where two layers conflict on geometry the stricter governs; where the Province sets a floor, it overrides a lower local maximum.
- A · 4 rulesZoning district
The shape a building may take.
Height, setbacks, floor space ratio, parking; a CD-1 site's limits are whatever the rezoning sets. Vancouver Zoning and Development By-law.
- B · 2 rulesProvince
Floors a city cannot go below.
Small-scale multi-unit minimums by lot size and bus stop; minimum heights near stations. Bills 44 and 47, in force since 2024.
- C · 5 rulesCity policy
What attaches to a rezoning.
Family units, social housing, below-market rents, the tree by-law, development charges. The family-unit rule changed on 27 Oct 2026.
- D · 2 rulesDesign standards
What shapes the option itself.
BC Housing's minimum unit areas; the code basis under the 2025 Vancouver Building By-law. Flags, not checks.
- E · 4 rulesFunders
Not law, but whether money flows.
Community Housing Fund, BC Builds, the predevelopment loan, CMHC readiness: published criteria, applied as written.
- F · 7 assumptionsAssumptions
What the pro-forma counts with.
A Class D hard cost, the Statistics Canada price index, the Bank of Canada rate, CMHC rents, CMHC's coverage ratio: dated, cited, refreshed by a command. Placeholders say so.
- By designLeft to a person
Four things stay uncertain.
Which transit-oriented tier a parcel falls in, what a CD-1 rezoning is negotiated to, whether a council waives the charges, and the land price on a private site.
04In the tool
Four steps on one page. The memo is on screen first.
The tool opens on a memo, not a form. The inputs sit beside it and fold away; the step strip is a sense of progress, not a locked wizard.
- 01Site
Pick a site, or start one.
Address, district, lot, trees, owner. Every yes/no fact is Yes / No / Not sure.
- 02Option
Describe the building.
Storeys, floor area, units, tenure, funders. The unit total and the family share update as you type.
- 03Run and read
Three answers, the money, then the ledger.
Under a second. Figures beside the answers; a fourth card on whether the money works; every rule with its numbers and its source; two runs side by side.
- 04Export
The PDF for the board. The massing for Revit.
A paper memo for a reviewer; a pyRevit script puts the masses on an annotated sheet and the sheet comes back as FIG 03.