The HubSpot Data Audit That Actually Fixes Your Forecast
A step-by-step audit of everything feeding your forecast: stalled deals, lifecycle sync, probabilities, attribution, and whether your reporting periods match the Australian financial year at all.
Step 5: Time in Stage 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 show 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: Contacts Still Sitting at MQL on Live Deals
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. The wider version of this, the criteria and who owns them, is the lifecycle stage governance a clean forecast actually depends on.

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 wide, a stage configured at 90% probability with an actual close rate of 65%, update the probability. Review these annually at minimum.
Do your close dates mean anything by the third push?
Most pipelines have a month where every deal closes at once.
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, and without it ad click attribution isn't captured. Ad account reconnections and permission changes can silently disable this, so it's worth confirming monthly.
Step 9: Reporting Periods Against Your Financial Year
Check this one before you present anything. HubSpot's close date logic and its default forecast periods assume a calendar year, and the Australian income year runs 1 July to 30 June, per the ATO. If nobody has changed the fiscal year in your account defaults, every quarterly forecast view you are reading is cut on a different boundary to the one finance closes the books on.
Set the fiscal year start to July, then re-run your saved pipeline reports and check the totals against the period finance actually reports on. A forecast that straddles two financial years is one of the most common reasons the numbers never reconcile at EOFY, and it presents as a data problem when it's a settings problem.
After the Audit
The audit produces two outputs: immediate fixes and structural changes.
Immediate fixes are deals to update, associations to create and probabilities to correct. Assign them to deal owners with a five-business-day deadline, and put any deal more than 60 days past its original close date in front of a manager.
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. If the answer is drifting, the automation services that keep this audit's fixes from drifting again are what close that loop.

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 finds have usually been accumulating for months with nobody noticing. Most fixes are straightforward once identified. The hard part is making time to find them. Once the data is clean, the wider forecasting improvements this audit feeds into are what turn it into a number you can plan around.
If your audit keeps getting deprioritised, give us a nudge. We can run it for you, and our RevOps and HubSpot service covers what happens after.
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.
Has leadership stopped believing the forecast?
The numbers get caveated in the meeting and nobody says why.
Happy HubSpotting.