01 Geography

The geopolitical hierarchy that anchors everything else.

Six nested levels of Canadian geography, each with full MultiPolygon boundaries, bounding boxes, and centroids. This is the foundation — every listing, permit, business, and data point in Neighbourly resolves back to its place in the hierarchy.

  • Levels Country → Province → County → Upper-Tier Municipality → Lower-Tier Municipality → City / District / Neighbourhood
  • Geometry MultiPolygon boundaries (SRID 4326), pre-computed bounding boxes, centroid lat/lng on every level
  • Neighbourhoods Curated content per neighbourhood — short descriptions, fun facts, market notes — for guide pages and SEO
  • Search Indexed in Meilisearch (typeahead) and Elasticsearch (geo_shape viewport queries)
  • Endpoints /country /province /district /city /neighbourhood /where_am_i /search/by_viewport
HIERARCHY · SAMPLE
CountryCanada
└─ProvinceOntario
   └─CountyPeel
      └─Upper-TierRegion of Peel
         └─Lower-TierCity of Mississauga
            └─NeighbourhoodPort Credit
                Address — 147 Lakeshore Rd
ADDRESS · NORMALIZED
RAW INPUT 147 lakeshore rd. e, miss, on
FULL ADDR 147 Lakeshore Road East, Mississauga, ON
NUMBER 147
STREET NAME Lakeshore
SUFFIX Road
DIRECTION East
FSA / LDU L5G · L5G 1E1
HIERARCHY → stitched to all 6 levels
02 Address

Every Canadian address — standardized, validated, and stitched.

Address is the leaf node of the hierarchy and the join point between your listings and everything else in Neighbourly. We normalize street components into lookup tables and denormalize the full hierarchy onto every record, so you get instant context with no spatial joins at runtime.

  • Components Street name, number, direction, and suffix — each in its own lookup table for clean filtering and fuzzy match
  • Postal Forward Sortation Areas (FSA) and Local Delivery Units (LDU), keyed and joined to addresses
  • Search pg_trgm-indexed full address; Meilisearch typeahead with ~100 street-type synonym mappings
  • Listing connection Managed service that ties incoming property listings to the Neighbourly graph — clean addresses, full hierarchy, no integration overhead
  • Endpoints /address /location_typeahead /search/addresses_by_viewport /location_by_slug
03 Real Estate

Listings, agents, offices — structured for search, ready for display.

MLS and CREA-format listings, with ~80 lookup tables describing every property attribute that buyers filter on. Agent and office profiles are enriched through a live partner integration with Sutton Homebase and indexed for fuzzy name match and geo bounding box.

80+
Listing attribute lookup tables
15+
Building characteristic lookups
Live
Sutton Homebase webhook sync
  • Listings MLS / CREA-format records with full property attributes — roofing, heating, flooring, ratings, certifications
  • Agents Profiles with photos, social media, and Sutton-enriched data — areas, phones, geocoded location
  • Offices Branch profiles with the same Sutton enrichment pattern as agents
  • Buildings Commercial building characteristics including LEED / BOMA certifications and façade metadata
  • Businesses Corporate-registry data — names, activities, licences, sectors, annual returns — keyed to address
  • Search Elasticsearch-backed: viewport bbox + property attribute filters, fuzzy name match across agents and offices
  • Endpoints /search/listing /find/listing /search/agent /find/agent /search/office /find/office /sutton/offices
LISTING · ENRICHED
# Listing fields available via /search/listing listing_id: "X12345678" address: → Address (full hierarchy) price: $1,249,000 bedrooms: 4 bathrooms: 3 sqft: 2,180 heating: "forced_air_gas" roofing: "asphalt_shingle" flooring: [hardwood, tile, ...] listing_office: → Office listing_agent: → Agent + SuttonData neighbourhood: → Neighbourhood permits_5yr: → Permit[] demographics: → FsaDemographic # ...80+ attributes from CREA standard
PERMIT COVERAGE · 20 CITIES
Toronto
Ottawa
Montreal
Vancouver
Calgary
Edmonton
Brampton
Mississauga
Oakville
Kingston
Kitchener
Waterloo
N. Vancouver
Victoria
Halifax
Saint John
Winnipeg
St. Catharines
Burlington
Hamilton
04 Permits

Building permit data, normalized across 20 Canadian cities.

Each municipality publishes permits in its own format. Neighbourly normalizes them into a single schema with shared sources, types, statuses, and structure types — so you can search renovation activity, growth signals, and investment patterns the same way everywhere we cover.

  • Coverage 20 cities across ON, QC, BC, AB, MB, NS, NB — covering most of urban Canada
  • Schema Normalized references: sources, types, statuses, structure types, standard types — and municipal logos
  • Search Meilisearch-indexed: filterable by source, type, status, cost, and date with geo filtering
  • Use cases Renovation history on listings, neighbourhood activity dashboards, market intelligence, investor signal
  • Endpoints /search/permits /search/permits_by_viewport /statistics/boundary_by_id
05 Environment

Lakes, trails, crown land — the natural context a coordinate can't capture.

A unique-in-the-market layer for Canada. Spatial data on aquatic resources, wildlife management, public lands, and recreation — with pre-computed boundary GeoJSON at three levels of detail and pre-joined hierarchy arrays for fast viewport queries.

  • Lakes Lake boundaries with bathymetry lines, aquatic resource areas (thermal regime, fish species, depth metrics), fish stocking history, and access points
  • Wildlife Wildlife Management Units (WMUs) with full boundaries, fisheries management zones, bait management zones (English and French)
  • Public Lands Crown land with designation and classification, public campgrounds with host info, trail networks (MultiLineString)
  • Performance Pre-computed GeoJSON at three LODs, pre-joined hierarchy id arrays — viewport queries hit cached data, not runtime spatial joins
  • Endpoints /lake_boundary /bathymetry_line /aquatic_resource_area /fish_stock /wildlife_managment_unit /crown_land /trail /public_campground
SPATIAL · MULTI-LAYER
WMU 67 CROWN LAKE TRAIL 5 LAYERS · ACTIVE
FSA L5G · DEMOGRAPHICS
AGE DISTRIBUTION
0–14
17%
15–34
26%
35–54
32%
55+
25%
TENURE
Owners
68%
Renters
32%
06 Demographics

Census-derived insights, at FSA precision.

Demographic data keyed by Forward Sortation Area, ready for buyer profiles, neighbourhood guides, and underwriting models. Computed-percentage helpers handle the math — homeownership rate, age distribution percentages, education and employment breakdowns — so you don't have to.

  • Coverage Every FSA in Canada with full census-derived demographic profile
  • Dimensions Age distribution, household composition, tenure, income brackets, education, employment by sector, commute-time brackets
  • Computed Homeownership rate, age distribution percentages, and other ratio helpers — exposed as ready-to-display fields
  • Use cases Listing buyer profiles, neighbourhood guide content, lender underwriting, market analysis
  • Endpoints /demographics/find /demographics/ltm
07 Energy NEW

Verified utility data — the missing data point on every listing.

Buyers see square footage, bedrooms, lot size — but not what the home actually costs to run. Neighbourly's newest layer joins verified utility consumption data to listings, benchmarked locally, ready for the listing page.

  • Source Verified utility data via Green Button partnerships and direct utility channels — actual consumption, not modeled estimates
  • Outputs Energy efficiency score, monthly cost projection, neighbourhood benchmark — listing-page ready
  • Coverage Strongest in Ontario, expanding nationally with utility partner rollout and provincial disclosure programs
  • Privacy Built around explicit homeowner consent and provincial privacy law. Aggregated, listing-appropriate insights — never raw consumption data
  • Integration Already joined to your boundaries, addresses, and listings via the Neighbourly graph — no extra reconciliation work
Talk to us about the energy layer →
ENERGY · LISTING-READY
SCORE
87
Top 15% in area
EST. MONTHLY
~$142
Combined utilities
VS NEIGHBOURHOOD
−18%
More efficient
TREND · 12MO
↘ stable
No anomalies
VERIFIED · GREEN BUTTON
12 months of utility-grade consumption data. Consented, anonymized, and weather-normalized.
08 Schools NEW

School catchment boundaries and board hierarchy — for every Canadian address.

Which elementary school does this address feed into? Which Catholic secondary? Which school board? Neighbourly's Schools layer resolves those questions at the coordinate level — with catchment polygons, board hierarchy, bilingual designation, and feeder links all pre-joined.

  • Source Provincial ministries of education and school board open data — catchment boundaries for public, Catholic, independent, and French-language schools
  • Outputs Catchment polygon (GeoJSON), school name, board name and ID, school type (elementary/secondary), language designation, feeder school links
  • Coverage Canada-wide — all ten provinces and three territories; public, Catholic, and French-language systems
  • Query By coordinate (catchment lookup), by school ID (full profile), by bounding box (all schools in viewport), or by board ID (all schools in a district)
  • Integration Every school and catchment carries an address_id FK — joins directly to listings, boundaries, and the Livability Score catchment dimension
Schools Data API →
SCHOOLS · CATCHMENT LOOKUP
ELEMENTARY CATCHMENT
Rosedale Junior PS
Toronto District School Board · Public · EN
SECONDARY CATCHMENT
Jarvis Collegiate Institute
Toronto District School Board · Public · EN
CATCHMENT POLYGON
GeoJSON boundary included — render directly as a map overlay on any listing page.
09 Business NEW

Corporate registry, POIs, and trade area signals — from one coordinate.

Canadian business data is scattered across provincial corporate registries, municipal licence databases, and POI aggregators with inconsistent schemas. Neighbourly's Business layer normalizes it all into a single coordinate-queryable dataset — registry filings with NAICS sector codes, operating status, and density aggregates.

  • Source Provincial corporate registries and municipal licence data — normalized to a single schema with NAICS classification and address-keyed coordinates
  • Outputs Business profile (name, NAICS sector, operating status, incorporated date), POI records by category, trade area density aggregates (sector breakdown, active rate, poi counts)
  • Coverage Canada-wide — all provinces and territories; public, Catholic, and French-language systems
  • Query By coordinate + radius (nearby businesses or trade area density), by bounding box (map viewport), by neighbourhood ID, or by stable business ID
  • Integration Every business record carries an address_id FK — joins to listings, demographics, permits, and the Livability Score amenity dimension without extra reconciliation
Business Data API →
BUSINESS · TRADE AREA
BUSINESSES
23
within 500m
ACTIVE RATE
91%
operating
TOP SECTORS
Food Services8 · 34.8%
Health Care5 · 21.7%
Retail Trade4 · 17.4%
NAICS · CORPORATE REGISTRY
Sector breakdown, POI category counts, and active rate — all pre-aggregated in one response.
Built on

One platform. Three databases. Two search engines.

STORAGE

PostGIS-backed core

The hierarchy, addresses, listings, and spatial layers live in PostGIS-enabled Postgres. Permits and legacy MLS records sit in dedicated databases, joined through shared keys.

SEARCH

Best-tool-for-the-query

PostGIS for precise spatial joins. Elasticsearch for viewport listings, fuzzy agent match, and geo_shape boundary queries. Meilisearch for typeahead and filterable permit search.

DELIVERY

One versioned API

Everything ships through /api/v1/ — predictable, RESO-aligned, and designed to drop into MLS infrastructure, brokerage CRMs, and listing portals.

Get in touch

Want to see your listings with every layer?

Book a 20-minute walkthrough. We'll show you the platform, demo the layers most relevant to your market, and discuss what a partnership could look like.

Book a demo →