Entirely uses a simplified 5-stage pipeline that collapses the Mostly v1 8-status model. Certification and invoicing run as independent parallel sub-tracks within the Processing stage. On Hold and Cancelled remain boolean flags applicable at any stage.
5 vs 8 Stages
Entirely collapses Mostly's 8-status model into 5 user-facing stages. Scheduled absorbs In Progress. Processing absorbs Ready for Cert, Certified, and Invoiced. The backend retains all 8 statuses for granular tracking.
Parallel Sub-tracks
Certification and invoicing are independent. A project can be cert-approved but not yet invoiced, or invoiced before cert approval. Both must reach terminal state (Approved + Paid) before the project closes.
Auto-Validation
When a project reaches Field Complete, a 10-point checklist runs automatically: SOW completeness, photo requirements, drive log presence, RFI resolution, address verification, permit status, production days. Passes auto-advance to Processing; failures generate an RFI.
Intake Enrichment
New projects auto-enrich on creation: geocoding, jurisdiction lookup, certifier routing, required forms detection, timeline estimation, and fuzzy address matching against 7,700+ historical records.
02Certification & Invoice Pipeline
Swim-lane view showing handoffs between actors. Cert and invoice are generated together as one package — Jacob drafts the cert in the Workbench, the system auto-generates the paired invoice, and both are sent as a single action. Confidence routing determines whether Jacob sends directly or queues for Dustin’s review.
Unified Package
Unlike Mostly v1 which treated cert and invoice as separate rendering tracks, Entirely generates both as a single action. Jacob drafts the cert in the Workbench and the system auto-generates the paired invoice from SOW line items. Both are sent together.
Certifier Routing
MD Anne Arundel → Diehl AIA
MD Montgomery → Diehl AIA
MD all other → Valerio PE
VA all → Valerio PE
CT all → Valerio PE
Confidence Routing
Jacob drafts cert + invoice packages in the Workbench. Confident submissions send directly. Guardrails trigger on $5K+ invoices and specific jurisdictions (Anne Arundel, Montgomery, Prince William), routing to Dustin's Owner Review Queue.
Smart Reconciliation
HIGH confidence (exact invoice + amount) auto-executes. MEDIUM (partial match) queued for confirmation. LOW (no match) dashboard only. EFT remittance polling Tue/Thu 2–8 PM ET. WhatsApp alert if no EFT by 8 PM cutoff.
03System Architecture
Integration map of all services. The VPS is the operational center — Supabase is the sole source of truth, Gmail handles cert/invoice delivery and remittance polling, Revolut handles banking and payment reconciliation. No Google Calendar — scheduling is fully internal. Entirely v2 is the active portal; Mostly v1 runs in parallel.
Single Server
All services run on one Hostinger KVM8 VPS. Caddy handles TLS termination and routing for 15+ domains. Docker isolates the API, webhook, worker, scheduler, and Redis containers.
Data Flow
Supabase is the sole source of truth (10,750 projects). All CRUD through Supabase with self-generated IDs. Historical archives (85 GB, 5 sources) fuzzy-matched to active projects. Local SQLite handles auth, chat, and schedule changes.
Payment Flow
Invoices generated as HTML links (same as certs). Revolut is the live banking and reconciliation platform. Gmail polls for EFT remittance advice emails. No Stripe — invoicing is fully internal through the API.
AI Layer
Friday AI powers the portal: Opus for owner/admin, Sonnet for staff. SQL query engine (read-only), Tufte chart rendering, write actions, archive search. Multi-voice: internal, staff, client, field. Rob handles WhatsApp interactions for the field team.
04Role Architecture & Portal Shells
Seven roles access Entirely at entirely.it.com. Each role sees a tailored shell — different sidebar navigation, different landing page, different data scope. All roles share the same React app; routing is controlled server-side via JWT claims.
One Domain, Seven Shells
Unlike Mostly (5 portal domains), Entirely consolidates everything at entirely.it.com. Role-based JWT tokens control navigation and data visibility. Same credentials as Mostly.
Landing Pages
Owner → Command Center
Admin → Workbench
Scheduler → Day View
Assistant → Calendar
AP → Projects
GOA → Branch Dashboard
Triage → Triage Pipeline
45-Day Transfer
When a project ages past 45 days without resolution, the scheduler loses access and the triage team gains it. GOA retains visibility throughout. Triage operates a 5-column kanban: new, investigating, awaiting documents, resolved, returned.
Field via Rob
Darius (field inspector) has no portal login. Rob is the WhatsApp bot handling schedule lookups, project queries, and field data relay. Daily schedule delivered at 6 AM ET via WhatsApp. PSoW/ABSoW forms submitted via mobile.
05Division & Product Matrix
Nine divisions, 50+ products. Each division has a dedicated Jinja2 cert template module. Stacking order determines sequence in multi-scope certification packages. Product codes follow the pattern DIV-TYPE.
Division Templates
Each division has its own Jinja2 template module. UND generates SVG drive log charts. ANC/BRC produce per-unit tables. FND/WTR use component checklists. Modules compose into a single HTML document.
Stacking Order
Multi-scope projects (e.g., UND + BRC + WTR) render divisions in stack order. UND always appears first, ADM add-ons always last.
Add-on Rules
WTR-BSMT automatically triggers ADD-SLAB + ADD-WSEAL on both cert and invoice. Wall seal quantity = linear feet x wall height (default 8ft). Slab restoration is always paired with basement waterproofing.
ADM Division
Administrative items appear on invoices only, never on certs. Rush fee auto-applied when scheduling <24hr. Missed appointment charges include the no-show date in MM/DD/YYYY format.
06Stakeholder & Account Map
People, roles, accounts, and how they connect. The zero-contact policy means property owners never interact with Unlikely — all communication flows through the general contractor accounts.
Account Hierarchy
All JES branches (Baltimore, Manassas, Richmond) and GW North Haven fall under Groundworks Corporate. JES Triage is a regional pool where projects transfer after 45 days of inactivity.
Branch Scoping
Each portal user sees only their assigned branch's projects. Schedulers and GOA are branch-scoped. Owner and admin see all accounts. Triage sees only transferred projects.
Invoice Routing
Triage projects route invoices to the originating branch — not the triage team. A reverse-lookup determines the original account for proper delivery.
Brand Logic
Inspection before 2026-01-01:
blackhouse. LLC branding
Inspection 2026-01-01+:
Unlikely Professionals
07Triage Pipeline
The triage pipeline handles stale projects that exceed the 45-day inactivity window. Pipeline Shepherd monitors the clock and auto-transfers qualifying JES projects to the triage account. The triage team reviews, resolves blockers, and returns projects to their originating branch.
Clock Reset
Scheduling a future site visit resets the 45-day clock. This is the primary escape valve for schedulers to prevent auto-deferment when a project is still active but slow-moving.
JES Only
Only Baltimore, Manassas, and Richmond trigger auto-deferment. GW North Haven and Unlikely Pro Direct projects are not subject to the 45-day triage clock.
Blocked Reasons
missing_plans
missing_permits
missing_photos
When blocked, the project holds in triage until the scheduler provides the missing documents, then returns to In Review.
Financial Exclusion
The triage team sees zero financial data. No invoice amounts, no payment status, no pricing. This is enforced at the API level via role-based field filtering.
08Regional Open Permits (Taskforce Tracker)
The Regional Open Permits tracker manages JES’s overdue permit backlog. It is a separate system from the triage pipeline — focused on permit closure tracking rather than project completion. JES provides overdue permit spreadsheets, and the tracker matches them against PMS and Mostly records for live status sync.
Separate System
The Open Permits tracker is NOT part of the triage pipeline. It tracks JES's overdue permit backlog separately. A project can appear in triage AND in the open permits tracker simultaneously.
Matching
Each tracker record links to PMS and/or Mostly for live status sync. Matching uses permit numbers, addresses, and project IDs. Unmatched records remain in the tracker for manual resolution.
Closure
Upload-based batch closure. JES provides a spreadsheet of closed permits. The system matches permit numbers across all zones and moves matched records to the CLOSED zone with a _closed_date timestamp.
Days on BW
Business days elapsed since the permit was expected to close. This metric drives urgency ranking within each zone. Higher days_on_bw records surface first in the tracker view.