How to forecast quarterly revenue as Small RevOps Teams

Sales & CRMFor Small RevOps Teams3 apps12 steps~24 min to set up

Your quarterly revenue forecast lives in four places: a HubSpot pipeline report, an Apollo sequence export, a Google Sheet the CRO last touched six weeks ago, and a slide deck you rebuilt from scratch before the last board call. Every Monday you pull a pipeline snapshot, paste it into Slides, manually adjust for the deals you know are stale, and still field 'why is this number different from what I see in HubSpot?' Reconciling close dates reps haven't updated, weighted pipeline that doesn't match stage definitions, and revenue that's already in Stripe but not yet closed in the CRM eats four to six hours a week. You're a two-person team. That's a quarter of your capacity, every week, on a task that should be a dashboard.

Sales & CRMFor Small RevOps Teams3 apps12 steps~24 min to set up
Outcome

What you'll set up

A live forecast dashboard that pulls HubSpot deals (direct scheduled sync), Stripe revenue (scheduled sync), and Apollo sequence activity (live query) into a single view — no manual copy-paste before the weekly call
Hygiene rules that flag stale opportunities — deals with no activity in 14+ days, close dates in the past, or stage mismatch between HubSpot and Stripe — and surface them in a team Slack summary every Monday morning
A scenario model that lets you test 'what if we close 70% of current pipeline vs. 85%' against actual Stripe MRR, so you can walk into the CRO's office with numbers rather than vibes
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 on a schedule — deals, contacts, companies, owners — so the forecast app always reads from a current snapshot without you pulling exports. Starch syncs your Stripe data on a schedule for actual closed revenue. Apollo is connected from Starch's integration catalog; the agent queries it live when the app needs sequence activity or contact enrichment. Slack is connected from Starch's integration catalog for the Monday push. LinkedIn enrichment runs through browser automation — no LinkedIn API required — to keep contact titles and company data current.

Prompts to copy
Build me a quarterly revenue forecast app that pulls our HubSpot deals — filtered to close date this quarter — and groups them by rep, stage, and weighted probability. Flag any deal that hasn't been updated in 14 days or has a close date more than 30 days in the past. Show me total weighted pipeline, best case, and commit, updated every morning.
Build a scenario analysis that uses our actual Stripe MRR as the baseline and lets me toggle three assumptions: close rate on current pipeline (50%, 70%, 85%), average deal size change (+/- 10%), and whether two named enterprise deals close this quarter. Show me end-of-quarter ARR and how far we are from quota under each scenario.
Every Monday at 8am, pull the HubSpot pipeline snapshot, compare it to last week's, and Slack me a summary: net new pipeline added, deals that moved stages, deals that went stale, and the current weighted forecast vs. quota. Format it so I can forward it directly to the CRO without editing.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot: Starch syncs deals, contacts, companies, and owners on a schedule. This is your pipeline source of truth — everything downstream reads from here.
2 Connect Stripe: Starch syncs charges, customers, invoices, and subscriptions on a schedule. This lets the forecast reconcile what's actually closed-won in revenue terms against what reps have marked closed in the CRM.
3 Connect Apollo from Starch's integration catalog so the agent can query sequence activity and contact touchpoints live when building the attribution view.
4 Connect Slack from Starch's integration catalog so automations can push the Monday forecast summary to your #revenue-ops channel without you manually triggering it.
5 Start from the Sales Agent CRM app in the Starch App Store and customize it: tell Starch to add a 'last activity date,' 'sequence enrolled' field from Apollo, and a 'Stripe invoice exists' flag that cross-references the deal with a real Stripe charge.
6 Build the forecast dashboard: describe your stage-to-probability mapping and ask Starch to calculate weighted pipeline, best case, and commit columns — broken out by rep and territory — refreshed each morning from the HubSpot sync.
7 Add hygiene rules as an automation: 'flag any deal where close date is in the past or there has been no activity in 14 days, and add it to a Stale Deals view I can review every Monday before the call.'
8 Build the scenario analysis using the Scenario Analysis app as your starting point: connect Stripe as the revenue baseline, then define three toggles — pipeline close rate, average deal size, and whether your two largest open enterprise deals land this quarter.
9 Wire the Monday morning automation: 'Every Monday at 7:45am, pull this week's HubSpot pipeline, compare weighted pipeline to last Monday, list deals that changed stage, list deals that went stale, and post a formatted summary to #revenue-ops.'
10 Add a rep-facing view: each rep gets a filtered version of the forecast app scoped to their deals, so they can update close dates and stages themselves — reducing the 'can you pull me a list of my open deals' Slack requests.
11 Before each board or CRO meeting, run the scenario analysis with the latest Stripe actuals baked in. Export the three-scenario table and walk in with a range, not a single number you'll have to defend.
12 Audit monthly: ask Starch 'which deals closed in Stripe this quarter that were never marked closed-won in HubSpot?' — this surfaces the CRM hygiene gap and gives you a concrete list to clean up.

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 Prep — Week of April 14

Sample numbers from a real run
HubSpot weighted pipeline (commit tier, 25 deals)412,000
HubSpot weighted pipeline (best case, 41 deals)687,000
Stripe closed-won MTD (April 1–14)148,000
Apollo sequences active (reps with 3+ touches in last 7 days)18
Stale deals flagged (no activity 14+ days, future close date)9
Deals in Stripe not closed in HubSpot3

It's Monday morning, April 14. Your Starch automation already ran at 7:45am. Slack has a summary: weighted commit pipeline is $412K against a $500K quarterly quota, up $34K from last Monday because two mid-market deals moved from 'Proposal' to 'Negotiation.' Nine deals are stale — no activity in 14+ days, all with Q2 close dates. Three of those belong to one rep who's been focused on a big enterprise deal; you'll flag them for a stage reset rather than letting them inflate the forecast. Starch also found three Stripe invoices from April that don't match any closed-won opportunity in HubSpot — two are renewals the reps forgot to log, one is an expansion that should have been a new deal. You fix those before the 10am CRO call. In the scenario analysis, the 70% close rate scenario puts you at $489K — close enough to quota that the conversation is about which stale deals are real, not whether the forecast model is broken. You walk into the meeting with three scenarios, the stale deal list, and the Stripe reconciliation. The CRO asks one question you can answer on the spot. This is the first forecast call in two quarters that didn't require you to rebuild a spreadsheet the night before.

Measurement

How you'll know it's working

Weighted pipeline vs. quota (commit tier and best case, broken out by rep and territory)
Forecast accuracy: delta between prior-week weighted forecast and actual Stripe closed-won at quarter end
CRM hygiene rate: percentage of open deals with activity in the last 14 days and a future close date
Pipeline coverage ratio: total pipeline value divided by remaining quota for the quarter
Closed-won reconciliation gap: deals in Stripe with no matching closed-won record in HubSpot
Comparison

What this replaces

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

HubSpot native forecast + deal reports
HubSpot's forecast tool only sees what's in HubSpot — it doesn't reconcile against Stripe actuals, pull Apollo sequence data, or flag hygiene issues automatically; you still build the real forecast in Sheets on top of it.
Salesforce + Einstein Forecasting
Powerful if you have a SF admin and a Salesforce contract; for a two-person RevOps team supporting 30 reps, the configuration overhead and licensing cost are hard to justify when most of the value is pipeline visibility you can get without it.
Google Sheets + manual HubSpot export
Free and flexible, but every export is a snapshot that's stale by the time you paste it in; you own all the formula maintenance and there's no automatic hygiene flagging or Stripe reconciliation.
Clari or Gong Forecast
Purpose-built for revenue forecasting at scale with strong call intelligence integration, but priced for enterprise teams and requires connecting multiple data sources through their own setup process — not built for a two-person RevOps team that also needs to own hygiene, attribution, and ad hoc analysis in the same tool.
Looker or Tableau connected to the CRM
Good for historical analysis and exec dashboards if you have a data engineer to maintain the pipelines; not designed for the day-to-day hygiene ops, rep-facing views, or Monday morning automation that takes up most of your week.
On Starch RECOMMENDED

One platform — sales agent crm, scenario planning, 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

We use Salesforce, not HubSpot. Can Starch still pull our pipeline?
Yes. Connect Salesforce from Starch's integration catalog; the agent queries your deals, contacts, and opportunities live when your forecast app runs. You won't get the same scheduled-sync depth as HubSpot (which Starch syncs directly on a schedule), but for pipeline snapshots and forecast prep the live query is enough for most RevOps workflows.
Our reps use Apollo for sequencing but HubSpot for the CRM. Can Starch see both and join them?
Yes. Starch syncs HubSpot deals and contacts on a schedule, and connects to Apollo from the integration catalog for live queries on sequence activity and contact status. You can build an app that shows both side by side — for example, 'show me all HubSpot deals in Negotiation stage where the Apollo sequence hasn't had a reply in 10 days.'
Does Starch actually write back to HubSpot, or is it read-only?
The HubSpot scheduled sync is read-only. Starch reads your pipeline data to power the forecast app. If you need to push updates back to HubSpot — like closing a stale deal or updating a stage — you'd do that in HubSpot itself. The value Starch adds is surfacing exactly which records need attention, so the manual updates are targeted rather than a full weekly audit.
We're not SOC 2 certified. Is Starch?
Not yet — Starch is not currently SOC 2 Type II certified. If your company or a customer requires that certification for tools that touch CRM and revenue data, that's worth factoring in. It's on the roadmap.
Will this replace our weekly forecast call prep in Google Slides?
The Monday automation produces a structured Slack summary — weighted pipeline, stage changes, stale deals, Stripe reconciliation — formatted so you can forward it or paste it into Slides in under two minutes. Starch doesn't auto-generate a slide deck, but it eliminates the manual data gathering that takes most of your prep time.
We have historical pipeline data going back three years. Can Starch store and query that?
Starch is built for live data surfaces, not long-horizon data warehousing. HubSpot's scheduled sync pulls current deal state and recent history; it's not designed to archive three years of pipeline snapshots for cohort analysis. If historical trend analysis is a core need, a dedicated data warehouse (Snowflake, BigQuery) connected to Starch via the integration catalog is a better fit for that layer.
Can I give individual reps their own view of their pipeline without them seeing everyone else's deals?
Yes. When you describe the app to Starch, specify that rep views should be filtered by owner. The app can have a shared RevOps view with all deals and a rep-facing view scoped to their own pipeline — same underlying data, different access scope.

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.