Okanagan Development Pulse
Methodology
ODP converts public municipal and regional records into a weekly opportunity brief. It reduces research time; it does not replace source verification or imply that work is available for bidding.
1. Collection
Adapters retrieve public permit reports, active application tables, ArcGIS layers, and land-use notices. Each record retains its source, municipal identifier, observation time, and official link where available. Paginated sources are discovered dynamically and every page must succeed before data is committed. Kelowna's nondeterministic application pages are merged; an omitted ID is removed only after three successful exact-ID searches also confirm its absence.
2. Guarded refresh
Each adapter is retried. Zero-row responses and source declines greater than 20% are quarantined, and the last good database state is restored. Update and delivery locks prevent overlapping runs. Public deployment is staged and validated before replacement.
3. Change detection
Material fields are compared with the prior snapshot. New, changed, and removed records are retained in a rolling change log, and changed projects identify which public fields moved. After a successful delivery, its timestamp becomes the next issue boundary so the same event is not presented again.
Opportunity lanes, trade-fit signals, and suggested verification steps are deterministic classifications inferred from public project descriptions and stages. They are prioritization aids, not confirmation that work is available or that a named trade will be procured.
4. Project consolidation
Records sharing a normalized municipality and address are grouped into one project opportunity. Reported values are not added because related permits may overlap; the highest published value is shown. Visibly malformed parser output is excluded from customer-facing reports and CSV files.
5. Stage and timing
Public wording and source type classify early planning, public decisions, active permits, issued permits, and general market signals. Rules assign likely trade fit and cautious timing labels such as Watch early, Monitor decision, Check trade timing, and Verify subcontracting.
6. Completeness
Record completeness measures whether address, date, value, business contact, and official link fields are present; it is not a claim that municipal content is correct. Jurisdiction reach means at least one usable row-level permit or planning feed currently contains records. The catalog separately identifies covered, partial, unavailable, and temporarily offline layers.
7. Known limits
- Municipalities publish different fields and update on different schedules.
- A permit may appear after contractors or trades have already been selected.
- Applicant and contractor names appear only when published in the public record.
- Automated extraction can misread unusual PDF layouts.
- Vernon issued-permit coverage remains unavailable; current development applications are covered.