Certification Workflow — 8 Phases
Full interactive version: unlikely.fyi (Cert Flow tab)
Source: Notion — Certification Workflow
Phase 1: Project Intake
- Create Project — Account, address, permit linked
- Permit Parsing — Number, date, expiration extracted
- Expiry Tracking: T−30 day warning → T+24h auto-creates RFI to client
- Build SOW Lines — One per product × project
- Auto Dependencies: Push→Backfill, Slab→Patch, Anchor→Backfill, WM→WallSeal+SlabPatch
Phase 2: Scheduling
- Create Site Visit — Assign SOW Lines to inspect
- Assign Field Tech — WhatsApp notification via Kulu
- Multi-Visit Loop — Partial inspection → reschedule remaining
Phase 3: Field Inspection
- Tech Check-In — Visit status → In Progress
- Inspect Products — Per SOW Line status update
- As-Built Capture: Actual vs permitted quantity logged
- Field Submissions — Photos, driving logs, voice notes
- Tech Check-Out — Outcome + additional inspection flags
Phase 4: Deliverables (Crew Requests)
- Gap Detection — Missing photos, logs identified automatically
- Crew Requests — WhatsApp → Field Tech
- Escalation Chain: 6h remind → 24h escalate to tech → 48h escalate to client (auto-RFI) → 72h block cert
- Waiver Option: Skip with audit trail (reason + who + when)
Phase 5: RFIs (Client Info Requests)
- Auto / Manual RFI — Permit, scope, or missing items
- Priority Escalation — Standard (48h/96h/7d) / Urgent (24h/48h/72h) / Blocking (6h/24h/48h)
- Response → Resolve — Updates project status
Phase 6: Certification
- Pre-Cert Validation — All inspected, no open blocks
- Scope Resolution — Permitted vs as-built reconciliation
- Brand / Certifier — bh. vs UP branding + Diehl vs Valerio (by jurisdiction + date)
- Generate Package — Certificate + Inspection Report + Photo Sheets + Driving Logs + County Forms
- Upload — To /data/projects/{id}/CERTS/
- Cert Package Record — Versioned: v1.0, v1.1, v2.0, v1.0-A
Phase 7: Invoicing (Stripe)
- Build Line Items — SOW Line × Base Rate × Rate Multiplier
- Production Days: Auto-calculated from field data
- Admin Fees: Trip charges, no-show, emergency service
- Create Invoice — Stripe API with project metadata
- Payment Tracking — Webhooks → status updates
Phase 8: Delivery
- Cert Email → Scheduler/coordinator
- Invoice Email → Billing contact (via Stripe)
- Revision Cycle — Re-open → new version → loop back
Project Lifecycle Statuses
| Status | Entry Trigger | What Happens | Exit Trigger |
|---|
| New | Client submits | Record created | Intake review begins |
| Intake | Reviewer opens | Permit/plans parsed, draft SOW | SOW Lines created |
| SOW Draft | SOW Lines auto-created | Admin reviews scope | Admin confirms |
| SOW Confirmed | All SOW Lines confirmed | Permitted scope locked | Client provides date |
| Scheduling | Inspection date requested | Calendar checked, visit created | Date confirmed |
| Scheduled | Visit with calendar event | Tech sees on schedule | Tech arrives |
| In Progress | Tech checks in | Field work active | Tech completes |
| Field Complete | Tech ends visit | Completeness check runs | All deliverables received |
| Pending Deliverables | Crew requests exist | Escalation chain active | All received |
| Pending RFI | Open RFIs exist | Escalation chain active | All resolved |
| Partially Inspected | Some SOW Lines done | Schedule next visit | All inspected |
| Ready for Cert | All inspected, no blocks | Cert generation can proceed | Certifier runs |
| Certified | Package generated | Awaiting approval/delivery | Cert delivered |
| Delivered | Cert + invoice sent | Complete | Payment received |
| Re-Opened | Crew returns / scope added | New SOW Lines | Back to Scheduling |
| On Hold | Admin pauses | All timers paused | Admin resumes |
| Cancelled | Project cancelled | Terminal | None |
Escalation Timelines
Crew Deliverable Escalation
| Time | Action | Channel |
|---|
| T+0 | Request created and sent | WhatsApp |
| T+6hr | First reminder | WhatsApp |
| T+24hr | Escalate to tech + internal flag | WhatsApp + Internal |
| T+48hr | Escalate to client (auto-creates RFI) | Portal |
| T+72hr | Block certification | Internal |
| Any time | Override: waive deliverable (audit trail) | Manual |
Permit Expiration Escalation
| Time | Action | Channel |
|---|
| T−30 days | Warning flag set | Internal |
| T+0 | Expired flag, cert blocked | Internal |
| T+0 to T+24hr | Override window (exempt + reason) | Manual |
| T+24hr (no override) | Auto-escalate to client, RFI created | Portal |
| After renewal | Updated permit received, flags clear | System |
Role Summary (5 Roles, 88 Tasks)
| Role | Who | Tasks |
|---|
| Admin / Certifier | Dustin + Diehl + Valerio | 37 |
| Field Technician | UP inspection techs | 14 |
| Office Staff / Scheduler | Contractor PMs, coordinators | 16 |
| Field Crew | Foremen, installers | 8 |
| Accounts Payable | AP clerks, billing contacts | 7 |