How to forecast quarterly revenue as Professional Services Founders

Sales & CRMFor Professional Services Founders3 apps11 steps~22 min to set up

Your quarterly revenue forecast lives in a Google Sheet you update manually, a HubSpot pipeline you half-trust, and a gut feeling shaped by whatever proposals are sitting in your inbox. You know which retainers are renewing in Q2 — or you think you do, until a client goes quiet. Weighted pipeline math means multiplying deal value by close probability you made up six months ago. Stripe tells you what landed; it doesn't tell you what's coming. You spend two hours every quarter reconciling HubSpot stages against actual invoices in QuickBooks, find three deals marked 'closed-won' that never actually signed, and produce a forecast your banker would be polite about.

Sales & CRMFor Professional Services Founders3 apps11 steps~22 min to set up
Outcome

What you'll set up

A live revenue forecast that pulls your actual HubSpot pipeline stages, Stripe invoices, and QuickBooks receivables into one view — so weighted pipeline and recognized revenue are never two separate spreadsheets again
A scenario model showing Q2 revenue under three conditions: current close rates hold, your two largest in-flight proposals slip to Q3, or you win one new logo at your average ACV
An automated weekly digest that flags stale deals (no activity in 14+ days), upcoming retainer renewals, and any gap between forecast and target — delivered to your Slack on Monday morning
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 HubSpot data — contacts, companies, deals, and pipeline stages — on a schedule, so your deal data is always current. Starch also syncs your Stripe charges, invoices, and subscription data on a schedule, giving the scenario model a real revenue baseline rather than a spreadsheet estimate. QuickBooks is connected from Starch's integration catalog and queried live when your forecast needs to reconcile pipeline against invoiced amounts. Slack is connected from Starch's integration catalog for the Monday digest delivery.

Prompts to copy
Build me a revenue forecast dashboard that pulls my HubSpot deals by close date and weighted value, groups them by quarter, and shows the gap to my $1.8M annual revenue target. Flag any deal over $40k that hasn't had activity in the last 14 days.
Create a scenario analysis that shows Q2 revenue under three assumptions: (1) my current pipeline closes at historical rates, (2) my two largest open proposals — Meridian Group and Holloway & Co — slip to Q3, and (3) I close one new retainer at $15k/month starting May 1. Pull my actual Stripe revenue as the baseline.
Every Monday at 8am, send me a Slack message with: total pipeline value closing this quarter, deals that haven't moved in 14 days, retainers with renewal dates in the next 45 days, and how my forecast compares to the $450k Q2 target.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot: Starch syncs your deals, pipeline stages, close dates, and deal owners on a schedule. If your pipeline has custom fields — engagement type, retainer vs. project, practice area — tell Starch which fields matter and it maps them into your forecast view.
2 Connect Stripe: Starch syncs charges, invoices, and subscription data so your recognized revenue baseline is live, not a number you typed in last quarter.
3 Connect QuickBooks from Starch's integration catalog: the agent queries it live when it needs to reconcile what's invoiced against what's in pipeline, so you can see the gap between forecast and actual without opening two tabs.
4 Open the Scenario Analysis app and describe your baseline: your annual target, your average engagement size, and the two or three assumptions you actually argue about in your Monday leadership meeting — close rates, timing risk on a specific client, new logo velocity.
5 Build the three-scenario model: base case (current close rates), bear case (largest deals slip one quarter), upside case (one incremental new logo). Starch generates a side-by-side runway view for each scenario using your real Stripe data as the starting point.
6 Build or fork the CRM app and tell Starch which pipeline fields your consultancy actually uses: engagement type (retainer vs. fixed-fee vs. T&M), practice area, primary contact, renewal date. Starch builds the schema around your vocabulary, not a generic sales template.
7 Add a retainer renewal tracker: tell Starch to surface any active client with a contract end date in the next 60 days, alongside last email thread date from Gmail, so you see renewal risk before the client goes quiet.
8 Set up the Monday morning automation: Starch pulls the current quarter's weighted pipeline from HubSpot, compares it to your target, surfaces deals with no activity in 14+ days, and lists renewal dates in the next 45 days — delivered as a Slack message before your first meeting.
9 Add a deal-slippage alert: if a deal's close date moves out of the current quarter, Starch sends you a Slack notification within the hour so you can adjust your forecast before it's wrong for three weeks.
10 Review the forecast dashboard at the start of each week — not a static export, but a live view that reflects whatever moved in HubSpot or landed in Stripe since Friday. Adjust scenario assumptions when a proposal converts or a client signals a delay.
11 Before your next board call or investor update, pull the forecast narrative from Starch: actual revenue recognized to date, weighted pipeline for the remainder of the quarter, and the most likely landing spot across your three scenarios — in plain language, not spreadsheet math.

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

Q2 2026 Forecast — Meridian Group scenario, April 14

Sample numbers from a real run
Stripe recognized revenue (Q2 to date, April 1–14)87,500
Meridian Group proposal — $60k fixed-fee engagement, 70% close probability42,000
Holloway & Co retainer renewal — $12k/month, renewal May 1, 90% probability32,400
Three smaller proposals (<$20k each), blended 50% close probability27,500
Existing retainers running through June 30 (confirmed)198,000
Q2 weighted pipeline total387,400
Q2 target450,000
Gap to target62,600

On April 14, your Q2 forecast shows $387k against a $450k target — a $62.6k gap. Starch surfaces the issue immediately: Meridian Group is your single biggest swing, worth $42k on a weighted basis, and the deal has had no HubSpot activity in 17 days. Your last Gmail thread with their procurement lead was April 3. In the bear-case scenario — Meridian slips to Q3 and Holloway's renewal lands in July instead of May — Q2 lands at $298k, which is a bad quarter. In the upside scenario — Meridian closes, Holloway renews on time, and one of your smaller proposals converts — you hit $430k. The Monday digest flagged Meridian's inactivity last week; you followed up Tuesday and now have a call scheduled for the 18th. The forecast isn't just a number — it tells you which deal to work.

Measurement

How you'll know it's working

Weighted pipeline value by quarter (broken down by retainer vs. project revenue, since retainers are more predictable and should be tracked separately)
Forecast accuracy: how close last quarter's weighted pipeline was to actual recognized revenue — most professional services founders find out their HubSpot probabilities are fiction when they run this number for the first time
Days since last activity on deals over $30k — a proxy for deal health that matters more than pipeline stage
Retainer renewal rate and average retainer tenure — the real compounding revenue engine in a consultancy
Revenue per billable head — not utilization rate (which is a lagging indicator), but the top-line output per person that tells you whether your pricing model is working
Comparison

What this replaces

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

HubSpot forecast module alone
HubSpot shows you weighted pipeline within HubSpot, but it doesn't reconcile against Stripe invoices or QuickBooks, so your forecast and your actual revenue live in separate systems until someone manually bridges them at month-end.
Google Sheets with HubSpot export
Gets stale the moment you export it; you end up with three versions of the forecast in three tabs, no one knows which is current, and it breaks the first time a deal name has a comma in it.
Kantata / Projector / Deltek
Built for 200-person professional services firms with a dedicated ops team; implementation takes a quarter, licensing is sized for firms 10x your headcount, and you'll spend more time configuring it than it saves in the first year.
Excel + manual Stripe export
You control the model, but every Monday someone spends 90 minutes pulling CSVs, pasting them into the right tab, and hoping the formula references didn't break — that's not a forecast, that's data entry with extra steps.
On Starch RECOMMENDED

One platform — sales agent crm, scenario planning, crm 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 pipeline is in HubSpot but my deal stages are a mess — custom fields everywhere, inconsistent close dates, three people using it differently. Will Starch make sense of it?
Yes, and this is worth doing before you build the forecast. Tell Starch which stages map to which revenue probability in your actual process, which custom fields matter for your consultancy, and which deals are stale placeholders. Starch will build the forecast view around your real schema, not a generic template. You can also ask it: 'list every deal in HubSpot marked closed-won in the last 90 days where no corresponding Stripe invoice exists' — that gap is usually the first thing that surprises founders.
Does Starch store my Stripe and QuickBooks data, or does it query it every time?
Stripe data syncs to Starch on a schedule, so it's available immediately when your forecast dashboard loads. QuickBooks is connected from Starch's integration catalog and queried live when your app needs it — so it's current, but there's a brief query each time rather than a stored snapshot. For most founders this is a feature, not a limitation: your revenue data reflects what's actually in Stripe today, not a CSV you pulled two weeks ago.
Is Starch SOC 2 certified? My client has a vendor security review process.
Not yet — Starch is not SOC 2 Type II certified today. If a client security review requires that certification, that's a real limit worth knowing upfront. It's on the roadmap. Most early-stage consultancy founders aren't running into this blocker, but it's an honest answer.
Can I use this if my pipeline is in a Google Sheet instead of HubSpot?
Yes. Google Sheets is accessible from Starch's integration catalog; the agent queries it live. Tell Starch the column structure of your pipeline sheet and it builds the forecast view against those columns. The HubSpot integration is deeper because deal data syncs on a schedule, but a well-structured Sheet works — and if you want to migrate to the Starch CRM app and ditch the Sheet entirely, you can describe your deal schema and Starch builds it for you.
What about Harvest or Float for utilization — can Starch pull those in too?
Harvest and Float are reachable through Starch's integration catalog if they expose an API (Harvest does; Float does too). You'd connect them from the catalog and query them live. If you hit a case where the integration isn't available through the catalog, Starch can automate the browser-based version — no API needed. That said, utilization data is genuinely separate from revenue forecasting; it's worth building as a second dashboard rather than collapsing it into the forecast view.
The scenario analysis sounds useful, but I don't want to rebuild my financial model every quarter. How much ongoing work is this?
Once the scenario model is set up with your Stripe baseline and your three assumption sets, you update assumptions, not the model. If Meridian slips to Q3, you change one input. Starch recalculates the side-by-side output immediately. The Monday automation runs without you touching anything. Most founders spend 15 minutes a week reviewing the digest and adjusting one or two deal probabilities — that's the intended steady state.

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.