IA - Detail Layer Site map + cards

Site map + IA

The full site map: a tree of the 11 clusters (0 to 11) plus per-node cards, each with its number X.Y, type, what it includes, and transitions. This is the detailed body that expands the base Concept map. States and page copy live on the individual node pages; here we lay out the whole product surface, cluster by cluster. See also the Flows.

Cluster tree

The twelve clusters and how the primary journey threads through them: public acquisition into auth, auth into the one-time onboarding wizard, the wizard into the operator home, and from the Dashboard out to Programs, Team, the Owner path, and Settings. The owner surface and the employee check-in branch off Team and the Owner path. System nodes hang off the global shell.

flowchart TD
    c0id["0 Global shell + home"]
    c1id["1 Public marketing"]
    c2id["2 Authentication"]
    c3id["3 Onboarding"]
    c4id["4 Dashboard + pulse"]
    c5id["5 Programs"]
    c6id["6 Team"]
    c7id["7 Owner share + upgrade"]
    c8id["8 Settings"]
    c9id["9 Owner surface"]
    c10id["10 Employee check-in"]
    c11id["11 System + global"]
    c0id -->|public| c1id
    c0id -->|auth| c2id
    c2id -->|"sign up"| c3id
    c3id -->|finish| c4id
    c4id -->|Programs| c5id
    c4id -->|Team| c6id
    c4id -->|Owner| c7id
    c4id -->|Settings| c8id
    c7id -->|"invite owner"| c9id
    c6id -->|"invite link"| c10id
    c0id -.->|system| c11id
Tree, not menu. The arrows are cluster-level transitions inferred from the flows and the node map. Within each cluster the real nodes (X.Y) and their own transitions are the cards below. The six-intent consolidation of these clusters is the base Concept map.

0 - Global shell and home

Public and all roles. The per-page template exemplar plus the canonical global components (nav, footer, privacy disclosure, program card, dialog shell, canonical lists), each defined once and referenced everywhere.

0.0page
Home (marketing home)
Includes: 0.1 nav, hero (privacy-first H1 + state-dependent CTA), how-it-works (3 steps, mirrors F1), privacy proof (0.3 public variant), programs preview (0.6 categories), pricing teaser (1.0), FAQ teaser (1.4), final CTA, 0.2 footer. States: guest / logged-in operator / owner. Full A-E SEO (indexed).
→ 2.0 Sign up (F1), 4.0 Dashboard, 1.0 Pricing, 1.1 Security and privacy, 2.1 Log in
0.1section
Navigation (header + mobile tabs)
Includes: brand, 4 job tabs (Dashboard, Programs, Team, Owner), Settings utility, auth and role variants (guest / operator / owner-view / employee-none), mobile bottom tabs (base 360px).
→ 4.0 Dashboard, 5.0 Programs, 6.0 Team, 7.0 Owner, 8.0 Settings
0.2section
Footer
Includes: trust strip (aggregate-only privacy line), columns (Product, Company, Resources, Legal), SEO popular-links block, bottom row (copyright, cookie settings, social). Mobile: columns and SEO block collapse into accordions, present in the DOM.
→ 1.0 Pricing, 1.1 Security, 1.2 About, 1.3 Contact, 1.4 Help, 1.5 Segment landing, 1.6 Legal, 11.3 Cookie settings
0.3section
Privacy-disclosure component
Includes: canonical privacy spine (aggregate only, minimum-N=5, no live count D1, subscription-as-privacy, what the owner can and cannot see), role variants (employee pre-Q1 / operator proof / owner comfort / public explainer), "see what your manager sees" expander, below-minimum-N state.
→ rendered by 10.1, 8.2, 3.1, 4.0, 9.1, 1.1 (variants, not copies)
0.4section
Program card
Includes: title, category (from 0.6), cadence and duration, short description, "recommended for your size" tag, status badge (draft / active / ended), questions count, primary action (Select / Confirm / Manage). States: default, recommended, active, draft, ended, skeleton.
→ 5.1 Program detail; rendered by 3.1, 5.0, 5.1 (copies, propagate on change)
0.5dialog
Dialog / modal shell
Includes: overlay (inert, dimmed backdrop), container (role="dialog", aria-modal), header (title, close X), body slot, footer (primary + secondary or cancel), dismiss (X / Esc / backdrop). Variants: form, decision, destructive confirm, non-modal banner. States: default, loading, error, success.
→ reused by 5.1, 6.1, 7.2, 8.4, 11.3, and every confirmation; focus trap, focus returns to opener on close
0.6section
Canonical lists
Includes: program categories (mental health / physical / financial / social), plan tiers (Free / Starter / Growth, prices [?]), company-size buckets (cut points [?]), input types (emoji / slider), cadence (weekly), statuses (program draft/active/ended, cycle open/closed).
→ consumed by 0.4, 5.0, 1.5 (categories), 1.0, 7.2, 8.1 (tiers), 3.0, 0.4 (sizes), 5.2, 10.2 (inputs)

1 - Public marketing and acquisition

Public pages. Nodes 1.1 to 1.6 were registered from the footer (0.2) at Step 3, per discover-as-you-go; they serve the existing Main and trust jobs, not new jobs.

1.0page
Pricing
Includes: 0.1 nav, tier table (Free / Starter / Growth), "owner dashboard = paid" callout, subscription-as-privacy note, FAQ teaser, CTA "Start free", 0.2 footer.
→ 2.0 Sign up, 0.0 Landing
1.1page
Security and privacy (public explainer)
Includes: 0.1 nav, how the aggregate-only model works, minimum-N=5, no live count, what the owner can and cannot see, subscription-as-privacy, FAQ, CTA "Start free", 0.2 footer. Brio's differentiator made public.
→ 2.0 Sign up, 1.6 Legal (Privacy Policy)
1.2page
About
Includes: 0.1 nav, mission (wellbeing without surveillance), team, contact link, 0.2 footer.
→ 1.3 Contact
1.3page
Contact / Support
Includes: 0.1 nav, support email or form, help link, response-time note, 0.2 footer.
→ 1.4 Help
1.4page
Help / FAQ
Includes: 0.1 nav, FAQ groups (setup, privacy, billing), search within help [?], contact fallback, 0.2 footer. Also an SEO surface.
→ 1.3 Contact
1.5page
Category / segment landing (SEO template)
Includes: 0.1 nav, canonical landing template, H1 per target, program-category or segment copy, CTA "Start free", internal links, 0.2 footer. One canonical template, not N hand-built pages; the exact list is [?] pending keyword research.
→ 2.0 Sign up
1.6page
Legal documents
Includes: one legal-document template rendering Privacy Policy, Terms of Service, Cookie Policy, last-updated, "cookie settings" re-opens 11.3. Content is legal copy, [?] pending legal review.
→ 11.3 Cookie consent (settings)

2 - Authentication

Public to operator. Closes no job on its own but gates every operator job (Main, J1, J2, E1); never a dead-end.

2.0page
Sign up
Includes: email + password, magic-link option, privacy and terms links, CTA "Create account". Self-serve, no credit card (item 1).
→ 3.0 Company setup (F1), 2.2 Magic-link sent, 2.1 Log in
2.1page
Log in (email + magic link)
Includes: email + password, magic-link option, forgot-password. Return access; gates Main / J1 / J2 / E1.
→ 4.0 Dashboard, 2.2 Magic-link sent, 2.3 Invalid or expired link
2.2state
Magic-link sent
Includes: "check your email" confirmation, resend, open-mail hint.
→ 4.0 Dashboard (on valid link), 2.3 (if expired)
2.3state
Invalid or expired link
Includes: explanation, "request a new link" CTA. Error state, never a dead-end.
→ 2.1 Log in
2.4page
Reset password
Includes: new + confirm password, length-first requirements hint (shape + text), Set new password, signs out other devices. Tokened, noindex nofollow. Reached from the reset email.
→ 2.1 Log in (on success), 2.3 Invalid or expired link (stale token)

3 - Onboarding, guided first-run wizard

Linear, time-budgeted under 5 minutes. Sequential flow depth, not navigational depth. Runs once, not reachable from global nav afterward.

3.0page
Company setup (name, size)
Includes: company name, company-size selector, progress "step 1 of 3". Size drives the pre-selected program (J6).
→ 3.1 First program confirm (F1)
3.1page
First program confirm (pre-selected by size)
Includes: loading (pre-select by size, F1 Load1), recommended program card (canonical), what it runs, interpretive line, "confirm" or "pick another (to 5.0)", progress "step 2 of 3".
→ 3.2 Invite team, 5.0 Program library (change choice)
3.2page
Invite team (join link / code)
Includes: join link + copy, join code, email-invite field, privacy note (roster is not linked to answers), progress "step 3 of 3", "finish, go to Dashboard".
→ 4.0 Dashboard, 3.3 (on send failure)
3.3state
Invite-send error
Includes: which invites failed, retry, skip for now (link and code still work). Never a dead-end (F1 MS3).
→ 3.2 Invite team

4 - Dashboard and pulse, operator home

The operator home. The recurring aha, 1 tap from login: the pulse signal (score + interpretation + suggested next action).

4.0page
Dashboard (operator home)
Includes: 0.1 nav, plain-language pulse score + interpretation + suggested next action, trend spark, participation rate (share, not who), threshold-alert banner (contextual, DX1), privacy-proof mini element (DX2), states 4.3 empty and 4.4 loading.
→ 4.1 Team pulse detail, 4.2 Threshold alert detail, 7.0 Share with owner (contextual, F3)
4.1page
Team pulse detail
Includes: score + number, trend over time, participation rate, interpretation + next action, minimum-N state.
→ 7.0 Share with owner, 5.2 Check-in setup
4.2page
Threshold alert detail
Includes: what dropped, plain-language reading, suggested next action, link to the relevant program. Reached 1-tap contextual and via notification deep-link (DX1).
→ 5.1 Program detail, 4.1 Team pulse detail
4.3state
Pre-minimum-N empty (score not ready)
Includes: "waiting for at least 5 responses", no live count, nudge-team CTA (to 6.0). J3 and E2 privacy math.
→ 6.0 Team roster
4.4state
Cycle open, no live count
Includes: "cycle open, results appear after it closes", no running tally. J3 (no timing inference).
→ 4.0 Dashboard

5 - Programs

Browse, pick, manage, and set up the check-in. The core "what do I run" job (Main + J6 + item 2), entered repeatedly.

5.0page
Program library (browse + pick)
Includes: 0.1 nav, facet set (category: mental health, physical, financial, social), "recommended for your size" tag, canonical program-card grid, state 5.3 first-run empty.
→ 5.1 Program detail
5.1page
Program detail / manage
Includes: title, category, cadence and duration, status (draft / active / ended), the check-in questions it carries, manage actions (activate / end), "set up check-in (to 5.2)".
→ 5.2 Check-in setup
5.2page
Check-in setup (questions, cadence)
Includes: pick 1 to 3 questions, emoji or slider type, cadence (weekly), minimum-N=5 note, no-live-count note, save.
→ 4.1 Team pulse detail
5.3state
Library first-run empty (no active program)
Includes: "no active program yet, pick one", recommended-for-size shortcut. Never a dead-end (MS4).
→ 5.1 Program detail

6 - Team

Invite and participation aggregate. Entered on every new hire; the invite / roster surface (Main + item 3 + item 10).

6.0page
Team roster (members, join link / code, participation aggregate)
Includes: 0.1 nav, invited-members list (invite identity only, never linked to answers), join link + code, team size, aggregate participation rate (share, not who), resend or manage (to 6.1).
→ 6.1 Resend or manage invite, 4.0 Dashboard
6.1dialog
Resend or manage invite
Includes: resend to selected, revoke or regenerate code, copy link.
→ 6.0 Team roster

7 - Owner share and upgrade, operator-facing

The prove-it-works and paid-conversion path (J1 + J5 + S2 + item 8). Fires from a positive milestone (F3).

7.0page / section
Share with owner
Includes: what the owner will see (aggregate-only preview), "invite owner", gate: on a paid plan? to 7.1.
→ 7.1 Invite owner + upgrade, 9.0 Owner dashboard (once live)
7.1page
Invite owner + upgrade
Includes: owner email, plan comparison (owner dashboard = paid), 7.2 upgrade dialog, confirmation "invite sent".
→ 7.2 Upgrade or paywall, 9.2 Monthly owner digest
7.2dialog
Upgrade / paywall
Includes: tier, seats, price, payment, "stay free" (back). Item 8 and business model.
→ 7.3 (on failure), 7.0 (recoverable exit, F3 DE3)
7.3state
Payment failed
Includes: reason, retry, "stay on the free tier, retry later". Recoverable, not a trap (F3 DE3).
→ 7.2 Upgrade, 4.0 Dashboard

8 - Settings, operator utility

Noindex. One shell whose section list mirrors nav; a corner utility entry, not a job tab.

8.0page
Settings (shell)
Includes: 0.1 nav, section list (Plan, Privacy center, Notifications, Account).
→ 8.1, 8.2, 8.3, 8.4
8.1section
Plan / subscription
Includes: current tier, seats and usage, change plan (to 7.2), invoices.
→ 7.2 Upgrade or paywall
8.2section
Privacy center (what the owner can and cannot see)
Includes: canonical privacy-disclosure component, minimum-N=5 statement, no-live-count, owner can and cannot see panel, subscription-as-privacy statement. Operator-facing proof.
→ 8.0 Settings
8.3section
Notifications (reminders, digest cadence)
Includes: check-in reminder toggle and cadence, weekly operator digest, monthly owner digest, threshold-alert delivery.
→ 8.0 Settings
8.4section
Account settings
Includes: name, email, password, magic-link, sign out, delete account (GDPR erasure). Supporting identity infrastructure.
→ 8.0 Settings

9 - Owner surface, aggregate-only, secondary

Under 2 minutes, one read. No nav tabs by design; a single aggregate dashboard for the secondary persona.

9.0page
Owner dashboard (one number, trend, plain-language)
Includes: single pulse number, trend, plain-language reading, 9.1 "what I can and cannot see", state 9.3 empty, no nav tabs by design.
→ 9.1 What I can and cannot see, re-entry from 9.2 digest
9.1section
"What I can and cannot see"
Includes: canonical privacy-disclosure component, owner variant (aggregate-only, no individuals, no drill-down). E2 owner comfort + item 4.
→ 9.0 Owner dashboard
9.2page
Monthly owner digest (email to view)
Includes: month score + trend, one-line reading, link to 9.0. S2 + item 8 + W1 (under 2 min).
→ 9.0 Owner dashboard
9.3state
Owner score-not-ready empty
Includes: "score not available yet, the privacy minimum of 5 is not met", no individual data. MS2.
→ 9.0 Owner dashboard

10 - Employee check-in, near-anonymous, third-party, mobile

Linear, under 30 seconds, no account for the first check-in. A near-anonymous flow for the third-party persona (J3 + J4).

10.0flow entry
Check-in entry (via invite link / join code)
Includes: minimal top bar (no nav), "your answers are anonymous" pre-header, link validity check.
→ 10.1 Pre-Q1 disclosure (F2), 10.4 (expired), 10.5 (already submitted)
10.1section
Pre-Q1 privacy disclosure
Includes: canonical privacy-disclosure component, employee variant, "no named responses, no individual timeline", "see exactly what your manager sees" expander (F2 DE2 recovery), continue.
→ 10.2 Questions, back (leave)
10.2page
Questions (1 to 3, emoji / slider)
Includes: 1 to 3 questions, emoji or slider, progress, submit, loading (F2 Submit).
→ 10.3 Check-in complete, 10.6 (submit error)
10.3page
Check-in complete / thank-you
Includes: thank-you, reassurance (the answer joined the aggregate), no score shown to the employee (unless HJ2 [?], parked).
→ end
10.4state
Invite link expired
Includes: "link expired, ask your operator to resend", no personal data. Never a dead-end (F2).
→ operator resend path
10.5state
Already submitted this cycle
Includes: "you have already checked in this cycle, thank-you", no duplicate, no individual data. MS1.
→ end
10.6state
Submit error
Includes: "submit failed, retry", answers preserved. Never a dead-end (F2).
→ 10.2 Questions

11 - System and global nodes

Fleshed at Step 6, grounded in law. The system surfaces that apply across all roles.

11.0page
404 Not found
Includes: full page (nav + footer) with search and quick links, HTTP 404 + noindex, never a soft-404.
→ 0.0 Home, search, quick links (recovery)
11.1page
500 Server error
Includes: minimal, backend-independent error page.
→ retry, 0.0 Home
11.2page
Maintenance
Includes: 503 + Retry-After maintenance page.
→ retry after the stated wait
11.3dialog
Cookie consent
Includes: banner component, grounded in real law via web fetch.
→ reopened from 0.2 footer and 1.6 Legal (cookie settings)
11.4section
Toast / inline notification
Includes: component, aria-live, no SEO impact.
→ inline, no navigation
11.5section
Global search
Includes: likely N/A for Brio [?]. The small curated library uses browse + facets (in 5.0), not a search index; confirmed or closed at Step 6.
→ N/A (browse + facets in 5.0)