Simplified 8-status linear lifecycle from intake through close-out. On Hold and Cancelled are flags (can be applied at any stage), not separate statuses. Triage is a side-path flag for 45-day aging projects.
Schedulers submit projects via the client portal. System parses permits, extracts SOW data. Submissions enter an admin approval queue before Supabase record creation.
Field tech confirms Permitted Scope of Work (PSoW) on arrival. If scope matches, it becomes ABSoW. If not, changes are recorded and revised list becomes the As-Built Scope of Work.
At 30 days on hold, the system auto-generates an RFI requesting a project status update. Projects in the Holding Pool with no activity for 30+ days get flagged. This is the early warning before the 45-day triage transfer.
Projects exceeding 45 days since inspection transfer to the JES Triage account. Regional scope: Baltimore, Manassas, Richmond only — North Haven falls under a different region. Original scheduler loses portal access. GOA retains visibility. Invoices route to originating branch.
7,006 projects total
404 Ready for Cert
214 Certified
42 Closed
88 Field Complete
~6,000 Archived (PMS)
2,286 Xero invoices ($2.7M)
Pipeline: 3 sources blended
Swim-lane view showing handoffs between actors. The pipeline runs entirely on the VPS — no external services except Gmail for delivery, Supabase for all data operations (sole source of truth), and Revolut for payment reconciliation. SmartSuite receives a mirror copy during the soak period (through April 6, 2026).
Entire pipeline runs on a single dedicated server. No cloud functions, no Zapier. HTML rendered via Jinja2, PDF converted by WeasyPrint, all stored locally.
Automated checklist: SOW completeness, photo requirements, drive log presence, RFI resolution, address verification, permit status, production days, and more. Auto-advances cert status on pass.
MD Anne Arundel → Diehl AIA
MD Montgomery → Diehl AIA
MD all other → Valerio PE
VA all → Valerio PE
CT all → Valerio PE
Four automated layers: (1) Auto-validation on field complete — 10-point check, auto-advance or generate RFI. (2) Pipeline Shepherd — daily 7:45 AM scan of all active projects, detects stuck items, sends WhatsApp alerts + portal notifications. (3) Intake enrichment — auto-populates jurisdiction, certifier routing, forms, and timeline. (4) Confidence routing — Jacob sends directly when confident, guardrails queue for Dustin's review.
Confidence-based payment matching: HIGH (exact invoice + amount) auto-executes, MEDIUM (partial match) queued for Jacob, LOW (no match) dashboard only. $5K+ guardrail requires human confirmation. Gmail inbox polling every 30 min for EFT remittance PDFs.
When a project is in JES Triage, invoices route to the originating branch — not the triage team. Reverse-lookup determines original account.
Integration map of all services, connections, and data flow. The VPS is the operational center — Supabase is the sole source of truth for all data operations (reads, writes, creates), Revolut handles payments, Gmail handles delivery, Google Calendar manages scheduling, and the client portal provides external access. SmartSuite receives a mirror copy during the soak period (through April 6, 2026).
All services run on one Hostinger KVM8 VPS. Caddy handles TLS termination and routing. Docker isolates the API and webhook containers.
Supabase is the sole source of truth for all data operations (reads, writes, creates) with self-generated IDs. SmartSuite receives a mirror copy during the soak period (through April 6, 2026). Three sources feed the pipeline snapshot: Supabase (current), Xero archive (2,286 invoices / $2.7M, 2022–2024, stored in xero_invoices + xero_payments tables in Supabase), and PMS archive (7,774 historical records). Deduplication prevents double-counting across sources. Local SQLite handles auth, conversation log, and schedule changes.
React 19 SPA with role-based routing. 6 roles across 2 portal domains. Auth via SQLite with session tokens. 380+ API endpoints across 57 route files (includes 17 /history/* endpoints for archive intelligence).
Layer 1: Hostinger daily VPS snapshot
Layer 2: Offsite NAS RAID daily snapshot
Layer 3: SS JSON + SQLite nightly
Layer 4: Supabase PG (sole SoT)
How certification packages and invoices are built, stored, and delivered. Both follow the same pattern: data aggregation from Supabase, template rendering via Jinja2, PDF conversion via WeasyPrint, local storage, and delivery via Gmail API.
Each division has its own Jinja2 template module. UND generates SVG drive log charts. ANC/BRC produce per-unit tables. FND uses a component checklist. Modules compose into a single HTML document.
The /cert-gen/approve endpoint accepts JSON overrides — corrections to auto-populated data. Overrides are saved alongside the cert for audit trail.
Line items: SOW quantity x product unit price. Production day charges added for qualifying products. Trip charges added when applicable. Triage invoices route to originating branch.
Inspection before 2026-01-01:
blackhouse. LLC branding
Inspection 2026-01-01+:
Unlikely Professionals
Eight primary certification divisions plus add-on modules. Each division groups related products that share a common cert template pattern. Stacking order determines the sequence in which divisions appear on a multi-scope certification package.
P1 — Per-unit with driving log. SVG aggregate chart generated from PSI/torque data. Only UND products.
P2 — Per-unit table. Each installed unit gets a row with location, dimensions, specs.
P3 — Checklist and compliance. Component list with pass/fail verifications.
Add-ons are auto-triggered by parent products. They never appear independently on a SOW. Backfill quantity equals the count of triggering parent products.
FND and RTW divisions need deeper spec work. FND areaway and ABC components are undetailed. RTW entire module was skipped during the PSoW/ABSoW review session.
People, roles, systems, and how they connect. The zero-contact policy means property owners never interact with Unlikely — all communication flows through the general contractor accounts. The portal enforces role-based access across five domains.
Jacob drafts certs and invoices. When confident, he sends directly to the client. When unsure — or when guardrails trigger ($5K+ invoices, Anne Arundel/Montgomery/Prince William counties) — items queue for Dustin's review. Dustin approves or requests revision with notes. Intake, schedule changes, cancellations, and escalations are consolidated in the Action Center (/actions).
Darius operates entirely via WhatsApp. No portal login. Daily schedule sent as message. Photos and data returned via WhatsApp. PSoW/ABSoW gate happens on a mobile form.
up_owner — full access, user mgmt, Action Center
up_admin — Action Center, review, drafting
scheduler — daily work, projects, communication
goa — daily work, projects, communication + read-only certs/invoices
triage — scheduler powers, aged jobs
assistant — same nav as scheduler, narrower permissions
Conversations live inside each project — no standalone Messages page. All portal roles access the Correspondence section on project detail pages. Red dots on project rows and calendar events indicate unread messages. Four notification channels: portal, email (Gmail), WhatsApp, SMS. Review conversations auto-created for queued certs/invoices. RFIs operate as conversations with escalation chains. Friday AI available in all threads (role-based voice: Internal for owner/admin, Staff for scheduler/GOA/assistant). Pipeline Shepherd monitors unanswered messages (>24h) and stale assignments (>48h).
Pre-2026 inspections: blackhouse. LLC branding. Post-2026: Unlikely Professionals. Determined by inspection date, not generation date.