A second-generation prototype focused on how a firm moves through the product — synthesized from the product vision, the brainstorm and design authorities, the canonical exemplars, and a critical audit of prototype v1. The intent is that this IA becomes the route structure of the real Angular application. v2.1 is now the only prototype — v1 and v2 were retired 2026-07-22 to reduce noise (git history keeps them). Updated 2026-07-24: the Report stage now shows the built Polycrest 0.7 truth — editable document, in-document review, named versions, Word/PDF/print — and two proof walkthroughs cover breadth, applying every P0 and P1 finding of the current-state gap analysis.
One tenant workspace, three sidebar groups, and a five-stage job workspace. Everything an appraiser touches daily sits in Production and Research; everything configured occasionally sits in Firm.
Each traces to the documentation and to a specific strain found in the v1 prototype audit.
v1 had five co-equal top-nav items and two competing homes (Explorer for the database, Appraisals for work). v2 groups the sidebar by cadence: Production (daily), Research (the data), Firm (occasional admin). Home answers the question every incumbent tool fails: "what needs my attention today?" — my jobs with readiness, review requests, the candidate inbox, due dates — without building the deferred workflow-management pack.
fixes v1: no dashboard; Explorer-vs-Appraisals dual rootThe vision's five steps — Engage → Research → Analyze → Draft → Deliver — become the job's five fixed stages: Overview → Subject → Comparables → Analysis → Report. A vertical stage rail (with done/current states and sub-sections) replaces v1's horizontal tab strip, and the report-readiness meter lives in the job header on every stage — the north-star metric made permanently visible. The order teaches the method; the rail is the workflow.
fixes v1: flat tabs with no sense of progress; readiness only visible in Reportv1's model ("extension tabs slot before Report") collapses once the ten gap capabilities land: cost approach, DCF, correspondence, EA/HC, signing, worksheets… all fighting for one tab strip. v2 fixes the growth axis: the five stages are constant, and pack contributions appear as modules inside a stage, marked with their pack of origin (see the mapping table below). An Eminent Domain job gains "Before/after" and "Compensation" under Analysis and "Form ROW-A-5" under Report — the rail never changes shape.
fixes v1: tab overflow; no home for the ordered jurisdiction stack (now in Overview)The firm's verified comp database is the moat, yet v1 gave it no nav home — comp records hung off Explorer, and Import held a permanent top-level slot. v2 makes Comps a root with three faces: Database (the ledger), Candidates (the confirmation inbox, badge-counted in the sidebar), and Imports (an occasional flow, demoted from top nav). Explorer stays a root — but as the map lens over the same records, and it opens in job context ("researching for 26-1041 — tray attaches here") to serve stage 3 without duplicating it.
fixes v1: comp DB had no home; Import over-promoted; Explorer/database blurAuthoring and rendering stay distinct but adjacent: conclusions are authored in Analysis (the amber, appraiser-only box) and restated in Report — one source, zero contradictions. Report Studio is embedded as stage 5, not a separate app: outline with slot provenance (CORE/PACK/SHELL), paper preview, output switcher (narrative ↔ agency form), immutable versions, signing, delivery. The v1 confusion about where signing/certification/ conclusions live gets one answer each.
fixes v1: fuzzy workspace ↔ Report Studio boundaryThe product's legal spine shows up as consistent visual language everywhere: amber 🔒 = appraiser-only (conclusions, certification); blue ✦ = assistant territory, with the standing ribbon DRAFTS · NEVER CONCLUDES and accept/reject change cards; provenance pills (AI / USER / SourceStamp) on facts; "Owner suppressed (§25.025)" on protected records; coverage honesty in the layer panel ("253/254 counties · Donley absent"); frozen-snapshot chips on job comps.
carries forward v1's best trait, systematizedEvery page maps 1:1 to an Angular lazy route (standalone, signals, zoneless — per the architecture decisions). Deep links are first-class because the SPA serves with deep-link fallback; stage URLs make every step of a job bookmarkable and shareable.
The current-state gap analysis (2026-07-24) found the prototype understating the document product that now exists — Polycrest 0.7 and the connected workbench. All six P0 and all six P1 findings are applied here; codes trace each change to its finding.
report_version (exact capture) → rendered_document_version → delivery & audit record [DOC-02]gw.trendChart shown as numbered exhibits with output fidelity [UX-04]assets/app.css ("workspace shell v2" section) + assets/rail.js. The legacy shell survives only on the all-features referenceFigureNode with a frozen title/legend/caption, so it inherits the existing named-version capture and stale→Refresh loop. Reached from Subject (a "Map exhibits" card), Explorer (Draw illustration, alongside Capture), and Report Studio (✎ Edit on the figure). Unifies with the existing capture flow as one figure kind with drawn (re-editable) vs captured (one-shot) origin; exports carry the not-survey-grade disclaimer at a set DPIassets/rail.js — no per-page markup — and both states persist per user via localStorage (the intended real-app behavior; visibly carries across pages here). Events may badge/pulse a collapsed rail but must never auto-expand it. Non-workspace pages gain the collapsible sidebar only; they have no contextual rail to convert (converting Home to a tabbed rail with a "needs attention" panel is a natural next step, not done here)The reconciliations from the documentation gap analysis, applied here as v2.1. Reference codes trace each change back to its finding. Nothing good is lost in the cutting: removed or dormant ideas keep a card in the parking lot — deferred features still visible in pages carry the amber POST-LAUNCH pill in place.
The v1 gap explainers each implied a new screen. In this IA, every one lands inside an existing stage — evidence the five-stage rail absorbs the roadmap.
| Gap (v1 explainer) | Lands in | As |
|---|---|---|
| EA / HC structured conditions | Overview | Assignment & conditions section; restated beside every value |
| Signing roles & trainees | Overview + Report | Team & signing card; signing panel renders certification |
| Two-stage grid | Analysis | Grid stages (transactional → cumulative → property) |
| Cost schedules | Analysis | Worksheet module (ED / cost packs) |
| Correspondence log | Overview | Presence-disclosed section (+ Add materializes it) |
| Multiple units of comparison | Analysis | Grid unit switcher + cross-check band |
| Worksheet chain | Analysis | Worksheets drawer feeding named grid rows |
| Cost approach | Analysis | Approach module from cost-approach add-on pack |
| DCF engine | Analysis | Approach module from commercial pack v2 |
| Market content connectors | Report + Settings | Cited datasets in Studio; connector cards in Settings |
Draw-to-annotate editor — labeled land-cover tracts; the re-editable "Map exhibit".
Stage 5 working surface: full-height document, contextual rail, working dialogs.
| Prototype page | Angular route | Notes |
|---|---|---|
home.html | /home | default post-login landing |
appraisals.html | /appraisals | saved view in query params |
job-*.html | /appraisals/:jobNo/(overview|subject|comparables|analysis|report) | stage = child route; sub-sections are fragments |
proof-*.html | — | proof walkthroughs of the existing job routes (26-1038 · 26-1102) — deliberately no new navigation |
explorer.html | /explorer · /explorer?job=26-1041 | job context via query param |
comps.html | /comps | |
comp-record.html | /comps/:recordNo | display numbers per company, UUIDs internal |
candidates.html | /comps/candidates | sidebar badge = pending count |
imports.html | /comps/imports | |
templates.html | /firm/templates | "Firm" group is role-gated (owner/admin; appraisers read-only where sensible) |
packs.html | /firm/packs | |
settings.html | /firm/settings/:section |
Per the decisions log the product is desktop-first, honest responsive. "Honest" means the collapse is designed, not accidental — and it is rendering only: the IA and the route table never change per device. The prototype demonstrates these breakpoints live; resize any page to see them.
| Width | What collapses | Rule |
|---|---|---|
| ≥ 1101px | nothing | Full shell: sidebar · main · assistant rail. |
| ≤ 1240px | workspace rail | The contextual rail (assistant · activity · page panels) hides; the ✦ topbar button remains its way back. |
| ≤ 1100px | sidebar | The sidebar becomes an icon rail — the three groups survive as separators. |
| ≤ 900px | job stage rail | The five-stage rail becomes a horizontal stepper under the job header — the loop is already sequential, so it compresses naturally. Sub-sections fold into the page. |
| ≤ 760px | sidebar · tables · search · Explorer chrome | The sidebar becomes a bottom tab bar (all seven items, icon + label); tables scroll horizontally inside their cards; global search folds into the topbar; Explorer's results dock becomes a bottom sheet and the layer panel folds behind a ≣ Layers button — the map keeps the canvas. |
Two screens are genuinely phone-plausible today and were verified at 390px: Home (status checks, review approvals) and Explorer (map + sheet is a native mobile pattern). What this strategy deliberately does not attempt: mobile production work. Nobody builds a two-stage grid or edits Report Studio on a phone — those stay desktop surfaces, readable but not optimized when small. Field-inspection flows (photo capture on site, parcel-at-point from the truck, candidate confirmation on the go) remain the post-launch add-on the decisions log defers — a designed mobile experience that will slot into the existing IA (Subject stage · Candidates · Home) without new navigation.
Signup / onboarding wizard — v1's five-step flow (profile → invite → packs → branding → import) still stands as the ruled requirement; nothing in this IA changes it (v1 retired 2026-07-22 — git history). The gap explainers — their capabilities are absorbed above (see "Where the ten v1 gaps land"); the retired v1 pages remain the requirement record in git history. Platform ops — descriptor authoring, the bake fleet, coverage promotion, and license-grant confirmation are an internal operator surface, intentionally absent from tenant navigation. Mobile/field flows — desktop-first per the decisions log; the shell collapses per the responsive strategy above, but designed field-inspection flows are post-launch.