Standard Operating Procedures v2.0

Unlikely Professionals | Version 2.0 | March 2026 Prepared by Dustin Thacker, Assoc. AIA inspections@unlikely.pro | 202.873.5555


1. Overview

Unlikely Professionals (formerly blackhouse. LLC) provides third-party structural engineering inspections and certifications for foundation repair contractors. We certify foundation stabilization, structural repair, water management, and encapsulation work across 17 eastern US states, with primary operations in Maryland, Virginia, and Connecticut.

This SOP covers the end-to-end workflow from project intake through certification delivery and invoicing, as managed through the Entirely portal (entirely.it.com).

Certifying Professionals

CertifierCredentialJurisdictions
Charles Diehl, AIAMD Architect #21027 (Approval ID: B2022-103)Anne Arundel County MD, Montgomery County MD
John C. Valerio, PEMD PE #16657 / VA PE #044764 / CT PE #15080All other MD, all VA, all CT

Core Tech Stack

SystemRole
Entirely PortalOperations hub — intake, scheduling, workbench, review, delivery (entirely.it.com)
SupabasePrimary data store (sole source of truth for all reads and writes)
Local FilesystemFile storage (/data/projects/{record_id}/)
StripeInvoice creation and payment tracking
GmailCert/invoice delivery and client communication
Friday AIPortal AI assistant — analysis, notes, chat context, voice info
Claude AICertification package generation and workflow automation
WhatsApp (Kulu)Field team daily schedule delivery, AI agent for field ops

Pipeline Status Flow

Intake → Scheduled → In Progress → Field Complete → Ready for Cert → Certified → Invoiced → Closed

Parallel tracks:

  • Cert Status: Not Started → Draft → Approved
  • Invoice Status: Not Invoiced → Sent → Paid
  • Flags: on_hold, cancelled, needs_return_visit

2. Project Intake

New projects enter through the Entirely Intake Wizard or via email/chat from contractors. The portal auto-enriches submissions with geocoding, jurisdiction lookup, certifier routing, forms detection, and timeline estimation.

StepActionSystemNotes
2.1Receive request from contractor with site address, permit number, property owner, and scope of workEmail / Chat / Portal IntakeClient-initiated or scheduler-submitted
2.2Submit through Intake Wizard (or create manually)Entirely PortalAuto-enrichment: geocoding, jurisdiction, certifier, forms, timeline
2.3Duplicate detection runs automaticallyAutoFuzzy address match against existing projects
2.4Create project record with all intake fields populatedSupabaseStatus → Intake. Uses supabase_write_service.create_project()
2.5Create project folder and upload any permits/plans received/data/projects/Folder: {record_id}/PERMITS/, /PLANS/
2.6Build SOW lines from products requested — one line per product per projectSupabaseAuto-include dependencies (e.g., push piers → backfill, WTR/ENC → parent service)
2.7Parse uploaded permits/plans — extract dates, numbers, jurisdiction formsAutoParse-on-upload via document parser
2.8Set status to “Scheduled” once date confirmed with clientSupabaseTriggers scheduling phase

3. Scheduling

Scheduling is managed through the Entirely portal’s Day View (24-hour timeline) and Calendar (month view). Schedulers and assistants manage appointments through the portal — Google Calendar is not connected.

StepActionSystemNotes
3.1Client provides preferred inspection date and timeEmail / Chat / PortalClient-driven scheduling
3.2Scheduler checks availability via Day View or CalendarEntirely Portal24-hour timeline with hourly gridlines
3.3If <24hr notice: flag as rush job, require internal approvalEntirely PortalEmergency service fee auto-attached
3.4Create site visit record linked to projectSupabaseCaptures date, time, tech assignment, access instructions
3.5Update project status → “Scheduled”SupabaseVisible on portal Calendar with status/branch coloring
3.6Confirm appointment with client via emailGmailInclude address, date/time, scope
3.7Daily schedule auto-delivered to field tech at 6:00 AM ETWhatsApp (auto)Next-day appointments with addresses and scope summaries

4. Field Inspection

The field technician conducts the on-site inspection. Photos and field data are uploaded to the local filesystem via the portal. The Kulu AI agent (WhatsApp) supports the field tech with schedule info, project context, and data submission.

StepActionSystemNotes
4.1Tech receives daily schedule via WhatsApp at 6:00 AMWhatsApp (auto)Address, scope, contacts for each site
4.2Tech arrives on site; checks in and confirms scope with crewOn-siteIf unable to inspect: flag as “unable to inspect” with reason
4.3Inspect each installed product against the permitted scope and SOW linesOn-siteNote any as-built variances from permit
4.4Capture field photos of all inspected products and site conditionsCamera / PhoneOverview + close-up per product
4.5Complete driving logs for pier installationsPaper / PhonePier location, depth, PSI, extensions, final load
4.6Record field technician notes: observations, discrepancies, crew infoWhatsApp / PortalCaptured in project notes
4.7Upload photos and field logs to project folder/data/projects/Auto-optimized: 2400px long edge, 85% JPEG, EXIF rotation
4.8If work is incomplete, request additional visit — do not mark completePortalMulti-visit loop: reschedule for remaining items
4.9Update status → “Field Complete” once all documentation submittedSupabaseTriggers auto-validation

5. Auto-Validation & RFI

When a project reaches “Field Complete,” the auto-validation service runs a 10-point checklist. If all checks pass, the project auto-advances to “Ready for Cert.” If gaps are found, an RFI is created automatically.

StepActionSystemNotes
5.1Auto-validation runs 10-point checklist on Field Complete projectsAutoPhotos, SOW lines, driving logs, permit data, notes
5.2If all checks pass: auto-advance to “Ready for Cert”AutoNo human intervention needed
5.3If gaps found: create RFI specifying exactly what’s missingAuto / PortalRFI visible in portal, notification sent
5.4RFI escalation chain: scheduler → office mgr → GMAuto6hr → 24hr → 48hr → 72hr hold
5.5Contractor provides missing deliverablesEmail / WhatsAppUploaded to project folder
5.6Resolve RFI and re-run validationPortalProject advances when all RFIs resolved

Pipeline Shepherd (Daily Scan)

The Pipeline Shepherd runs daily at 7:45 AM ET and scans all active projects for stuck items:

  • Projects stalled >45 days trigger triage alerts
  • Auto-sends WhatsApp reminders for missing deliverables
  • Auto-validates eligible Field Complete projects
  • Generates notifications for projects needing attention

6. Certification

Core deliverable. AI generates the certification package. Confidence-based routing determines whether the cert goes directly to the client or queues for owner review.

Certifier Selection Logic

  • MD Anne Arundel + Montgomery → Charles Diehl, AIA
  • All other MD, all VA, all CT → John C. Valerio, PE
  • Selection is automatic based on jurisdiction

Confidence Routing

  • Send Direct: Project total ≤$5K AND no proprietary-form county → cert routes directly to client after generation
  • Queue for Review: Project total >$5K OR proprietary-form county (Anne Arundel, Montgomery, Fairfax, Arlington, Stamford) → queues in Owner Review for manual approval
  • Owner can always override: approve, request revision, or send direct from the review queue

Brand Rules

  • Inspection date before 2026-01-28 → blackhouse. LLC brand
  • Inspection date on/after 2026-01-28 → Unlikely Professionals brand
  • Brand based on inspection date, not certification date
StepActionSystemNotes
6.1Run pre-certification validation: confirm all SOW lines have inspection data and photosAutoCannot proceed if gaps exist
6.2Resolve scope: compare permitted quantities vs. as-built (actual installed)AutoCert covers what was actually inspected
6.3Determine brand and certifier based on inspection date and jurisdictionAutoAutomatic routing
6.4Generate certification package: cert document, photo sheets, driving logs, county formsClaude AIWeasyPrint + Jinja2 templates
6.5Confidence routing evaluates guardrailsAuto≤$5K + no forms county → send direct; otherwise → owner review
6.6If queued: owner reviews in Owner Review page or Admin reviews in WorkbenchEntirely Portal4-column Kanban: Not Started → Draft → Approved → Sent
6.7Approve, request revision, or send directEntirely PortalRevision creates new version (v1.1+)
6.8Upload approved cert PDF to project folderAuto/data/projects/{id}/CERTS/
6.9Create cert package record with version metadataSupabaseVersion v1.0 = original, v1.1+ = revisions
6.10Update cert status → “Approved”SupabaseTriggers delivery

7. Invoicing

Runs in parallel with certification — does not wait for cert completion. Invoice generation follows the same confidence-based routing as certification.

StepActionSystemNotes
7.1Look up Stripe Customer ID from the project’s linked AccountSupabase → StripeEach Account has a Stripe Customer ID
7.2Check for existing invoiceSupabaseDon’t duplicate if Stripe Invoice ID exists
7.3Build invoice line items from SOW lines: one line per product inspectedStripe APIMetadata includes record IDs for traceability
7.4Add production day charges and admin fees (trip charges, no-show fees)Stripe APIAuto-calculated from event flags
7.5Add custom fields: Permit Number, Property Address, Property OwnerStripe APIAppears on invoice PDF for client reference
7.6Confidence routing: send direct or queue for reviewAutoSame guardrails as cert routing
7.7If queued: review in Workbench or Owner ReviewEntirely PortalApprove and send
7.8Invoice sent via Stripe to clientStripeStripe emails client directly
7.9Invoice PDF auto-uploads to project folderAuto/data/projects/{id}/INVOICES/
7.10Update invoice statusSupabaseNot Invoiced → Sent → Paid

8. Delivery

Certification and invoice delivery are triggered from the portal. Email is sent from dustin@unlikely.pro to the account’s default deliverables email addresses.

StepActionSystemNotes
8.1Cert delivery triggered when cert status set to ApprovedAutoEmail with cert PDF attached
8.2Email sent to Account’s default deliverables email(s)GmailSubject: Certification Package - {Address} - Permit #{Number}
8.3Delivery logged in Delivery LedgerSupabaseAudit trail of all sends with timestamp and recipient
8.4Update project status → “Certified”SupabaseStatus depends on invoice state
8.5If revision requested: generate new version (v1.1+), re-upload, re-deliverClaude AIVersion history maintained in cert packages
8.6Payment receipt auto-updates invoice status → PaidAutoStripe webhook triggers update
8.7Project status → “Invoiced” then “Closed” when both cert and payment completeSupabaseTerminal state

9. Payment Reconciliation

The portal includes a Smart Reconciliation system for matching payments to invoices.

StepActionSystemNotes
9.1Payments received via Stripe webhook auto-match to invoicesAutoHigh-confidence matches close automatically
9.2Remittance files (CSV/PDF) uploaded via AP Portal or portal recon pageEntirely PortalParser extracts invoice numbers and amounts
9.33-tier confidence matching: exact → fuzzy → manualAutoAuto-close for exact matches
9.4Pending matches queued for reviewEntirely PortalOwner reviews in Smart Recon page
9.5Reconciliation scanner runs on cron for catchup matchingAutoCatches payments that arrived without webhook
9.6Invoice status updated: Sent → PaidSupabaseProject advances toward Closed

10. Edge Cases & Special Handling

Rush / Emergency Jobs (<24hr Notice)

Jobs within 24 hours require internal approval via the portal. Emergency service fee auto-attaches during invoicing. No manual fee calculation needed.

Unable to Inspect / No-Show

Tech arrives but can’t complete (work not ready, access denied, safety). Flag triggers admin/trip charge fee on invoice. Project stays open for rescheduling.

Multi-Visit Projects

Each visit is a separate site visit record linked to the same project. Cert not generated until all SOW lines inspected across all visits. Invoice covers all visits as a single billing unit.

County-Specific Forms (Auto-Appended)

  • Anne Arundel County, MD: Forms 210 (Footing), 215 (Backfill), 240
  • Montgomery County, MD: Checklist
  • Prince William County, VA: Building Inspection form
  • Fairfax County, VA: Building + Foundation + Retaining Wall forms
  • Arlington County, VA: Final Report of Special Inspections (SSI)
  • Stamford, CT: Code Statement + Final SSI

These forms are auto-detected during intake enrichment and auto-appended during cert generation based on jurisdiction and scope.

Permit Expiration Monitoring

T−30 days: warning flag raised. If no exemption set within 24hrs of expiration, escalate to client.

Triage Pipeline

Projects stale >45 days or without assignment enter the Triage Pipeline — a separate 5-column Kanban (Intake → Scheduled → Field Complete → Certification → Closed) managed by the Triage role. Includes intake enrichment, resolution tracking, and archive for >90-day closed projects.


11. Portal Roles

RoleDefault PageAccess Level
OwnerCommand CenterFull access — pipeline, review queue, analytics, Friday AI, reconciliation, audit
AdminWorkbenchCert/invoice queue (4-column Kanban), confidence routing, RFI resolution
SchedulerDay View24-hour timeline, calendar, intake wizard, schedule change management
Scheduler AssistantCalendarCalendar view, project list, schedule change requests
General Operations (GOA)Branch DashboardBranch-scoped metrics, needs-attention alerts, team coordination
TriageTriage PipelineStale project investigation, intake, resolution tracking
AP (self-service)AP PortalInvoice lookup, remittance upload, payment history
Field InspectorWhatsApp + KuluDaily schedule at 6 AM, AI agent for field queries (no portal login)

12. Status Reference

Project Status Flow

Intake → Scheduled → In Progress → Field Complete → Ready for Cert → Certified → Invoiced → Closed

Boolean flags: on_hold, cancelled, needs_return_visit

Cert Status

Not Started → Draft → Approved

Invoice Status

Not Invoiced → Sent → Paid

Confidence Routing Outcomes

Send Direct — low risk, auto-delivered
Queue for Review — guardrails triggered, owner/admin approval required
Revision Requested — sent back for corrections