How to forecast quarterly revenue as Construction and Contractor Founders

Sales & CRMFor Construction and Contractor Founders3 apps11 steps~22 min to set up

You're running three active jobs, two bids outstanding, and a subcontractor who hasn't invoiced yet — and someone asks you to forecast Q3 revenue. You open QuickBooks, export a report that doesn't match what's actually on the jobs, then try to reconcile it against change orders that live in email threads and a Buildertrend log nobody's kept current. Your Excel forecast is built on contract values, not cost-to-complete, which means it's wrong by the time the ink is dry. You've got AR that looks healthy until you remember two invoices are 60 days out with slow-pay owners. A real quarterly revenue forecast means pulling draws, retention, pending change orders, and bank position together in one place — and right now that takes half a day you don't have.

Sales & CRMFor Construction and Contractor Founders3 apps11 steps~22 min to set up
Outcome

What you'll set up

A live quarterly revenue forecast that pulls your actual bank position and AR from QuickBooks and Plaid, so your projected cash collections reflect what's actually signed and drawn — not just contract totals.
A scenario model that shows you what Q3 looks like if two of your pending bids close, if a current job runs 15% over budget, or if a slow-pay owner pushes a draw by 30 days.
A deal pipeline that tracks every active bid, follow-up status, and estimated close date so you're not guessing which proposals are still alive when you build the forecast.
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your QuickBooks data on a schedule — invoices, payments, AR, and vendor bills — and syncs your Plaid bank transactions and balances on a schedule. For Buildertrend, CoConstruct, or any field management software your office logs into, Starch automates that site through your browser — no API needed — to pull job cost actuals, draw schedules, and change order status. Gmail connects through Starch's integration catalog; the agent queries it live to surface email thread history on each bid and client.

Prompts to copy
Build me a quarterly revenue forecast that pulls my QuickBooks invoices, payments, and AR balance alongside my Plaid bank transactions. Show me projected cash collections by month for Q3, broken out by job. Flag any job where the remaining draw schedule doesn't cover my cost-to-complete estimate.
Create a bid pipeline CRM for my construction company. Fields I need: job name, owner contact, bid amount, bid date, follow-up date, win/loss status, and estimated start date if won. Pull in email threads from Gmail so I can see the last time we communicated with each prospect.
Build a scenario comparison that shows Q3 revenue under three conditions: (1) only my current backlog, (2) backlog plus my two largest open bids both close, (3) backlog plus one bid closes but my kitchen reno job runs 10% over budget and the owner pushes the final draw to October.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect QuickBooks: Starch syncs your invoices, payments, open AR, bills, and vendor records on a schedule. This becomes the financial spine of your forecast — real invoice dates, not estimates.
2 Connect Plaid: Starch syncs your business checking and any draw accounts on a schedule so your cash position is live, not a number you typed in two weeks ago.
3 Wire up your field software: If you run Buildertrend, CoConstruct, or a similar job management platform, Starch automates that site through your browser — no API needed — pulling job cost actuals, draw schedules, approved change orders, and percent-complete by job.
4 Connect Gmail from Starch's integration catalog so the bid pipeline CRM can surface the last email thread with each owner, GC, or architect — the agent queries it live when you open a deal record.
5 Start with the Scenario Analysis app from the Starch App Store — it uses your Plaid and QuickBooks data as the baseline so you're adjusting real numbers, not a blank spreadsheet.
6 Customize the scenario model for construction: add draw schedule timing, retention holdback (typically 5–10% of each draw), and a 'cost overrun' variable for each active job so your scenarios reflect how construction cash actually flows.
7 Build the bid pipeline CRM by telling Starch what fields matter: job address, bid amount, owner name and contact, bid submission date, next follow-up date, and estimated start date if awarded.
8 Ask Starch to cross-reference your pipeline against your forecast: 'Which of my open bids, if awarded, would change my Q3 cash position by more than $50,000? Show me how each one moves the revenue line.'
9 Set a weekly automation: every Monday, Starch pulls updated AR from QuickBooks, checks bank balance from Plaid, and posts a one-paragraph cash position summary to your Slack — so you're never surprised on payday Friday.
10 At the end of each month, use Investor Reporting if you have a partner, investor, or lender who wants a summary: Starch drafts the update from your QuickBooks and Plaid data, you add what happened on the jobs in plain language, and it sends.
11 Refine the forecast monthly: after each draw is received or each job closes, update the actuals and let Starch recalculate remaining Q3 exposure so your forecast stays useful rather than becoming a historical artifact.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Q3 2026 Revenue Forecast — June Close Review

Sample numbers from a real run
Job 1 — Hillside Addition (active, 70% complete)48,000
Job 2 — Commercial Tenant Fit-Out (active, 40% complete)112,000
Job 3 — Deck & Garage Reno (active, 90% complete, final draw pending)14,500
Open Bid — New Custom Home (bid submitted May 15, no response)0
Open Bid — Office Build-Out (verbal yes, contract unsigned)67,000
Retention receivable — 3 closed jobs22,800
Current bank balance (Plaid, as of June 28)61,200
Outstanding AR > 30 days (QuickBooks)38,400

Running the Q3 forecast in late June, Starch pulls $48,000 in remaining draws on the Hillside Addition (two draws left per the Buildertrend schedule, pulled via browser automation), $112,000 across three remaining draws on the tenant fit-out, and a final $14,500 on the deck job that's been sitting unpaid for 22 days. Starch flags the deck job's final draw as overdue and surfaces the last email thread — a June 9 message from the owner asking for a lien waiver that was never answered. The two open bids are the real variable: without them, Q3 revenue totals approximately $197,500 including retention release. If the office build-out closes at the $67,000 contract value and starts in mid-July, Q3 climbs to roughly $264,500 — but the scenario model shows that if the fit-out job runs 12% over budget (a $16,800 cost overrun) and the owner pushes Draw 3 to October, the September cash position drops below one payroll cycle. That's the number that matters — not the top-line revenue, but the timing gap between when costs are due and when draws arrive.

Measurement

How you'll know it's working

Projected cash collections by month (not just revenue recognized — actual draws expected to land in the bank)
Cost-to-complete vs. remaining draw schedule by job — the gap between these is where jobs quietly bleed margin
Days to collect on outstanding invoices (AR aging from QuickBooks, 30/60/90 day buckets)
Bid-to-award rate and average time from bid submission to decision — so you know which proposals deserve a follow-up call and which owners are wasting your time
Retention balance outstanding — the holdback receivable that sits off most contractors' radar until they need cash
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

Excel + QuickBooks reports
You already do this — it's accurate as of the day you built it and wrong by Monday, because change orders and draw timing aren't updating automatically.
Buildertrend or CoConstruct built-in reporting
Good for job cost actuals and schedules, but it doesn't combine with your bank balance, AR aging, or bid pipeline — so you still have to stitch the forecast together yourself.
Procore
Purpose-built for construction financials at scale, but priced for commercial shops with 50+ people and a project accountant to configure it — not a 12-person trade shop.
Hiring a part-time controller or bookkeeper
They'll build you a solid forecast model once, but it costs $50–80/hour and still requires you to gather and hand off the raw data every quarter.
On Starch RECOMMENDED

One platform — scenario planning, crm, investor reporting all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

My job cost data lives in Buildertrend, which doesn't have a public API. Can Starch still reach it?
Yes. Starch automates Buildertrend through your browser — the same way you'd log in and pull a cost report yourself. No API needed. It can pull job cost actuals, draw schedules, change order logs, and percent-complete, then combine that with your QuickBooks and Plaid data in the forecast.
Will the QuickBooks data include my job costing and project-level P&Ls?
Starch syncs QuickBooks entity-level data on a schedule — invoices, bills, payments, vendors, and journal entries. One current limit: the QuickBooks built-in report views like P&L by class or Transaction List are temporarily unavailable pending a fix on Starch's end. For job-level margin, you'll get the raw invoice and bill data and can build a custom job cost view in Starch. Buildertrend job costing via browser automation fills the gap for construction-specific cost tracking.
I have retention receivables sitting on three closed jobs. Can Starch track those separately?
Yes. Tell Starch: 'Build me a retention tracker that shows the holdback balance on each closed job, the expected release date, and whether we've invoiced for it yet. Pull from QuickBooks AR and flag any retention older than 60 days.' Starch builds that view and keeps it current as QuickBooks syncs.
I've got bids out to five owners and I have no idea who we last contacted. Can the CRM help?
That's exactly what the bid pipeline CRM is for. Connect Gmail from Starch's integration catalog and tell Starch to build a pipeline that shows each open bid, the bid amount, last email contact date, and next follow-up due date. Ask it: 'Which open bids haven't had any email contact in more than 14 days?' You'll get a list you can act on the same day.
Is Starch SOC 2 certified? I'm connecting bank and payroll data.
Not yet — Starch is not currently SOC 2 Type II certified. That's worth knowing before you connect sensitive financial accounts. It's on their roadmap, but if a formal certification is a hard requirement for your business, that's an honest reason to wait.
I run multiple entities — a GC entity and a real estate holding LLC. Can Starch pull them together or keep them separate?
You can connect both QuickBooks accounts and both Plaid connections separately, then tell Starch how to combine or separate them in your forecast views. Describe what you want: 'Show me Q3 revenue for the GC entity only, but include the holding LLC's bank balance as a cash reserve line.' Starch builds the view you describe.

Ready to run forecast quarterly revenue on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.