Methodology

Where the numbers come from.

Every value in Rangifer traces back to a public source and a documented transformation. This page describes the pipeline from municipal open data to the enriched records you can query.

1. Source: municipal open data

Each city publishes a public street-tree inventory (Montreal's arbres publics, Toronto's street tree data, and equivalents for Vancouver, Calgary, Edmonton, and Winnipeg). We ingest these through per-city ETL pipelines that handle each city's schema, coordinate system, and species-naming conventions.

2. Normalization

Species names are reconciled to a common taxonomy (scientific name + English common name), coordinates are reprojected to WGS84, diameters are standardized to centimetres at breast height, and borough/district fields are aligned with census geography so cross-city queries mean the same thing everywhere.

3. Enrichment

Carbon storage (carbon_kg) is estimated from trunk diameter using species-group allometric relationships. Annual ecosystem-service benefits (stormwater interception, air-quality effects, energy savings) and structural value (value_cad) use published i-Tree-style coefficients adapted to Canadian conditions. Native/invasive status comes from regional species lists.

4. Provenance

Every record carries source and dataset_version, so any figure in a report can be traced back to the municipal dataset it came from. The confidence and method fields exist in the schema but are not yet established per record — rather than fill them with a default that would look like a measurement, we leave them empty, and reports omit those lines entirely. Populating them from the underlying municipal collection metadata is in progress. We would rather show nothing than a false precision.

5. Serving

The merged inventory lives in PostGIS and is served three ways: vector tiles (PMTiles) for the interactive map, a REST API for programmatic queries, and an MCP server so AI agents can query the data directly on a user's behalf.

Known limitations

  • Street and park trees only — private trees are not in municipal inventories, so citywide canopy totals are undercounts.
  • Inventory freshness follows each city's publication cadence; planting years and removals lag reality by months to years.
  • Carbon and benefit values are model estimates from diameter and species group, not field measurements — right for comparisons and screening, not for carbon-credit accounting.
  • Cross-city comparisons inherit each source inventory's collection standards, which differ in completeness and measurement practice.

Questions about a specific field or coefficient? See the dataset catalogue or write to [email protected].