Internal· Data sources tracker
● Internal only Updated 2026-04-19
← All docs
Concierge-MVP · Olympic National Park

Data sources tracker — what feeds the dashboard.

One-stop inventory of every pipeline the Territori dashboard depends on, grouped by the panel it feeds. Each entry names the endpoint or vendor, cost, refresh cadence, owner, and status. This page is for internal use only — it is not linked from the product surface.

Sources
28
across 8 categories · MVP stack
Live
3
AEO probes only
Planned
23
scoped, not yet wired
Blocked
2
need legal / contract
01 · Parcel & Zoning GIS 02 · Drive-Time & Geocoding 03 · Supply — Listings & Hotels 04 · Pricing & ADR 05 · SEO Intent 06 · AEO Probes 07 · Permits & Regulatory 08 · Reviews & Sentiment
01

Parcel & Zoning GIS

Feeds the parcel overlay, acreage filter, and zoning-aware whitespace ranking.
P

Clallam County ArcGIS · Parcels (Published Public)

clallam-county-portal-clallam.hub.arcgis.com/datasets/parcel-published-public

Authoritative parcel boundaries, acreage, ownership, and zoning attributes for Clallam County (Port Angeles, Sequim, Forks, Joyce, Neah Bay). Accessed via ArcGIS REST FeatureServer — paginated GeoJSON / JSON pulls. Core source for the parcel overlay on the dashboard map and the acreage band filter.

Free · public recordREST APIGeoJSONFeatureServer
Planned
Refresh · weekly
Owner · eng
P

Jefferson County GIS · Parcels

co.jefferson.wa.us/341/GIS-Mapping

Jefferson County (Port Townsend, Quilcene, Brinnon, Hoh) parcel data. Needed because the 60-minute-drive catchment from the park extends into Jefferson. Format parity with Clallam is good — same schema family. Combined with Clallam to form the unified "ONP parcel layer."

Free · public recordREST APIGeoJSON
Planned
Refresh · weekly
Owner · eng
P

Grays Harbor & Mason County GIS · Parcels

gis.co.grays-harbor.wa.us · masoncountywa.gov/gis

Southern Olympic Peninsula counties. Smaller share of the 60-min catchment but required for completeness on the Hood Canal and coastal corridors south of Aberdeen. De-prioritized for MVP — stub for phase-2.

Free · public recordPhase-2
Planned
Phase-2
Owner · eng
Z

Clallam County Zoning Layer

clallamcountywa.gov/183/GIS-Zoning

Zoning classifications joined to parcels to filter out industrial, institutional, and shoreline-restricted parcels. Also flags parcels in WDFW-designated critical areas and tribal land. Drives the "Constraints" popover in the refine bar.

FreeShapefileJoined to parcels
Planned
Refresh · quarterly
Owner · eng
02

Drive-Time & Geocoding

Feeds the three catchment rings and the per-ring supply/parcel counts.
D

OSRM · self-hosted isochrones (MVP primary)

project-osrm.org · run from OSM extracts via docker

Open-source routing on OSM data. We stand up a single t4g.small node against a Pacific-Northwest OSM extract, compute 15/30/60-minute isochrones from the park gateway, and cache GeoJSON polygons. Zero per-call cost. Janice's parcel catchment is one market — pre-computing the three rings once covers all users in ONP.

Free · self-hosted~$20 / mo · 1× EC2 + S3 tilesGeoJSON polygons
Planned
Pre-computed · refresh on road changes
Owner · eng
D

Mapbox Isochrone API · phase-2 / validation

api.mapbox.com/isochrone/v1/mapbox/driving/{lng},{lat}?contours_minutes=15,30,60

Kept as a cross-check on OSRM output and a paid fallback once we need ferry-aware routing or traffic-adjusted isochrones. Not in MVP spend.

~$150 / mo at phase-2 volumePhase-2
Planned
Phase-2
Owner · eng
G

OSM Nominatim · geocoding (MVP primary)

nominatim.openstreetmap.org/search · or self-hosted

Forward + reverse geocoding for operator addresses, market anchor points, and user-entered parcel addresses during onboarding. Rate-limited public instance is fine at MVP traffic; we self-host if we cross 1 req/sec.

Free · OSM dataPublic or self-hosted
Planned
On-demand · cached
Owner · eng
03

Supply — Listings & Hotels

Feeds the supply map, moat grid, and substitutability score.
S

Inside Airbnb · monthly scrape archive (MVP primary)

insideairbnb.com/get-the-data

Murray Cox's open monthly Airbnb scrape — listing-level attributes, location, amenities, review counts, calendar snapshots. Covers Port Angeles / Forks / Sequim / Port Townsend. Adequate for the 412 STR count, moat coverage, and keyword-overlap scoring at MVP fidelity. ADR is inferred from "price" field (nightly list), not realized — good enough for positioning, we upgrade when we need booked-ADR truth.

Free · open dataCSV · monthly
Planned
Refresh · monthly (aligned with IA release)
Owner · data
S

AirDNA · MarketMinder (phase-2)

airdna.co · API v3

Holds realized ADR, occupancy, and RevPAR at daily granularity. We upgrade here once a paying customer requires booked-rate fidelity (most likely on a Defending brief). Not in MVP spend.

~$1,800 / mo · phase-2Phase-2
Planned
Phase-2
Owner · data
S

ESRI Business Analyst · hotel + enrichment

esri.com/business-analyst · via ArcGIS Online trial / academic

Hotel inventory, demographics, and spend enrichment at the tract level. Gives us the 38-hotel count without Amadeus spend, plus overnight-visitor demographic overlays we'll need for the Narrative layer. Free trial for MVP; evaluate paid tier when we expand beyond ONP.

Free · trialCSV / API
Planned
Refresh · quarterly
Owner · data
S

NPS Visitation & data.gov overlays

irma.nps.gov/STATS · data.gov

NPS Statistics portal gives monthly visitation to ONP (trailing 10 years) by entry station. data.gov backfills census, commuting, and tourism-economic overlays. Feeds demand-side context for the dashboard and for the narrative in the Editorial Diagnosis.

Free · federal open dataCSV / JSON
Planned
Refresh · monthly
Owner · data
S

Direct scraping · Booking.com & Hotels.com (curated)

internal scrapers · operator allow-list

Light scrape to fill gaps for lodges and boutique operators not in Inside Airbnb or ESRI. Operator allow-list, capped request rate, respects robots.txt. Only public-facing listing pages, no auth-gated content.

InternalLegal review
Blocked
Pending review
Owner · legal + eng
04

Pricing & ADR

Feeds the pricing-power panel, segment ADR trajectories, and price-dispersion contributor in the substitutability score.
$

AirDNA · rate history (secondary use)

airdna.co · same contract as 03

STR-level realized ADR, occupancy, and RevPAR over trailing 13 months. Segment cuts: coastal / rainforest / Port-Angeles-core / trailhead-adjacent. Also feeds price-dispersion calculation (inverse contributor to substitutability).

Bundled with 03
Planned
Refresh · daily
Owner · data
$

STR (CoStar) · hotel rate benchmarks

str.com · weekly market reports

Hotel segment ADR and occupancy benchmarks at the DMA and submarket level. Triangulation partner for Amadeus-derived hotel pricing.

~$500 / quarter · single-marketCSV export
Planned
Refresh · weekly
Owner · data
05

SEO Intent

Feeds the rising-queries sparklines and the keyword-overlap contributor in the substitutability score.
Q

Google Trends + DataForSEO Labs (MVP primary)

trends.google.com · dataforseo.com/apis/labs-api

Rising and seasonal hospitality queries scoped to the Olympic Peninsula — "adaptive hike olympic," "stargazing lodge olympic," "rainforest cabin hoh," etc. Google Trends gives trajectory; DataForSEO Labs gives volume + related-keyword fan-out at ~$0.07 per query. 214 tracked seed queries, refreshed weekly.

Trends · freeDataForSEO ~$60 / mo · seed queries onlyREST API
Planned
Refresh · weekly
Owner · data
Q

Ahrefs API · phase-2 upgrade

apiv2.ahrefs.com

Deeper backlink + SERP feature data. We upgrade when the first paying Defending customer wants the backlink map for their moat category. Not in MVP spend.

$500 / mo · phase-2Phase-2
Planned
Phase-2
Owner · data
Q

Google Search Console · operator domain corpus

searchconsole.google.com (OAuth opt-in)

For Defending / Repositioning mode users who connect their own GSC — real query data for their property and peer set. Never used as a primary source; enhances the personalized view only.

Free · user OAuthOpt-in
Planned
Refresh · daily
Owner · eng
06

AEO Probes

Feeds the AEO coverage panel and the unmet-intent query list (8 rising questions currently unanswered).
A

OpenAI API · ChatGPT probing

api.openai.com/v1/chat/completions · model gpt-5

Runs the 50 seeded queries against ChatGPT weekly. Captures whether the answer names an operator, which operators, in what position, and with what framing. Feeds AEO operator-mention-share.

~$40 / market / wkREST API
Live
Refresh · weekly
Owner · data
A

Anthropic API · Claude probing

api.anthropic.com/v1/messages · claude-sonnet-4-6

Same 50 queries, run against Claude. Compared head-to-head with ChatGPT to detect engine-specific moats (e.g. operators that rank in Claude but not ChatGPT).

~$30 / market / wkREST API
Live
Refresh · weekly
Owner · data
A

Perplexity API · Sonar

api.perplexity.ai/chat/completions · sonar-pro

Perplexity Sonar probes — valuable because Perplexity cites sources, so we get the actual URL cascade that led to the answer (operator site, OTA listing, press mention, AllTrails review).

~$25 / market / wkREST API
Live
Refresh · weekly
Owner · data
A

Google AI Overviews · manual probe

google.com/search (headless browser capture)

No official API. We probe via headless Chromium on the 50 queries, capture the AI-Overview block HTML, and parse cited domains. Rate-limited, flakier than the other three engines — kept as a secondary signal.

InternalLegal review
Blocked
Pending review
Owner · legal + eng
07

Permits & Regulatory

Feeds the Constraints popover and regulatory risk flags on whitespace prescriptions.
R

County Building Permits · public portals

Recent STR-relevant permits (new dwellings, ADUs, cabins) across the five jurisdictions that fall inside the 60-min ONP drive catchment. Used to flag in-progress supply that hasn't hit listings yet, to estimate near-term supply pipeline, and to trigger the "new competitive permit in your band" alert — the #1 live-dashboard signal Janice called out. Each portal publishes a searchable log; we scrape weekly and diff against the prior week.

Free · open dataCSV / web scrape · per portal
Planned
Refresh · weekly
Owner · data
R

WA Dept of Revenue · STR/Lodging Tax registrations

dor.wa.gov/taxes-rates/other-taxes/lodging-taxes

Registered STR operators at the county level. Triangulates AirDNA coverage and surfaces operators that are newly permitted but not yet visible on OTAs.

Free · public record
Planned
Refresh · quarterly
Owner · data
R

City of Port Angeles & Sequim · STR ordinances

cityofpa.us · sequimwa.gov

Current municipal STR caps, owner-occupancy requirements, and pending moratoria. Stored as structured policy records and surfaced on whitespace prescriptions where the play depends on STR licensing.

Free · manualQuarterly review
Planned
Review · quarterly
Owner · editorial
R

Tribal jurisdiction overlays

BIA · tribal.gis.gov · WA State Tribal Directory

Jamestown S'Klallam, Lower Elwha Klallam, Makah, Hoh, and Quileute lands. Flagged as non-developable on the parcel overlay and referenced in the Multi-gen + Indigenous-story whitespace play (which requires tribal partnership framework).

Free · federalShapefile
Planned
Annual
Owner · data
08

Reviews & Sentiment

Feeds the guest-review-axis-overlap contributor in the substitutability score and the named-unclaimed weaknesses callouts.
V

Review corpus · AirDNA + OTA passthrough

airdna.co (bundled) · opt-in OTA connections

Guest reviews from Airbnb, Vrbo, Booking.com passthrough. Classified into 12 review axes (service, cleanliness, location, value, design, food, wilderness access, accessibility, family fit, pet experience, noise, bed quality). Drives the review-axis-overlap score.

Bundled with 03NLP pipeline
Planned
Refresh · weekly
Owner · data
V

TripAdvisor Content API

api.content.tripadvisor.com

Covers lodges and tour operators not well-served by AirDNA/OTAs — gear rentals, guided services, ranger-led programs. Needed for the M15 Gear/Guided moat coverage.

~$100 / moREST API
Planned
Refresh · monthly
Owner · data
V

AllTrails & Reddit · community sentiment

alltrails.com · reddit.com/r/olympicnationalpark

Qualitative signal for trail-access claims (M01) and shoulder/winter usability (M14). Hand-curated pulls, not API-driven at MVP.

Free · publicManual
Planned
Review · monthly
Owner · editorial
Governance. Any new source added to the dashboard must land on this page before it ships. Each entry must have: (a) the URL or endpoint, (b) the cost, (c) the refresh cadence, (d) an owner, (e) a status. "Blocked" sources cannot ship to production without a sign-off from legal@territori.ai. Personally identifiable operator data (owner names that aren't in public parcel records) is not permitted on the named-unclaimed or named-weakness surfaces without a contractual basis.