Tidewater Home Improvement — the whole process, end to end

From the lead coming in to the checks on the project cost sheet — and every place the pieces have to be joined.

Read from the live systems · pages: tidewater-est / tidewater-crew / tidewater-wo / tidewater-cost / tidewater-overhead

↧ Download the print-ready PDF — 36 × 20 in  ·  ↧ the mermaid source

Grey line = a join that exists today Red line = a join that does NOT exist yet — the gap to work on 1–9 = the order the work flows

Part A · the sale and the work order

flowchart LR subgraph S1["1 · LEAD IN / INTAKE"] direction TB L1["Website · Facebook / IG · Nextdoor
Yelp · Craigslist · Dialpad calls"] L2["Jeff's leads · referrals · repeats"] L3["ClickUp Lead Pipelines
THI + 757 Coastal"] L1 --> L3 L2 --> L3 end subgraph S2["2 · ESTIMATE — Lane 1"] direction TB E1["Walkthrough / inspection"] E2["Estimate built
web estimate page + quote"] E3["Sent to the customer
tidewater-est-SLUG"] E4{{"ACCEPTED
ClickUp won"}} E1 --> E2 --> E3 --> E4 end subgraph S3["3 · ACCEPTED JOB — the handoff"] direction TB A1["One lane · one thread per job
#accepted-jobs"] A2["House Production Sheet
tidewater-crew-SLUG"] A3["Ludy owns: crew · day allowance
$$ · install date"] A1 --> A2 --> A3 end subgraph S4["4 · WORK ORDERS + SCHEDULE"] direction TB W1["WO matrix
tidewater-wo-SLUG"] W2["Work order per crew
+ one bill per WO"] W3["Crew page + crew report
tidewater-wo-SLUG/reporte"] W4["Project window
ClickUp board + calendar"] A3 --> W1 W1 --> W2 W1 --> W3 W1 --> W4 end E4 --> A1 NEXT["↓ the job runs — see Part B below"] W2 --> NEXT W2 -->|"bill built"| GHOST_C["the cost sheet
(Part B · stage 6)"]:::ghost M1G["Invoice Ninja
(Part B · stage 7)"]:::ghost M1G ==>|"GAP 4 · the change order
needs its own document"| E3 classDef ghost fill:#f7f9fc,stroke:#c9d6e6,stroke-dasharray: 4 4,color:#5b6a7f

Part B · the field, the money and the checks

flowchart LR subgraph S5["5 · THE FIELD — what actually happened"] direction TB F1["WhatsApp · Dirección d trabajo
the day's houses + trades
= THE DAYS OF RECORD"] F2["WhatsApp · Solo Recibos
material receipts"] F3["WhatsApp · Invoice Payments
the customer's money"] F4["wa-sync cron · every 15 min
export to the MAYWO drive"] F1 --> F4 F2 --> F4 F3 --> F4 end subgraph S6["6 · COST SHEET — per job"] direction TB C1["overview project sheet
RECEIPTS · DISPOSABLES · LABOR
COMMISSION · PAYMENT · SUBS"] C2["Project cost analysis
every material line + its receipt"] C3["PROJECT COST TOTAL
cost → GANANCIA"] C2 --> C1 --> C3 end subgraph S7["7 · MONEY"] direction TB M1["Invoice Ninja
estimate · invoice · CWO quotes
payments"] M2["Plastiq · check · ACH"] M3["Bank + EXPENSES ledger"] M1 --> M2 --> M3 end subgraph S8["8 · THE BOOK + OVERHEAD"] direction TB B1["Main Project Cost 2026
2026 to current — one row per job"] B2["Overhead + debt register
doors-open · jobs needed"] B3["Overhead page
tidewater-overhead"] B2 --> B3 end subgraph S9["9 · THE MIRROR + CHECKS — this stage"] direction TB X1["Project Cost Sheet page
tidewater-cost-SLUG
the glance"] X2["CHECKS
the document vs the record"] X3["The records
every real document, linked"] X1 --> X2 --> X3 end W2G["the work order + bill
(Part A · stage 4)"]:::ghost F1 -->|"days worked"| C1 F2 -->|"receipts"| C2 F3 -->|"money in"| M1 C3 -->|"cost + ganancia"| B1 C1 --> B1 C1 --> X1 B1 --> X1 M1 --> X1 W2G --> X1 F1 --> X2 F2 --> X2 M1 --> X2 B1 --> X2 X2 --> X3 F4 ==>|"GAP 1 · the days of record
must move the bill"| W2G F4 ==>|"GAP 2 · receipts must fill
the cost sheet themselves"| C2 M1 ==>|"GAP 3 · payments must reach
the register + the sheet"| B1 B2 ==>|"GAP 5 · overhead must
reach the job"| C3 X2 ==>|"GAP 6 · the checks need
a trigger"| X1 W2G -.->|"where the bill is"| C1 classDef ghost fill:#f7f9fc,stroke:#c9d6e6,stroke-dasharray: 4 4,color:#5b6a7f

GAP 4 (the change order has no document of its own) is marked in Part A · print size 36 × 20 in · same map at tidewater-system-map.pages.dev