G
Shovelready

Intelligence Methodology

What is measured, what is estimated, and how to interpret the outputs responsibly. This is the stable, citable companion to every analysis receipt.

Live — updated with each city parser runISO 31000-aligned

63,149

blind backtests

walk-forward holdout, zero leakage · every miss published

86%

permit timeline coverage

P10–P90, n=10,620

85%

council outcome accuracy

directional, n=161

A – D

confidence grades

honest signal strength, not hype

Read this first

Evidence strength describes source coverage, comparable count, zoning clarity, and GIS coverage — not audited prediction accuracy.

Measured outputs come from direct city history where coverage exists. Estimated outputs rely on comparables, heuristics, or thinner local datasets.

Coverage is deepest where the city's own history is richest. Victoria's permitting record and council-decision history anchor the current outputs.

Active Methods

8 live

P10 / P50 / P80 Percentile Timeline Modeling

Empirical approval durations from completed applications

Timeline estimates are derived from the empirical distribution of completed approval durations where source coverage exists, then supplemented with explicit estimates where evidence is thin. P10 is the optimistic outcome (10% resolve faster). P50 is the expected median. P80 is the conservative bound (20% take longer). Measured vs. estimated is disclosed in every evidence note.

Data source

10,743 Victoria building permits · 1,370 development permits · 323 council decisions

Use it for

Measured where historical coverage exists; otherwise explicitly flagged as estimated.

Weighted Comparable Application Scoring

Multi-factor similarity matching against 300 resolved Victoria applications

Each parcel query is matched against resolved applications using a five-factor weighted similarity score: city match (30%), FSR proximity (25%), policy tag overlap (20%), risk hit overlap (15%), and OCP alignment match (10%). Top comparable applications are surfaced with their outcomes, conditions of approval, and timelines.

Data source

300 indexed Victoria applications · Resolved and validated

Use it for

Every weight and source is disclosed. Nothing is a black box.

Frequency-Based Stall Pattern Analysis

Risk patterns measured from council application records

Stall risks are derived from council minutes and application records to identify patterns that caused delays. Each pattern carries a frequency percentage, an average delay in months, and a severity classification. Patterns are measured directly from Victoria's council record — neighbour-referral and council-deferral patterns are tracked distinctly, each with its own measured delay.

Data source

1,370 Victoria council application blocks from 294 council minutes (2020–2026)

Use it for

Victoria stall frequencies are measured directly from the council record.

OCP Alignment Scoring

Live query of the Official Community Plan planning layer

OCP designation is queried live from the city's planning GIS layer at parcel selection. Misalignment between proposed use and OCP designation triggers an amendment requirement, adding one additional bylaw reading cycle — typically 6–12 months in Victoria.

Data source

Victoria Planning & Development MapServer Layer 18 · Real-time point-in-polygon query

Use it for

Victoria OCP alignment is live data.

Environmental & Social Overlay Integration

Validated City + DataBC overlays, queried per parcel in parallel

At each parcel click, the validated environmental, planning and social overlays are queried in parallel. Hits adjust the confidence score, trigger specific permit requirements (Phase 1 ESA where a contaminated site is within 100m, Heritage Impact Assessment, a Tenant Assistance Plan in a Tenant Protection DPA), and add steps to the approval path. Archaeological potential is not auto-flagged — confirm with the BC Archaeology Branch.

Data source

City of Victoria OpenData Environment & Planning/Development MapServers + BC DataBC WFS · Heritage · Development Permit Area (incl. Tenant Protection) · Sensitive ecosystem / coastal · Watercourse / riparian · Contaminated / remediation (≤100m) · Seismic hazard

Use it for

Victoria environmental & social overlay data is live (validated City + DataBC layers, point-queried per parcel).

Historical Decision Evidence Base

Approval rates, conditions, and deferral patterns by city and verdict

For each city and verdict type, Shovelready surfaces the historical approval rate, top conditions of approval with frequency percentages, and data caveats. These rates calibrate the confidence score but are not treated as universal accuracy metrics.

Data source

Victoria: 83.0% approval · 323 council outcomes (2020–2026)

Use it for

Historical outcome rates are disclosed with city-specific caveats.

Parcel Geometry & Lot Fabric

Authoritative lot boundaries and area from the provincial parcel fabric

Lot geometry, parcel identifier (PID) and measured lot area come from ParcelMap BC — the Land Title & Survey Authority's authoritative parcel fabric for the province — resolved by point-in-polygon at parcel selection, not inferred from the map render. Where a parcel does not resolve to a fabric polygon, area falls back to a labelled regional default (never presented as measured).

Data source

ParcelMap BC parcel fabric (LTSA) · BC DataBC geocoder for civic addressing. Contains information licensed under the Open Government Licence – British Columbia.

Use it for

Lot geometry is the authoritative provincial fabric, credited under the Open Government Licence – BC; unresolved parcels use a labelled default, never a measured claim.

Monte Carlo Carry Cost Simulation

A distribution of carry cost, not a single point estimate

Rather than one P50 carry figure, the Decision Intelligence tab runs 10,000 timeline scenarios against your daily carry rate to produce a full distribution. Because timelines are right-skewed, expected carry runs above the median — that gap is surfaced as the overrun an investor underwrites, alongside a 1-in-10 downside (P90) and tail-probability statements.

Data source

Timeline percentiles from the survival-informed model × user-supplied daily carry rate · lognormal fit, seeded for reproducibility

Use it for

Carry is reported as a distribution with an expected value and tail risk, never a single point estimate that hides skew.

Calibration Record

Q2 2026 · updated quarterly

63,149 blind, walk-forward predictions across 3 cities (walk-forward temporal holdout; KM survival + reference classes; no leakage). Each track below is scored against a naïve baseline. Tracks that do not beat their baseline are published as misses — we never quietly drop them.

Permit timeline range

n = 10,620

Victoria building + development permits

Coverage 86.1%P50 error 67d vs 123d baseline
Calibrated · beats the city-average baseline

P10–P90 interval coverage; median P50 error 67d vs 123d city-average baseline.

Council approval outcome

n = 161

Victoria council decisions

Directional 85.1%Brier 0.1292 vs 0.25
Calibrated · beats a coin-flip baseline

Brier 0.1292 vs 0.25 coin-flip; 85.1% directional.

Rezoning timeline (P50 point)

n = 87

Victoria rezoning applications

Coverage 78.2%P50 error 421d vs 233d baseline
Published as a miss — P50 does not beat the city-median baseline yet

Interval coverage is calibrated, but the P50 point estimate (421d error) does not beat the 233d city-median baseline. Disclosed honestly; fix is minutes-engine features + more cities.

Rezoning timeline range (council clock)

n = 650

Surrey rezoning — first council meeting to adoption

Coverage 90.3%P50 error 42d vs 151d baseline
Calibrated · beats the all-history baseline (recency-adaptive)

P10–P90 interval coverage 90.3%; median P50 error 42d vs 151d all-history baseline (recency-adaptive trailing reference class). Council clock (meeting→adoption), not received→decision. Approval discrimination withheld — Surrey refuses <1% of applications, so outcome accuracy is not testable yet.

Permit timeline range

n = 50,792

Vancouver permits — application created to issued

Coverage 78.3%P50 error 56d vs 68d baseline
Calibrated · beats the city-average baseline on point accuracy

n=50,792 blind walk-forward. Median P50 error 56d vs 68d city-average baseline (−18%). P10–P90 interval coverage runs tighter at 78.3% — ranges disclosed honestly, not rounded up to the ~90% other tracks hit.

Council approval outcome

n = 460

Vancouver decisions — tested against real refusals/withdrawals

Directional 72.4%Brier 0.2013 vs 0.1999
Published as a miss — first city with real refusals (134); base-rate model does not yet beat the base rate

Unlike near-unanimous cities, Vancouver has 134 refused/withdrawn out of 490 decided (73% base rate), so this is a genuinely discriminative test. The naive beta-binomial scores Brier 0.201 vs 0.200 base-rate — it does not yet add lift. Disclosed as a miss; fix is feature-based scoring (FSR, zone change, staff rec).

Rezoning timeline range (received→decision)

n = 379

Vancouver rezoning applications

Coverage 78.1%P50 error 115d vs 112d baseline
Published as a miss — P50 does not beat the city-median baseline yet

n=379 blind. Median P50 error 115d vs 112d city-median baseline — essentially tied, does not beat it. Interval coverage 78.1%. Disclosed honestly.

Snapshot 2026-06-16. Regenerated from the city backtest scripts via npm run calibration:build; this page renders the committed record directly.

Data Confidence Grades

A

Strong measured footing

3+ comparable applications, OCP-aligned, full GIS coverage, measured durations.

B

Solid with minor estimates

2+ comparables, minor gaps filled with city-wide estimates.

C

Directional guidance

Thin comparables or estimated durations. Treat as directional, not precise.

D

Insufficient evidence

Single comparable or heavy estimation. Use only as a starting hypothesis.

Probability outputs are capped at 95% regardless of evidence strength. Council outcomes contain irreducible political variance no model can eliminate.

On the Roadmap

Not yet active

Survival Analysis (Kaplan-Meier / Cox Proportional Hazards)

Replaces P-percentile point estimates with full survival curves. Instead of 'P50 = 209 days', the model shows: at 12 months, 68% of comparable applications are still active.

Bayesian Stage-Updating Confidence

As a project progresses through approval stages, the confidence score updates dynamically — filing → staff report → referral → public hearing each shift the probability distribution.

NLP on Council Minutes

The 294 Victoria council minutes contain semantic objection themes, condition language patterns, and councillor voting patterns beyond frequency counts.

Decision support from historical precedent — not legal advice or a guarantee of council outcomes. Accuracy is published quarterly and linked from every analysis receipt.

← Open Shovelready