Skip to content

Case study · Multi-brand construction products manufacturer

The pipeline had been built as a filing system rather than a process

383 of 445 deals had nowhere to go. Nothing reported properly, the forecast was unusable, and nobody trusted it enough to argue with it.

Then we gave those 383 records a structured reason code, and found the company was losing a full stage earlier than anyone had been looking.

84%
error rate on line items in the estimating calculator every bid depended on
19 of 40
active deals stalled at a single review gate with no service level attached
399
deals carrying no contact at all, so the record knew the project but not the person

The company

A construction products manufacturer running four brands out of one CRM instance, covering window and door systems, security products, structural steel, and a building services arm. A fifth brand, recently acquired, sat in a separate portal that had been frozen for non-payment. Revenue around fifteen million dollars, with an ownership goal of doubling it.

The estimating team bids commercial construction projects from invitations to bid issued by general contractors. Fabrication runs through overseas partners on ten to twelve week lead times, so a bid commits the company long before it earns anything.

They had bought Marketing, Sales and Content Hub, and were using all three to track jobs.

Gate 1 · Data integrity

Nothing in the system could be trusted

The reasons were structural rather than careless.

  • 383 of 445 deals sat in "not bidding" or "on hold", neither of which was a terminal stage. Deals entered and never left.
  • 399 deals had no contact attached. The record knew about a project but not about a person.
  • Only 7 of 31 live deals carried a value, because pricing was entered at the last estimating step. Anything earlier in the funnel was worth zero to the forecast.
  • Roughly 1,000 contacts had no owner.
  • Close Date held the bid due date, not the expected award date. The single field every forecast in HubSpot depends on had been repurposed, so the forecast described when paperwork was due rather than when money might arrive.
  • Pipeline stages were named after individual estimators. Reporting had to be rebuilt every time somebody joined or left, and no stage described a thing that happened to a deal.
  • No-bid reasons lived in free text notes, which meant the most valuable data in the system could not be counted.

Gate 2 · Process integrity

Half the live pipeline was queued behind two people

  • 19 of 40 active deals were stalled at one review gate, waiting on an approval that had no service level attached to it.
  • Six pipelines and five different closed stages across the brands, including stages tied to a specific year, so year on year comparison meant reconciling by hand.
  • Nothing distinguished "we chose not to bid" from "we bid and lost." Both landed in the same place, which made the win rate meaningless.

The finding

They were losing before the bid existed

Cleaning data is not interesting on its own. What made this engagement worth the disruption was what fell out of the 383 records once they were given a structured reason code.

The largest single category was closed specification with no substitution permitted. An architect had written a competitor's product into the specification, and the manufacturer was excluded before a bid was even possible. These were not losses. They were absences, and they had been filed alongside genuine losses for years.

The remaining categories were almost as useful. Scope too small to bid economically. Turnaround too short to price properly, which on inspection often meant the company was being used as a third quote to validate somebody else's number. And one general contractor who requested bids repeatedly and had never once responded.

The company had been investing in relationships with general contractors, which is the stage at which the decision has already been made. The data said the decisive moment sits earlier, with the architects writing the specification, and it said so with enough volume behind it to fund the change.

That is the difference between a CRM cleanup and a revenue architecture engagement. The cleanup was necessary. The reallocation of demand generation, one stage upstream, is what pays for it.

Gate 1, again

The calculator was wrong 84 percent of the time

Estimating ran on a historical square foot calculator carrying an 84 percent error rate at the line item level, consistently under-estimating cost. Because nobody could trust the number, every bid waited on firm quotes from overseas fabricators, who understood perfectly well that they were the only source of truth in the transaction and priced accordingly.

A pricing model that cannot be trusted is a data integrity problem wearing different clothes. It sits at Gate 1 with everything else.

The rebuild

Nine stages, three terminals, and one field put back

The governing idea was simple enough to say in a sentence, which is usually the test of whether a diagnosis is real: the pipeline had been built as a filing system rather than a process, and that is why nothing reported properly.

One pipeline, nine stages, invitation to bid through award, plus three terminal stages. The stages describe things that happen to a deal. Estimator names, priority, supply route and on-hold status stopped being stages and became properties, which means they can be filtered and reported on instead of fragmenting the funnel.

A separate thirteen-stage delivery pipeline, award through close out, triggered automatically when a deal is marked awarded. Sales and delivery stop competing for the same object.

Bid Due Date as its own property, and Close Date returned to its native meaning. One field change, and forecasting starts describing revenue instead of paperwork.

A genuine no-bid terminal stage with a structured reason field, so declining to bid stops polluting the win rate and starts producing the specification intelligence described above.

Dual ownership on every deal, one salesperson and one estimator, because the previous model left the handoff owned by nobody.

A should-cost model at the estimating stage. Granular material and labor cost built from a fabrication modeling platform, replacing the square foot calculator. The point is not the estimate. It is walking into a supplier negotiation already knowing what the thing ought to cost.

Claude-based triage on incoming invitations to bid, reading specifications for red flags so senior estimators spend their attention on what deserves it.

Service levels on the review gate that had been holding nineteen deals, and source tracking on every ITB so demand generation spend can finally be attributed.

Why it will hold

The configuration was never the hard part

Every element above could be described as configuration. None of it was the difficult work.

The difficult work was a team that had built working habits around a broken system and had good reasons for every one of them. Stages named after estimators existed because that is genuinely how work got assigned. Close Date held the bid due date because the bid due date was the date anybody actually cared about. The workarounds were not stupid. They were rational responses to a system that had never been designed.

So the build ran alongside training, a coaching layer built on Claude prompts for a team new to modern sales workflow, and a deliberate decision to keep every existing pipeline running until cutover. Nobody was asked to trust the new system before it had earned it.

Status

Live, and not finished

The unified pipeline is built and staged. Migration from the fragmented setup is underway, the acquired brand's data is being folded in, and rollout to the estimating team is in progress.

This is a live engagement rather than a finished one, and the numbers above are diagnostic findings rather than outcomes. We would rather publish the diagnosis honestly now than wait and publish improvements we cannot yet attribute. Post-cutover results will be added here once the new pipeline has a full quarter behind it.


Checks addressed: data integrity, process integrity and performance governance, with agent readiness opened by the triage build.

Practices used: HubSpot Revenue Architecture, Revenue Data Debt, Conversation Intelligence Architecture.

Keep reading

The framework
The method behind this engagement.
Services
The practices this work used.
Home
Start from the beginning.