Operations Hub Software study materials
Operations Hub Software study resources

Deal Velocity Report Shows Blank Industry and Wrong Time-in-Stage

Operations Hub Software · Put your knowledge to work in context.

All case studies

Deal Velocity Report Shows Blank Industry and Wrong Time-in-Stage

A RevOps team needs a weekly report on average days in current deal stage by company industry and deal owner. There are 24,000 open deals and three years of history. They built a calculated property on Deal called “Days in current stage” using the number of days between Last Modified Date and today. It resets whenever amount or close date is edited. They also built a dataset joining Deal to Company, but 34% of deals show blank Industry and 5% have no company association. The dataset uses an inner join on the company association. The report refreshes daily at 6 a.m. and is needed Monday at 8 a.m. The team wants to add 12 more calculated properties to cover each stage.

1. Why is the calculated property wrong for this report, and what should replace it?

Read the worked answer

The calculated property measures time since the deal was last modified, not time since it entered its current stage. Any edit to amount, close date, or owner resets the clock, so the metric understates age and is not comparable across deals. Adding 12 stage-specific calculated properties would multiply the same flaw and still would not preserve stage history.

Replace it with a stage-entry timestamp: use the date the deal entered its current stage, or stage-entry history, and compute days in stage from that timestamp. If the stage-entry date is available as a property, a calculated property can compute days between that date and today for row-level display. But historical stage movement, average time in stage, and comparisons across stages belong in a dataset or report query where the stage history can be aggregated.

A calculated property is appropriate for a row-level value on one record. It is not a substitute for a historical event table or for cross-object aggregation. Document the metric definition as “days since stage entry,” not “days since last edit,” so the business does not compare incompatible numbers.

2. Why are 34% of deals showing blank Industry, and how would you fix the dataset?

Read the worked answer

The inner join drops deals that have no associated company, and it also fails to supply industry when the associated company's Industry property is blank. The 5% with no association are excluded entirely; the larger blank share includes deals with an associated company that has no industry value.

Fix in three layers:

  1. Join behavior: configure the dataset so deals without a company association are retained, using a left-style association join. Deals with no company should appear in an “Unassigned/Unknown” bucket rather than disappearing.
  2. Data completeness: measure association coverage and industry completeness separately. Add a workflow to flag deals above a value threshold with no company association. Enrich company industry from a reliable source rather than guessing from the company name.
  3. Reporting fallback: include an explicit “Unknown industry” category in the report. Do not silently exclude blanks, because that overstates the performance of the known segments.

After the join fix, reconcile the report total to the deal count. If the number still does not match, the join is still filtering rows.

3. How would you make the Monday 8 a.m. refresh reliable and govern the metric definitions?

Read the worked answer

Reliability comes from controlling scope and timing, not from adding more calculated fields.

  • Limit the dataset to the reporting window and population the team actually uses, such as open deals or the last 24 months, rather than all three years and every historical stage. Smaller, filtered datasets refresh more predictably.
  • Schedule the dataset refresh after the Salesforce sync and any data-quality jobs complete, not before them. A 6 a.m. refresh that races the sync will produce inconsistent counts.
  • Add a refresh-status check and an alert if the Monday refresh fails or returns zero rows. The report owner should know before 8 a.m., not after the meeting.
  • Publish metric definitions: “days in current stage” uses stage-entry date; “industry” uses company industry with an Unknown bucket; “owner” means deal owner, not company owner.
  • Version the dataset and document changes. When someone asks for another stage breakdown, extend the dataset or report layer rather than creating a new calculated property per stage.