{
  "_comment": "Pre-written recommendation copy per check id. {{placeholders}} interpolated with real metrics at report time. No LLM generation in V1 (deterministic, zero per-report cost).",
  "A1": "{{unengaged_marketable}} of your {{total_marketable}} marketing contacts ({{pct}}%) haven't opened an email in 6+ months, yet you pay for every one of them. Setting these to non-marketing before your renewal date could save an estimated {{waste}}/month. We run this as a safe, reversible bulk operation with a re-engagement campaign first — nobody worth keeping gets dropped.",
  "A2": "{{count}} contacts who can never legally or technically receive your emails are still counted as paid marketing contacts. This is pure waste — approximately {{waste}}/month — and it drags your deliverability metrics.",
  "A3": "{{dormant}} paid seats haven't logged in for 90+ days — an estimated {{waste}}/month. Downgrade them to free seats before renewal.",
  "A3_unverified": "Could not verify seat usage — {{user_count}} seats found; ask us to verify usage on the walkthrough call.",
  "A4": "You're paying Professional prices for automation you barely use ({{active_workflows}} active workflows). Either use it — we can build your core lifecycle, nurture, and handoff automations in two weeks — or downgrade and stop paying for shelf-ware.",
  "A5": "Enterprise features you're paying for — custom objects, multi-touch attribution, predictive scoring — show zero usage. That's the most expensive shelf-ware in your stack.",
  "A6": "An estimated {{dup_marketable}} duplicate marketing contacts are inflating your contact bill by roughly {{waste}}/month on top of the data problems they cause (see B4).",
  "A7": "You're {{overage}} contacts above the {{band}} pricing band — a 30-minute cleanup drops you a full tier.",
  "B1": "{{pct}}% of contacts have no owner — nobody is responsible for them, and round-robin/rotation automation can fix this permanently.",
  "B2": "Lifecycle stage is the backbone of funnel reporting. {{count}} contacts ({{pct}}%) have none — your funnel reports are fiction until this is fixed.",
  "B4": "We estimate ~{{est_dupes}} duplicate contacts ({{rate}}%). Duplicates split engagement history, break attribution, and inflate your bill.",
  "B6": "{{dead_count}} of your {{custom_count}} custom contact properties are effectively empty. Property bloat confuses reps, breaks forms, and makes every integration harder. We run a property audit + archive as a fixed-fee cleanup.",
  "B7": "{{pct}}% of your database has been untouched for a year. Rot at this level poisons deliverability, reporting, and rep trust in the CRM.",
  "C1": "Your weighted email open rate is {{open_rate}}% against a {{benchmark}}% benchmark. Subject lines, sender reputation, and list hygiene all feed this number — we diagnose which one is dragging yours.",
  "C2": "Your click-through rate is {{ctr}}% against a {{benchmark}}% benchmark. Opens without clicks means the content or the offer isn't landing — fixable with a template and CTA overhaul.",
  "C3": "A {{bounce}}% bounce rate puts your sender reputation at risk — once Gmail/Outlook start junking you, every email you send performs worse. Immediate list hygiene required.",
  "C5": "{{count}} forms collect leads that then receive nothing. Speed-to-lead is the single highest-leverage conversion fix — a 5-minute auto-response beats a next-day manual email every time.",
  "C8": "No lead scoring means your reps treat every lead the same — and ignore most of them. We implement scoring tied to your actual closed-won history, not guesswork.",
  "D1": "{{error_flows}} enabled workflows report errors or broken references. Every one is silently failing the contacts inside it.",
  "D1_manual": "Workflow error data isn't exposed on this portal via API — {{enabled}} enabled workflows need a manual review. Included in the free walkthrough.",
  "D2": "{{dead}} of {{enabled}} active workflows enrolled nobody in 90 days — they're either broken or pointless, and each one is a landmine for the next admin.",
  "D4": "Nothing in your portal moves contacts through lifecycle stages automatically — the classic gap we find in 8 out of 10 audits. It's a two-day build.",
  "E1": "{{count}} open deals ({{pct}}%) have no amount — your pipeline reports and forecasts are understated by an unknowable figure.",
  "E2": "{{count}} open deals ({{pct}}%) have no close date — they can't appear correctly in any forecast view.",
  "E3": "{{rotting_count}} open deals are past their close date — {{pipeline_at_risk}} of pipeline nobody believes in. Your forecast is built on it. Pipeline hygiene rules + a rot-alert workflow fix this in a week.",
  "H1": "Your HubSpot tracking code was not found on {{domain}} — every visitor, page view, and attribution touchpoint is going unrecorded.",
  "H1_wrong_portal": "A HubSpot tracking script was found on {{domain}}, but it belongs to a different portal ({{found_portal}}) — likely an agency leftover. Your traffic data is going to someone else's portal.",
  "COULD_NOT_EVALUATE": "Could not evaluate this automatically on your portal — included in the free walkthrough call."
}
