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