Internal · Project Brief
v1.0 · 2026-04-20
← All docs
Project Overview

Which position in this market
is genuinely unclaimed — and what does it take to own it?

Territori.io gives hospitality leaders the category intelligence to find their unique position faster — so they can build the concept the market is missing, not the one that's already saturated.

MVP Market
ONP
Moat Dimensions
15
Epics
20
DB Entities
25
Status
Client Preview

Why this product exists

Whether you're building into an existing category that's saturated or forging your own, you're making a $3–15M concept decision with data tools that answer the benchmarking question — not the positioning one.

Price erosion and temporal demand are not market conditions. They are the compounding cost of building without category intelligence. Territori.io maps what's unclaimed in destination markets — the moat assets, the positioning whitespace, the differentiation opportunities that benchmarking tools are built to ignore.

The crisis of sameness in destination hospitality isn't a failure of data. It's a consequence of it. When every hospitality leader benchmarks against the same competitive sets, they build the same concepts. Territori.io exists because every hospitality leader benchmarking the same data builds the same concept. We map what's genuinely unclaimed — so you can find your category before someone else does.

Territori.io helps hospitality leaders discover their unclaimed category — the positioning whitespace that benchmark tools are built to ignore. When an operator evaluates a parcel in the Olympic Peninsula, they can find occupancy rates on AirDNA, comp listings on Airbnb, and zoning maps from the county. What they cannot find is an answer to the question that actually determines whether their project succeeds: what can I build here that will hold genuine demand — and resist the price erosion that comes the moment a competitor copies the concept?

Without that answer, hospitality leaders default to category mimicry — building a brand inside an existing category rather than pioneering their own. The fourth glamping site in a market that has room for exactly one more. Territori is the infrastructure that answers the positioning question before the capital is committed. Own the category — or compete in it.

Category Intelligence

A market dashboard that surfaces four things no existing tool provides: moat coverage, category saturation, competitive intent signals, and AEO visibility — all interpreted by an editorial voice that names the conclusion, not just the data.

The core insight is the distinction between Class (what the county calls it) and Category (what the guest calls it). A "glamping resort" is a class. "Forest Cocooning" is a category. Territori scores categories, not classes — because categories are what guests choose, what press coverage names, and what defensible pricing is built on.

The product operates at two price points: a one-time Study ($3,000 — point-in-time market snapshot delivered as a PDF within 5–7 days) and a Live Seat subscription ($12,000/year — continuously updated market access with weekly digest). The concierge-MVP fulfills Studies manually, using the dashboard as the production tool.

The deliverable heart of Territori is the Narrative — a generated editorial output that names positioning candidates (Named Categories), interprets pricing trajectory (Comps), and concludes with an Editorial Diagnosis in Territori voice: the one thing the leader should walk away knowing.

The 15 Moat Dimensions

The canonical taxonomy of competitive defensibility — static reference data that is Janice's IP. Seeded once, treated as read-only. Each dimension is scored 0–100 per property, within a market context.

M01
Geography
M02
Weather
M03
Soundscape
M04
History
M05
Local Culture
M06
Attractions
M07
Celebrities
M08
Architecture
M09
Scarcity
M10
Scale
M11
Producers
M12
Story
M13
Collections
M14
Interests
M15
Expertise
Tier vs. Moat: These are orthogonal. Tier (primary anchor / established / active STR / coastal) is a coarse map segmentation — it answers what kind of player is this? Moat answers how defensible is their position? A primary anchor can have low moat scores if coasting on legacy. An STR can score high on Soundscape or Story. Tier segments. Moat analyzes.

Olympic National Park Gateway

One market, four counties, manual-first delivery. The concierge model validates the thesis and the product without building infrastructure that doesn't yet have a proven demand signal.

Target leader: An independent developer evaluating a 10–19 acre parcel in the Olympic Peninsula. They have capital and curiosity but lack the competitive intelligence to commit to a specific category play with confidence.

Four counties in scope: Clallam, Jefferson, Grays Harbor, Mason. Permit feeds ingested from county building departments and DCD portals (CUP filings). Parcel data from county assessors via PostGIS.

The anchor: Olympic National Park — 3.9M+ annual visitors, high drive score from Seattle/Portland, low substitutability of experience. ONP's visitor volume is the denominator in the saturation formula: annual_visitors ÷ SUM(keys in market).

Infrastructure

Locked as of 2026-04-19. No swaps without a documented reason and team sign-off.

Frontend
Next.js
App router, TypeScript, deployed on Vercel
Styling
Tailwind CSS
Utility-first; custom tokens from branding system
Maps
Mapbox GL JS
Raw mapbox-gl (CJS); PostGIS MVT tile API; isochrone + parcel polygon layers
ORM
Prisma
Type-safe queries; schema finalized at T-09
Database
PostgreSQL + PostGIS
Hosted on Neon (serverless Postgres)
Hosting
Vercel Pro
Connected to territori-io/web; territori.io domain
Repository: territori-io/web on GitHub · Private · Branch protection enabled, required reviewer on PR. Domain: territori.io (Spaceship registrar, DNS to Vercel). www redirects 308 to apex.

20 Epics across the full product

From landing to admin infrastructure. Priority: P0 = must-ship for concierge MVP · P1 = immediate follow-up · P2 = post-MVP · P3 = parked.

EPIC 01
Landing
The first screen a hospitality leader sees. Must name their specific situation — "you have a parcel and don't know what to build on it" — and adapt to their stated intent (find a site / pressure-test / fix positioning).
P0P1
EPIC 02
Geography
Market definition via map + search. Isochrone rings (15/30/60 min) around the anchor. Optional parcel pin that flows into downstream scoring. Multi-market switching is P2.
P0P1P2
EPIC 03
Leader Profile
Onboarding intake: motivation, areas of expertise, team composition, constraints. Profile persists and remains editable. The dashboard editorial voice speaks back to who the leader said they were.
P0P1
EPIC 04
Context
The leader's existing thesis: parcels they're watching, operators they respect, the story they think they're telling. Constraints: permitting risk, capital ceiling, personal timeline.
P0P1
EPIC 05
Probing
The dark transition screen that shows what's running under the hood — AEO probes, permit pulls, supply scans. Live counters make the 30–60 second wait feel earned, not hidden.
P0P1
EPIC 06
Handoff / Paywall
Clear handoff screen naming what's behind the paywall. First Territori moment (Substitutability gauge) visible before purchase. Two tiers: Report ($3k one-time) / Live Seat ($12k/year).
P0P1
EPIC 07
Substitutability Hero
The hero gauge (0–100) — how differentiated is this market, really? Pacific blue → sage → gold → brass → rust arc. Four sub-scores visible beneath the gauge. Drill-in shows supporting evidence.
P0P1
EPIC 08
Supply Density
Geographic map of operators, color-coded by tier. Target acreage band (10–19ac) visually called out. "So what?" strip names the one conclusion. Map toggles: supply density / moat coverage / price tiers / permit activity.
P0P1
EPIC 09
Moat Coverage — Category Saturation
15-cell grid (M01–M15), each colored by saturation tier. Cell count visible. Click-in shows which operators claim that moat and how. "So what?" strip names 1–2 moats to build toward.
P0P1
EPIC 10
Named Unclaimed Territory
Three ranked Named Categories — specific, human-readable positioning plays with ADR target, time-to-launch, and moat combination. Scored against the operator's parcel. CTA to Destination Design scoping call.
P0P1
EPIC 11
Intent Intelligence
AEO probes across Claude / ChatGPT / Perplexity — which operators get named for which queries. Rising SEO queries with sparklines. Seeded-query panel editable by operator. CSV export is P2.
P0P1P2
EPIC 12
Price & Positioning
Realized ADR (not list price) trended weekly per segment. Pricing Power chart using single mono theme per segment (blue / brass / gold / sage). Optional PMS overlay for operators with connected property management.
P0P1
EPIC 13
Your Site Strategy
Parcel-fit matrix scoring the leader's specific deal against each Named Category. Delivered as a standalone 8-page PDF with the Report. ADR pro-forma (occupancy, seasonality, capex) available as P1.
P0P1
EPIC 14
Editorial Diagnosis
Prose conclusion in Territori voice at the bottom of the dashboard. Names the single thing the leader should take away. References their profile to speak to them specifically, not generically.
P0P1
EPIC 15
Mode Switching
Three mode chips (Find a site / Pressure-test a deal / Fix positioning) reframe the editorial copy while keeping data invariant. Tooltip explains what changes per mode. Dashboard Captions update per section.
P0P1
EPIC 16
First-Use Walkthrough
4-panel guided walkthrough on first dashboard load: gauge → moats → mode → deliverable. Re-triggerable from help menu for returning leaders.
P0P1
EPIC 17
Report Delivery
Client Preview delivery pipeline: intake → probe → dashboard → editorial review → ship PDF + print in 5–7 days. 14-day post-delivery check-in. Delivered printed + digital.
P0P1
EPIC 18
Admin / Sources / Data Infrastructure
Building permit ingest (Clallam, Jefferson, Mason, Grays Harbor county portals). CUP ingest from DCD portals — 12–24 month lead-time signal. Sources tracker panel. Feed freshness alerts (>7 days stale).
P0P1
EPIC 19
Billing / Paywall / Account
In-flow transaction: Report ($3k) or Live Seat ($12k/year) from the handoff screen. Subscription management: pause / downgrade / export dashboard state.
P0P1
EPIC 20
Weekly Email Digest
Monday digest for Live Seat subscribers: "what moved in your category this week." Keeps leaders oriented without requiring daily dashboard visits.
P3

Where we are

Dashboard, map, onboarding flow and data pipeline all in active development as of 2026-05-02.

2026-04-19
Domain acquired. territori.io purchased via Spaceship ($15/year). DNS pointed to Vercel.
2026-04-19
Email configured. janice@territori.io live via iCloud+ custom domain.
2026-04-19
GitHub org created. territori-io/web — private, branch protection enabled. Vercel Pro connected; territori.io live.
2026-04-21
Schema finalized. 25 entities, 27 enums. Prisma migration complete; all 25 tables live in Neon with PostGIS GiST indexes.
2026-04-23
Moat taxonomy complete. All 15 dimensions (M01–M15) approved and locked. Internal docs CSS standardized; index page created.
2026-04-27
Dashboard S01 + S02 complete. Market Intelligence (DPI bar chart, Opportunity Matrix Option B) and Supply Density (dark banner, moat layouts, zoning legend) shipped.
2026-04-28
Real Mapbox map live. Raw mapbox-gl basemap (dark-v11), isochrone rings, parcel polygons, anchor pins. PostGIS MVT tile API serving Clallam parcels.
2026-04-29
Testing framework installed. Vitest + React Testing Library (15 unit tests) and Playwright (5 E2E smoke tests) fully configured.
2026-04-30
Onboarding flow built. Acts 01–05 complete: homepage, geography picker, operator identity, context, probing screen. All styled to match mock.
2026-05-01
Parcel data pipeline. 54,512 Clallam parcels + Jefferson County GeoJSON loaded into PostGIS. Acres filter wired to map highlighting. Parcel modals show real APN, acreage, zoning.
Next
Act 06 — Handoff / Paywall screen. Stat row, blurred preview panel, pricing cards (Study $3k / Live Seat $12k).
Next
Dashboard S03 — Moat Coverage. Clickable 15-cell grid with drill-down to operator list per dimension.
Client Preview approach: The full product workflow runs each Study — intake, probes, dashboard generation. Janice reviews and approves all editorial before delivery. The code drives the workflow; her role is quality control, not production. This means every leader in the Client Preview receives a polished, reviewed product.