British Columbia
Metro Vancouver tree bylaw dataset
Tree bylaw rules for every Metro Vancouver municipality in one file. Each value is copied from the bylaw, fees bylaw or municipal page that states it.
We confirm availability for your address before we quote. We do not offer emergency service.
Updated
One row for each of the 21 municipalities
A row gives the private tree permit trigger, the permit fee, the replacement rule and how to apply. It also gives the security the municipality holds, any cash-in-lieu payment and how the bylaw treats hedges. Each row names its primary source and the date we last checked it.
The two files hold the same rows. The JSON file keeps every field, including the full list of sources for each municipality. The CSV file keeps one value per cell, so it opens directly in a spreadsheet, and it has 22 lines: a header and one line per municipality.
Field dictionary
The table lists every CSV column. A column name with a dot, such as securities.security, comes from one of our resource tables. In the JSON file that value sits inside an object named for the table. The object is null when the table has no row for the municipality. When a table has several rows for one municipality, such as the bylaw changes table or the Vancouver schedules, the JSON file holds a list of objects and the CSV file leaves that table out. An empty value is null in the JSON file and an empty cell in the CSV file.
| Column | Meaning |
|---|---|
| slug | Identifier for the municipality, also the anchor on our Metro Vancouver tree bylaw comparison. |
| name | Municipality name. |
| tier | Coverage tier on this site. Tier A municipalities have their own area and permit guide pages. Tier B and C municipalities appear in the comparison table. |
| privateTreeBylaw | true when a bylaw regulates trees on private property, false when the only tree bylaw covers municipal land or none exists. |
| statusLine | One-line bylaw status for Tier B and C municipalities. |
| protectedTree | Which trees need a permit: size, measurement height and multi-stem rule as the bylaw words them. |
| permitFee | Private tree permit fee. |
| replacement | Replacement tree rule. |
| applicationMethod | How to apply. |
| bylawPage | This municipality on our Metro Vancouver tree bylaw comparison. |
| permitGuide | Our permit guide for the municipality (Tier A only). |
| sourceLabel | Primary source for the row. |
| sourceUrl | Link to the primary source. |
| lastVerified | Latest date any value in the row was checked against its source (YYYY-MM-DD). |
| hedgeRules.hedgeRule | How the bylaw treats hedges. |
| hedgeRules.sourceUrl | Source for the hedge rule. |
| hedgeRules.lastVerified | Date the hedge rule was checked. |
| protectionDistances.thresholdCm | Single diameter trigger in centimetres, as a number. Empty where protection depends on the tree category or no private tree bylaw exists. |
| protectionDistances.measuredAt | Height where the bylaw measures trunk diameter, as the source writes it. |
| protectionDistances.section | Bylaw section, schedule, bulletin or standard drawing that sets the barrier rule. |
| protectionDistances.trigger | Which trees are protected by size, in words. |
| protectionDistances.rule | The tree protection barrier rule, as the source words it. The printed distance table and the rule as numbers are in the JSON file only. |
| protectionDistances.noPrivateTreeBylaw | true where no bylaw regulates trees on private property. |
| protectionDistances.scheduleNote | Note on a printed barrier table that we could verify only in part. |
| protectionDistances.sourceUrl | Source for the barrier rule. |
| protectionDistances.lastVerified | Date the barrier rule was checked. |
| securities.security | Security the municipality holds for replacement or retained trees. |
| securities.cashInLieu | Payment in place of planting a replacement tree, where the bylaw offers one. |
| securities.sourceUrl | Source for the security and cash-in-lieu values. |
| securities.lastVerified | Date the security and cash-in-lieu values were checked. |
| stemMeasurement.measuredAt | Measuring height for trunk diameter and the ground it is measured from, as the bylaw writes it. |
| stemMeasurement.heightCm | Measuring height in centimetres, as a number. |
| stemMeasurement.slope | Ground a tree on a slope is measured from: high-side (the uphill side or the highest grade), base, or unstated where the bylaw does not say. |
| stemMeasurement.multiStemText | How the bylaw combines the stems of a multi-stem tree, in words. The method as numbers is in the JSON file only. |
| stemMeasurement.thresholdCm | Single diameter trigger in centimetres, as a number. Empty where protection depends on the tree category or no private tree bylaw exists. |
| stemMeasurement.threshold | The diameter trigger in words, with any category triggers. |
| stemMeasurement.noPrivateTreeBylaw | true where no bylaw regulates trees on private property. |
| stemMeasurement.circumferenceDivisor | Number the bylaw divides a girth measurement by to get the diameter. Empty where the bylaw gives no conversion. |
| stemMeasurement.sourceUrl | Source for the measuring rule. |
| stemMeasurement.lastVerified | Date the measuring rule was checked. |
Every value comes from the municipality's own text
We read each municipality's tree bylaw, its fees bylaw and its own permit pages. A value goes into the dataset only when that text states it. We do not estimate a figure, average two figures or fill a gap from a neighbouring municipality.
Every row then gets a second check against the bylaw. Where the two checks disagree, or the second check cannot confirm a value, the value stays out of the dataset until the municipality's current text settles it. That is why some cells are empty.
An empty cell means we found no clear answer. The table below shows it as "Confirm with" and the municipality's name. Ask the municipality before you rely on that row. Where the municipality has no bylaw for trees on private property, the table says so instead.
Permit triggers, fees and replacement rules for the same municipalities are laid out for reading in the Metro Vancouver tree bylaw comparison.
Securities, cash-in-lieu and hedge rules by municipality
A security is money the municipality holds until replacement trees are planted or retained trees survive the work. Cash-in-lieu is a payment made instead of planting, and only some bylaws offer it. Hedge rules decide whether a hedge counts as a tree at all, and how many trees replace one.
| Municipality | Security | Cash-in-lieu | Hedges | Last checked |
|---|---|---|---|---|
| Anmore | $500 per replacement tree, to a maximum of $10,000 per parcel, held 3 years. | Confirm with the Village of AnmoreSource for Anmore security and cash-in-lieu | The tree definition in s.2(1) excludes hedges.Source for Anmore hedge rule | 2026-09-01 |
| Belcarra | No private tree bylaw | No private tree bylaw | No private tree bylaw | 2026-09-01 |
| Bowen Island | No private tree bylaw | No private tree bylaw | Bowen Island has no tree removal bylaw for private property. The Site Alteration Bylaw No. 568 tree definition excludes hedges, but it only scopes soil volumes.Source for Bowen Island hedge rule | 2026-09-01 |
| BurnabyPermit guide for Burnaby | The greater of the Fees Bylaw minimum ($1,500) or 120% of the estimated replacement cost (s.7). | $1,500 per tree, paid to the Civic Tree Reserve Fund.Source for Burnaby security and cash-in-lieu | Confirm with the City of Burnaby | 2026-09-01 |
| Coquitlam | 100% of the estimated value (s.11). The Tree Resource Guide sets an administrative rate of $300 per replacement tree. | No cash-in-lieu provision found.Source for Coquitlam security and cash-in-lieu | Confirm with the City of Coquitlam | 2026-09-01 |
| DeltaPermit guide for Delta | $700 per replacement tree. | A flat cash-in-lieu rate of $700 per replacement tree.Source for Delta security and cash-in-lieu | Replacement for a hedge is 2 trees per 5 m of hedge (Schedule B).Source for Delta hedge rule | 2026-09-01 |
| City of Langley | Tree protection security of $100 per cm of DBH for each retained tree, capped at $15,000 (small-scale multiple housing) or $150,000 per application. Replacement security is $1,000 per tree. | $1,000 per tree.Source for City of Langley security and cash-in-lieu | Confirm with the City of Langley | 2026-09-01 |
| Township of Langley | Confirm with the Township of Langley | Bylaw 5838 replaced replacement planting for private removals with cash-in-lieu: $600 per tree from 20 to 30 cm, or $1,200 per tree over 30 cm, capped by construction footprint at $10,000, $15,000 or $50,000.Source for Township of Langley security and cash-in-lieu | Confirm with the Township of Langley | 2026-09-01 |
| Lions Bay | No private tree bylaw | No private tree bylaw | No private tree bylaw | 2026-09-01 |
| Maple RidgePermit guide for Maple Ridge | Confirm with the City of Maple Ridge | $800 per tree, capped at $48,000 per hectare.Source for Maple Ridge security and cash-in-lieu | Hedging cedar is not accepted as replacement stock (Schedule C).Source for Maple Ridge hedge rule | 2026-09-01 |
| New WestminsterPermit guide for New Westminster | $500 per replacement tree, or $10,000 for a non-hazardous specimen tree. Retained-tree security is $2,500 (non-specimen) or $10,000 (specimen). | Confirm with the City of New WestminsterSource for New Westminster security and cash-in-lieu | A hedge 5 m tall or taller is a protected tree. Replacement is 1 tree per 4 m of hedge (s.7.2).Source for New Westminster hedge rule | 2026-09-01 |
| City of North Vancouver | $1,015.37 per replacement tree. | $781.06 per tree.Source for City of North Vancouver security and cash-in-lieu | Confirm with the City of North Vancouver | 2026-09-01 |
| District of North VancouverPermit guide for District of North Vancouver | 125% of the estimated cost of the work, capped at $50,000. | Confirm with the District of North VancouverSource for District of North Vancouver security and cash-in-lieu | Confirm with the District of North Vancouver | 2026-09-01 |
| Pitt Meadows | Development permits: $1,500 per tree as security or cash-in-lieu, plus a separate $2,000 protection deposit per retained tree, due before any City permit. | $900 per tree on a non-development permit. $1,500 per tree on a development permit.Source for Pitt Meadows security and cash-in-lieu | Confirm with the City of Pitt Meadows | 2026-09-01 |
| Port Coquitlam | $500 per replacement tree (s.8.2). | $500 per tree (s.7.7(b)).Source for Port Coquitlam security and cash-in-lieu | The bylaw's definition of a tree excludes hedges.Source for Port Coquitlam hedge rule | 2026-09-01 |
| Port Moody | Replacement security per tree: $370 (RS or RT development, or non-development) or $740 (other development). Retained-tree security: $5,000 (Landmark or Legacy tree, or 50 cm DBH and over) or $1,000 (other), capped at $6,000 per non-development lot and $150,000 per application. | $370 or $740 per tree, the same rates as the replacement security.Source for Port Moody security and cash-in-lieu | A removed hedge is replaced with 1 medium or large tree per 4 m of hedge, or 2 small trees per 4 m (s.13.2).Source for Port Moody hedge rule | 2026-09-01 |
| RichmondPermit guide for Richmond | Replacement security of $750 per tree for a subdivision, $0 otherwise. Retained-tree security: $5,000 (20 to 30 cm), $10,000 (31 to 91 cm) or $20,000 (significant tree). | Confirm with the City of RichmondSource for Richmond security and cash-in-lieu | Confirm with the City of Richmond | 2026-09-25 |
| SurreyPermit guide for Surrey | Retained-tree security: $10,000 (significant), $5,000 (specimen) or $3,000 (other), capped at $15,000 per single-family lot and $150,000 per subdivision. | Cash-in-lieu is $550 plus tax per tree, capped at $41,250 plus tax per acre cleared.Source for Surrey security and cash-in-lieu | Confirm with the City of Surrey | 2026-09-01 |
| VancouverPermit guide for Vancouver | $500 per replacement tree, or $750 where the replacement tree is 8 cm caliper or larger (s.4.10(c)). | Cash-in-lieu of $1,000 per tree (s.6.2) is an owner election that applies only if the site keeps at least the Schedule C tree count after the removal. Confirm with the City of Vancouver.Source for Vancouver security and cash-in-lieu | Section 2.2 of By-law 9958 applies the 20 cm size rule "except for a replacement tree or a tree that is part of a hedge." Confirm how a hedge is treated with the City of Vancouver.Source for Vancouver hedge rule | 2026-09-25 |
| West VancouverPermit guide for West Vancouver | $1,000 per replacement tree, capped at $10,000. | No cash-in-lieu provision found.Source for West Vancouver security and cash-in-lieu | Confirm with the District of West Vancouver | 2026-09-01 |
| White RockPermit guide for White Rock | $1,500 per replacement tree. Retained-tree security is $3,000, $4,500 or $10,000 by trunk size, or $2,500 for a lower-value tree, held one year. | $1,500 per tree, for City trees removed for Type 3 construction only.Source for White Rock security and cash-in-lieu | Any hedge of any size on City-owned property, road rights-of-way included, is protected.Source for White Rock hedge rule | 2026-09-01 |
Cite the dataset with its date
Fees and bylaws change, so a figure is only as good as the date it was read. Cite the page together with the date below.
The Arborist Group. Metro Vancouver tree bylaw dataset. https://arboristgroup.com/bc/resources/metro-vancouver-tree-bylaw-data/ (last updated 2026-09-25).
The files live at stable addresses: /data/metro-vancouver-tree-bylaws.json and /data/metro-vancouver-tree-bylaws.csv. The slug column stays the same between updates, so a script can match rows across two downloads.
More Metro Vancouver resources
- Tree protection barrier distances across Metro Vancouver
The barrier rule for each of the 21 municipalities, with a lookup that reads the printed row or applies the bylaw formula.
- Measuring tree diameter for Metro Vancouver tree bylaws
The measuring height and the multi-stem method for each of the 21 municipalities, with one tree worked through every bylaw.
- Metro Vancouver tree bylaw changes since 2025
A dated log of new bylaws, amendments and fee changes since 2025, with proposed changes marked until a municipality adopts them.
- Vancouver By-law 9958 schedules for building near trees, BC
Schedule B building distances, the Schedule C tree count by site area, and when the Vancouver cash-in-lieu option applies.
Get a quote
Tell us about your property and an ISA Certified Arborist will follow up with next steps and a firm quote.
- Free consultation, response within 24 hours.
- We confirm availability for your address before we quote.
- Independent assessment. No tree-removal sales, no conflict of interest.
Serving Metro Vancouver, British Columbia.
ISA Certified Arborist · ISA Member · ASCA Member