A forecast is a mathematical output. Get the inputs wrong and you get a forecast that everyone presents with caveats, nobody believes, and leadership has quietly stopped trusting.

The inputs are your HubSpot data - deal amounts, close dates, stage probabilities, lifecycle stages, forecast categories. When those fields are inconsistently maintained, the forecast reflects that inconsistency. Reliably.
Work through each step in order. The later steps build on the earlier ones.
Before You Start: Set Up Your Audit View
Create a saved deals view filtered for: Pipeline is [your primary pipeline], Close Date is within the next 180 days, Deal Stage is not Closed Won, Deal Stage is not Closed Lost. This is your working dataset. Save it, you'll return to it throughout.
If you have multiple pipelines, run the audit for each separately.
Step 1: Deal Amount and Close Date Completeness
These two fields drive your weighted pipeline calculation. If either is missing or implausible, your forecast is wrong before anything else.
In your saved view, add the Deal Amount and Close Date columns and look for: deals with no amount, deals with an amount of zero, close dates that have already passed without the deal progressing, and close dates unrealistically far in the future for a deal's current activity level.
For each flagged deal, the owner should update both fields to reflect current reality. Deals stalled more than 30 days past their original close date should go to manager review, there's usually a reason they haven't progressed, and it's worth understanding.
On Professional and Enterprise plans, add Deal Amount and Close Date to your required properties at the stage where deals formally enter the pipeline. No deal advances without these fields populated.
Step 2: Pipeline Stage Assignment Accuracy
You're checking whether deals are in the stage that reflects where they actually are, not where the rep wanted them to be when they last touched the record.
In your saved view, filter for each stage and review deals against that stage's entry criteria. A deal in "Proposal Sent" where no proposal has been sent is stage inflation. A deal in "Contract Sent" where the contract is still being reviewed internally is also stage inflation. Both overstate the forecast.
Build a list of deals that need to move back and address them. Frame this as calibrating the forecast, not auditing the reps, the conversation lands better. Then review your stage entry criteria: "the rep thinks the client is ready" isn't an objective criterion. "A contract has been sent and acknowledged by the client" is.
Step 3: Forecast Category Accuracy
Check whether the Forecast Category - Not Forecasted, Pipeline, Best Case, Commit, or Closed Won - on each deal reflects the rep's genuine current assessment, or a default that was set at stage creation and never touched.
In your saved view, add the Forecast Category column and filter for Commit and Best Case deals. For each, check when the category was last updated and whether anything has changed since.
If Automate Forecast Categories isn't enabled, category updates are entirely manual, which means they're often not happening. Enable it in Settings > Objects > Deals > Forecast, then review the stage-to-category mapping to confirm it reflects your actual confidence thresholds. A deal in your earliest qualifying stage should not auto-assign as Commit.
Step 4: Deal-to-Contact and Deal-to-Company Associations
Every deal in the pipeline should be associated with at least one contact and one company. Deals without a contact association can't be attributed to a buyer. Deals without a company association break company-level reporting.
In the custom report builder (Professional and Enterprise), create a Deals report filtered by Number of Associated Contacts is equal to zero. Run the same for Number of Associated Companies is equal to zero. Any deals in your forecast window appearing in either report are data integrity issues. A Closed Won deal with no contact has permanently orphaned that revenue in your attribution data.
Manually create the missing associations. Going forward, add contact association as a required property at the first deal creation stage, or build a workflow that alerts the deal owner when a deal has been in any stage for more than 48 hours without a contact association.
Step 5: Stage Velocity and Stall Detection
You're looking for deals that have been sitting in the same stage far longer than your average time to close, the silent ones that stay on the forecast because nobody has formally closed them.
HubSpot calculates the "Is Stalled After Timestamp" property automatically, it fires when a deal's time in stage exceeds 20% beyond the deal owner's closed-won average for that stage. Filter your deal view by this property to surface the stalled set immediately.
For each stalled deal, the owner should provide a current status. Deals with no client contact in 30 or more days should either be progressed with a specific next action and deadline, or closed as Lost with a reason recorded.
Step 6: Lifecycle Stage vs Deal Stage Alignment
Contacts associated with active deals should have progressed past MQL. If they haven't, lifecycle stage automation isn't connected to deal activity, a common gap when Marketing Hub and Sales Hub were configured independently.
In the custom report builder, create a Contacts report filtered by Lifecycle Stage is Marketing Qualified Lead (or Lead) and Associated Deal Stage is not empty.
Fix it in Settings > Objects > Contacts > Lifecycle Stage. Enable automatic lifecycle stage updates based on deal activity, when a deal is created the contact updates to Opportunity, when a deal closes Won the contact becomes a Customer. No workflow required. HubSpot handles it natively.
-1-1.gif?width=400&height=222&name=giphy%20(1)-1-1.gif)
Step 7: Probability Calibration
The probability percentages on your pipeline stages may be the estimates set at implementation, never revisited. If they don't match your actual historical win rate, your weighted pipeline is wrong.
In the custom report builder, build a Closed Won report from the past twelve months grouped by the last stage before Closed Won. Compare actual close rates from each stage against the configured probabilities in Settings > Objects > Deals > Pipelines.
Where the gap is material - a stage configured at 90% probability with an actual close rate of 65% - update the probability. Review these annually at minimum.
Step 8: Attribution Data Health
Deals in the pipeline should have contact-level attribution connecting them to the marketing activity that generated them.
In the custom report builder, build a Deals report filtered by Associated Contact Original Source is unknown or empty. Missing attribution is usually caused by the HubSpot tracking code not being in place when the contact was created, or a manual contact import that bypassed a tracked conversion.
Also check Marketing > Ads and confirm auto-tracking is active for each connected account. Auto-tracking adds UTM parameters to ad URLs -without it, ad click attribution isn't captured. Ad account reconnections and permission changes can silently disable this, so it's worth confirming monthly.
After the Audit
The audit produces two outputs: immediate fixes and structural changes.
Immediate fixes - deals to update, associations to create, probabilities to correct - should be assigned to deal owners with a five-business-day deadline. Manager review for any deal more than 60 days past its original close date.
Structural changes should be sequenced: required properties first (prevents new data quality issues), then automation updates (lifecycle stage sync, stall detection), then probability recalibration (which needs clean data to be meaningful).
Run the audit again in 90 days. One audit produces a clean baseline. The second tells you whether the structural changes are holding or the data is drifting again.

Conclusion
A reliable forecast isn't about platform sophistication. It's about data discipline - consistent fields, accurate stages, correct associations, calibrated probabilities, and attribution that connects marketing to pipeline.
The problems this audit surfaces have usually been accumulating quietly for months. Most fixes are straightforward once identified. The hard part is making time to find them.
If your audit keeps getting deprioritised, give us a nudge. We can run it for you.
Want to know more? Subscribe to our YouTube channel for tutorials from our experts. Follow us on Facebook to stay in the loop with the latest HubSpot updates.
Happy HubSpotting!