Job Progress & 12-Week Cash Forecast — DEMO (anonymized sample data)

Job Progress & Cash Collection

FP&A Operators

Cash by Horizon

Scheduled receipts by time bucket

Forecast by Period

Weekly — next 12 weeks (ending Friday)

Monthly — next 6 months

Job & Event Detail

Date Day Customer Job PM Description Amount When
Amount Job # Customer PM Bill Collect

Each row is one cash milestone, pairing its Bill and Collect legs. Status: done (checked in JobTread), in progress (a Bill due today, or a Collect within 2 days of its bill), past due (a Bill past its date, or a Collect more than 2 days past its bill), not yet scheduled / future. A no collect tag marks a Bill with no matching Collect scheduled — a gap to review. Amounts shown once per milestone.

Framing work started, drywall/midpoint bill not yet billed Finish Work drywall/midpoint bill has been billed Punch Out only Punch Out / final cash remains ahead
Customer Job PM Phase Next Scheduled Event Remaining Scheduled Cash Last Scheduled Date

Active = job has at least one open task and its Start of Work milestone (or first materials payment) is already behind us. Phase reflects construction progress: Framing — work has started but the drywall / midpoint bill has not gone out yet; Finish Work — the drywall (or halfway/midpoint) milestone has been billed, taken as any drywall leg (bill or collect) dated on or before today, since a scheduled collect implies the bill issued; Punch Out — approaching final billing, with only Punch Out / final cash still ahead. Remaining cash is the post-dedup forecast for that job (unknown-$ events excluded from the figure, counted separately).

Projected Start Customer Job On Track 10% Deposit Finish Materials Start of Work Bill Remaining

A marks a milestone whose Collect leg is already behind us (treated as collected). 10% Deposit and Finish Materials show the scheduled draw; Start of Work Bill is the trigger amount that opens construction; Remaining = job value − cash already collected. On Track reflects the job's pre-construction (Measure / Design) progress from the Pre-Cons Ops view: On track if its design phases are progressing as scheduled, Behind if a phase window has closed without the next starting. The total row sums total job value across all pre-construction jobs.

Customer Job Current Phase Measure Drawing Design Materials Design Status Next cash milestone

Each pre-construction job moves through Measure → Drawing Design → Materials Design before materials can be ordered and Start-of-Work can bill. Each row has two lanes: the Plan lane (top, hatched) shows the originally scheduled phase windows, and the Actual lane (bottom, solid) fills in once the designer logs actual start and end dates in JobTread — until then it shows a dashed placeholder. The vertical marker is today. A planned phase whose window has closed without the next starting is outlined in red. Next cash milestone shows the upcoming collection that follows once each job clears its design phases. Jobs without a scheduled design sequence in the export show .

Projected Start Customer Job Materials Order Status Finish Materials $ Start of Work $
Permit tracking Placeholder — awaiting permitting task export

This lens will track Permit — Submitted and Permit — Approved per job once a permitting export is supplied. The current export carries no permit status fields. Structure below is wired and ready to populate.

CustomerJobPermit SubmittedPermit Approved
Scenario What it stresses Baseline (12-wk) Stressed Δ Risk

Baseline = the as-built 12-week parseable forecast. Each scenario perturbs one assumption and re-totals cash landing inside the 12-week window. Risk reflects both the size of the swing and how plausible the scenario is for this client. This is a what-if lens for Tim — it shows what we started with and what survives stress, not a revised forecast of record.

Scope & Disclosures

Methodology & Data Lineage

1Data source. JobTread "Money" task schedule export for [CLIENT] Construction & [CLIENT] Electric. Customer names, job descriptors, dates, and task descriptions are sourced from a single PDF export. Task descriptions are parsed for dollar amounts via regex; amounts entered with a period as the thousands separator (e.g. a "$33.566" entry) are normalized to their comma-formatted value. Freeform descriptions containing percentage-based milestones ("Halfway Point Invoice 40%") cannot be resolved to a dollar figure without reference to the underlying contract value and are surfaced as Unknown $ items.

2Dedup logic. When a Bill and Collect event share the same customer, job, and dollar amount, the Bill is dropped and the Collect retained to prevent double-counting (the suppression count for this refresh is shown in the §04 commentary and reconciled on the QC tab). Note this keys on amount, so Bill/Bill duplicates at the same amount with no Collect leg — e.g. three identical bills on one job — are NOT suppressed; they are counted and flagged separately in QC. A completed-task filter also runs ahead of dedup; this export was generated with completed tasks excluded at the source, so that filter is a no-op this refresh.

3Date filter. Past-dated tasks are excluded (start_date < today). Today is treated as future-eligible. Hardcoded reference date: 2026-06-13.

4Bill events treated as pay-on-receipt. The Bill date is used as the cash arrival date. No payment lag has been applied. Applying a customer-specific days-to-pay distribution is a modeling decision that requires a historical receivables dataset and should be deferred until that data is available.

5Anonymization. Individuals anonymized to last name only. Businesses anonymized to most distinctive identifier with location and contact information stripped. Physical addresses have been removed from the data layer, not merely hidden from the display.

612-week horizon. This dashboard covers 84 calendar days from 2026-06-13. Cash events scheduled after the last charted Friday fall outside the chart window but remain in the full dataset and the detail table (the running beyond-horizon total is stated in the §04 commentary). Order/receive/design tasks may run later still.

7Job status & derived start dates. The export contains no explicit job-start field. Start dates are derived in a separate, validated step: the Start of Work milestone date (High confidence), else the business day after the materials payment (Medium), else the business day after the finish-materials order (Low). The derived date is then sequence-checked against the job's own scheduled range; a date falling after the last scheduled task or before the deposit is flagged for manual verification. Status uses a Monday-flip rule: a job is Pre-Construction through end of day Monday of its start week and Active from the Tuesday onward. Jobs with no derivable start are held in a distinct Unknown start bucket rather than defaulting to Active. These are scheduling inferences, not site-confirmed dates — verify against the production calendar before resourcing.