Mean 0.973 · 35/40 perfect tests · $3.03 total · each card: the question → the correct answer (gold) → this model's actual answer
Definitions: - DS2+ deal = stage DS2, DS3, DS4, or DS5. - why-buys non-compliant = why_buys empty OR <15 chars OR placeholder (tbd, n/a, see notes); LONG(n) counts as compliant/substantive. - Missing DS1 = t_ds1 empty. - Regressed = any earlier-stage timestamp later than a later-stage timestamp (t_ds1 > t_ds2 > t_ds3 > t_ds4 > t_ds5 check). Results (156 open deals audited; 124 DS2+, 32 DS1): - DS2+ why-buys non-compliant overall: 101 / 124 = 81.45%. Compliant: 23 / 124 = 18.55%. - By owner (DS2+ only): Bryce Harmon: 15 / 18 = 83.3% non-compliant Dana Mercer: 18 / 22 = 81.8% non-compliant Alex Franklin: 48 / 61 = 78.7% non-compliant Cole Ingram: 19 / 22 = 86.4% non-compliant Farid Osman: 1 / 1 = 100.0% non-compliant Elena Sinclair: no DS2+ deals in open pipeline, rate not applicable - Deals with no DS1 timestamp: 0. - Regressed timestamps: 0. Process fixes: 1. Make why-buys required with 15+ character validation on DS2+ stage save; block DS2 entry without it. 2. Add DS2+ forecast/commit checklist requiring why-buys review; reject BEST_CASE/COMMIT without substantive why-buys. 3. Run weekly hygiene report by owner on DS2+ missing why-buys and require backfill before pipeline review.
Owner resolution for open deals (deals_open.csv joined to owners.csv on owner_id): Deals resolved: 156 of 156 156 = 35 + 67 + 24 + 22 + 7 + 1 (counts below) Deals whose owner_id has no match in owners table: 0 List: none. Every owner_id in the extract (119337721, 84342457, 83155923, 83155924, 716654662, 701163055) exists in owners.csv. Do not assign any other name. Owner ids that map to archived/deactivated owners: 0 among open deals owners.csv flags archived=true for: - 1520255671, Gavin Porter - 77260721, Hugo Lindqvist Neither id appears on any open deal in this extract. All open-deal owner_ids map to archived=false. Total pipeline amount per resolved owner (sum of amount): - Bryce Harmon (119337721), 35 deals: total 1054144 - Alex Franklin (84342457), 67 deals: total 624310 - Dana Mercer (83155923), 24 deals: total 341195 - Cole Ingram (83155924), 22 deals: total 288161.43 - Farid Osman (716654662), 7 deals: total 4134 arithmetic: 1249 + 1 + 1 + 1 + 2880 + 1 + 1 = 4134 - Elena Sinclair (701163055), 1 deal (Deal-57FF13): total 2100 Check: 1054144 + 624310 + 341195 + 288161.43 + 4134 + 2100 = 2314044.43 total open pipeline. Data missing: none for this join. No unmatched ids to name.
(a) Orphans: 30 of 67 gong rows have hs_deal_id with no match in deals_open. Arithmetic: 67 - 37 matched = 30 orphan. Sample aliases (from data): Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42. (b) Duplicate conversation keys: 0 rows where calls_90d exceeds distinct_conversation_keys. Arithmetic: 0 / 67. calls_90d equals distinct_conversation_keys on all rows checked. (c) Open deals at DS3 or later with at least one logged call: 25 of 85 = 29.4%. Arithmetic: DS3 61 + DS4 14 + DS5 10 = 85 open DS3+. 25 with hs_deal_id match in gong table. 25 / 85 = 0.2941 = 29.4%. 60 DS3+ open deals have no logged call. Note: join was on hs_deal_id = deal_id only. gong_owner_id not used as HubSpot owner id per note.
```sql
SELECT
-- One row per company in source; company identifier column not named in catalog so not invented here
-- FIRST_SUB_PAYMENT_DATE defines first calendar month as customer
DATE_TRUNC('MONTH', FIRST_SUB_PAYMENT_DATE) AS first_customer_month,
M1_USERS AS unique_givers,
M1_GIVES AS recognition_count,
-- M1_REDEMPTIONS used because join keys and date/company columns for REDEMPTION_RECORDS_V2 are not documented in catalog; cannot join without inventing facts
-- No deleted-giver exclusion applied per business rule: that filter must NOT be applied to historical giving counts
M1_REDEMPTIONS AS successful_redemption_count
-- PRODUCTION.PLG.COMPANY_COHORT_SUMMARY is the only cataloged source with first-month gives/redemptions per company; avoids STALE PRODUCTION.HUBSPOT.DEALS, UNPOPULATED V2_LIVE.OBJECTS_DEALS, and RETIRED GONG_HUBSPOT_MAP_FAST
FROM PRODUCTION.PLG.COMPANY_COHORT_SUMMARY
WHERE FIRST_SUB_PAYMENT_DATE IS NOT NULL
```
CRM COMPLETENESS AUDIT - data provided only, no values invented DATA MISSING: No deals file was provided. Cannot report completeness percent for deals owner, stage, amount, close date, why-buys. Cannot compute pipeline amount at stake. No ranking by amount is possible. No company name field was provided, only company_alias + domain. Name-variant duplicate detection beyond shared domain is not possible. No deals/amounts link contacts to pipeline, so fix prioritization by amount cannot be done. 1. COMPLETENESS PERCENT PER FIELD Companies: 34 rows total. company industry: filled 34, missing 0. 34/34*100 = 100.0% company employee_count: filled 25, missing 9. 25/34*100 = 73.5% company hq_country: filled 28, missing 6. 28/34*100 = 82.4% Missing employee_count (9): C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386, C-93C8BF Missing hq_country (6): C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5, C-EE9FFB Note: C-44EA29 and C-D04904 are missing both employee_count and hq_country. Contacts: 52 rows in extract, covering only 20 company_aliases. 20 with contacts: C-2D1F1B, C-66D1FC, C-C6FE92, C-950043, C-D73B89, C-EC3025, C-96039F, C-44EA29, C-92D97D, C-D04904, C-31ED2A, C-77A95A, C-AA8DDA, C-B23205, C-E51FB7, C-63A874, C-D0662E, C-B25F40, C-60C75F, C-425E2A 14 with zero contacts in extract: C-2C60E5, C-B97B4E, C-2D7423, C-7BBDFA, C-50D386, C-BA969B, C-332637, C-93C8BF, C-EE9FFB, C-C9BB20, C-0A092931, C-0A092932, C-0A092933, C-0A092934 contact email non-empty: filled 52, missing 0. 52/52*100 = 100.0% contact email syntactically valid (local@domain.tld): valid 48, invalid 4. 48/52*100 = 92.3% contact title: filled 39, missing 13. 39/52*100 = 75.0% contact persona: filled 37, missing 15. 37/52*100 = 71.2% Missing title (13): CT-0000 (C-2D1F1B), CT-0022 (C-C6FE92), CT-0072 (C-44EA29), CT-0080 (C-92D97D), CT-0081 (C-92D97D), CT-0092 (C-D04904), CT-0120 (C-AA8DDA), CT-0121 (C-AA8DDA), CT-0122 (C-AA8DDA), CT-0132 (C-B23205), CT-0141 (C-E51FB7), CT-0162 (C-D0662E), CT-0170 (C-B25F40) Missing persona (15): CT-0000 (C-2D1F1B), CT-0022 (C-C6FE92), CT-0041 (C-D73B89), CT-0060 (C-96039F), CT-0070 (C-44EA29), CT-0081 (C-92D97D), CT-0082 (C-92D97D), CT-0092 (C-D04904), CT-0110 (C-77A95A), CT-0132 (C-B23205), CT-0162 (C-D0662E), CT-0171 (C-B25F40), CT-0172 (C-B25F40), CT-0180 (C-60C75F), CT-0181 (C-60C75F) 2. DUPLICATE COMPANY CLUSTERS (shared domain) Cluster A - domain acme-corp.com (2 rows): C-0A092931: industry Technology, employee_count 500, hq_country US C-0A092932: industry tech, employee_count 510, hq_country USA Survivor proposal: C-0A092931. Reason: preserves canonical capitalization Technology vs tech, no enrichment row to arbitrate 500 vs 510 and US vs USA. Requires human merge review. Do not invent survivor values. Cluster B - domain globex.io (2 rows): C-0A092933: industry SaaS, employee_count 200, hq_country US C-0A092934: industry Technology, employee_count 200, hq_country US Survivor proposal: C-0A092934. Reason: industry Technology matches dominant CRM taxonomy vs outlier SaaS, all else equal. Requires human merge review. Do not invent. No other shared domains (case-insensitive check). Name-variant check not possible, no name field provided. 3. INVALID EMAILS AND DOMAIN MISMATCHES Invalid - fails local@domain.tld (4): CT-0010 (C-66D1FC): user0@ CT-0080 (C-92D97D): user0@ CT-0081 (C-92D97D): user1@ CT-0192 (C-425E2A): user2@ Fix: correct source address, do not invent. Domain mismatch - email domain != contact domain (1, syntactically valid): CT-0011 (C-66D1FC): email user1@other-domain.com vs contact domain 66d1fc.com Fix: verify if personal/forwarding address or wrong company, do not rewrite. 4. ENRICHMENT FILL - missing company fields only Enrichment covers 25 domains. No match for 9 domains, cannot fill: ba969b.com (C-BA969B), 332637.com (C-332637), 93c8bf.com (C-93C8BF), ee9ffb.com (C-EE9FFB), c9bb20.com (C-C9BB20), acme-corp.com (C-0A092931, C-0A092932), globex.io (C-0A092933, C-0A092934). Fills allowed (CRM null, ZI non-null): C-EC3025 employee_count: CRM null -> ZI 400. Fill 400. C-96039F employee_count: CRM null -> ZI 400. Fill 400. C-44EA29 employee_count: CRM null -> ZI 400. Fill 400. C-D04904 employee_count: CRM null -> ZI 400. Fill 400. C-B23205 employee_count: CRM null -> ZI 400. Fill 400. C-60C75F employee_count: CRM null -> ZI 400. Fill 400. C-7BBDFA employee_count: CRM null -> ZI 400. Fill 400. C-50D386 employee_count: CRM null -> ZI 400. Fill 400. Cannot fill (both CRM and ZI null, or no ZI row): C-2D1F1B hq_country: CRM null, ZI null. Data missing. C-D73B89 hq_country: CRM null, ZI null. Data missing. C-44EA29 hq_country: CRM null, ZI null. Data missing. C-D04904 hq_country: CRM null, ZI null. Data missing. C-2C60E5 hq_country: CRM null, ZI null. Data missing. C-93C8BF employee_count: CRM null, no ZI row. Data missing. C-EE9FFB hq_country: CRM null, no ZI row. Data missing. 5. CRM VS ENRICHMENT DISAGREEMENTS (both present, strings differ exactly) C-66D1FC: industry CRM tech vs ZI Computer Software. HQ CRM US vs ZI United States. C-950043: HQ CRM US vs ZI United States. Industry both Retail, emp both 120 - match. C-EC3025: industry CRM Technology vs ZI Computer Software. HQ CRM USA vs ZI United States. C-96039F: HQ CRM USA vs ZI United States. Industry both Finance - match. C-44EA29: industry CRM tech vs ZI Computer Software. C-92D97D: industry CRM Technology vs ZI Computer Software. Emp 50 and HQ Canada match. C-D04904: industry CRM Technology vs ZI Computer Software. C-77A95A: industry CRM Technology vs ZI Computer Software. HQ CRM US vs ZI United States. Emp 1500 match. C-AA8DDA: industry CRM Technology vs ZI Computer Software. Emp 1500, HQ Canada match. C-B23205: HQ CRM US vs ZI United States. C-E51FB7: HQ CRM USA vs ZI United States. Industry Finance and emp 1500 match. C-D0662E: HQ CRM US vs ZI United States. Industry Retail and emp 1500 match. C-B25F40: industry CRM Technology vs ZI Computer Software. Emp 120, HQ Canada match. C-60C75F: industry CRM tech vs ZI Computer Software. C-425E2A: industry CRM Tech (trailing space) vs ZI Computer Software. HQ CRM USA vs ZI United States. Emp 50 match. C-2D7423: HQ CRM USA vs ZI United States. Industry Manufacturing and emp 900 match. Exact matches (no disagreement): C-2D1F1B, C-C6FE92, C-D73B89, C-31ED2A, C-63A874, C-2C60E5, C-B97B4E, C-7BBDFA, C-50D386. Recommendation: keep CRM as source of record where CRM is present. Do not bulk-overwrite industry Technology/tech with ZI Computer Software, taxonomies differ. Do not bulk-overwrite US/USA with United States without an agreed standard. Normalize whitespace/case (Tech + trailing space, tech vs Technology, health care vs Healthcare) only via approved controlled list with human sign-off. Use ZI only to fill nulls as listed above. Other standardization flags (no overwrite, review needed): industry variants tech, Tech , Technology, health care, Healthcare; HQ variants US, USA, United States, UK, Canada. 6. 10 FIXES WITH MOST PIPELINE AMOUNT AT STAKE Pipeline amount data missing - no deals file, no amount field. The following 10 are NOT ranked by amount. Ordered by structural risk only, amounts unknown. 1. Resolve Cluster A acme-corp.com: merge C-0A092931 / C-0A092932, confirm employee_count 500 vs 510, industry Technology vs tech, HQ US vs USA. Amount at stake: unknown, data missing. 2. Resolve Cluster B globex.io: merge C-0A092933 / C-0A092934, confirm industry SaaS vs Technology. Amount at stake: unknown, data missing. 3. Fix invalid emails CT-0010, CT-0080, CT-0081, CT-0192 (user0@, user1@, user2@ fragments). Amount at stake: unknown. 4. Review domain mismatch CT-0011 user1@other-domain.com (C-66D1FC). Amount at stake: unknown. 5. Fill 8 employee_count nulls from ZI 400: C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386. Amount at stake: unknown. 6. Obtain hq_country for C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5, C-EE9FFB. No ZI value. Amount at stake: unknown. 7. Obtain employee_count for C-93C8BF and hq_country for C-EE9FFB. No ZI row. Amount at stake: unknown. 8. Backfill titles for 13 contacts and personas for 15 contacts listed in section 1, especially C-AA8DDA all 3 contacts missing title, C-B25F40 both contacts missing persona. Amount at stake: unknown. 9. Standardize industry/HQ vocabularies, do not auto-overwrite: tech/Tech /Technology vs Computer Software, US/USA/United States. Requires owner decision. Amount at stake: unknown. 10. Provide deals extract with owner, stage, amount, close date, why-buys, and contacts for 14 zero-contact companies. Without this, completeness and pipeline-at-stake cannot be computed. Amount at stake: unknown.
Classification by deal_alias - category | side - based only on closed_lost_tag + closed_lost_reason_text: Deal-DB0AAC - timing | buyer - pause, reconnect timeline Deal-F7F635 - competitor | buyer - go in another direction Deal-AC944F - other | unknown - unresponsive Deal-214060 - other | unknown - unresponsive Deal-91A056 - timing | buyer - reconnect early 2027 Deal-29326C - timing | buyer - Timing Deal-5DB9B0 - other | unknown - Spam, Does not fit ICP Deal-831B7B - timing | buyer - look again new year Deal-F97C37 - competitor | buyer - other vendor more diversified offerings Deal-13E9CF - no decision | buyer - R&R deprioritized, not budget issue Deal-39E25C - timing | buyer - reconnect next year Deal-7ED004 - pricing | buyer - did not get budget approval Deal-21B045 - other | unknown - MIA Deal-B3ABED - timing | buyer - revisit Q2 next year, budget for 2028 Deal-422BA6 - competitor | buyer - chose competing vendor, ADP TotalSource PEO partner Deal-ED9AE7 - timing | buyer - Timing, budget, authority Deal-988493 - other | unknown - mia Deal-381C8C - competitor | buyer - tag Competitor, text only says not moving forward Deal-F308CA - other | unknown - no contact since April, ignored outreach Deal-F1E8A6 - competitor | buyer - tag Competitor, text only says not moving forward Deal-B6AC09 - timing | buyer - revisiting in 2027 Deal-70F704 - other | unknown - only automate anniversary awards + MIA, tag Lost DM Deal-E6E80A - timing | buyer - pushed early 2027 Deal-B038F0 - timing | buyer - pushed early 2027 Deal-4664E1 - other | unknown - no contact after intro Deal-175756 - timing | buyer - on hold until 2027, other priorities Deal-E74A73 - no decision | buyer - test manually before investing, next year Deal-DDAB52 - competitor | buyer - Rippl, more at same cost, no exchange rate issue Deal-ACE061 - competitor | buyer - feel went with HeyTaco, different direction Deal-BB78F3 - timing | buyer - roll out plant items first Deal-D48E0B - other | unknown - MIA Deal-15DA99 - timing | buyer - early 2027 Deal-F4AF5D - timing | buyer - early next year Deal-79B7A1 - timing | buyer - Timing Deal-583ADB - other | unknown - MIA Deal-8E27DA - no decision | buyer - swag provider only, didn't want R&R, tag Feature Request Deal-2D2F8D - competitor | buyer - different direction, tag Competitor Deal-E0441F - other | unknown - stale, no contact Deal-7CB44D - other | unknown - no meaningful contact since demo Deal-0F96AA - competitor | buyer - not advancing to finalist demo, RFP Deal-1BCA50 - competitor | buyer - budget/gift cards + stakeholder down path with another vendor Deal-7CC678 - competitor | buyer - tag Competitor, Nothing specific provided Deal-FAC17C - no decision | buyer - couldn't get final approval Executive IT Director, tag Lost DM Deal-242273 - competitor | buyer - lost on digitize internal points currency, spend at onsite facilities Deal-50E5D8 - no decision | buyer - leadership pause Deal-A2C349 - competitor | buyer - stick with Awardco + surveying Deal-9F176A - timing | buyer - pause until end of year Deal-7B2236 - pricing | Bonusly - budget + prefer simpler and cheaper Deal-AFA56C - other | unknown - unresponsive Deal-C7156E - competitor | buyer - selected another vendor Deal-C33D91 - pricing | buyer - budget cuts, not approved Deal-9048EB - product gap | Bonusly - bad fit, desired setup, multiple feature gaps + no contact since April, tag MIA Deal-5E64CE - competitor | buyer - Nectar agreement fee, through Oct 2027, tag Doing nothing Deal-8A0992 - competitor | buyer - Canadian provider Deal-D0C698 - competitor | buyer - past user of Kudos, wants that platform Deal-69CF3D - timing | buyer - On Hold Deal-ECBF89 - timing | buyer - On Hold Deal-3618CC - product gap | Bonusly - Wanted Surveys, tag Lost DM Deal-EECC02 - competitor | buyer - Went another direction Deal-5AD03E - product gap | Bonusly - Wanted more defined budget access, tag Competitor Deal-D1A623 - timing | buyer - timing Deal-413C56 - no decision | buyer - back to school priority, CEO not ready Deal-47F1A1 - competitor | buyer - Staying with WorkTango 12 months Deal-BF2A98 - competitor | buyer - Recently deployed HiThrive Deal-2A292B - no decision | buyer - build something simple internally Deal-D1AABF - other | unknown - No response Deal-FEDBCB - timing | buyer - reconnect end of year, not engaged Deal-1E7DA9 - competitor | buyer - selected another platform Deal-2BBA21 - other | unknown - no contact since intro, ignored nudges Deal-286F9C - competitor | buyer - another platform, not good fit Deal-7FBAC6 - no decision | buyer - Leadership pause Deal-369281 - competitor | buyer - went with Paylocity Deal-386F6E - other | unknown - No response Deal-9FCD0D - competitor | buyer - Canadian company, CEO preference Deal-55867E - no decision | buyer - not moving forward, no timing stated, tag Timing Deal-DAFB82 - pricing | buyer - priorities, not budgeted until 2028, loves Bonusly Deal-2FEDDB - timing | buyer - Unsure on timing Deal-64B19A - competitor | buyer - Likely stayed with Motivosity Deal-3F86A0 - other | unknown - unresponsive Deal-096750 - other | unknown - no meaningful contact after intro Deal-F325A5 - no decision | buyer - Layoffs and Change in Leadership, no longer priority Deal-ABD14C - no decision | buyer - Not interested Deal-79E61A - other | unknown - Unresponsive Deal-8A119B - pricing | buyer - Didn't get approval Deal-AE7C4E - other | unknown - Unresponsive Deal-DAB4F1 - other | unknown - Unresponsive Deal-B4B50F - other | unknown - Unresponsive Deal-981AD4 - product gap | Bonusly - Doesn't fit UI and not UK focused Deal-DC77FE - competitor | buyer - more customization e.g. label points as dollars, price not factor Deal-5885B9 - other | unknown - MIA Summary counts: competitor 26 + timing 21 = 47 47 + other 23 = 70 70 + no decision 11 = 81 81 + pricing 5 = 86 86 + product gap 4 = 90 90 + champion left 0 = 90 Total 90 deals. Side split: buyer 62 = timing 21 + competitor 26 + no decision 11 + pricing-buyer 4 Bonusly 5 = pricing-Bonusly 1 (Deal-7B2236) + product gap 4 unknown 23 = other 23 Check: 62 + 5 + 23 = 90. Tag vs text disagreements: 6 where tag clearly disagrees: Deal-70F704 - tag Lost DM vs text narrow anniversary-awards need + MIA, no DM mention Deal-8E27DA - tag Feature Request vs text didn't want R&R, swag only Deal-5E64CE - tag Doing nothing vs text locked in Nectar to Oct 2027, competitor lock-in Deal-3618CC - tag Lost DM vs text Wanted Surveys, no DM mention Deal-5AD03E - tag Competitor vs text Wanted more defined budget access, no competitor named Deal-55867E - tag Lost- Timing vs text no timing, only not moving forward Two patterns to act on: 1. 2027 timing cliff: 21 timing losses explicitly pushed to next year / early 2027 / 2028, e.g. Deal-91A056, Deal-B6AC09, Deal-E6E80A, Deal-B038F0, Deal-175756, Deal-15DA99. Needs dated nurture, not generic close. 2. Unresponsive pipeline + specific competitor intel: 23 other/unknown are MIA/unresponsive/no contact, e.g. Deal-AC944F, Deal-214060, Deal-4664E1, Deal-7CB44D, plus 26 competitor losses naming Rippl, Awardco, WorkTango, Motivosity, Nectar, Kudos, HeyTaco, HiThrive, Paylocity, ADP TotalSource partner, Canadian provider, points-currency digitization in Deal-242273, dollars labeling in Deal-DC77FE, surveys in Deal-3618CC/A2C349.
{"tier_counts": {"LOCK": 5, "ACTION": 18, "BUILD": 48, "REVIVE": 18, "WATCH": 31, "RISKY": 36}, "tier_examples": {"LOCK": ["Deal-D348E1", "Deal-C26D20", "Deal-403845"], "ACTION": ["Deal-25F752", "Deal-C6FE92", "Deal-944310"], "BUILD": ["Deal-D73B89", "Deal-93C8BF", "Deal-523604"], "REVIVE": ["Deal-2D1F1B", "Deal-950043", "Deal-1BEEBF"], "WATCH": ["Deal-66D1FC", "Deal-B23205", "Deal-40522D"], "RISKY": ["Deal-547B2B", "Deal-B7EBD1", "Deal-E53952"]}, "risky_deals": ["Deal-547B2B", "Deal-B7EBD1", "Deal-A2B47C", "Deal-2465CE", "Deal-584EE5", "Deal-FD9F4E", "Deal-A5E80A", "Deal-499BF6", "Deal-E53952", "Deal-5408B0", "Deal-9AAE5F", "Deal-C61CF7", "Deal-62D607", "Deal-C6D97A", "Deal-7B3B0F", "Deal-F9A08A", "Deal-0660B4", "Deal-BA571A", "Deal-FC22A3", "Deal-7BBDFA", "Deal-60C2C2", "Deal-4A13AD", "Deal-8AD4A5", "Deal-15D24F", "Deal-9D0060", "Deal-690476", "Deal-635B8E", "Deal-ED725A", "Deal-55164C", "Deal-3BA5EA", "Deal-5FDCE4", "Deal-F336B6", "Deal-5EED42", "Deal-BA3DDC", "Deal-7599B8", "Deal-F9A3C1"], "lock_violations": 0, "pipeline_shape": "156 deals = 11 COMMIT + 40 BEST_CASE + 105 PIPELINE; 55/154 with meetings_30d>0, 99 zero plus 2 missing; strength concentrated in DS1/DS2/DS3 PIPELINE volume while DS4/DS5 COMMIT/BEST_CASE is thin and 8/11 COMMIT lack late-stage meeting support, so forecast exceeds engagement evidence."}
[
{
"transcript_id": "TX-001",
"deal_alias": "Deal-CFE7F4",
"why_buys": ["automating anniversary and birthday awards"],
"pain_points": ["HR team of three cannot keep up with it manually", "track everything in a spreadsheet, and people slip through the cracks"],
"stakeholders": ["Prospect (VP People)", "Prospect (HR Admin)"],
"budget_signal": "We have about $40k earmarked for engagement tools this fiscal year.",
"timeline_signal": "Ideally we would have this live before open enrollment in November.",
"competitor_mentioned": "Achievers",
"next_step": "security review on September 12",
"objections": ["we need SSO and audit logs for IT to sign off"],
"confidence": "high"
},
{
"transcript_id": "TX-002",
"deal_alias": "Deal-70BB30",
"why_buys": ["tie recognition to retention for our hourly workforce — regretted turnover there is over 30%"],
"pain_points": ["regretted turnover over 30% for hourly workforce", "Integration with Workday has to be rock solid"],
"stakeholders": ["Prospect (Head of Total Rewards)", "Prospect (CFO)"],
"budget_signal": "Finance has approved a $25k pilot budget for this quarter.",
"timeline_signal": "We want a decision by end of September.",
"competitor_mentioned": null,
"next_step": "send the pilot agreement and we'll route it to legal this week",
"objections": ["Integration with Workday has to be rock solid — that's my one condition"],
"confidence": "high"
},
{
"transcript_id": "TX-003",
"deal_alias": "Deal-530B50",
"why_buys": ["make recognition visible across our 12 retail locations"],
"pain_points": ["Store managers have zero budget autonomy for on-the-spot recognition today"],
"stakeholders": ["Prospect (People Ops Manager)"],
"budget_signal": null,
"timeline_signal": "Honestly there's no rush on our side until Q1.",
"competitor_mentioned": "Bucketlist",
"next_step": "schedule a call with our CEO — I'll send two times",
"objections": ["The CEO has to be sold first — she decides anything people-related"],
"confidence": "high"
},
{
"transcript_id": "TX-004",
"deal_alias": "Deal-180D02",
"why_buys": ["consolidate three separate recognition tools into one"],
"pain_points": ["We're paying for three tools and none of them talk to our HRIS"],
"stakeholders": ["Prospect (VP People)", "Prospect (IT Security Lead)"],
"budget_signal": "If it's under $15k annually, I can approve it without going to the board.",
"timeline_signal": "Our procurement cycle runs six to eight weeks minimum.",
"competitor_mentioned": null,
"next_step": null,
"objections": ["The security review took three months for our last vendor"],
"confidence": "high"
},
{
"transcript_id": "TX-005",
"deal_alias": "Deal-F8767A",
"why_buys": ["automate service milestones", "give us analytics on recognition equity across departments"],
"pain_points": ["Our night-shift teams feel invisible — their engagement scores run 20 points lower"],
"stakeholders": ["Prospect (HR Director)", "Prospect (People Ops Coordinator)"],
"budget_signal": "We have $12k approved under our engagement line.",
"timeline_signal": "We need this running before our January all-hands.",
"competitor_mentioned": "Nectar",
"next_step": "come present to our exec team on October 2",
"objections": ["Our exec team is skeptical after a failed rollout two years ago"],
"confidence": "high"
},
{
"transcript_id": "TX-006",
"deal_alias": "Deal-EE195F",
"why_buys": ["cut the admin time on service awards"],
"pain_points": ["I personally spend five hours a month ordering and shipping plaques", "Budget isn't the issue — time is"],
"stakeholders": ["Prospect (HR Manager)"],
"budget_signal": null,
"timeline_signal": "Our fiscal year resets in February, so a Q1 start is realistic.",
"competitor_mentioned": null,
"next_step": "send the one-page overview and I'll forward it to our COO this week",
"objections": ["our COO usually prefers building things in-house"],
"confidence": "high"
}
]
1. Deal-547B2B — $11,200 Why close: DS5/COMMIT, close_date 2026-09-11. Per Alex Franklin 2026-09-04: redlines clean, signing page out, VP People signing tomorrow. Left: signature return only. 2. Deal-403845 — $9,000 Why close: DS5/COMMIT, close_date 2026-09-11. Per Dana Mercer 2026-09-04: order form with their finance team. Left: finance approval + signature. 3. Deal-A2B47C — $6,360 Why close: DS5/COMMIT, close_date 2026-09-11. Per Alex Franklin 2026-09-04: still warm, normal legal-review pace. Left: complete legal review + signature. Excluded: Deal-2465CE ($5,400, DS5/COMMIT) is blocked — champion left, procurement froze vendors, moving to Q4 per Dana Mercer 2026-09-04 — despite CRM COMMIT status.
Candidate classification:
1. Deal-EC3025
Prospect line: "We need SCIM user provisioning — our security team will not approve any tool that requires manual account management."
Classification: real gap
Reason: product_docs.md states "SCIM user provisioning and ADP Workforce Now integrations are NOT currently listed as supported capabilities."
Amount: missing — no amount provided in transcripts_gaps.csv or product_docs.md.
2. Deal-D0D6B5
Prospect line: "Our payroll runs on ADP Workforce Now and I don't see ADP anywhere in your integration list — that's a dealbreaker for us."
Classification: real gap
Reason: product_docs.md lists HRIS integrations as "Workday, BambooHR, Gusto, Rippling (Pro and above)" and states ADP Workforce Now is NOT currently listed as supported.
Amount: missing — no amount provided in transcripts_gaps.csv or product_docs.md.
3. Deal-CFE7F4
Prospect line: "I tried to build a custom report combining recognition frequency with turnover and couldn't — is that possible on our current plan?"
Classification: plan gate
Reason: product_docs.md lists "Custom report builder" as Enterprise only (Core: —, Pro: —, Enterprise: yes).
Amount: missing — no amount provided.
4. Deal-84DBA6
Prospect line: "We turned on the Slack integration in July, but half our managers still haven't given a single recognition — nobody ever trained them on it."
Classification: rollout/enablement issue
Reason: product_docs.md lists "Slack and Microsoft Teams integration" as yes on all plans. Issue is training/adoption, not missing capability.
Amount: missing — no amount provided.
5. Deal-36C33F
Excluded — no prospect-raised gap. Rep line ("Full transparency — we don't have a native mobile app for hourly workers yet, though it's on the roadmap.") does not count as prospect voice per instructions. Prospect line ("Good to know. The web version should be fine for our office staff for now.") does not raise a gap.
Summary — true product gaps only (2):
- Deal-EC3025 — SCIM user provisioning — Amount: missing
- Deal-D0D6B5 — ADP Workforce Now integration — Amount: missing
Arithmetic: 2 real gaps out of 5 transcripts reviewed. Total amount at risk: cannot calculate — amounts missing for both deals.
Snapshot date: 2026-09-05 Stale definition: days = 2026-09-05 minus max(last_email, last_call, last_meeting) from engagements_by_deal_90d.csv. Stale if days > 7. Deal last_contacted_field ignored as instructed. Missing data - recency cannot be computed: Deal-3EED2C (Alex Franklin) - no row in engagements table Deal-57FF13 (Elena Sinclair) - no row in engagements table STALE DEALS BY OWNER - ordered amount descending within owner Owner: Bryce Harmon Deal-2D1F1B | DS1 | 240000 | 81 days | 2026-09-05 minus 2026-06-16 = 81 Deal-66D1FC | DS1 | 99000 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Deal-950043 | DS1 | 70000 | 19 days | 2026-09-05 minus 2026-08-17 = 19 Deal-B23205 | DS1 | 45000 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Deal-7BBDFA | DS3 | 37440 | 46 days | 2026-09-05 minus 2026-07-21 = 46 Deal-332637 | DS2 | 36000 | 9 days | 2026-09-05 minus 2026-08-27 = 9 Deal-1BEEBF | DS1 | 31500 | 19 days | 2026-09-05 minus 2026-08-17 = 19 Deal-C5658B | DS1 | 23400 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Deal-40522D | DS3 | 21000 | 19 days | 2026-09-05 minus 2026-08-17 = 19 Deal-F0EBBB | DS3 | 11400 | 24 days | 2026-09-05 minus 2026-08-12 = 24 Deal-E25A09 | DS1 | 6000 | 9 days | 2026-09-05 minus 2026-08-27 = 9 Deal-C9C286 | DS2 | 5502 | 9 days | 2026-09-05 minus 2026-08-27 = 9 Deal-012CB1 | DS1 | 1 | 23 days | 2026-09-05 minus 2026-08-13 = 23 Owner: Dana Mercer Deal-44EA29 | DS2 | 60000 | 10 days | 2026-09-05 minus 2026-08-26 = 10 Deal-E51FB7 | DS2 | 43875 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-B42F46 | DS1 | 27000 | 19 days | 2026-09-05 minus 2026-08-17 = 19 Deal-BA3DDC | DS3 | 23400 | 15 days | 2026-09-05 minus 2026-08-21 = 15 Deal-9DDE86 | DS2 | 20000 | 15 days | 2026-09-05 minus 2026-08-21 = 15 Deal-215CCA | DS3 | 18900 | 17 days | 2026-09-05 minus 2026-08-19 = 17 Deal-5EED42 | DS3 | 16250 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-57887A | DS2 | 15000 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-B7EBD1 | DS5 | 9000 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Deal-3974EB | DS4 | 9000 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-F40F04 | DS2 | 8100 | 15 days | 2026-09-05 minus 2026-08-21 = 15 Deal-87DDD1 | DS1 | 5000 | 19 days | 2026-09-05 minus 2026-08-17 = 19 Deal-F336B6 | DS3 | 4200 | 15 days | 2026-09-05 minus 2026-08-21 = 15 Deal-0660B4 | DS4 | 1920 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Owner: Alex Franklin Deal-CC08D1 | DS1 | 24000 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Deal-E73427 | DS3 | 18000 | 10 days | 2026-09-05 minus 2026-08-26 = 10 Deal-885F45 | DS2 | 9300 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-C2FF3C | DS1 | 8316 | 10 days | 2026-09-05 minus 2026-08-26 = 10 Deal-0D2F7A | DS3 | 5100 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-6C60D4 | DS3 | 4800 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-13FEBD | DS2 | 4680 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-9D0060 | DS3 | 3840 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-690476 | DS2 | 3600 | 18 days | 2026-09-05 minus 2026-08-18 = 18 Deal-C6D97A | DS4 | 3240 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-EE195F | DS3 | 3120 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-278DEC | DS3 | 2700 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-635B8E | DS3 | 2600 | 18 days | 2026-09-05 minus 2026-08-18 = 18 Deal-6883F3 | DS1 | 2400 | 16 days | 2026-09-05 minus 2026-08-20 = 16 Deal-4A13AD | DS3 | 2160 | 26 days | 2026-09-05 minus 2026-08-10 = 26 Deal-F67D31 | DS2 | 1800 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-5FDCE4 | DS3 | 1600 | 12 days | 2026-09-05 minus 2026-08-24 = 12 Deal-BA571A | DS4 | 1080 | 18 days | 2026-09-05 minus 2026-08-18 = 18 Owner: Cole Ingram Deal-D04904 | DS2 | 58529.25 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-B25F40 | DS3 | 40000 | 8 days | 2026-09-05 minus 2026-08-28 = 8 Deal-813836 | DS2 | 32175 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-1BA595 | DS2 | 31750 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-CFE1E8 | DS3 | 18000 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-CD47A6 | DS2 | 12168 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-627646 | DS3 | 11193 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-FF809F | DS2 | 7781.2 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-AF932D | DS2 | 7225.4 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-A71728 | DS2 | 6947.5 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-8BC9F5 | DS2 | 5616 | 10 days | 2026-09-05 minus 2026-08-26 = 10 Deal-175395 | DS3 | 4779.88 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-481E24 | DS3 | 4140 | 10 days | 2026-09-05 minus 2026-08-26 = 10 Deal-C7F9BF | DS2 | 3360 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-2F3A66 | DS3 | 3334.8 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-342E96 | DS2 | 2700 | 24 days | 2026-09-05 minus 2026-08-12 = 24 Deal-E568D5 | DS3 | 1875 | 11 days | 2026-09-05 minus 2026-08-25 = 11 Deal-FD9F4E | DS5 | 1330 | 10 days | 2026-09-05 minus 2026-08-26 = 10 Owner: Farid Osman - 0 stale deals, total stale amount 0 Owner: Elena Sinclair - 0 determinable stale deals, total stale amount 0; 1 deal excluded for missing engagement data (Deal-57FF13) TOTALS PER OWNER Bryce Harmon: 13 stale deals | 240000+99000+70000+45000+37440+36000+31500+23400+21000+11400+6000+5502+1 = 626243 Dana Mercer: 14 stale deals | 60000+43875+27000+23400+20000+18900+16250+15000+9000+9000+8100+5000+4200+1920 = 261645 Alex Franklin: 18 stale deals | 24000+18000+9300+8316+5100+4800+4680+3840+3600+3240+3120+2700+2600+2400+2160+1800+1600+1080 = 102336 Cole Ingram: 18 stale deals | 58529.25+40000+32175+31750+18000+12168+11193+7781.2+7225.4+6947.5+5616+4779.88+4140+3360+3334.8+2700+1875+1330 = 252905.03
Snapshot: 2026-09-05. Last-30-day window used: 2026-08-06 through 2026-09-05 inclusive. t_ds2 in that range counts as a DS2 entry. Activity totals sum emails_30d + calls_30d + meetings_30d from engagements_by_deal_90d.csv, restricted to deals listed in the provided deals_open.csv. Missing data: engagements_by_deal_90d.csv as provided has no row for Deal-3EED2C (owner 84342457, t_ds2 2026-09-03) and no row for Deal-57FF13 (owner 701163055). They contribute 0 to activity totals. Deal-3EED2C is still counted as a DS2 entry. Deal-57FF13 has blank t_ds2. Per rep: Alex Franklin (84342457) emails 307, calls 36, meetings 41 total = 307+36+41 = 384 mix: 307/384=79.9% emails, 36/384=9.4% calls, 41/384=10.7% meetings DS2 entries = 18: Deal-1FC049, Deal-317E6F, Deal-36C33F, Deal-3EED2C, Deal-403845, Deal-46988D, Deal-4F775F, Deal-5296C9, Deal-7FA0C3, Deal-898FC5, Deal-92D97D, Deal-CA5E44, Deal-D1E6C2, Deal-D9A72E, Deal-E531A6, Deal-E73427, Deal-EE195F, Deal-F436DA activities per DS2 = 384/18 = 21.33 rank 1 Bryce Harmon (119337721) emails 162, calls 0, meetings 43 total = 162+0+43 = 205 mix: 162/205=79.0% emails, 0/205=0.0% calls, 43/205=21.0% meetings DS2 entries = 4: Deal-1CCE5C, Deal-25F752, Deal-CA7DC0, Deal-D73B89 activities per DS2 = 205/4 = 51.25 rank 2 Cole Ingram (83155924) emails 96, calls 14, meetings 1 total = 96+14+1 = 111 mix: 96/111=86.5% emails, 14/111=12.6% calls, 1/111=0.9% meetings DS2 entries = 2: Deal-1BA595, Deal-42326B activities per DS2 = 111/2 = 55.50 rank 3 Farid Osman (716654662) emails 38, calls 0, meetings 34 total = 38+0+34 = 72 mix: 38/72=52.8% emails, 0/72=0.0% calls, 34/72=47.2% meetings DS2 entries = 1: Deal-499BF6 activities per DS2 = 72/1 = 72.00 rank 4 Dana Mercer (83155923) emails 84, calls 18, meetings 11 total = 84+18+11 = 113 mix: 84/113=74.3% emails, 18/113=15.9% calls, 11/113=9.7% meetings DS2 entries = 1: Deal-57887A activities per DS2 = 113/1 = 113.00 rank 5 Elena Sinclair (701163055) emails 0, calls 0, meetings 0 (only provided deal Deal-57FF13 has no engagement row; data missing) total = 0 mix: undefined (0 total activities) DS2 entries = 0 activities per DS2 = undefined (0/0) rank: cannot rank Most efficient rep (lowest activities per DS2): Alex Franklin, 21.33. Highest-volume rep (most total activities): Alex Franklin, 384. They do not differ; the same rep is both.
QTD Scorecard — Alex Franklin — as of 2026-09-05 — 2026-Q3 (2026-07-01 to 2026-09-30) 1. Bookings vs quota Bookings QTD = 150,000. Quota = 200,000. 40000 + 20000 + 35000 + 21000 + 12000 + 11000 + 6500 + 4500 = 150,000 Attainment = 150,000 / 200,000 = 75.0% Excluded pre-quarter closed-won: Deal-B3E6F1, 24,000, closed 2026-06-20. Excluded per instruction. 2. New vs expansion split (QTD wins only) New: 113,500 across 5 deals Deal-A1C3E5 40,000 + Deal-B7D2F4 35,000 + Deal-C9E1A6 21,000 + Deal-D4B8C2 11,000 + Deal-E6F3A9 6,500 = 113,500 Expansion: 36,500 across 3 deals Deal-F2C7D8 20,000 + Deal-A8B4D6 12,000 + Deal-C5D9E2 4,500 = 36,500 Check: 113,500 + 36,500 = 150,000 3. Active pipeline by stage (open, 125 deals, 1,260,390) DS1: 20 deals, 284,621 DS2: 28 deals, 353,760 DS3: 67 deals, 552,705 DS4: 5 deals, 23,574 DS5: 5 deals, 45,730 Check: 20+28+67+5+5 = 125. 284,621+353,760+552,705+23,574+45,730 = 1,260,390 4. Rolling 90-day DS2-to-won rate (window 2026-06-07 to 2026-09-05) Entered DS2 in window: 111 deals Won from those entered: 8 Closed (won+lost) from those entered: 35 (8 won + 27 lost) Rate = 8 / 35 = 0.2286 = 22.9% Open from those entered still in pipeline: 76 5. Wins and losses Wins QTD: 8 Losses QTD: 27, amount 329,272 Top loss reason: Lost- Timing (1 year or more): 13 of 27 All reasons: Lost- Timing (1 year or more) 13, MIA 5, Competitor 5, Lost DM 2, Feature Request 1, Lost- Does not fit ICP (write in notes) 1. Check: 13+5+5+2+1+1 = 27 6. Activity volume, last 30 days (summed ae_engagements.csv across all 161 deals) Emails: 807 Calls: 112 Meetings: 128 Notes: 50 Coaching observations 1. Close rate is low relative to volume: 8 wins vs 27 losses in QTD (22.9% DS2-to-won on closed), with 125 open deals worth 1,260,390. Push DS4 (5 deals, 23,574) + DS5 (5 deals, 45,730) over the line to close the 50,000 gap to quota. 2. Losses concentrate in timing: 13 of 27 losses are Lost- Timing (1 year or more), plus 5 MIA. Tighten DS2 qualification and re-engage timed-out deals rather than adding more DS1 (20 deals already). 3. Pipeline is bottom-heavy in DS3 (67 deals, 552,705) with only 10 deals in DS4+DS5 combined. Activity is email-heavy (807 emails vs 112 calls / 128 meetings). Shift late-stage DS3s to live meetings to improve conversion.
Data missing — cannot identify open deals. Missing from provided files: - open vs closed status for any deal - amount for any deal - stage for any deal Provided files contain only deal_contacts.csv and unengaged_contacts.csv. Active-contact arithmetic (reference date 2026-09-06, active = is_former=false AND last_engaged_date >= 2026-07-08): 2026-09-06 minus 60 days = 2026-07-08. Without open status, amount, and stage, no deal can be flagged as an open single-threaded/under-threaded deal, and amount, stage, personas missing, most valuable persona to add, and unengaged-contact fit cannot be determined. No results to report.
Opener in first five minutes: 8 of 10 calls open with retailer turnover story. 8 / 10 = 80%. Deals: Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-EDC141, Deal-D9A12F, Deal-84DBA6. Exceptions: Deal-403845, Deal-1E2498. Quote: Quick one to kick off: a 400-person retailer we work with cut regretted turnover 18% in two quarters after automating milestone awards, and I wanted to walk you through exactly how they did it. Three most common objections and handling: 1. Budget locked until next fiscal year - 4 of 10 calls. 4 / 10 = 40%. Deals: Deal-D348E1, Deal-547B2B, Deal-60C2C2, Deal-84DBA6. Handling is turnover-savings reframe. Quote: Totally fair. Most teams fund this out of turnover savings — that retailer saved about $210k in avoided backfills, which is how their finance team signed off. 2. Revisit next quarter / underwater with open enrollment - 3 of 10 calls. 3 / 10 = 30%. Deals: Deal-5408B0, Deal-C61CF7, Deal-D9A12F. Handling is 90-day single-department pilot offer. Quote: Makes sense. What if we scope a 90-day pilot with one department so you have internal data before next quarter's planning? 3. Already use spreadsheet and quarterly gift cards - 3 of 10 calls. 3 / 10 = 30%. Deals: Deal-403845, Deal-EDC141, Deal-1E2498. Handling is automation + analytics contrast. Quote: Spreadsheets work until they scale — the difference is automation: milestones fire without HR lifting a finger, and you get analytics on who is being recognized. Concrete next step agreed rate: 7 of 10 calls end with agreed Thursday 2pm working session with HRIS manager. 7 / 10 = 70%. Agreed: Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-D9A12F, Deal-1E2498. Not agreed: Deal-403845, Deal-EDC141, Deal-84DBA6. Quote: Yes, Thursday at 2pm works — send the invite and I'll bring our HRIS manager. Competitors raised by prospects: Awardco in Deal-547B2B. Quote: We're also in late talks with Awardco — their rewards catalog looks bigger than yours. Kudos in Deal-EDC141. Quote: How are you different from Kudos? Our CEO used them at her last company. Coaching notes: 1. In the 3 calls without a next step (Deal-403845, Deal-EDC141, Deal-84DBA6), the call ended after a committee or no-urgency stall with acceptance rather than the pilot or working-session ask used in the 7 closes; use the same pilot/working-session ask on stalls. 2. In Deal-C61CF7 the rep introduced Workhuman unprompted in minute 2 with no prospect mention in the data; avoid introducing a competitor the prospect did not raise.
Q3 2026 forecast (2026-07-01 to 2026-09-30) Rule: 1.00 x COMMIT + 0.35 x BEST_CASE. PIPELINE = 0. COMMIT inside the quarter: 7 deals, total 44,729 11,200 (Deal-547B2B) + 9,000 (Deal-B7EBD1) + 9,000 (Deal-403845) + 6,360 (Deal-A2B47C) + 5,400 (Deal-2465CE) + 2,520 (Deal-A5E80A) + 1,249 (Deal-499BF6) = 44,729 BEST_CASE inside the quarter: 24 deals, total 203,565 38,935 (Deal-2D7423) + 24,000 (Deal-25F752) + 19,656 (Deal-E53952) + 16,250 (Deal-5EED42) + 11,116 (Deal-FA32A0) + 10,800 (Deal-FC22A3) + 10,500 (Deal-944310) + 9,890 (Deal-5195DB) + 9,720 (Deal-180D02) + 9,000 (Deal-3974EB) + 7,200 (Deal-5D8CEE) + 3,840 (Deal-9D0060) + 3,780 (Deal-46988D) + 3,600 (Deal-357C30) + 3,240 (Deal-C6D97A) + 3,150 (Deal-DAF1D9) + 3,120 (Deal-EE195F) + 3,060 (Deal-55164C) + 2,916 (Deal-001FF4) + 2,760 (Deal-7B3B0F) + 2,484 (Deal-F9A08A) + 2,100 (Deal-8952F0) + 1,920 (Deal-1FC049) + 528 (Deal-87412C) = 203,565 PIPELINE inside the quarter: 23 deals, total 201,637.40, weighted at 0. Weighted forecast: 44,729 + 0.35 x 203,565 = 44,729 + 71,247.75 = 115,976.75 Counts inside quarter: COMMIT 7, BEST_CASE 24, PIPELINE 23. Total inside: 54. Excluded for close_date outside quarter (before 2026-07-01 or after 2026-09-30): 32 deals, total 227,575.00 All are dated 2026-10-01 to 2026-10-15: Deal-E51FB7 (43,875, 2026-10-01), Deal-B936FE (18,000, 2026-10-09), Deal-D9A12F (17,000, 2026-10-15), Deal-D348E1 (13,770, 2026-10-15), Deal-4062CF (10,800, 2026-10-15), Deal-293AF3 (9,000, 2026-10-09), Deal-034D49 (9,000, 2026-10-15), Deal-E0ADD8 (7,920, 2026-10-15), Deal-9F2E43 (7,690, 2026-10-08), Deal-FCBE5B (7,500, 2026-10-07), Deal-712010 (7,200, 2026-10-15), Deal-6691E0 (5,700, 2026-10-15), Deal-C61CF7 (5,400, 2026-10-09), Deal-600CD9 (5,400, 2026-10-02), Deal-A92065 (5,400, 2026-10-15), Deal-1D532E (5,400, 2026-10-15), Deal-48B656 (5,160, 2026-10-15), Deal-E531A6 (4,800, 2026-10-15), Deal-D1E6C2 (4,400, 2026-10-09), Deal-D9E112 (4,300, 2026-10-09), Deal-5AD94B (4,000, 2026-10-15), Deal-901332 (3,600, 2026-10-15), Deal-47AE31 (3,600, 2026-10-09), Deal-15D24F (3,600, 2026-10-09), Deal-766C74 (3,300, 2026-10-14), Deal-ED725A (2,400, 2026-10-08), Deal-8AD4A5 (1,800, 2026-10-07), Deal-D7E999 (1,800, 2026-10-15), Deal-ED13B0 (1,680, 2026-10-09), Deal-5FDCE4 (1,600, 2026-10-01), Deal-7FA0C3 (1,400, 2026-10-01), Deal-F5A622 (1,080, 2026-10-08). Sum: 227,575. Top 5 BEST_CASE deals by amount inside the quarter: 1. Deal-2D7423 — 38,935 — 2026-09-30 2. Deal-25F752 — 24,000 — 2026-09-25 3. Deal-E53952 — 19,656 — 2026-09-30 4. Deal-5EED42 — 16,250 — 2026-09-30 5. Deal-FA32A0 — 11,116 — 2026-09-25 ## Data quality Owner is blank on all but one deal (Deal-C9C286), so attainment/coverage by rep cannot be trusted. Forecast_category conflicts with stage: DS1/DS2 deals appear in COMMIT (Deal-A5E80A, Deal-499BF6) and DS5 appears in BEST_CASE (Deal-C61CF7), plus a DS4 deal is left in PIPELINE (Deal-6787C2). Almost all why_buys_chars values are 0, so no substantive qualification evidence supports the COMMIT/BEST_CASE labels. One PIPELINE amount has cents (Deal-42326B, 2480.4), indicating inconsistent amount formatting that could break unattended summation/rounding.
Activation hypothesis test (n=220). Retention = current_status = 'active'. 2x2 on first-calendar-month signals (G = m1_users >= 5, R = m1_redemptions >= 1): Both signals (G and R): n = 47, retained = 31, rate = 31/47 = 65.96% Givers-only (G, no R): n = 49, retained = 23, rate = 23/49 = 46.94% Redemption-only (R, no G): n = 29, retained = 9, rate = 9/29 = 31.03% (2 of the 20 non-retained are 'non_renewing') Neither signal: n = 95, retained = 38, rate = 38/95 = 40.00% (1 of the 57 non-retained is 'non_renewing') Check: 47+49+29+95 = 220. 31+23+9+38 = 101 active. Excluded from denominator: 0. No exclusions. All 220 rows have non-missing m1_users, m1_redemptions, and current_status. Single signal with largest retention lift: 5+ unique givers. G vs not-G: 54/96 = 56.25% vs 47/124 = 37.90%, lift = 18.35 pp. R vs not-R: 40/76 = 52.63% vs 61/144 = 42.36%, lift = 10.27 pp. Givers-only vs neither: 46.94% - 40.00% = +6.94 pp. Redemption-only vs neither: 31.03% - 40.00% = -8.97 pp. What this does and does not prove: Does show: in this extract, both-signals companies retained at a higher observed rate (65.96%) than givers-only, redemption-only, or neither. Does not prove: causation, that inducing givers/redemptions will raise retention, or that the gap will generalize. This is observational only; no adjustment for confounders, no significance testing, and 'non_renewing' was counted as not retained per the stated rule.
ARR Reconciliation as of 2026-09-05
Billing ARR = MRR x 12 per subscription
Totals:
CRM company_arr total (39 records, sum of hubspot_arr) = 603581.76
Billing subscriptions total, all statuses (39 subs, sum MRRx12) = 617897.76
Active billing (37 subs) = 604739.28
Cancelled billing (2 subs) = 13158.48
SUB-000E C-0C8323BF: 408.77 x 12 = 4905.24
SUB-000F C-0DC4FB8C: 687.77 x 12 = 8253.24
4905.24 + 8253.24 = 13158.48
Check: 604739.28 + 13158.48 = 617897.76
Variance (primary, CRM - Active Billing):
603581.76 - 604739.28 = -1157.52
CRM is 1157.52 lower than active billing.
For reference, CRM - All Billing = 603581.76 - 617897.76 = -14316.00
Decomposition of CRM - Active Billing variance (-1157.52), sums exactly:
status mismatch: +13158.48
rounding/small active diffs: +36.00
missing records net: -11952.00
other material mismatch: -2400.00
Sum: 13158.48 + 36.00 - 11952.00 - 2400.00 = -1157.52
Bucket detail:
1) status mismatch +13158.48
CRM retains ARR for cancelled subscriptions excluded from active billing.
C-0C8323BF: CRM 4905.24 - billing active 0 = +4905.24, SUB-000E cancelled
C-0DC4FB8C: CRM 8253.24 - billing active 0 = +8253.24, SUB-000F cancelled
4905.24 + 8253.24 = 13158.48
2) rounding/small diffs +36.00
C-0D66DF9E: CRM 23200.00 - billing 1932.00x12=23184.00 = +16.00, SUB-0005 active
C-14D70CE0: CRM 18200.00 - billing 1515.00x12=18180.00 = +20.00, SUB-0008 active
16.00 + 20.00 = 36.00
3) missing records net -11952.00
Billing-only active, no CRM record: C-21629AA4 SUB-0004 active, billing 2370.77x12=28449.24, CRM 0, effect 0 - 28449.24 = -28449.24
CRM-only, no billing record: C-0D5BBE3A, CRM 16497.24, billing 0, effect +16497.24
16497.24 - 28449.24 = -11952.00
4) other -2400.00
C-0F7269D7: CRM 24396.00 - billing 2233.00x12=26796.00 = -2400.00, SUB-0006 active
Not status, not missing, not small rounding. Requires deal review.
All other overlapping active/cancelled aliases match exactly (CRM - billing = 0), including C-0BC46AD9, C-1794A52C, C-0F4910FE, C-0FA7E799, C-0BD1AF2B, C-0BEAC6F3, C-0DDFCE99, C-0DB48281, C-0F5E249E, C-0DA98AC7, C-0DB03492, C-0B511454, C-0FAE9868, C-0ACCDBC3, C-0FB9D5AF, C-0B344485, C-0F5D2323, C-0B7D2C30, C-22170CA1, C-0FC4DBB8, C-0D2AB865, C-0EC6999D, C-0BC34584, C-0BBC4E7A, C-0B20DB64, C-0BCDB8C2, C-0CB2C1B4, C-0F9F8F13, C-0FD551AB, C-0B144C78, C-0BBE3E60, C-0B7A7546, C-0B369871.
Mismatched accounts with suggested owner (roles only, no owner mapping provided in data):
C-21629AA4 SUB-0004 active 28449.24 billing-only - Owner: RevOps / CRM Admin to create company record, confirm AE
C-0D5BBE3A CRM-only 16497.24 no subscription - Owner: Billing Ops + AE to confirm churn / missing subscription
C-0C8323BF SUB-000E cancelled 4905.24 - Owner: AE/CSM to confirm churn, RevOps to zero CRM ARR
C-0DC4FB8C SUB-000F cancelled 8253.24 - Owner: AE/CSM to confirm churn, RevOps to zero CRM ARR
C-0D66DF9E SUB-0005 diff +16.00 - Owner: RevOps to correct rounding
C-14D70CE0 SUB-0008 diff +20.00 - Owner: RevOps to correct rounding
C-0F7269D7 SUB-0006 diff -2400.00 - Owner: AE + Deal Desk, material CRM understatement vs billing
Term rule violations (term_months != 12 with empty cf_agreement_end_date):
SUB-0002 C-1794A52C term 24 cf empty - Owner: Deal Desk / AE to populate end date
SUB-0019 C-22170CA1 term 36 cf empty - Owner: Deal Desk / AE to populate end date
Compliant non-12-month with date populated: SUB-000C C-0DB48281 term 24 date 2027-11-30, SUB-001A C-0FC4DBB8 term 36 date 2027-11-30. No other violations in provided data.
Core KVMs are unweighted means across 30 companies per month. | KVM | 2026-07 | 2026-08 | Abs change | Rel change | Direction | |---|---|---|---|---|---| | giving rate | 0.6023 | 0.6027 | +0.0004 | +0.07% | flat/up | | redemptions per user | 1.7300 | 1.7302 | +0.0002 | +0.01% | flat | | 1:1 meetings engagement | 0.4469 | 0.4472 | +0.0003 | +0.06% | flat | | pulse check engagement | 0.6006 | 0.5086 | -0.0920 | -15.31% | down | Arithmetic: sum/30. Example pulse: 18.0176/30=0.6006; 15.2583/30=0.5086; abs -0.0920; rel -0.0920/0.6006=-15.31%. Largest relative move: pulse check engagement, -15.31%. Driver: size_band=enterprise. Enterprise pulse 0.5500 to 0.2743, -0.2757, -50.13%, while smb -0.22% and mid_market +0.21% were flat. All 10 enterprise companies fell ~49-51%, e.g. C-0B2895EF 0.5619 to 0.2864, C-0B2213A9 0.5548 to 0.2801. plan_tier does not differentiate; all rows are tier_three.
Redemption section — YTD through last completed month Last completed month: 2026-08 (August 2026). Max redeemed_at in file is 2026-08-31, min is 2026-01-01. All 378 rows are <= 2026-08-31, so YTD = full file. Redemption count: 378 Arithmetic: 90 TangoCard + 192 Tremendous + 37 custom + 59 Snappy = 378 Spend: $27,846.00 Arithmetic: 3,230.00 + 8,505.00 + 10,873.00 + 5,238.00 = 27,846.00 Unique redeemers: 235 distinct user_key values Redemptions per redeemer: 1.61 Arithmetic: 378 / 235 = 1.6085 = 1.61 Provider mix, percent of spend (sums to 100.00): custom: $10,873.00 / $27,846.00 = 39.05% Tremendous: $8,505.00 / $27,846.00 = 30.54% Snappy: $5,238.00 / $27,846.00 = 18.81% TangoCard: $3,230.00 / $27,846.00 = 11.60% Check: 39.05 + 30.54 + 18.81 + 11.60 = 100.00 Top 5 countries by redemptions: US: 244 CA: 24 AU: 21 GB: 17 NL: 17 Next: SG 12, so no data missing for top 5. GB and NL tie at 17.
Qualifying churn-save accounts: must pass all 3 rules: R1 health_score < 60, R2 churn_save_eligible_amount > 0, R3 renewal within 120 days of 2026-09-05 (i.e. on/before 2027-01-03). Snapshot to renewal arithmetic (2026-09-05 to date): 2026-09-23 = 18 days, 2026-09-24 = 19, 2026-10-03 = 25+3=28, 2026-10-28 = 25+28=53, 2026-11-12 = 25+31+12=68, 2026-11-14 = 25+31+14=70, 2026-11-21 = 25+31+21=77, 2026-12-28 = 25+31+30+28=114. All 8 below are <=120. Play-fit rules are not documented in the files provided. Plays below are inferred from provided signals only. QUALIFIED (8): 1. C-0F6C0F34 - eligible 49707.00, ARR 86741.00, health 51, renewal 2026-10-03 (28d) Play: executive touch Signal: champion_active=false, usage_trend_3m=growing, 308/395 seats used = 78.0% 2. C-0B827671 - eligible 25365.00, ARR 72088.00, health 56, renewal 2026-11-14 (70d) Play: usage revival Signal: usage_trend_3m=declining, 113/202 = 55.9% 3. C-0B360C78 - eligible 35748.00, ARR 60427.00, health 57, renewal 2026-10-28 (53d) Play: commercial concession Signal: usage_trend_3m=growing, champion_active=true, 246/327 = 75.2% - no declining usage and no vacant champion, risk is health/commercial 4. C-0B0F1BAB - eligible 5494.00, ARR 15391.00, health 38, renewal 2026-09-23 (18d) Play: executive touch Signal: champion_active=false, usage_trend_3m=flat, 238/363 = 65.6% 5. C-0CA21961 - eligible 16829.00, ARR 31501.00, health 58, renewal 2026-12-28 (114d) Play: usage revival Signal: 84/325 = 25.8% seats used, usage_trend_3m=flat 6. C-0E9C27D1 - eligible 41235.00, ARR 75093.00, health 39, renewal 2026-09-24 (19d) Play: commercial concession Signal: usage_trend_3m=flat, champion_active=true, 134/157 = 85.4% - high adoption but low health 7. C-0CEF69FD - eligible 32621.00, ARR 79324.00, health 53, renewal 2026-11-21 (77d) Play: executive touch Signal: champion_active=false, usage_trend_3m=growing, 97/136 = 71.3% 8. C-0D3278C7 - eligible 17602.00, ARR 33815.00, health 54, renewal 2026-11-12 (68d) Play: usage revival Signal: usage_trend_3m=declining, 126/380 = 33.2% Total at stake (eligible amount): 49707 + 25365 + 35748 + 5494 + 16829 + 41235 + 32621 + 17602 = 224601.00 Total ARR of qualified set: 86741+72088+60427+15391+31501+75093+79324+33815 = 454380.00 AT RISK (R1 pass) BUT NOT QUALIFIED (7): C-0BC71BDD - health 55, renewal 2026-10-27 - fails R2, eligible 0.00 C-0BA71F12 - health 52, eligible 6824.00 - fails R3, renewal 2027-04-11 = 218 days after 2026-09-05 (>120) C-0F6694C3 - health 43, renewal 2027-03-21 - fails R2, eligible 0.00 C-0BE96399 - health 54, renewal 2026-10-29 - fails R2, eligible 0.00 C-0F876796 - health 47, eligible 19958.00 - fails R3, renewal 2027-02-06 = 154 days after 2026-09-05 (>120) C-0FCCD2DF - health 43, renewal 2027-04-23 - fails R2, eligible 0.00 C-10A56B0F - health 54, renewal 2026-12-12 - fails R2, eligible 0.00
Expansion kit for C-0DDFC9A7: 1. Seat coverage (licensed over headcount): 150 / 400 = 0.375 = 37.5% covered 2. Usage health: Aug 2026 active users 126 / 150 licensed = 0.84 = 84.0% seat utilization Trend Mar-Aug: 88, 95, 102, 110, 118, 126 — up every month; 126 - 88 = 38 users, 38 / 88 = 43.2% growth 3. Headroom at current per-seat rate: Per-seat rate: 9000.00 / 150 = $60.00 Seat headroom: 400 - 150 = 250 seats ARR headroom: 250 x $60.00 = $15,000.00 4. Who replied and can they buy: Maria S., People Operations Coordinator, replied 2026-09-02. Cannot buy — states: "I'm not the right person for purchasing decisions here. Budget and seat expansion sit with Dana R." 5. Right buyer from contacts: Dana R., VP People, last engaged 2026-05-18 6. Reply email (60 words): Subject: Re: Growing your team's recognition program Hi Maria, Thanks so much for replying — glad to hear the team loves Bonusly and the feed is busy weekly. Would appreciate that intro to Dana R. — happy to share a quick snapshot for her, including active users climbing to 126 in August. Would next week work for a brief intro? No pressure at all — appreciate your help. Best, Cole
CSM prep — C-0D284E42 — signup_date 2026-08-11 Complete — with data field: - integration_slack: complete — integration_slack=2026-08-12. 2026-08-12 minus 2026-08-11 = 1 day after signup. - allowance_set: complete — allowance_set=2026-08-13. 2026-08-13 minus 2026-08-11 = 2 days after signup. - admins_added: complete — admins_added=2. - first_recognition_given: complete — first_recognition_at=2026-08-15 14:22. 2026-08-15 minus 2026-08-11 = 4 days after signup. Not complete — field blank: - integration_hris: not complete — integration_hris is blank. - first_redemption: not complete — first_redemption_at is blank. Early engagement signals — onboarding_usage.csv, active_givers: - Range: 2026-08-11 to 2026-09-04 = 25 days. - Start 3 on 2026-08-11, end 15 on 2026-09-04. 15 minus 3 = 12. 12 / 3 = 4.0 = +400%. - First 7 days 2026-08-11 to 2026-08-17: 3+3+4+4+5+4+7 = 30. 30 / 7 = 4.29 avg givers/day. - Last 7 days 2026-08-29 to 2026-09-04: 11+13+11+13+13+15+15 = 91. 91 / 7 = 13.0 avg givers/day. - Total: 214 giver-days. 214 / 25 = 8.56 avg givers/day. - Trend up with small dips, peak 15 on 2026-09-03 and 2026-09-04. No redemption yet despite rising givers. Three things to cover on the call: 1. Connect integration_hris — still blank; unblocks roster/scale. 2. Drive first redemption — first_redemption_at still blank despite first_recognition_at=2026-08-15 14:22 and 15 active_givers by 2026-09-04. 3. Sustain giver growth — active_givers grew 3 to 15, keep momentum to first redemption.
90-DAY RENEWAL RISK BRIEF Window: 2026-09-06 to 2026-12-05. Today: 2026-09-06. Rule applied: multi-year contracts are known to be wrong in ChurnZero, so for is_multi_year=true trust Chargebee; otherwise trust agreed date. DATE DISAGREEMENTS FLAGGED (5): C-0B7D2C30: CZ 2026-09-10 vs CB 2026-09-15, 36mo multi-year true -> use 2026-09-15, trust Chargebee C-0BCDB8C2: CZ 2027-09-18 vs CB 2026-09-18, 36mo multi-year true -> use 2026-09-18, trust Chargebee C-0D2AB865: CZ 2026-09-10 vs CB 2026-09-22, 24mo multi-year true -> use 2026-09-22, trust Chargebee C-0BBE3E60: CZ 2027-09-26 vs CB 2026-09-26, 24mo multi-year true -> use 2026-09-26, trust Chargebee C-0F5D2323: CZ 2026-09-10 vs CB 2026-09-29, 24mo multi-year true -> use 2026-09-29, trust Chargebee All other 15 accounts agree; date used is the agreed CZ=CB date. RENEWALS (20 in window): Seat utilization = seats_used / seats. 3-mo trend = 2026-06 to 2026-08 active_users. 1. C-0B7D2C30 | Dana Mercer | ARR 65901.00 | date used 2026-09-15* | util 274/476=57.6% | trend 97,94,84 = -13 (-13.4%) | HIGH - declining usage with only 57.6% seats used. 2. C-0BCDB8C2 | Cole Ingram | ARR 54427.00 | date used 2026-09-18* | util 232/424=54.7% | trend 127,118,110 = -17 (-13.4%) | HIGH - steep 3-mo decline with only 54.7% seats used. 3. C-0D2AB865 | Elena Sinclair | ARR 38022.00 | date used 2026-09-22* | util 250/407=61.4% | trend 125,117,109 = -16 (-12.8%) | HIGH - steady decline 125 to 109 with 61.4% utilization. 4. C-0BBE3E60 | Dana Mercer | ARR 30993.00 | date used 2026-09-26* | util 74/114=64.9% | trend 39,35,33 = -6 (-15.4%) | HIGH - largest pct drop -15.4% with 64.9% seats used. 5. C-0F5D2323 | Cole Ingram | ARR 90647.00 | date used 2026-09-29* | util 111/390=28.5% | trend 20,21,18 = -2 (-10.0%) | HIGH - very low 28.5% utilization and flat-low usage. 6. C-0EC6999D | Elena Sinclair | ARR 79419.00 | date used 2026-10-03 | util 31/112=27.7% | trend 17,16,15 = -2 (-11.8%) | HIGH - lowest utilization 27.7% with flat-low usage. 7. C-0B20DB64 | Dana Mercer | ARR 21770.00 | date used 2026-10-07 | util 214/378=56.6% | trend 294,298,294 = 0 (0.0%) | MEDIUM - stable usage but low 56.6% utilization. 8. C-0BBC4E7A | Cole Ingram | ARR 56374.00 | date used 2026-10-10 | util 228/337=67.7% | trend 142,141,139 = -3 (-2.1%) | LOW - stable usage with 67.7% utilization. 9. C-0FD551AB | Elena Sinclair | ARR 48815.00 | date used 2026-10-14 | util 210/376=55.9% | trend 123,122,126 = +3 (+2.4%) | MEDIUM - stable usage but low 55.9% utilization. 10. C-0F9F8F13 | Dana Mercer | ARR 46230.00 | date used 2026-10-18 | util 199/352=56.5% | trend 185,185,182 = -3 (-1.6%) | MEDIUM - stable usage but low 56.5% utilization. 11. C-0BC34584 | Cole Ingram | ARR 16740.00 | date used 2026-10-22 | util 327/494=66.2% | trend 104,104,106 = +2 (+1.9%) | LOW - stable to growing usage with 66.2% utilization. 12. C-0B7A7546 | Elena Sinclair | ARR 35062.00 | date used 2026-10-25 | util 182/205=88.8% | trend 64,65,63 = -1 (-1.6%) | LOW - stable usage with high 88.8% utilization. 13. C-0B369871 | Dana Mercer | ARR 85128.00 | date used 2026-10-29 | util 317/422=75.1% | trend 326,330,333 = +7 (+2.1%) | LOW - growing usage with 75.1% utilization. 14. C-0B144C78 | Cole Ingram | ARR 30899.00 | date used 2026-11-02 | util 169/224=75.4% | trend 101,101,106 = +5 (+5.0%) | LOW - growing usage with 75.4% utilization. 15. C-0FC4DBB8 | Elena Sinclair | ARR 94732.00 | date used 2026-11-05 | util 356/464=76.7% | trend 189,191,193 = +4 (+2.1%) | LOW - growing usage with 76.7% utilization. 16. C-0D5BBE3A | Dana Mercer | ARR 39740.00 | date used 2026-11-09 | util 85/102=83.3% | trend 88,90,91 = +3 (+3.4%) | LOW - growing usage with 83.3% utilization. 17. C-0FB9D5AF | Cole Ingram | ARR 63158.00 | date used 2026-11-13 | util 144/199=72.4% | trend 173,173,176 = +3 (+1.7%) | LOW - growing usage with 72.4% utilization. 18. C-0B344485 | Elena Sinclair | ARR 64384.00 | date used 2026-11-16 | util 224/287=78.0% | trend 238,240,244 = +6 (+2.5%) | LOW - growing usage with 78.0% utilization. 19. C-0CB2C1B4 | Dana Mercer | ARR 40628.00 | date used 2026-11-20 | util 386/473=81.6% | trend 47,48,49 = +2 (+4.3%) | LOW - stable usage with high 81.6% utilization. 20. C-22170CA1 | Cole Ingram | ARR 45646.00 | date used 2026-11-24 | util 251/294=85.4% | trend 143,148,146 = +3 (+2.1%) | LOW - stable to growing usage with high 85.4% utilization. * = disagreement, Chargebee date used. TOTALS: Total ARR renewing in window (20 accounts): 65901+54427+38022+30993+90647+79419+21770+56374+48815+46230+16740+35062+85128+30899+94732+39740+63158+64384+40628+45646 = 1048715.00 ARR at HIGH risk (6 accounts): 65901+54427+38022+30993+90647+79419 = 359409.00 MEDIUM risk ARR for reference: 21770+48815+46230 = 116815.00; HIGH+MEDIUM = 476224.00
Ranked by ARR exposure. Total tickets = 80. Share = count / 80. ARR affected = sum of ARR for distinct accounts in theme. 1. HRIS provisioning failure - broad pattern Count: 12, Share: 12/80 = 15.0% Distinct accounts: 3 ARR affected: $114,000 = 36,000 (C-0B2213A9) + 48,000 (C-0DDFC9A7) + 30,000 (C-0F6C0F34) Example tickets: IC-460059, IC-460060 Recommendation: Fix HRIS new-hire provisioning and silent sync skips. 2. Rewards redemption / checkout failure - broad pattern Count: 18, Share: 18/80 = 22.5% Distinct accounts: 7 ARR affected: $68,800 = 10,300 (C-0B0F1BAB) + 10,700 (C-0B827671) + 8,900 (C-0CEF69FD) + 9,600 (C-0D9CA315) + 8,700 (C-0F876796) + 9,600 (C-0FCCD2DF) + 11,000 (C-14264ABD) Example tickets: IC-460025, IC-460024 Recommendation: Fix checkout spins and point-deduction without fulfillment. 3. Billing / seat-count invoicing errors - SINGLE-ACCOUNT NOISE Count: 16, Share: 16/80 = 20.0% Distinct accounts: 1 ARR affected: $52,000 = 52,000 (C-0E9C27D1) Example tickets: IC-460071, IC-460069 Recommendation: Resolve C-0E9C27D1 seat-count and renewal-tier billing with account-level audit. 4. Points not posting - broad pattern Count: 20, Share: 20/80 = 25.0% Distinct accounts: 9 ARR affected: $31,100 = 2,900 (C-0B2895EF) + 2,700 (C-0BE96399) + 4,500 (C-0BF20542) + 4,500 (C-0D0B047C) + 3,400 (C-0D284E42) + 3,500 (C-0D3278C7) + 4,200 (C-0D6CC8E3) + 2,500 (C-0DD0626C) + 2,900 (C-21FEBCBB) Example tickets: IC-460004, IC-460016 Recommendation: Fix delivered-recognition to balance posting delay. 5. Slack integration / slash command failure - broad pattern Count: 14, Share: 14/80 = 17.5% Distinct accounts: 4 ARR affected: $18,900 = 4,400 (C-0B843542) + 3,900 (C-0BA71F12) + 5,400 (C-10A56B0F) + 5,200 (C-8C2E8F00) Example tickets: IC-460041, IC-460047 Recommendation: Fix Slack sync disconnects and slash-command errors.
Prospect C-82AF3719: industry=Technology, size_band=Mid-Market, use_case=employee_recognition, region=NA-West 1. C-64171065 - 3/4 match Matches: industry=Technology, size_band=Mid-Market, use_case=employee_recognition Differs: region=NA-East vs NA-West has_case_study=true 2. C-A13C193D - 3/4 match Matches: industry=Technology, size_band=Mid-Market, region=NA-West Differs: use_case=retention vs employee_recognition has_case_study=true 3. C-11C31562 - 3/4 match Matches: size_band=Mid-Market, use_case=employee_recognition, region=NA-West Differs: industry=Manufacturing vs Technology has_case_study=true
Trailing 6 months: 2026-03 to 2026-08. All contacts_first_touch rows have sqm_date in 2026-03 to 2026-08, so all 122 rows included. No filtering applied. PAID CHANNELS paid_search spend = 6000 x 6 = 36000 SQMs = 40 SQOs = 18 cost per SQM = 36000 / 40 = 900.00 cost per SQO = 36000 / 18 = 2000.00 SQM-to-SQO rate = 18 / 40 = 45.0% pipeline = 18 x 40000 = 720000 pipeline per dollar = 720000 / 36000 = 20.00 SQO aliases: CT-000016, CT-000009, CT-000001, CT-000017, CT-000011, CT-000006, CT-000015, CT-000014, CT-000013, CT-000003, CT-000007, CT-000004, CT-000012, CT-000005, CT-000010, CT-000008, CT-000018, CT-000002 linkedin_ads spend = 4000 x 6 = 24000 SQMs = 25 SQOs = 8 cost per SQM = 24000 / 25 = 960.00 cost per SQO = 24000 / 8 = 3000.00 SQM-to-SQO rate = 8 / 25 = 32.0% pipeline = 8 x 12000 = 96000 pipeline per dollar = 96000 / 24000 = 4.00 SQO aliases: CT-000048, CT-000047, CT-000046, CT-000043, CT-000044, CT-000045, CT-000042, CT-000041 paid_social spend = 3000 x 6 = 18000 SQMs = 0 SQOs = 0 cost per SQM = undefined (spend with zero SQMs, not zero) cost per SQO = undefined (spend with zero SQMs, not zero) SQM-to-SQO rate = undefined (0 / 0, not zero) pipeline = 0 pipeline per dollar = 0 / 18000 = 0.00 webinars spend = 1500 x 6 = 9000 SQMs = 12 SQOs = 5 cost per SQM = 9000 / 12 = 750.00 cost per SQO = 9000 / 5 = 1800.00 SQM-to-SQO rate = 5 / 12 = 41.7% pipeline = 5 x 12000 = 60000 pipeline per dollar = 60000 / 9000 = 6.67 SQO aliases: CT-000066, CT-000070, CT-000069, CT-000068, CT-000067 ORGANIC organic_search volume (SQMs) = 30 SQOs = 10 SQO rate = 10 / 30 = 33.3% pipeline = 10 x 9000 = 90000 SQO aliases: CT-000083, CT-000087, CT-000078, CT-000086, CT-000081, CT-000084, CT-000082, CT-000085, CT-000080, CT-000079 No spend data provided for organic_search, so cost metrics not computed. Data missing. Note on coverage: referral has 15 SQMs, 6 SQOs, pipeline 48000, SQO aliases CT-000113, CT-000110, CT-000112, CT-000111, CT-000109, CT-000108, but has no rows in channel_spend.csv and is not organic_search, so excluded from Paid and Organic tables above. DATE FLAGS - SQO date precedes SQM date CT-000044, linkedin_ads, sqm_date 2026-07-23, sqo_date 2026-07-18, 12000 CT-000041, linkedin_ads, sqm_date 2026-06-14, sqo_date 2026-06-09, 12000 No other SQO rows have sqo_date < sqm_date. Counts above include these 2 rows as SQOs as given. REALLOCATION RECOMMENDATION Cut or pause paid_social: 18000 spend over 6 months with 0 SQMs, undefined unit cost, 0.00 pipeline per dollar. Reduce linkedin_ads: highest cost per SQO at 3000.00 and lowest positive pipeline per dollar at 4.00 among paid channels with volume. Reallocate to paid_search first: 45.0% SQM-to-SQO, 2000.00 cost per SQO, 20.00 pipeline per dollar on the largest sample (40 SQMs). Test incremental webinars spend second: lowest cost per SQO at 1800.00 and 6.67 pipeline per dollar, but only 12 SQMs / 5 SQOs. Keep organic_search as is; no spend to reallocate, 30 volume / 33.3% SQO rate / 90000 pipeline. CONFIDENCE GIVEN SAMPLE SIZES Low to moderate. Samples are small: paid_search 40 / 18, organic_search 30 / 10, linkedin_ads 25 / 8, webinars 12 / 5, paid_social 0 / 0. Webinar rates and unit costs are unstable at n=12. Linkedin_ads comparison is also sensitive at n=25, and 2 of its 8 SQOs (CT-000044, CT-000041) have date flags. Paid_social zero is clean over 6 months of spend but still only 6 months. Do not lock in permanent mix shift without larger n and fixing date-flag rows.
Battlecard: Rivally 1. One-line positioning Points-based recognition feed [S02]. 2. Pricing (source + date, newer wins) Current: $7 per user/month for Recognition Starter tier, annual billing required, per pricing page dated 2026-08-12 [S17]. Conflict note: Older pricing page showed $5 per user/month on 2026-01-20 [S03] and still $5 on 2026-04-01 [S08]. Intervening deal mention quoted $6.50/user/mo to a 500-seat prospect on annual term on 2026-06-02 [S13]. Later deal mention on 2026-08-14 reports $7/user/mo list with 15% discount offered for 3-year term [S18]. Newer source [S17] wins: $7 list. Add-on: Rivally Pulse is priced as add-on, not bundled, per 2026-09-01 press [S23]. 3. Where they win - Fast setup under a week, Slack integration worked out of the box [S04]. - Engaging points-based recognition feed [S02][S16]. - EU enterprise fit: strong for distributed EU teams, multi-language support praised [S12]; EU data residency generally available [S15]; Rivally pitched EU data residency [S05]. - Support response praised, under 4 hours [S22]. 4. Where we win - Analytics depth: limited analytics [S02]; reporting dashboards basic compared to enterprise tools [S07]; 800-seat prospect picked Bonusly over Rivally citing analytics depth [S25]. - Admin / provisioning: lacks SCIM provisioning, manual user management painful [S10]; admin tooling lags peers [S16]; admin console still lacks bulk recognition editing [S24]; analytics exports are CSV-only [S20]. - Rewards: EMEA catalog thinner than US catalog [S14]. No data provided on our SCIM, admin, export, or catalog capabilities beyond [S25]. 5. Objections and responses - Obj: Need EU multi-language / EU residency. Resp: Rivally strength there is documented [S12][S15], but note EMEA rewards catalog thinner [S14]; counter with analytics depth win [S25]. - Obj: Want fast setup with Slack. Resp: Setup/Slack strength documented [S04], but counter with scale gaps: lacks SCIM / manual management painful [S10] and lacks bulk recognition editing [S24]. No data provided on our setup time. - Obj: Want engaging feed. Resp: Feed engagement documented [S02][S16], but counter with limited analytics [S02], basic dashboards [S07], CSV-only exports [S20], and cited 800-seat loss reason analytics depth [S25]. 6. Recent changes - 2026-05-09 press: hired ex-Workday VP EMEA to lead European expansion [S11]. - 2026-07-01 press: opened Dublin office; EU data residency generally available [S15]. - 2026-08-12 pricing page: Recognition Starter now $7 per user/month [S17]. - 2026-08-20 press: Microsoft Teams app v2 in public preview [S19]. - 2026-09-01 press: Rivally Pulse add-on exits beta, priced as add-on not bundled [S23]. Initially launched 2026-03-05 as lightweight engagement survey add-on [S06]. 7. Our 12-month win/loss record vs Rivally (2025-09 to 2026-08) Wins (13): Deal-A9FD43, Deal-7AA785, Deal-44C524, Deal-0D0CD6, Deal-D5B790, Deal-5C636E, Deal-67BE14, Deal-1B6969, Deal-F03E7B, Deal-072E31, Deal-F65C8F, Deal-E46EAB, Deal-1D2392. Losses (7): Deal-7767F5, Deal-5645A5, Deal-C6FFAA, Deal-D263E0, Deal-935746, Deal-9066A6, Deal-72A02F. Arithmetic: 13 wins + 7 losses = 20 deals; 13/20 = 65% win rate. Old card reconciliation - Mid-market positioning: UNVERIFIED - points-based part re-sourced [S02], mid-market scope has no re-source. - $5 pricing as of 2026-01: superseded by $7 [S17], see conflict above. - Rivally lacks Slack integration: UNVERIFIED / contradicted - Slack integration worked out of the box [S04]. - Acquired by WorkHuman in 2025: UNVERIFIED - no re-source in snippets. - Strong in EU enterprise with multi-language: re-sourced [S12]. Excluded non-facts: AE opinion that UI is clunky [S09] and AE opinion that Rivally is discounting aggressively [S21] are rep opinion, not facts about the competitor.
Rates use totals: opened/sent, replied/sent, meetings/sent. New Logo Nurture: sent 500+458+428=1386. opened 210+160+120=490, 490/1386=35.4%. replied 42+30+18=90, 90/1386=6.5%. meetings 12+9+6=27, 27/1386=1.9%. weakest step 3: reply 18/428=4.2% vs 8.4%, 6.6%; open 120/428=28.0% vs 42.0%, 34.9%. Expansion Nurture: sent 300+300+275=875. opened 130+340+95=565, 565/875=64.6%. replied 22+25+12=59, 59/875=6.7%. meetings 5+4+3=12, 12/875=1.4%. weakest step 3: reply 12/275=4.4% vs 7.3%, 8.3%. Cold Outbound - HR Leaders: sent 600+595+590=1785. opened 240+175+130=545, 545/1785=30.5%. replied 5+2+1=8, 8/1785=0.45%. meetings 0/1785=0%. weakest step 3: reply 1/590=0.17% vs 0.83%, 0.34%; all steps weak. Cold Outbound - People Ops: sent 400+386+377=1163. opened 150+110+80=340, 340/1163=29.2%. replied 14+9+6=29, 29/1163=2.5%. meetings 3+2+1=6, 6/1163=0.5%. weakest step 3: reply 6/377=1.6% vs 3.5%, 2.3%; open 80/377=21.2% vs 37.5%, 28.5%. Tracking error: Expansion Nurture step 2 opened 340 > sent 300, 340/300=113.3%. Impossible without double-count, forwarding, or join error. All other steps opened < sent. Audience overlap: contacts in two sequences. Expansion Nurture / New Logo Nurture examples: CT-000301, CT-000624. Cold Outbound - HR Leaders / Cold Outbound - People Ops examples: CT-000884, CT-001033, CT-001103, CT-001153, CT-001227, CT-001345, CT-001159, CT-001217, CT-001255. CT-001033 appears twice in HR Leaders plus once in People Ops. No deduplication stated. Data missing on suppressions. Failure mode under 2% reply: only Cold Outbound - HR Leaders at 0.45%. Opens 30.5% show delivery ok. Reply 0.83% to 0.17% plus 0 meetings is offer-persona mismatch, not subject line. Contrast Cold Outbound - People Ops step 1 at 3.5%. Fixes: HR Leaders: pause, rewrite step 1 for HR Leaders pain, retest on clean deduped list. Expansion Nurture: fix open tracking before any optimization. People Ops step 3: replace ask with breakup / referral. Fix first: Cold Outbound - HR Leaders. Zero meetings on 1785 sends plus cross-contamination wastes both cold audiences.
Weekly marketing goals update — Q3-2026 (66 of 92 days elapsed = 66/92 = 0.7174 = 71.7%) 1. SQMs: QTD actual 230, target 300, delta 230-300 = -70 (230/300 = 76.7% attained). Pace expected 300*66/92 = 19800/92 = 215.22. Actual 230 > 215.22 = ahead. 2. SQOs: QTD actual 84, target 120, delta 84-120 = -36 (84/120 = 70.0% attained). Pace expected 120*66/92 = 7920/92 = 86.09. Actual 84 < 86.09 = behind. 3. DS2s: QTD actual 40, target 75, delta 40-75 = -35 (40/75 = 53.3% attained). Pace expected 75*66/92 = 4950/92 = 53.80. Actual 40 < 53.80 = behind. 4. closed-lost MIA rate: QTD actual 5/25 = 0.2 = 20.0%, target 0.1 = 10.0%, delta 0.2-0.1 = +0.1 = +10pp (double target, lower_better). Pace/status = behind — above target. Rate is not time-prorated. 5. same-quarter closes: QTD actual 10, target 20, delta 10-20 = -10 (10/20 = 50.0% attained). Pace expected 20*66/92 = 1320/92 = 14.35. Actual 10 < 14.35 = behind. 6. active pipeline coverage: QTD actual 3000000, target 4000000, delta 3000000-4000000 = -1000000. Coverage 3000000/4000000 = 0.75x = 75%. Pace expected 4000000*66/92 = 264000000/92 = 2869565.22. Actual 3000000 > 2869565.22 = ahead on pace, still short of target. What moved this week: Data missing. No prior-week QTD snapshot or week-over-week change file was provided, so week movement cannot be determined from marketing_qtd.csv, targets.csv, and quarter_meta.csv alone.
Hold Q3 commit at risk: forecast is 115,976.75 (44,729 COMMIT + 0.35 x 203,565 BEST_CASE = 71,247.75). 32 deals worth 227,575 fall after 2026-09-30 including COMMIT Deal-D348E1 at 13,770. Do not lock this forecast because all 7 COMMIT deals lack why-buys with owner blank on 85 of 86.
Subject: Re: July 28 demo + 150-seat pricing Hi, Following up on the recap I sent August 5 after our July 28 demo — you asked for pricing for 150 seats after your strong reaction to automated milestone awards and the points catalog. Can we book 15 minutes next week to review the pricing? Best, Alex Franklin
Marketing delivered 46 SQMs against a target of 52 for the week, with the webinar channel delivering 18 of those SQMs, while cost per SQM on paid search held at 150 dollars — a steady signal to celebrate and build on together. Sales converted 14 SQOs and set 9 DS2 meetings, creating 310000 dollars in new pipeline, with same-quarter close count for the week at 3 — momentum worth recognizing across the funnel. CS saved 2 renewals this week with team NPS at 61, and there are 3 open red-flag accounts heading into next week — appreciating the care that protects every relationship. PLG added 412 new signups with activation at 31 percent, and 38 companies reached the aha moment of 10 recognition gives — love to see more teams experiencing the joy of giving.
Partner Digest: 2026-08-24 to 2026-09-04 Partner-sourced pipeline: 5 deals, $550,000 Arithmetic: 180,000 + 95,000 + 140,000 + 60,000 + 75,000 = 550,000 Active: Apex Rewards Co - 2 sourced deals, $275,000. Deal-DDAAF2 $180,000 + Deal-2CF33E $95,000 = $275,000. Both in DS1, UTM Source = Partner. Co-webinar locked for 09-15. HRCloud Partners - 1 sourced deal, $140,000. Deal-F1CDA5 $140,000. Opp moved to DS2 after closing security review. CultureBridge - 2 sourced deals, $135,000. Deal-096E1D $60,000 + Deal-067213 $75,000 = $135,000. Both early stage from lunch-and-learn. WorkWell Group - 0 sourced deals, $0. Restart joint playbook in Q4; planning call booked for 09-09. Quiet: Recogniq - No sourced deals this period. KudosWave - No sourced deals this period. PeopleFirst Advisors - No sourced deals this period. TotalPerk - No sourced deals this period.
Q1: Yes. All customer data is encrypted at rest using AES-256. [P1] Q2: Yes. Data in transit is encrypted with TLS 1.2 or higher. [P1] Q3: Yes. Bonusly maintains a SOC 2 Type II report, renewed annually. Available to prospects under NDA. [P2] Q4: Retained for the duration of the contract plus 90 days, after which it is deleted from production systems. [P3] Q5: Published at trust.bonusly.com. Customers receive 30 days notice before a new subprocessor is added. [P4] Q6: Yes. SAML 2.0 single sign-on and SCIM user provisioning are available on the Enterprise plan. [P5] Q7: Production databases are backed up daily. Backups are encrypted and retained for 35 days. [P6] Q8: Unanswerable from provided excerpts [P1-P8 contain no ISO 27001 statement]. Would require ISO 27001 certificate / compliance documentation. Q9: Unanswerable from provided excerpts [P1-P8 contain no uptime SLA]. Would require SLA / Master Services Agreement. Q10: Unanswerable from provided excerpts [P1-P8 contain no HIPAA statement]. Would require HIPAA compliance documentation / Business Associate Agreement.
FINDING 1 - OVERLAPPING ALWAYS-TRIGGERS - CRITICAL - MERGE Skills: comms-drafter vs email-drafter Overlap exact phrases in declared descriptions: "write me an email", "draft a follow-up", "help me reply" / "help me reply to this", "what should I say", "bump email", "contract nudge" Proposal: MERGE into one email/comms writer; rewrite nothing. FINDING 2 - CIRCULAR DELEGATION - CRITICAL - UPDATE_BODY Chain: email-drafter -> deal-strategy-coach -> email-drafter Evidence: email-drafter: "If the user needs strategic deal coaching ... point them to the deal-strategy-coach skill." deal-strategy-coach: "When drafting manager-to-prospect emails, use the email-drafter skill" Proposal: UPDATE_BODY to break one direction; rewrite nothing. FINDING 3 - DANGLING DELEGATION TARGET - CRITICAL - REVIEW Target: prospect-research-multithreading Invoked by: comms-drafter, email-drafter, deal-strategy-coach Manifest rows/files for it: 0. Also missing with same pattern: bonusly-brand, signalforge-reports, skill-orchestrator, bonusly-data-questions, bonusly-product-questions, bonusly-business-reporting-questions, bonusly-rewards-questions, bonusly-ppp-questions, bonusly-feature-flag-questions, bonusly-deal-desk-questions, bonusly-datadog-questions Proposal: REVIEW to create target or remove invocations; rewrite nothing. FINDING 4 - VERSION CONFLICT DUPLICATE WRITER - WARNING - DELETE_SKILL Conflict: comms-drafter vs email-drafter both claim email drafting/review/rewrite. Survivor: email-drafter Reason: deal-strategy-coach explicitly delegates to email-drafter for manager emails with Gmail signature extraction; no skill body delegates to comms-drafter. Proposal: DELETE_SKILL comms-drafter after porting broad-team coverage; rewrite nothing. FINDING 5 - MANIFEST DESCRIPTIONS OVER 1024 CHARS - INFO - REVIEW Arithmetic: values = 656, 897, 996, 792, 965, 676, 945, 1004, 1006, 962, 1006, 708, 762, 656. Count >1024 = 0 of 14. Max = 1006 (pipeline-intelligence-report, signalforge-claim-compressor). Proposal: REVIEW no trim needed; rewrite nothing. FINDING 6 - HARDCODED IDS DATES NAMES IN BODIES - WARNING - UPDATE_BODY Examples exactly as given: partner-digest: 73fe98de-a4a3-4869-9f8a-bb1eeed4cf7f, 1958248479, 2286616609, "Partnerships Digest — Week of May 19, 2026", "May 16, 2026 issue", "Amani Phipps" signalforge-feedback: 2295136266, 2232811524, 2234417154, 2247295002 sales-forecast: 2232582148, 1CLZeOsElVDF_LF0ZG_t2nfwvhnZ6bpwqM_nX3WEYzcw, 1ENuaEcCuLjdKhMvp8FK3Ys1ek5Aw9ZuOZhsHJJFoB_k, "Q3 2026 Forecast Intelligence — July 9, 2026" analysis-validator: "150582537", "83155923", "April 26, 2026", "May 9, 2026", "March 28, 2023", "Alaina Loori", "Shealagh Coughlin", "Dana Mercer", "Gavin Porter", "Manish or Amani" pipeline-intelligence-report: 1973303, 150582536, 150582537, 150582538, 150582539, 1175632767 stale-pipeline-report: C0561C1JCPJ, 55483190 weekly-pipeline-report: "Ben Lavin" closed-lost-analysis company aliases: Softheon, Estee Lauder, LIFTOFF, Nestle-cited as Nestlé, MinIO, Aurora Innovation, GCash, Ethos Cannabis, StickerYou Proposal: UPDATE_BODY to parameterize; rewrite nothing. FINDING 7 - MANIFEST DRIFT BOTH DIRECTIONS - INFO - REVIEW Arithmetic: FILES provided = 14, MANIFEST rows = 14, matched by stripping .SKILL.md = 14. Files with no manifest row = 0. Manifest rows with no file = 0. Proposal: REVIEW no action; rewrite nothing.
Runbook — #incident-2026-08-29-reward-queue 1. [M01] Acknowledge alert / assign IC - Action: PagerDuty alert for reward-worker queue depth > 10k acknowledged. - Who: Bryce Harmon - Verification: Not stated in thread — needing confirmation. - Rollback: N/A — no state change. 2. [M02] Check reward queue depth - Command: `bundle exec rake sidekiq:queue_depth` - Who: Farid Osman - Result: 48,213 pending jobs; normal is under 500 per thread. - Rollback: N/A — no state change. 3. [M03] Check dead set - Action: Dead set observed as 112 jobs, all Redis::TimeoutError from around 13:58. - Who: Farid Osman - Exact command / how inspected: Not stated in thread — needing confirmation. - Verification: Not stated in thread — needing confirmation. - Rollback: N/A — no state change stated. 4. [M04] Pause enqueue - Command: `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'` - Who: Farid Osman - Verification: Not stated in thread — needing confirmation. - Rollback (per thread): `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` 5. [M05] Clear dead set - Action: Cleared out the dead set in the console. - Who: Elena Sinclair - Exact command: Not stated in thread — needing confirmation. - Verification: Not stated in thread — needing confirmation. - Rollback: Not stated in thread — needing confirmation. Clearing is destructive; no restore stated. 6. [M06] Scale workers up - Command: `kubectl scale deployment/reward-worker --replicas=6` (was 3) - Who: Bryce Harmon - Verification: Not stated at this step; drain observed later in [M07]/[M08]. - Rollback (per thread): `kubectl scale deployment/reward-worker --replicas=3` 7. [M07] Monitor drain - Observation: Queue depth down to 9,400 and falling ~1,200/min. - Who: Farid Osman - Command used to measure: Not stated in thread — needing confirmation. - Rollback: N/A — no state change. 8. [M08] Verify queue drained / error rate recovered - Command: `bundle exec rake sidekiq:queue_depth` now returns 0. - Who: Cole Ingram - Additional verification: Error rate in Datadog back to baseline (baseline definition not stated — needing confirmation). - Rollback: N/A — no state change. 9. [M09] Re-enable enqueue - Command: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` - Who: Bryce Harmon - Verification (per thread): 40 new jobs processed cleanly in the next 3 minutes. Measurement method not stated — needing confirmation. - Rollback: Not stated in thread for this step — needing confirmation. 10. [M10] Scale workers back down / resolve - Command: `kubectl scale deployment/reward-worker --replicas=3` - Who: Bryce Harmon - Verification (per thread): Queue stable at 0. Method / duration not stated — needing confirmation. - Rollback: Not stated in thread for this step — needing confirmation.
First error: 2026-09-03T14:01:12Z, service reward-service, level ERROR, message Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s Service and job involved: service reward-service origin, job RewardGiveJob Cascade in order: 1. 2026-09-03T14:01:12Z reward-service ERROR Redis timeout redis-primary:6379 2. 2026-09-03T14:01:20Z reward-service ERROR retry exhausted for RewardGiveJob 3. 2026-09-03T14:01:30Z reward-service ERROR retry exhausted for RewardGiveJob 4. 2026-09-03T14:01:40Z reward-service ERROR retry exhausted for RewardGiveJob 5. 2026-09-03T14:01:40Z sidekiq ERROR RewardGiveJob failed: Redis::TimeoutError; retrying in 60s 6. 2026-09-03T14:02:28Z sidekiq ERROR RewardGiveJob failed: Redis::TimeoutError; retrying 7. 2026-09-03T14:02:30Z sidekiq WARN Queue reward depth above 10,000 8. 2026-09-03T14:03:05Z api-gateway ERROR 502 upstream timeout calling reward-service /gives 9. 2026-09-03T14:03:30Z web-app ERROR Give form submission failed: upstream 502 from api-gateway 10. Continued 502s and RewardGiveJob failures 14:03:31Z to 14:06:52Z 11. 2026-09-03T14:22:10Z reward-service INFO Redis connection restored; resuming job processing 12. 2026-09-03T14:24:45Z sidekiq INFO Queue reward depth below 500 Arithmetic: sidekiq_jobs.csv count: 12 RewardGiveJob + 4 RecognitionDigestJob = 16 total failures Earliest sidekiq_jobs.csv failure: J-00005 at 2026-09-03T14:01:46Z, which is 14:01:46 minus 14:01:12 = 34s after first log error Outage to restore: 14:22:10 minus 14:01:12 = 20m 58s Outage to queue recovery: 14:24:45 minus 14:01:12 = 23m 33s Datadog query that would confirm the first error: service:reward-service level:ERROR "Redis::TimeoutError" at 2026-09-03T14:01:12Z Logs do not show: No root cause for the Redis timeout at redis-primary:6379. No Redis server-side logs, infrastructure metrics, deploys, config changes, or network events. No deal/company aliases were provided in the data. No user impact count, revenue impact, or whether failed jobs were lost or retried successfully. No resolution action taken, only restoration timestamps.
State of feature flags per flags_export.csv and flag_code.md: Total flags: 5 on + 4 off = 9 flags Total company assignments: 42 + 220 + 87 + 12 + 65 + 9 + 14 + 7 + 0 = 456 1. recognition_streaks_v2 - state: on - targeting_rules: segment:beta_companies - company_count: 42 Controls per code: app/models/recognition.rb - if enabled, StreakTracker.record(give) 2. points_budget_guardrails - state: on - targeting_rules: all_companies - company_count: 220 Controls per code: app/services/budget_service.rb - if enabled, BudgetService.new(company).enforce!(giver, points) 3. slack_dm_nudges - state: on - targeting_rules: segment:region_na - company_count: 87 Controls per code: app/jobs/nudge_job.rb - return unless enabled, then SlackDm.send_nudge(user) 4. redeem_flow_redesign - state: off - targeting_rules: targeted_list - company_count: 12 Controls per code: app/controllers/redeem_controller.rb - if enabled render RedeemV2Component.new(company), else render RedeemV1Component.new(company) 5. analytics_dashboard_v3 - state: on - targeting_rules: segment:tier_three - company_count: 65 Controls per code: app/controllers/analytics_controller.rb - if enabled, @dashboard = AnalyticsV3.new(company) 6. ms_teams_app_v2 - state: off - targeting_rules: targeted_list - company_count: 9 Controls per code: app/services/teams_installer.rb - if enabled, TeamsAppV2.install(company) 7. legacy_give_modal - state: off - targeting_rules: segment:legacy_plan - company_count: 14 Controls per code: No code reference in provided excerpt. Data missing. 8. survey_boosters_q3 - state: on - targeting_rules: segment:legacy_plan - company_count: 7 Controls per code: No code reference in provided excerpt. Data missing. 9. paused_offboard_cleanup - state: off - targeting_rules: [empty] - company_count: 0 Controls per code: No code reference in provided excerpt. Data missing. Flags with no code reference: legacy_give_modal, survey_boosters_q3, paused_offboard_cleanup Flag with no targets: paused_offboard_cleanup - targeting_rules empty, company_count 0
NDA-1 — [PARTY A] — GREEN: Standard 2-year term with "obligations survive for three (3) years after termination," full carve-outs (a)-(e), "the laws of the State of Delaware, USA," with no non-solicit/non-compete. NDA-2 — [PARTY B] — YELLOW: Requires counsel review for embedded non-solicit: "During the term of this Agreement and for eighteen (18) months thereafter, neither party shall solicit for employment or hire any employee of the other party with whom it came into contact under this Agreement." NDA-3 — [PARTY C] — RED: Requires full legal review for non-compete: "For a period of three (3) years following the Effective Date, Recipient shall not, directly or indirectly, engage in or provide services to any business that competes with Discloser's business." compounded by one-way, 5-year term, "No confidentiality carve-outs are stated in this Agreement," and "governed by and construed in accordance with the laws of the Republic of Ireland, and the parties submit to the exclusive jurisdiction of its courts."