Preflight report
Fictional company, illustrative data
Sample Co.
- Overall score
- 67/100 · band C
- Rep time lost to the mess
- $19,149a year
- Open pipeline at risk
- $142,100today. A snapshot, never added to the annual figure.
- Fixed price to fix it
- $2,500Overhaul. Founding price for the first 3 clients, then $3,500.
Pipeline scores 13 here: 110 of 126 open deals have at least one problem. Clean records can’t hide a sick pipeline.
Dimension scores
- Completeness83Are key fields filled in?16% of score
- Accuracy93Do emails match their company? Any placeholders?12% of score
- Freshness39Have records been touched recently?12% of score
- Uniqueness89How many duplicates?16% of score
- Consistency69Is one value spelled one way?8% of score
- Validity99Are emails and domains well-formed?16% of score
- Pipeline13How many open deals have a problem?20% of score
Pipeline is 100 minus the share of open deals with at least one pipeline finding: 110 of 126 here.
Every finding, ordered by severity then dollar impact
| # | Finding | Count | Affected | Severity | Dollar impact | Why it hurts |
|---|---|---|---|---|---|---|
| 1 | Deals stuck in one stage for 45+ days | 58 | 46% of open deals | Critical | $4,524/yr rep time $81,200 at risk10% of $812,000 | Counted in the forecast. Going nowhere. |
| 2 | Open deals owned by a deactivated user | 19 | 15% of open deals | Critical | $1,235/yr rep time $35,700 at risk15% of $238,000 | The owner field says someone is on it. Nobody is. |
| 3 | Open deals with no owner | 14 | 11% of open deals | Critical | $910/yr rep time $25,200 at risk15% of $168,000 | Nobody follows up, and nobody is asked why. |
| 4 | Stale open deals | 71 | 56% of open deals | Critical | Not priced. Stuck deals carry the dollar line. | No touch beyond the stage’s 14–30 day limit. |
| 5 | Contacts untouched for more than 90 days | 2,976 | 62% of contacts | Critical | Not priced | Old titles and moved-on people still in your routing. |
| 6 | Companies untouched for more than 90 days | 783 | 58% of companies | Critical | Not priced | Account data nobody has looked at this year. |
| 7 | Open deals with a close date already passed | 40 | 32% of open deals | High | $406,000 forecast exposureForecast exposure. Shown on its own, never added to the totals. | The forecast is built on dates that have already gone. |
| 8 | Duplicate contacts | 552 | 11.5% of contacts | High | $12,480/yr rep timeOne line for all 674 duplicate records, capped at 8 reps × 2 hours a month. | Two reps, one buyer, split history. |
| 9 | Duplicate companies | 122 | 9.0% of companies | High | Priced in the duplicate line above. | Pipeline-by-account is wrong. |
| 10 | Open deals with no next step scheduled | 40 | 32% of open deals | High | Not priced | Waiting on the buyer to remember you. |
| 11 | Contacts with no company | 1,488 | 31% of contacts | High | Not priced | Invisible when a rep opens the account. |
| 12 | Contacts missing a job title | 1,680 | 35% of contacts | High | Not priced | No title means no persona targeting. |
| 13 | Stale contact imports | 900 | 19% of contacts | Medium | Not priced | Created 180+ days ago, no engagement signal since. |
| 14 | Countries written more than one way | 1,516 | 2 countries | Medium | Not priced | A filter for one country returns part of the list. |
| 15 | Companies missing a domain | 297 | 22% of companies | Medium | Not priced | No domain means no enrichment match. |
| 16 | Deals missing an amount | 63 | 17% of all deals | Medium | Not priced | Worth $0 in every pipeline report. |
| 17 | Open deals with no amount | 22 | 17% of open deals | Medium | Not priced. The at-risk lines count these 22 deals as $0. | The at-risk figures are understated by these deals. |
| 18 | Contacts missing an email | 432 | 9% of contacts | Low | Not priced | Can’t be sequenced, synced or matched. |
| 19 | Email domain doesn’t match the linked company | 402 | 8.4% of contacts | Low | Not priced | Wrong account, or a personal address. |
| 20 | Job titles spelled more than one way | 388 | 41 titles | Low | Not priced | Reports split one group into three. |
| 21 | Contacts with a bounced email | 190 | 4.0% of contacts | Low | Not priced | Still in sequences and lists. Nothing lands. |
| 22 | Contacts missing a name | 96 | 2.0% of contacts | Low | Not priced | Unmatchable by rule. |
| 23 | Unused custom fields | 64 | 37% of 173 custom fields | Low | Not priced | Reps scroll past clutter to find the fields that matter. |
| 24 | Malformed email addresses | 61 | 1.4% of contacts with an email | Low | Not priced | Can’t be synced, sequenced or matched. |
| 25 | Placeholder values in names or titles | 40 | 31 contacts · 9 companies | Low | Not priced | Counted as “filled”. Shows up in lists. |
| 26 | Deals missing an owner | 31 | 8.2% of all deals | Low | Not priced. Open ones are priced as unowned deals above. | Closed deals with no owner skew win-rate by rep. |
| 27 | Malformed company domains | 18 | 1.7% of companies with a domain | Low | Not priced | Breaks enrichment and company matching. |
| 28 | Open deals with no contact or company attached | 10 | 7.9% of open deals | Low | Not priced | Nobody to follow up with, or no account history. |
| 29 | Contacts with a non-standard lifecycle stage | 0 | 0% of contacts | Low | Not priced | Nothing found here. Reported so you know it was checked. |
Rep time
$4,524 + $1,235 + $910 + $12,480 = $19,149/yr
Pipeline at risk
$81,200 + $35,700 + $25,200 = $142,100
Forecast exposure
$406,000, shown on its own
Deal findings overlap. One deal can be stuck and have no next step. The counts aren’t additive. Each dollar line is computed on its own.
The assumptions behind the figures
- Rep time is priced at $65/hr, loaded.
- Per month: 4 minutes per duplicate record (capped at 8 reps × 120 minutes per rep per month), 6 per stuck deal, 5 per unowned or dead-owned deal.
- Pipeline at risk is 15% of unowned deals’ open value and 10% of stuck deals’ open value.
- Both pipeline figures are snapshots, not yearly.
Notes printed on HubSpot reports
- Deal last-activity uses HubSpot’s last-modified date. HubSpot has no single last-activity field on deals.
- Stage age uses HubSpot’s per-stage entry date. Where that’s missing, it falls back to last-modified.
The quote
Overhaul: $2,500 fixed. Founding price for the first 3 clients, then $3,500. Fixes everything above against a signed checklist: duplicates under 2%, every open deal owned, contacts linked to companies, values normalized, fields backfilled, stage rules in place.
One simple migration: one source (a CSV export or one CRM), up to 10,000 records, into Attio or HubSpot, standard fields mapped and reconciled row for row. 50% when you sign, 50% when the checklist passes. Guarantee: Every item on the checklist we agree at kickoff passes within 7 business days of access, or the second half is on us.
The Attio equivalent
On Attio, the same checks run and the report has the same shape, with these differences:
- Unowned deals are rarer. Attio requires an owner on deals.
- Duplicate contacts are mostly same-name-same-company matches. Attio makes email addresses unique.
- No lifecycle section, and no bounce data.
- The close-date check runs only if the workspace has a close-date field. Otherwise the report says there isn’t one.
- The next-step check reads tasks linked to the deal.
- The deactivated-owner check reads workspace member status.