Mean 0.942 · 32/40 perfect tests · $131.87 total · each card: the question → the correct answer (gold) → this model's actual answer
Definitions: - DS2+ base = deals in stage DS2, DS3, DS4, or DS5. Here: 124 deals. - Why-buys non-compliant = DS2+ deal with why_buys blank, <15 characters, or a placeholder like tbd, n/a, see notes. LONG(n) counts as present/substantive. - No DS1 timestamp = blank t_ds1. - Regressed = any populated earlier-stage timestamp later than a populated later-stage timestamp. Why-buys non-compliance: - Overall: 101 / 124 = 81.45% - Bryce Harmon: 15 / 18 = 83.33% - Dana Mercer: 18 / 22 = 81.82% - Alex Franklin: 48 / 61 = 78.69% - Cole Ingram: 19 / 22 = 86.36% - Farid Osman: 1 / 1 = 100.00% - Elena Sinclair: n/a (0 DS2+ deals) Other hygiene counts: - Deals with no DS1 timestamp: 0 - Deals that regressed: 0 Three process fixes: 1. Make why_buys required on move to DS2+; reject blank values, placeholders, and entries under 15 characters. 2. Auto-stamp t_ds1 at DS1 entry/creation and block saves or stage changes if t_ds1 is blank. 3. Add timestamp-order validation so populated stage dates must satisfy t_ds1 <= t_ds2 <= t_ds3 <= t_ds4 <= t_ds5.
Deals resolved: 156 of 156. Deals whose owner_id has no match in owners.csv: - None. Owner_ids on open deals that map to archived/deactivated owners: - None. Total pipeline amount per resolved owner: - Bryce Harmon (119337721): 24000 + 19656 + 13500 + 7000 + 2520 + 240000 + 99000 + 72000 + 70000 + 63600 + 45000 + 1 + 21000 + 23400 + 13680 + 5502 + 8160 + 1 + 11400 + 1 + 36000 + 31500 + 6000 + 10800 + 30275 + 17400 + 12600 + 18000 + 37440 + 18828 + 2880 + 36000 + 20880 + 10920 + 25200 = 1054144 - Alex Franklin (84342457): 14850 + 13770 + 11200 + 9000 + 6360 + 5400 + 3240 + 2484 + 1920 + 1080 + 7200 + 19000 + 2880 + 1400 + 4800 + 1632 + 10000 + 9300 + 2700 + 2160 + 1800 + 3600 + 3840 + 15000 + 1968 + 4000 + 3600 + 4800 + 3120 + 2520 + 9000 + 2400 + 62000 + 5400 + 5100 + 16700 + 4400 + 1620 + 2600 + 7200 + 18000 + 17000 + 8316 + 8100 + 18000 + 12600 + 24000 + 15000 + 9000 + 7200 + 3780 + 16200 + 7200 + 4680 + 1800 + 18000 + 2730 + 2400 + 3060 + 18000 + 12000 + 1800 + 4400 + 31200 + 7200 + 1600 + 60000 = 624310 - Dana Mercer (83155923): 11250 + 10500 + 9000 + 9000 + 5400 + 4800 + 4600 + 1920 + 15000 + 4200 + 18900 + 27000 + 43875 + 20000 + 60000 + 8100 + 16250 + 3150 + 5000 + 2100 + 23400 + 5400 + 7350 + 25000 = 341195 - Cole Ingram (83155924): 2760 + 1330 + 7225.4 + 3360 + 5616 + 2700 + 7781.2 + 6947.5 + 40000 + 12168 + 2480.4 + 11116 + 11193 + 1875 + 31750 + 32175 + 4779.88 + 3334.8 + 58529.25 + 4140 + 18000 + 18900 = 288161.43 - Farid Osman (716654662): 1249 + 1 + 1 + 1 + 2880 + 1 + 1 = 4134 - Elena Sinclair (701163055): 2100 = 2100
a) Orphans: 30 gong rows whose hs_deal_id has no match in deals_open.deal_id. Arithmetic: 67 total gong rows - 37 matched rows = 30 orphans. Sample aliases: Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42, Deal-36EA09. b) Duplicate conversation keys: 0 rows. Arithmetic: 0 rows where calls_90d > distinct_conversation_keys; all 67 gong rows have calls_90d = distinct_conversation_keys. c) DS3+ call coverage among open deals: 25/85 = 0.2941 = 29.41%. Arithmetic: open deals at DS3, DS4, or DS5 = 85; with at least one logged call = 25; 25 ÷ 85 = 29.41%.
```sql
-- Note: the catalog excerpt does not document the company-key column on
-- PRODUCTION.PLG.COMPANY_COHORT_SUMMARY; this query assumes COMPANY_ID.
-- Historical giving counts must not exclude deleted givers, so no deleted-giver filter is applied.
SELECT
ccs.COMPANY_ID,
DATE_TRUNC('MONTH', ccs.FIRST_SUB_PAYMENT_DATE) AS first_customer_month,
ccs.M1_USERS AS unique_givers,
ccs.M1_GIVES AS recognition_count,
ccs.M1_REDEMPTIONS AS successful_redemption_count
-- Use the company-level cohort summary because it is the only documented source
-- with first customer payment timing plus first-month giver/give/redemption metrics.
FROM PRODUCTION.PLG.COMPANY_COHORT_SUMMARY AS ccs
WHERE ccs.FIRST_SUB_PAYMENT_DATE IS NOT NULL
ORDER BY ccs.COMPANY_ID;
```
CRM audit Deals - No deals extract was provided. - Cannot compute completeness for owner, stage, amount, close date, or why-buys. - Cannot rank fixes by pipeline amount at stake without deal amounts and deal-to-company/contact linkage. Companies (34 rows) - industry: 34/34 = 100.00% complete; missing 0/34 = 0.00% - employee_count: 25/34 = 73.53% complete; missing 9/34 = 26.47% - hq_country: 28/34 = 82.35% complete; missing 6/34 = 17.65% Missing company fields - employee_count missing (9): C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386, C-93C8BF - hq_country missing (6): C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5, C-EE9FFB Contacts (52 rows) - email: 52/52 = 100.00% populated; invalid emails 4/52 = 7.69% - title: 39/52 = 75.00% complete; missing 13/52 = 25.00% - persona: 37/52 = 71.15% complete; missing 15/52 = 28.85% Missing contact fields - title missing (13): CT-0000, CT-0022, CT-0072, CT-0080, CT-0081, CT-0092, CT-0120, CT-0121, CT-0122, CT-0132, CT-0141, CT-0162, CT-0170 - persona missing (15): CT-0000, CT-0022, CT-0041, CT-0060, CT-0070, CT-0081, CT-0082, CT-0092, CT-0110, CT-0132, CT-0162, CT-0171, CT-0172, CT-0180, CT-0181 Duplicate company clusters Note: name-variant duplicate detection is not possible from the provided data because companies.csv has no company name field. Shared-domain duplicate detection is possible. 1) acme-corp.com - Members: C-0A092931, C-0A092932 - Survivor: C-0A092931 - Conflicts: - industry: Technology vs tech - employee_count: 500 vs 510 - hq_country: US vs USA - Recommendation: keep C-0A092931 as survivor, normalize text fields, manually review employee_count because there is no matching enrichment row. 2) globex.io - Members: C-0A092933, C-0A092934 - Survivor: C-0A092933 - Conflicts: - industry: SaaS vs Technology - employee_count and hq_country match: 200 and US - Recommendation: keep C-0A092933 as survivor because SaaS is more specific than Technology; manually confirm industry because there is no matching enrichment row. Invalid emails - CT-0010 (C-66D1FC): user0@ - CT-0080 (C-92D97D): user0@ - CT-0081 (C-92D97D): user1@ - CT-0192 (C-425E2A): user2@ Domain mismatches - CT-0011 (C-66D1FC): email user1@other-domain.com does not match domain 66d1fc.com Missing company fields that can be filled from zoominfo_enrichment.csv 8/15 missing company fields are fillable = 53.33% - C-EC3025: employee_count = 400 - C-96039F: employee_count = 400 - C-44EA29: employee_count = 400 - C-D04904: employee_count = 400 - C-B23205: employee_count = 400 - C-60C75F: employee_count = 400 - C-7BBDFA: employee_count = 400 - C-50D386: employee_count = 400 Missing company fields that cannot be filled from the provided enrichment - C-2D1F1B: hq_country - C-D73B89: hq_country - C-44EA29: hq_country - C-D04904: hq_country - C-2C60E5: hq_country - C-93C8BF: employee_count - C-EE9FFB: hq_country CRM vs enrichment disagreements Recommendation below is based only on the provided files. Industry disagreements: recommend zoominfo_enrichment.csv - C-66D1FC: CRM tech vs enrichment Computer Software - C-EC3025: CRM Technology vs enrichment Computer Software - C-44EA29: CRM tech vs enrichment Computer Software - C-92D97D: CRM Technology vs enrichment Computer Software - C-D04904: CRM Technology vs enrichment Computer Software - C-77A95A: CRM Technology vs enrichment Computer Software - C-AA8DDA: CRM Technology vs enrichment Computer Software - C-B25F40: CRM Technology vs enrichment Computer Software - C-60C75F: CRM tech vs enrichment Computer Software - C-425E2A: CRM Tech vs enrichment Computer Software HQ country disagreements: recommend zoominfo_enrichment.csv - C-66D1FC: CRM US vs enrichment United States - C-950043: CRM US vs enrichment United States - C-EC3025: CRM USA vs enrichment United States - C-96039F: CRM USA vs enrichment United States - C-77A95A: CRM US vs enrichment United States - C-B23205: CRM US vs enrichment United States - C-E51FB7: CRM USA vs enrichment United States - C-D0662E: CRM US vs enrichment United States - C-425E2A: CRM USA vs enrichment United States - C-2D7423: CRM USA vs enrichment United States 10 fixes with the most pipeline amount at stake - Not rankable by pipeline amount from the provided data: no deals extract or deal amounts were provided. - Unranked fixes visible in the provided data: 1. Backfill employee_count from zoominfo_enrichment.csv for C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386. 2. Manually source employee_count for C-93C8BF; no matching enrichment row/value was provided. 3. Manually source hq_country for C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5, C-EE9FFB; the provided enrichment does not supply those values. 4. Merge acme-corp.com duplicates into survivor C-0A092931 and manually resolve employee_count 500 vs 510. 5. Merge globex.io duplicates into survivor C-0A092933 and manually resolve industry SaaS vs Technology. 6. Normalize 10 industry values to the zoominfo_enrichment.csv taxonomy where a matching row exists. 7. Normalize 10 hq_country values to the zoominfo_enrichment.csv country format where a matching row exists. 8. Correct invalid emails for CT-0010, CT-0080, CT-0081, CT-0192. 9. Correct the domain mismatch for CT-0011. 10. Backfill contact titles for 13 contacts and personas for 15 contacts.
Classifications Deal-DB0AAC: timing | buyer Deal-F7F635: competitor | unknown Deal-AC944F: no decision | buyer Deal-214060: no decision | buyer Deal-91A056: timing | buyer Deal-29326C: timing | buyer Deal-5DB9B0: other | unknown Deal-831B7B: timing | buyer Deal-F97C37: product gap | Bonusly Deal-13E9CF: timing | buyer Deal-39E25C: timing | buyer Deal-7ED004: pricing | buyer Deal-21B045: no decision | buyer Deal-B3ABED: timing | buyer Deal-422BA6: competitor | Bonusly Deal-ED9AE7: timing | buyer Deal-988493: no decision | buyer Deal-381C8C: competitor | unknown Deal-F308CA: no decision | buyer Deal-F1E8A6: competitor | unknown Deal-B6AC09: timing | buyer Deal-70F704: other | buyer Deal-E6E80A: timing | buyer Deal-B038F0: timing | buyer Deal-4664E1: no decision | buyer Deal-175756: timing | buyer Deal-E74A73: no decision | buyer Deal-DDAB52: product gap | Bonusly Deal-ACE061: competitor | unknown Deal-BB78F3: timing | buyer Deal-D48E0B: no decision | buyer Deal-15DA99: timing | buyer Deal-F4AF5D: timing | buyer Deal-79B7A1: timing | buyer Deal-583ADB: no decision | buyer Deal-8E27DA: other | buyer Deal-2D2F8D: competitor | unknown Deal-E0441F: no decision | unknown Deal-7CB44D: no decision | buyer Deal-0F96AA: competitor | unknown Deal-1BCA50: competitor | unknown Deal-7CC678: competitor | unknown Deal-FAC17C: no decision | buyer Deal-242273: product gap | Bonusly Deal-50E5D8: no decision | buyer Deal-A2C349: product gap | Bonusly Deal-9F176A: timing | buyer Deal-7B2236: pricing | buyer Deal-AFA56C: no decision | buyer Deal-C7156E: competitor | unknown Deal-C33D91: pricing | buyer Deal-9048EB: product gap | Bonusly Deal-5E64CE: timing | buyer Deal-8A0992: competitor | buyer Deal-D0C698: competitor | buyer Deal-69CF3D: timing | buyer Deal-ECBF89: timing | buyer Deal-3618CC: product gap | Bonusly Deal-EECC02: competitor | unknown Deal-5AD03E: pricing | buyer Deal-D1A623: timing | buyer Deal-413C56: timing | buyer Deal-47F1A1: competitor | buyer Deal-BF2A98: competitor | buyer Deal-2A292B: no decision | buyer Deal-D1AABF: no decision | buyer Deal-FEDBCB: timing | buyer Deal-1E7DA9: competitor | unknown Deal-2BBA21: no decision | buyer Deal-286F9C: product gap | Bonusly Deal-7FBAC6: no decision | buyer Deal-369281: competitor | buyer Deal-386F6E: no decision | buyer Deal-9FCD0D: competitor | buyer Deal-55867E: no decision | unknown Deal-DAFB82: pricing | buyer Deal-2FEDDB: timing | buyer Deal-64B19A: competitor | buyer Deal-3F86A0: no decision | buyer Deal-096750: no decision | buyer Deal-F325A5: champion left | buyer Deal-ABD14C: no decision | buyer Deal-79E61A: no decision | buyer Deal-8A119B: pricing | buyer Deal-AE7C4E: no decision | buyer Deal-DAB4F1: no decision | buyer Deal-B4B50F: no decision | buyer Deal-981AD4: product gap | Bonusly Deal-DC77FE: product gap | Bonusly Deal-5885B9: no decision | buyer Summary Category counts - no decision: 28 - timing: 24 - competitor: 19 - product gap: 9 - pricing: 6 - other: 3 - champion left: 1 Arithmetic: 28 + 24 + 19 + 9 + 6 + 3 + 1 = 90 Side split - buyer: 66 - unknown: 14 - Bonusly: 10 Arithmetic: 66 + 14 + 10 = 90 Structured tag clearly disagrees with free-text reason: 5 - Deal-70F704 - Deal-8E27DA - Deal-9048EB - Deal-3618CC - Deal-5AD03E Two patterns most worth acting on 1. Buyer-driven stall/deferral is the biggest theme: no decision + timing = 28 + 24 = 52 of 90. The free-text repeatedly says unresponsive/MIA, on hold, pause, reconnect next year, or other priorities. 2. Capability/fit is a larger issue than pure price when a substantive reason is given: competitor + product gap = 19 + 9 = 28 of 90, versus pricing at 6 of 90. The text repeatedly points to broader offerings, surveys, swag-only alternatives, customization/points-as-dollars, UK/Canadian fit, internal points-currency needs, and partner/integration advantages.
{"tier_counts":{"LOCK":4,"ACTION":9,"BUILD":58,"REVIVE":26,"WATCH":34,"RISKY":25},"tier_examples":{"LOCK":["Deal-25F752","Deal-D348E1","Deal-C26D20"],"ACTION":["Deal-944310","Deal-1FC049","Deal-C6FE92"],"BUILD":["Deal-5408B0","Deal-9AAE5F","Deal-3974EB"],"REVIVE":["Deal-2D1F1B","Deal-66D1FC","Deal-950043"],"WATCH":["Deal-40522D","Deal-483B2D","Deal-F0EBBB"],"RISKY":["Deal-E53952","Deal-547B2B","Deal-B7EBD1"]},"risky_deals":["Deal-E53952","Deal-547B2B","Deal-B7EBD1","Deal-A2B47C","Deal-2465CE","Deal-584EE5","Deal-C6D97A","Deal-A5E80A","Deal-0660B4","Deal-FD9F4E","Deal-499BF6","Deal-BA571A","Deal-7BBDFA","Deal-4A13AD","Deal-8AD4A5","Deal-9D0060","Deal-690476","Deal-635B8E","Deal-ED725A","Deal-5FDCE4","Deal-F336B6","Deal-215CCA","Deal-5EED42","Deal-BA3DDC","Deal-7599B8"],"lock_violations":0,"pipeline_shape":"Pipeline is middle-heavy: 58 BUILD + 34 WATCH = 92 of 156 deals, versus just 13 execution-tier deals (4 LOCK + 9 ACTION); 26 sit in REVIVE, and 25 are RISKY where forecast and engagement disagree. Arithmetic check: 4 + 9 + 58 + 26 + 34 + 25 = 156 total deals. Missing data note: 2 deals, Deal-3EED2C and Deal-57FF13, have no matching engagement rows in the provided engagement file."}
[
{
"transcript_id": "TX-001",
"deal_alias": "Deal-CFE7F4",
"why-buys": [
"The big win for us would be automating anniversary and birthday awards — our HR team of three cannot keep up with it manually."
],
"pain points": [
"The big win for us would be automating anniversary and birthday awards — our HR team of three cannot keep up with it manually.",
"Right now we 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": "Yes — let's do the security review on September 12.",
"objections": [
"One concern: we need SSO and audit logs for IT to sign off."
],
"confidence": {
"label": "high",
"arithmetic": "8 explicit signals / 8 requested fields"
}
},
{
"transcript_id": "TX-002",
"deal_alias": "Deal-70BB30",
"why-buys": [
"We want to tie recognition to retention for our hourly workforce — regretted turnover there is over 30%."
],
"pain points": [
"We want to tie recognition to retention for our hourly workforce — regretted turnover there is over 30%."
],
"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": "Yes — 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": {
"label": "high",
"arithmetic": "7 explicit signals + 1 null / 8 requested fields"
}
},
{
"transcript_id": "TX-003",
"deal_alias": "Deal-530B50",
"why-buys": [
"We need to 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": "Yes, let's 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": {
"label": "high",
"arithmetic": "7 explicit signals + 1 null / 8 requested fields"
}
},
{
"transcript_id": "TX-004",
"deal_alias": "Deal-180D02",
"why-buys": [
"We want to 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 — that's my hesitation."
],
"confidence": {
"label": "high",
"arithmetic": "6 explicit signals + 2 nulls / 8 requested fields"
}
},
{
"transcript_id": "TX-005",
"deal_alias": "Deal-F8767A",
"why-buys": [
"Two things: automate service milestones, and 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": "Yes — come present to our exec team on October 2.",
"objections": [
"We're mid-pilot with Nectar right now, so you'd need to beat that experience.",
"Our exec team is skeptical after a failed rollout two years ago."
],
"confidence": {
"label": "high",
"arithmetic": "8 explicit signals / 8 requested fields"
}
},
{
"transcript_id": "TX-006",
"deal_alias": "Deal-EE195F",
"why-buys": [
"I'd love to cut the admin time on service awards."
],
"pain points": [
"I personally spend five hours a month ordering and shipping plaques."
],
"stakeholders": [
"Prospect (HR Manager)"
],
"budget signal": "Budget isn't the issue — time is.",
"timeline signal": "Our fiscal year resets in February, so a Q1 start is realistic.",
"competitor mentioned": null,
"next step": "Yes — send the one-page overview and I'll forward it to our COO this week.",
"objections": [
"Fair warning, our COO usually prefers building things in-house."
],
"confidence": {
"label": "high",
"arithmetic": "7 explicit signals + 1 null / 8 requested fields"
}
}
]
1) Deal-547B2B — $11,200 Why it is close: CRM has DS5 + COMMIT, and Slack is strongest here: “redlines came back clean,” “the signing page is out,” and “their VP People told me they are signing tomorrow.” That is explicitly “signature-imminent.” What is left: Signature. 2) Deal-403845 — $9,000 Why it is close: CRM has DS5 + COMMIT. Slack says it is “moving fine” and “the order form is with their finance team,” which is the clearest late-stage operational step after Deal-547B2B. What is left: Finance team action on the order form. 3) Deal-A2B47C — $6,360 Why it is close: CRM has DS5 + COMMIT. Slack says it is “still warm, just normal legal-review pace.” I rank it ahead of Deal-D348E1 because the Slack status is equally positive, but the CRM close date is earlier: 2026-09-11 vs 2026-10-15. Arithmetic: Sep 11 → Sep 30 = 19 days; Oct 1 → Oct 15 = 15 days; 19 + 15 = 34 days earlier. What is left: Legal review to finish. Note: Deal-2465CE is not close despite DS5/COMMIT in CRM because Slack says it “went sideways,” procurement froze vendors, and it is “realistically a Q4 deal now.”
I can classify the candidates from the transcript lines, but I cannot name the amount for each deal because no deal-amount file or amounts were provided. Candidates 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 Why: product docs say “SCIM user provisioning … [is] NOT currently listed as supported capabilities.” Amount: missing from provided data 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 Why: product docs list HRIS integrations as “Workday, BambooHR, Gusto, Rippling” and say “ADP Workforce Now integrations are NOT currently listed as supported capabilities.” Amount: missing from provided data 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 Why: product docs show “Custom report builder” = Enterprise only. Amount: missing from provided data 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 Why: product docs show “Slack … integration” is supported on all plans; the issue described is training/adoption, not missing capability. Amount: missing from provided data Excluded Deal-36C33F is not a prospect-raised gap. The only gap statement is rep language, and the prospect says: “Good to know. The web version should be fine for our office staff for now.” Summary of true product gaps only Arithmetic: - Candidate prospect-raised product-gap-related lines = 4 - Real gaps = 2 - Plan gates = 1 - Rollout/enablement issues = 1 True product gaps: - Deal-EC3025: SCIM user provisioning - Deal-D0D6B5: ADP Workforce Now integration Amounts for both true gaps: missing from provided data
Days since last contact = 2026-09-05 - max(non-future last_email, last_call, last_meeting). Could not classify 3 open deals because they have no row in engagements_by_deal_90d.csv: Deal-3EED2C, Deal-7FA0C3, Deal-57FF13. Several rows have future-dated last_meeting values after 2026-09-05; for those, I used the latest non-future contact date. Bryce Harmon - Deal-2D1F1B | Bryce Harmon | DS1 | 240,000 | 81 - Deal-66D1FC | Bryce Harmon | DS1 | 99,000 | 16 - Deal-950043 | Bryce Harmon | DS1 | 70,000 | 19 - Deal-B23205 | Bryce Harmon | DS1 | 45,000 | 16 - Deal-7BBDFA | Bryce Harmon | DS3 | 37,440 | 46 - Deal-332637 | Bryce Harmon | DS2 | 36,000 | 9 - Deal-1BEEBF | Bryce Harmon | DS1 | 31,500 | 19 - Deal-A414F6 | Bryce Harmon | DS1 | 25,200 | 19 - Deal-C5658B | Bryce Harmon | DS1 | 23,400 | 16 - Deal-40522D | Bryce Harmon | DS3 | 21,000 | 19 - Deal-C1FA6D | Bryce Harmon | DS1 | 18,000 | 16 - Deal-01E193 | Bryce Harmon | DS1 | 12,600 | 8 - Deal-F0EBBB | Bryce Harmon | DS3 | 11,400 | 24 - Deal-927338 | Bryce Harmon | DS1 | 10,920 | 18 - Deal-E25A09 | Bryce Harmon | DS1 | 6,000 | 9 - Deal-C9C286 | Bryce Harmon | DS2 | 5,502 | 9 - Deal-012CB1 | Bryce Harmon | DS1 | 1 | 23 - Deal-3795AD | Bryce Harmon | DS2 | 1 | 8 Dana Mercer - Deal-44EA29 | Dana Mercer | DS2 | 60,000 | 10 - Deal-E51FB7 | Dana Mercer | DS2 | 43,875 | 12 - Deal-B42F46 | Dana Mercer | DS1 | 27,000 | 19 - Deal-BA3DDC | Dana Mercer | DS3 | 23,400 | 15 - Deal-9DDE86 | Dana Mercer | DS2 | 20,000 | 15 - Deal-215CCA | Dana Mercer | DS3 | 18,900 | 17 - Deal-5EED42 | Dana Mercer | DS3 | 16,250 | 11 - Deal-57887A | Dana Mercer | DS2 | 15,000 | 8 - Deal-944310 | Dana Mercer | DS4 | 10,500 | 33 - Deal-3974EB | Dana Mercer | DS4 | 9,000 | 8 - Deal-B7EBD1 | Dana Mercer | DS5 | 9,000 | 16 - Deal-F40F04 | Dana Mercer | DS2 | 8,100 | 15 - Deal-7599B8 | Dana Mercer | DS3 | 7,350 | 18 - Deal-87DDD1 | Dana Mercer | DS1 | 5,000 | 19 - Deal-F336B6 | Dana Mercer | DS3 | 4,200 | 15 - Deal-0660B4 | Dana Mercer | DS4 | 1,920 | 16 Cole Ingram - Deal-D04904 | Cole Ingram | DS2 | 58,529.25 | 11 - Deal-B25F40 | Cole Ingram | DS3 | 40,000 | 8 - Deal-813836 | Cole Ingram | DS2 | 32,175 | 11 - Deal-1BA595 | Cole Ingram | DS2 | 31,750 | 11 - Deal-CFE1E8 | Cole Ingram | DS3 | 18,000 | 11 - Deal-CD47A6 | Cole Ingram | DS2 | 12,168 | 11 - Deal-627646 | Cole Ingram | DS3 | 11,193 | 11 - Deal-FF809F | Cole Ingram | DS2 | 7,781.2 | 11 - Deal-AF932D | Cole Ingram | DS2 | 7,225.4 | 11 - Deal-A71728 | Cole Ingram | DS2 | 6,947.5 | 11 - Deal-8BC9F5 | Cole Ingram | DS2 | 5,616 | 10 - Deal-175395 | Cole Ingram | DS3 | 4,779.88 | 11 - Deal-481E24 | Cole Ingram | DS3 | 4,140 | 10 - Deal-C7F9BF | Cole Ingram | DS2 | 3,360 | 11 - Deal-2F3A66 | Cole Ingram | DS3 | 3,334.8 | 11 - Deal-342E96 | Cole Ingram | DS2 | 2,700 | 24 - Deal-E568D5 | Cole Ingram | DS3 | 1,875 | 11 - Deal-FD9F4E | Cole Ingram | DS5 | 1,330 | 10 Alex Franklin - Deal-CC08D1 | Alex Franklin | DS1 | 24,000 | 16 - Deal-E73427 | Alex Franklin | DS3 | 18,000 | 10 - Deal-885F45 | Alex Franklin | DS2 | 9,300 | 12 - Deal-C2FF3C | Alex Franklin | DS1 | 8,316 | 10 - Deal-0D2F7A | Alex Franklin | DS3 | 5,100 | 12 - Deal-6C60D4 | Alex Franklin | DS3 | 4,800 | 12 - Deal-13FEBD | Alex Franklin | DS2 | 4,680 | 12 - Deal-819506 | Alex Franklin | DS1 | 4,400 | 8 - Deal-9D0060 | Alex Franklin | DS3 | 3,840 | 12 - Deal-690476 | Alex Franklin | DS2 | 3,600 | 18 - Deal-C6D97A | Alex Franklin | DS4 | 3,240 | 8 - Deal-EE195F | Alex Franklin | DS3 | 3,120 | 8 - Deal-278DEC | Alex Franklin | DS3 | 2,700 | 8 - Deal-635B8E | Alex Franklin | DS3 | 2,600 | 18 - Deal-6883F3 | Alex Franklin | DS1 | 2,400 | 16 - Deal-4A13AD | Alex Franklin | DS3 | 2,160 | 26 - Deal-F67D31 | Alex Franklin | DS2 | 1,800 | 8 - Deal-5FDCE4 | Alex Franklin | DS3 | 1,600 | 12 - Deal-BA571A | Alex Franklin | DS4 | 1,080 | 18 Farid Osman - Deal-8BA24E | Farid Osman | DS1 | 2,880 | 8 - Deal-8FDCD2 | Farid Osman | DS1 | 1 | 15 Per-owner stale counts and stale amount - Bryce Harmon: 18 stale deals; total stale amount = 240,000 + 99,000 + 70,000 + 45,000 + 37,440 + 36,000 + 31,500 + 25,200 + 23,400 + 21,000 + 18,000 + 12,600 + 11,400 + 10,920 + 6,000 + 5,502 + 1 + 1 = 692,964 - Dana Mercer: 16 stale deals; total stale amount = 60,000 + 43,875 + 27,000 + 23,400 + 20,000 + 18,900 + 16,250 + 15,000 + 10,500 + 9,000 + 9,000 + 8,100 + 7,350 + 5,000 + 4,200 + 1,920 = 279,495 - Cole Ingram: 18 stale deals; total stale amount = 58,529.25 + 40,000 + 32,175 + 31,750 + 18,000 + 12,168 + 11,193 + 7,781.2 + 7,225.4 + 6,947.5 + 5,616 + 4,779.88 + 4,140 + 3,360 + 3,334.8 + 2,700 + 1,875 + 1,330 = 252,905.03 - Alex Franklin: 19 stale deals; total stale amount = 24,000 + 18,000 + 9,300 + 8,316 + 5,100 + 4,800 + 4,680 + 4,400 + 3,840 + 3,600 + 3,240 + 3,120 + 2,700 + 2,600 + 2,400 + 2,160 + 1,800 + 1,600 + 1,080 = 106,736 - Farid Osman: 2 stale deals; total stale amount = 2,880 + 1 = 2,881 - Elena Sinclair: cannot determine stale count or stale amount from the provided data because Deal-57FF13 has no row in engagements_by_deal_90d.csv Also unclassifiable because missing engagement rows: - Deal-3EED2C | Alex Franklin | DS2 | 7,200 - Deal-7FA0C3 | Alex Franklin | DS2 | 1,400 - Deal-57FF13 | Elena Sinclair | DS1 | 2,100
Window used: 2026-08-06 to 2026-09-05 inclusive (2026-09-05 - 30 days = 2026-08-06). Ranked by efficiency (lowest activities per DS2 entry = most efficient): 1. Alex Franklin Emails: 307 Calls: 36 Meetings: 41 Total activities: 307 + 36 + 41 = 384 DS2 entries in last 30 days: 18 Activities per DS2 entry: 384 / 18 = 21.33 Activity mix: - Emails: 307 / 384 = 79.9% - Calls: 36 / 384 = 9.4% - Meetings: 41 / 384 = 10.7% 2. Bryce Harmon Emails: 162 Calls: 1 Meetings: 50 Total activities: 162 + 1 + 50 = 213 DS2 entries in last 30 days: 4 Activities per DS2 entry: 213 / 4 = 53.25 Activity mix: - Emails: 162 / 213 = 76.1% - Calls: 1 / 213 = 0.5% - Meetings: 50 / 213 = 23.5% 3. Cole Ingram Emails: 96 Calls: 14 Meetings: 1 Total activities: 96 + 14 + 1 = 111 DS2 entries in last 30 days: 2 Activities per DS2 entry: 111 / 2 = 55.50 Activity mix: - Emails: 96 / 111 = 86.5% - Calls: 14 / 111 = 12.6% - Meetings: 1 / 111 = 0.9% 4. Farid Osman Emails: 38 Calls: 0 Meetings: 34 Total activities: 38 + 0 + 34 = 72 DS2 entries in last 30 days: 1 Activities per DS2 entry: 72 / 1 = 72.00 Activity mix: - Emails: 38 / 72 = 52.8% - Calls: 0 / 72 = 0.0% - Meetings: 34 / 72 = 47.2% 5. Dana Mercer Emails: 84 Calls: 18 Meetings: 11 Total activities: 84 + 18 + 11 = 113 DS2 entries in last 30 days: 1 Activities per DS2 entry: 113 / 1 = 113.00 Activity mix: - Emails: 84 / 113 = 74.3% - Calls: 18 / 113 = 15.9% - Meetings: 11 / 113 = 9.7% Unranked: Elena Sinclair Available activities from provided engagements rows: 0 + 0 + 0 = 0 DS2 entries in last 30 days: 0 Activities per DS2 entry: N/A Activity mix: N/A Most efficient rep: Alex Franklin (21.33 activities per DS2 entry). Highest-volume rep: Alex Franklin (384 total activities). They do not differ. Missing data note: the engagements table has no row for Deal-3EED2C and Deal-57FF13, so Alex Franklin’s and Elena Sinclair’s activity totals are incomplete in the provided data.
QTD scorecard for Alex Franklin as of 2026-09-05 Bookings vs quota - QTD bookings: $150,000 - Quota: $200,000 - Attainment: $150,000 / $200,000 = 75.0% - Excluded closed-won before quarter: Deal-B3E6F1, $24,000, close_date 2026-06-20 QTD bookings detail - New: $113,500 = $40,000 + $35,000 + $21,000 + $11,000 + $6,500 - 5 deals: Deal-A1C3E5, Deal-B7D2F4, Deal-C9E1A6, Deal-D4B8C2, Deal-E6F3A9 - Share of bookings: $113,500 / $150,000 = 75.7% - Expansion: $36,500 = $20,000 + $12,000 + $4,500 - 3 deals: Deal-F2C7D8, Deal-A8B4D6, Deal-C5D9E2 - Share of bookings: $36,500 / $150,000 = 24.3% Active pipeline by stage with amount - 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 - Total active pipeline: $284,621 + $353,760 + $552,705 + $23,574 + $45,730 = $1,260,390 across 125 open deals Rolling 90-day DS2-to-won rate - Using deals with entered_ds2 from 2026-06-08 through 2026-09-05 and closed by 2026-09-05 - Won: 8 - Closed from DS2 cohort: 35 - DS2-to-won rate: 8 / 35 = 22.9% Wins, losses, top loss reason - QTD wins: 8 - QTD losses: 27 - Top loss reason: Lost- Timing (1 year or more) - Count: 13 / 27 = 48.1% - Lost amount: $184,681 - Deals: Deal-55867E, Deal-D1A623, Deal-69CF3D, Deal-ECBF89, Deal-15DA99, Deal-79B7A1, Deal-F4AF5D, Deal-B038F0, Deal-E6E80A, Deal-B3ABED, Deal-39E25C, Deal-29326C, Deal-831B7B Activity volume by type in the last 30 days - Emails: 807 - Calls: 112 - Meetings: 128 - Notes: 50 Three coaching observations 1. Alex Franklin is at 75.0% attainment and needs $50,000 more to hit quota. Only $109,363 of open pipeline is dated to close by 2026-09-30, and only $34,204 of that is in DS4-DS5 ($7,644 + $26,560), so the quarter depends on pulling DS3 forward or creating late-stage movement quickly. 2. Conversion is the biggest issue: rolling 90-day DS2-to-won is 22.9% (8 / 35), and QTD closed outcomes are 8 wins vs 27 losses. Coaching should focus on improving qualification and progression after DS2. 3. Timing is the dominant failure mode: 13 of 27 losses (48.1%) and $184,681 lost were tagged Lost- Timing (1 year or more). Activity is also heavily email-weighted (807 emails vs 112 calls and 128 meetings), which suggests more urgency-setting and tighter next-step control may be needed earlier in the cycle.
Assumptions/limits: - deal status is missing, so I treated every deal in deal_contacts.csv as an open-deal candidate - amount is missing for every deal - stage is missing for every deal - using 2026-09-13 as the reference date, the 60-day cutoff is 2026-07-15 (= 2026-09-13 - 60 days) Flagged deals: 1) Deal-36C33F | company C-077A0E - Flag: single-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 1 = 3 total - 2 former - 0 not engaged since 2026-07-15 - Personas present: IT security - Personas missing: economic buyer, champion, HR admin, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-1DB73E, Chief People Officer, economic buyer 2) Deal-50D386 | company C-EB10E4 - Flag: under-threaded - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 2 = 2 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: champion, HR admin - Personas missing: economic buyer, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-A1C4B3, Chief People Officer, economic buyer 3) Deal-5408B0 | company C-2AE3AA - Flag: under-threaded - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 2 = 2 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: champion, HR admin - Personas missing: economic buyer, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-07FA76, Chief People Officer, economic buyer 4) Deal-5BFE3B | company C-535D36 - Flag: under-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 2 = 2 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: champion - Personas missing: economic buyer, HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: none on file 5) Deal-885F45 | company C-5E8EFB - Flag: under-threaded - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 2 = 2 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: economic buyer, champion - Personas missing: HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-B3F25D, IT Security Lead, IT security 6) Deal-92D97D | company C-E23238 - Flag: single-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 1 = 2 total - 0 former - 1 not engaged since 2026-07-15 - Personas present: HR admin - Personas missing: economic buyer, champion, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: none on file 7) Deal-C6D97A | company C-5A8FC2 - Flag: under-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 3 = 3 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: champion - Personas missing: economic buyer, HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: none on file 8) Deal-D0D6B5 | company C-32918E - Flag: under-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 3 = 3 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: champion - Personas missing: economic buyer, HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-1FA4DB, Chief People Officer, economic buyer 9) Deal-EC3025 | company C-FDD0C7 - Flag: single-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 1 = 2 total - 1 former - 0 not engaged since 2026-07-15 - Personas present: champion - Personas missing: economic buyer, HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-6827DB, Chief People Officer, economic buyer 10) Deal-F9A08A | company C-0D15DF - Flag: single-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 1 = 2 total - 0 former - 1 not engaged since 2026-07-15 - Personas present: champion - Personas missing: economic buyer, HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: CT-697541, Chief People Officer, economic buyer 11) Deal-FCBE5B | company C-737030 - Flag: single-threaded; all active contacts in one persona - Amount: missing in provided data - Stage: missing in provided data - Active contact count: 1 = 1 total - 0 former - 0 not engaged since 2026-07-15 - Personas present: champion - Personas missing: economic buyer, HR admin, IT security, finance - Most valuable persona to add given the stage: cannot determine from provided data; stage is missing - On-file unengaged contact who fits a missing persona: none on file
First five minutes - ROI/retention customer story in 8 of 10 calls = 8 ÷ 10 = 80% (Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-EDC141, Deal-D9A12F, Deal-84DBA6). "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." - Security/pricing agenda lead in 1 of 10 calls = 1 ÷ 10 = 10% (Deal-403845). "I put together a short agenda — security review first, then pricing." - Pricing-first lead in 1 of 10 calls = 1 ÷ 10 = 10% (Deal-1E2498). "You asked for straight pricing last time, so let's start there." - One call added a first-five-minute competitive pricing contrast in 1 of 10 calls = 1 ÷ 10 = 10% (Deal-C61CF7). "And unlike Workhuman, our pricing includes the full rewards catalog with no extra margin." Three most common objections and how they handle them - Budget locked / no new line item: 4 of 10 calls = 4 ÷ 10 = 40% (Deal-D348E1, Deal-547B2B, Deal-60C2C2, Deal-84DBA6). He handles it by reframing to turnover-savings ROI and finance signoff. "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." - Revisit next quarter / underwater due to open enrollment: 3 of 10 calls = 3 ÷ 10 = 30% (Deal-5408B0, Deal-C61CF7, Deal-D9A12F). He handles it by proposing a smaller pilot before planning. "Makes sense. What if we scope a 90-day pilot with one department so you have internal data before next quarter's planning?" - Already using spreadsheets and gift cards: 3 of 10 calls = 3 ÷ 10 = 30% (Deal-403845, Deal-EDC141, Deal-1E2498). He handles it by contrasting manual process with automation and analytics. "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 = 7 ÷ 10 = 0.70 = 70%. - Agreed in Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-D9A12F, and Deal-1E2498. - Not agreed in Deal-403845, Deal-EDC141, and Deal-84DBA6. "Yes, Thursday at 2pm works — send the invite and I'll bring our HRIS manager." Every competitor a prospect raised - Awardco — Deal-547B2B. "We're also in late talks with Awardco — their rewards catalog looks bigger than yours." - Kudos — Deal-EDC141. "How are you different from Kudos? Our CEO used them at her last company." - No other prospect-raised competitors appear in the provided transcripts. Coaching notes 1. The opener is overly repetitive: 8 ÷ 10 calls reuse the same retailer/18% turnover story. Add at least one alternate opener for pricing-led and security-led calls. 2. Committee/no-urgency stalls did not convert to a next step in Deal-403845, Deal-EDC141, and Deal-84DBA6; use a dated fallback ask instead of ending with a soft acknowledgment.
Q3 2026 forecast (close_date inside 2026-07-01 to 2026-09-30 only) COMMIT total: 44,729 Included COMMIT deals: - Deal-547B2B = 11,200 - Deal-B7EBD1 = 9,000 - Deal-403845 = 9,000 - Deal-A2B47C = 6,360 - Deal-2465CE = 5,400 - Deal-A5E80A = 2,520 - Deal-499BF6 = 1,249 Arithmetic: 11,200 + 9,000 + 9,000 + 6,360 + 5,400 + 2,520 + 1,249 = 44,729 BEST_CASE total: 203,565 Included BEST_CASE deals: - Deal-2D7423 = 38,935 - Deal-25F752 = 24,000 - Deal-E53952 = 19,656 - Deal-5EED42 = 16,250 - Deal-FA32A0 = 11,116 - Deal-FC22A3 = 10,800 - Deal-944310 = 10,500 - Deal-5195DB = 9,890 - Deal-180D02 = 9,720 - Deal-3974EB = 9,000 - Deal-5D8CEE = 7,200 - Deal-9D0060 = 3,840 - Deal-46988D = 3,780 - Deal-357C30 = 3,600 - Deal-C6D97A = 3,240 - Deal-DAF1D9 = 3,150 - Deal-EE195F = 3,120 - Deal-55164C = 3,060 - Deal-001FF4 = 2,916 - Deal-7B3B0F = 2,760 - Deal-F9A08A = 2,484 - Deal-8952F0 = 2,100 - Deal-1FC049 = 1,920 - Deal-87412C = 528 Arithmetic: 38,935 + 24,000 + 19,656 + 16,250 + 11,116 + 10,800 + 10,500 + 9,890 + 9,720 + 9,000 + 7,200 + 3,840 + 3,780 + 3,600 + 3,240 + 3,150 + 3,120 + 3,060 + 2,916 + 2,760 + 2,484 + 2,100 + 1,920 + 528 = 203,565 Weighted forecast: 115,976.75 Arithmetic: 100% of COMMIT + 35% of BEST_CASE = 44,729 + (203,565 × 0.35) = 44,729 + 71,247.75 = 115,976.75 Count of deals in each category inside the quarter: - COMMIT: 7 - BEST_CASE: 24 - PIPELINE: 23 Arithmetic check: 7 + 24 + 23 = 54 deals inside the quarter Excluded for being outside the quarter: - Count: 32 - Total amount: 227,575 Excluded deals: 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) Arithmetic: 43,875 + 18,000 + 17,000 + 13,770 + 10,800 + 9,000 + 9,000 + 7,920 + 7,690 + 7,500 + 7,200 + 5,700 + 5,400 + 5,400 + 5,400 + 5,400 + 5,160 + 4,800 + 4,400 + 4,300 + 4,000 + 3,600 + 3,600 + 3,600 + 3,300 + 2,400 + 1,800 + 1,800 + 1,680 + 1,600 + 1,400 + 1,080 = 227,575 Top 5 BEST_CASE deals by amount inside the quarter: 1. Deal-2D7423 = 38,935 2. Deal-25F752 = 24,000 3. Deal-E53952 = 19,656 4. Deal-5EED42 = 16,250 5. Deal-FA32A0 = 11,116 ## Data quality 85 of 86 rows have a blank owner, so unattended ownership-based checks or rollups would be unreliable. Forecast category and stage do not align consistently: Deal-A5E80A is COMMIT at DS1, Deal-499BF6 is COMMIT at DS2, and Deal-C61CF7 is BEST_CASE at DS5. 71 of 86 rows have why_buys_chars = 0, which indicates widespread missing deal context. Amount formatting is also inconsistent because Deal-42326B is 2480.4 instead of a whole-number amount.
Included denominator: 220/220 companies. Excluded from denominator: 0. Reason: every row has m1_users, m1_redemptions, and current_status, and you stated every company is already 25+ months old. Full 2x2: - Both signals (m1_users >= 5 and m1_redemptions >= 1): 47 companies; retained = 31; 24-month retention = 31/47 = 65.96% - Givers-only (m1_users >= 5 and m1_redemptions = 0): 49 companies; retained = 23; 24-month retention = 23/49 = 46.94% - Redemption-only (m1_users < 5 and m1_redemptions >= 1): 29 companies; retained = 9; 24-month retention = 9/29 = 31.03% - Neither (m1_users < 5 and m1_redemptions = 0): 95 companies; retained = 38; 24-month retention = 38/95 = 40.00% Hypothesis check: - Both signals vs one signal or neither combined: - Both signals: 31/47 = 65.96% - One signal or neither: (23 + 9 + 38) / (49 + 29 + 95) = 70/173 = 40.46% - Observed lift = 65.96% - 40.46% = 25.50 percentage points Single signal with the largest retention lift: - 5+ unique givers. - Givers-only vs neither = 23/49 - 38/95 = 46.94% - 40.00% = +6.94 percentage points - Redemption-only vs neither = 9/29 - 38/95 = 31.03% - 40.00% = -8.97 percentage points What this does prove: - In this extract, companies with both first-month signals have the highest observed 24-month retention. - The activation hypothesis is supported descriptively in this cohort: 65.96% for both signals vs 40.46% for everyone with one signal or neither. What this does not prove: - It does not prove causation. - It does not prove that redemption by itself improves retention; redemption-only is actually lower than neither in this extract. - It does not control for other differences in the data (for example product_tier, industry_group, country, or integrations). - It does not establish statistical significance from this extract alone.
Note: the files do not include status history/effective dates, so for “as of 2026-09-05” I used the provided subscription status values and counted billing ARR from active subscriptions only. Totals CRM ARR total = 603,581.76 Billing ARR total = Σ(active MRR × 12) = 604,739.28 Variance = CRM ARR - Billing ARR = 603,581.76 - 604,739.28 = -1,157.52 Variance decomposition status mismatch = 4,905.24 + 8,253.24 = 13,158.48 rounding = 16.00 + 20.00 = 36.00 missing records = 16,497.24 - 28,449.24 = -11,952.00 other = -2,400.00 Check: 13,158.48 + 36.00 - 11,952.00 - 2,400.00 = -1,157.52 Mismatched accounts C-0C8323BF - CRM ARR = 4,905.24 - Billing ARR = 0.00 (subscription status = cancelled) - Variance = +4,905.24 - Bucket = status mismatch - Suggested owner = RevOps + Billing Ops C-0DC4FB8C - CRM ARR = 8,253.24 - Billing ARR = 0.00 (subscription status = cancelled) - Variance = +8,253.24 - Bucket = status mismatch - Suggested owner = RevOps + Billing Ops C-0D66DF9E - CRM ARR = 23,200.00 - Billing ARR = 1,932.00 × 12 = 23,184.00 - Variance = +16.00 - Bucket = rounding - Suggested owner = RevOps C-14D70CE0 - CRM ARR = 18,200.00 - Billing ARR = 1,515.00 × 12 = 18,180.00 - Variance = +20.00 - Bucket = rounding - Suggested owner = RevOps C-0D5BBE3A - CRM ARR = 16,497.24 - Billing ARR = missing record - Variance = +16,497.24 - Bucket = missing records - Suggested owner = Billing Ops C-21629AA4 - CRM ARR = missing record - Billing ARR = 2,370.77 × 12 = 28,449.24 - Variance = -28,449.24 - Bucket = missing records - Suggested owner = RevOps C-0F7269D7 - CRM ARR = 24,396.00 - Billing ARR = 2,233.00 × 12 = 26,796.00 - Variance = -2,400.00 - Bucket = other - Suggested owner = RevOps + Billing Ops Business-rule violations: term_months != 12 and cf_agreement_end_date is blank SUB-0002 / C-1794A52C / term_months = 24 / cf_agreement_end_date = blank SUB-0019 / C-22170CA1 / term_months = 36 / cf_agreement_end_date = blank
Using equal-weighted averages across the 30 company_alias rows in each month (no user counts were provided, so user-weighting is not possible). Arithmetic shown as: absolute change = Aug − Jul; relative change = (Aug − Jul) ÷ Jul. | KVM | 2026-08 | 2026-07 | Absolute change | Relative change | Direction | |---|---:|---:|---:|---:|---| | Giving rate | 0.6027 | 0.6023 | 0.6027 − 0.6023 = +0.0004 | +0.0004 / 0.6023 = +0.07% | Up | | Redemptions per user | 1.7302 | 1.7300 | 1.7302 − 1.7300 = +0.0002 | +0.0002 / 1.7300 = +0.01% | Up | | 1:1 meetings engagement | 0.4472 | 0.4469 | 0.4472 − 0.4469 = +0.0003 | +0.0003 / 0.4469 = +0.06% | Up | | Pulse check engagement | 0.5086 | 0.6006 | 0.5086 − 0.6006 = −0.0920 | −0.0920 / 0.6006 = −15.31% | Down | Largest relative move: pulse check engagement, down 15.31%. Driver: size_band = enterprise. Enterprise pulse engagement fell from 0.5500 to 0.2743, a −0.2757 change (−50.13%). With equal counts by size_band (10 each), its contribution was −0.2757 × (10/30) = −0.0919 of the overall −0.0920 decline. plan_tier does not support segmentation because all rows are tier_three.
Last completed month: 2026-08 Redemption section through 2026-08 - Redemption count: 378 - Spend: $27,846.00 - Unique redeemers: 235 - Redemptions per redeemer: 378 / 235 = 1.6085106 = 1.61 Provider mix (% of spend) - 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 1. US: 244 2. CA: 24 3. AU: 21 4. GB: 17 5. NL: 17
Using R1 as the documented at-risk definition (health_score < 60) and churn_save_eligible_amount as the amount at stake. No documented play-routing rules were provided, so the play below is the best fit from the available signals only. Qualify for a churn-save offer (pass R1 + R2 + R3): - C-0F6C0F34 — $49,707.00 — executive touch — signal: champion_active=false. Eligibility arithmetic: 51 < 60; 49,707.00 > 0; 2026-10-03 - 2026-09-05 = 28 days, and 28 <= 120. - C-0B827671 — $25,365.00 — usage revival — signal: usage_trend_3m=declining; seats_used/seats = 113/202 = 55.9%. Eligibility arithmetic: 56 < 60; 25,365.00 > 0; 2026-11-14 - 2026-09-05 = 70 days, and 70 <= 120. - C-0B360C78 — $35,748.00 — commercial concession — signal: usage_trend_3m=growing; seats_used/seats = 246/327 = 75.2%; champion_active=true. Eligibility arithmetic: 57 < 60; 35,748.00 > 0; 2026-10-28 - 2026-09-05 = 53 days, and 53 <= 120. - C-0B0F1BAB — $5,494.00 — executive touch — signal: champion_active=false. Eligibility arithmetic: 38 < 60; 5,494.00 > 0; 2026-09-23 - 2026-09-05 = 18 days, and 18 <= 120. - C-0CA21961 — $16,829.00 — usage revival — signal: usage_trend_3m=flat; seats_used/seats = 84/325 = 25.8%. Eligibility arithmetic: 58 < 60; 16,829.00 > 0; 2026-12-28 - 2026-09-05 = 114 days, and 114 <= 120. - C-0E9C27D1 — $41,235.00 — commercial concession — signal: usage_trend_3m=flat; seats_used/seats = 134/157 = 85.4%; champion_active=true. Eligibility arithmetic: 39 < 60; 41,235.00 > 0; 2026-09-24 - 2026-09-05 = 19 days, and 19 <= 120. - C-0CEF69FD — $32,621.00 — executive touch — signal: champion_active=false. Eligibility arithmetic: 53 < 60; 32,621.00 > 0; 2026-11-21 - 2026-09-05 = 77 days, and 77 <= 120. - C-0D3278C7 — $17,602.00 — usage revival — signal: usage_trend_3m=declining; seats_used/seats = 126/380 = 33.2%. Eligibility arithmetic: 54 < 60; 17,602.00 > 0; 2026-11-12 - 2026-09-05 = 68 days, and 68 <= 120. Total at stake: 49,707.00 + 25,365.00 + 35,748.00 + 5,494.00 + 16,829.00 + 41,235.00 + 32,621.00 + 17,602.00 = $224,601.00 At-risk accounts that do not qualify: - C-0BC71BDD — looks at risk because health_score 55 < 60, but does not qualify because R2 failed: churn_save_eligible_amount = 0.00. - C-0BA71F12 — looks at risk because health_score 52 < 60, but does not qualify because R3 failed: 2027-04-11 - 2026-09-05 = 218 days, and 218 > 120. - C-0F6694C3 — looks at risk because health_score 43 < 60, but does not qualify because R2 failed: churn_save_eligible_amount = 0.00; and R3 failed: 2027-03-21 - 2026-09-05 = 197 days, and 197 > 120. - C-0BE96399 — looks at risk because health_score 54 < 60, but does not qualify because R2 failed: churn_save_eligible_amount = 0.00. - C-0F876796 — looks at risk because health_score 47 < 60, but does not qualify because R3 failed: 2027-02-06 - 2026-09-05 = 154 days, and 154 > 120. - C-0FCCD2DF — looks at risk because health_score 43 < 60, but does not qualify because R2 failed: churn_save_eligible_amount = 0.00; and R3 failed: 2027-04-23 - 2026-09-05 = 230 days, and 230 > 120. - C-10A56B0F — looks at risk because health_score 54 < 60, but does not qualify because R2 failed: churn_save_eligible_amount = 0.00.
Company: C-0DDFC9A7 Seat coverage Licensed over headcount: 150 / 400 = 0.375 = 37.5% Usage health 1. Monthly active users increased every month: 88 → 95 → 102 → 110 → 118 → 126, for a net gain of 126 - 88 = 38 users, or 38 / 88 = 43.2%. 2. August usage was 126 active users against 150 licensed seats: 126 / 150 = 0.84 = 84.0% of licensed seats in use. Headroom Seat headroom: 400 - 150 = 250 seats Current per-seat ARR: 9000.00 / 150 = $60.00 ARR headroom at current per-seat rate: 250 × $60.00 = $15,000.00 Who replied and can they buy? Maria S. replied. Based on the reply, she is not the buyer. She explicitly said purchasing decisions, budget, and seat expansion sit with Dana R., VP People. Right buyer from contacts Dana R., VP People Reply email Hi Maria, Thanks for the note — great to hear the team loves Bonusly. I also noticed monthly active users grew from 88 in March to 126 in August, which is a strong signal of adoption. If helpful, would you be open to introducing me to Dana R.? I’d love to share a quick view of the usage numbers and discuss whether seat coverage still matches team size. Appreciate the help, Cole
C-0D284E42 What is complete - Slack integration connected: complete. Evidence: integration_slack = 2026-08-12. - Allowance set: complete. Evidence: allowance_set = 2026-08-13. - Admins added: complete. Evidence: admins_added = 2. - First recognition given: complete. Evidence: first_recognition_at = 2026-08-15 14:22. What is not complete - HRIS integration connected: not complete based on provided data. Evidence: integration_hris is blank. - First redemption: not complete based on provided data. Evidence: first_redemption_at is blank. Early engagement signals - Active givers increased from 3 on 2026-08-11 to 15 on 2026-09-04. Arithmetic: 15 - 3 = 12 net increase. - That is 5.0x growth from first to last observed day. Arithmetic: 15 / 3 = 5.0. - First 7 days average active givers = 4.29. Arithmetic: (3 + 3 + 4 + 4 + 5 + 4 + 7) / 7 = 30 / 7 = 4.29. - Last 7 days average active givers = 13.00. Arithmetic: (10 + 11 + 13 + 11 + 13 + 13 + 15) / 7 = 91 / 7 = 13.00. - Days with 10+ active givers: 10. Evidence: 2026-08-26 through 2026-09-04 are all 10 or higher. - Longest 10+ active giver streak: 10 days. Arithmetic: 2026-08-26 to 2026-09-04 inclusive = 10 consecutive days. Three things to cover on the call 1. Finish HRIS integration. - It is the only listed integration field not complete: integration_hris is blank. 2. Drive first redemption. - First recognition has happened, but first redemption_at is blank, so adoption has not yet reached redemption based on provided data. 3. Reinforce and scale early engagement. - Usage is rising materially: first 7-day average 4.29 vs last 7-day average 13.00. - Arithmetic: 13.00 - 4.29 = 8.71 higher average active givers.
Company names were not provided, so I am using account_alias exactly as the company identifier below. No qualitative health data was provided, so risk is inferred only from seat utilization and Jun→Aug 2026 usage trend. - Company: C-0B7D2C30 | CSM: Dana Mercer | ARR: $65,901.00 | Date used: 2026-09-15 (Chargebee; DISAGREEMENT: CZ 2026-09-10 vs CB 2026-09-15; used Chargebee because is_multi_year=true and multi-year dates are known wrong in ChurnZero) | Seat utilization: 274/476 = 57.6% | 3-month usage trend: 97→84 = -13 (-13.4%) | Risk: High — Utilization is only 57.6% and active users fell 13.4% over the last 3 months. - Company: C-0BCDB8C2 | CSM: Cole Ingram | ARR: $54,427.00 | Date used: 2026-09-18 (Chargebee; DISAGREEMENT: CZ 2027-09-18 vs CB 2026-09-18; used Chargebee because is_multi_year=true and multi-year dates are known wrong in ChurnZero) | Seat utilization: 232/424 = 54.7% | 3-month usage trend: 127→110 = -17 (-13.4%) | Risk: High — Utilization is only 54.7% and active users fell 13.4% over the last 3 months. - Company: C-0D2AB865 | CSM: Elena Sinclair | ARR: $38,022.00 | Date used: 2026-09-22 (Chargebee; DISAGREEMENT: CZ 2026-09-10 vs CB 2026-09-22; used Chargebee because is_multi_year=true and multi-year dates are known wrong in ChurnZero) | Seat utilization: 250/407 = 61.4% | 3-month usage trend: 125→109 = -16 (-12.8%) | Risk: High — Utilization is only 61.4% and active users fell 12.8% over the last 3 months. - Company: C-0BBE3E60 | CSM: Dana Mercer | ARR: $30,993.00 | Date used: 2026-09-26 (Chargebee; DISAGREEMENT: CZ 2027-09-26 vs CB 2026-09-26; used Chargebee because is_multi_year=true and multi-year dates are known wrong in ChurnZero) | Seat utilization: 74/114 = 64.9% | 3-month usage trend: 39→33 = -6 (-15.4%) | Risk: High — Even with 64.9% utilization, active users fell 15.4% over the last 3 months. - Company: C-0F5D2323 | CSM: Cole Ingram | ARR: $90,647.00 | Date used: 2026-09-29 (Chargebee; DISAGREEMENT: CZ 2026-09-10 vs CB 2026-09-29; used Chargebee because is_multi_year=true and multi-year dates are known wrong in ChurnZero) | Seat utilization: 111/390 = 28.5% | 3-month usage trend: 20→18 = -2 (-10.0%) | Risk: High — Utilization is extremely low at 28.5% and usage also declined 10.0% over the last 3 months. - Company: C-0EC6999D | CSM: Elena Sinclair | ARR: $79,419.00 | Date used: 2026-10-03 (CZ and Chargebee agree) | Seat utilization: 31/112 = 27.7% | 3-month usage trend: 17→15 = -2 (-11.8%) | Risk: High — Utilization is extremely low at 27.7% and active users fell 11.8% over the last 3 months. - Company: C-0B20DB64 | CSM: Dana Mercer | ARR: $21,770.00 | Date used: 2026-10-07 (CZ and Chargebee agree) | Seat utilization: 214/378 = 56.6% | 3-month usage trend: 294→294 = 0 (0.0%) | Risk: Medium — Utilization is only 56.6%, but usage was flat over the last 3 months rather than declining. - Company: C-0BBC4E7A | CSM: Cole Ingram | ARR: $56,374.00 | Date used: 2026-10-10 (CZ and Chargebee agree) | Seat utilization: 228/337 = 67.7% | 3-month usage trend: 142→139 = -3 (-2.1%) | Risk: Low — Utilization is a healthier 67.7% and the 3-month decline is small at 2.1%. - Company: C-0FD551AB | CSM: Elena Sinclair | ARR: $48,815.00 | Date used: 2026-10-14 (CZ and Chargebee agree) | Seat utilization: 210/376 = 55.9% | 3-month usage trend: 123→126 = +3 (+2.4%) | Risk: Medium — Utilization is only 55.9%, but the last 3 months show a modest usage increase of 2.4%. - Company: C-0F9F8F13 | CSM: Dana Mercer | ARR: $46,230.00 | Date used: 2026-10-18 (CZ and Chargebee agree) | Seat utilization: 199/352 = 56.5% | 3-month usage trend: 185→182 = -3 (-1.6%) | Risk: Medium — Utilization is only 56.5% and the last 3 months show a slight 1.6% decline. - Company: C-0BC34584 | CSM: Cole Ingram | ARR: $16,740.00 | Date used: 2026-10-22 (CZ and Chargebee agree) | Seat utilization: 327/494 = 66.2% | 3-month usage trend: 104→106 = +2 (+1.9%) | Risk: Low — Utilization is 66.2% and usage increased 1.9% over the last 3 months. - Company: C-0B7A7546 | CSM: Elena Sinclair | ARR: $35,062.00 | Date used: 2026-10-25 (CZ and Chargebee agree) | Seat utilization: 182/205 = 88.8% | 3-month usage trend: 64→63 = -1 (-1.6%) | Risk: Low — Utilization is very strong at 88.8% and the 3-month decline is minimal at 1.6%. - Company: C-0B369871 | CSM: Dana Mercer | ARR: $85,128.00 | Date used: 2026-10-29 (CZ and Chargebee agree) | Seat utilization: 317/422 = 75.1% | 3-month usage trend: 326→333 = +7 (+2.1%) | Risk: Low — Utilization is strong at 75.1% and usage increased 2.1% over the last 3 months. - Company: C-0B144C78 | CSM: Cole Ingram | ARR: $30,899.00 | Date used: 2026-11-02 (CZ and Chargebee agree) | Seat utilization: 169/224 = 75.4% | 3-month usage trend: 101→106 = +5 (+5.0%) | Risk: Low — Utilization is strong at 75.4% and usage increased 5.0% over the last 3 months. - Company: C-0FC4DBB8 | CSM: Elena Sinclair | ARR: $94,732.00 | Date used: 2026-11-05 (CZ and Chargebee agree) | Seat utilization: 356/464 = 76.7% | 3-month usage trend: 189→193 = +4 (+2.1%) | Risk: Low — Utilization is strong at 76.7% and usage increased 2.1% over the last 3 months. - Company: C-0D5BBE3A | CSM: Dana Mercer | ARR: $39,740.00 | Date used: 2026-11-09 (CZ and Chargebee agree) | Seat utilization: 85/102 = 83.3% | 3-month usage trend: 88→91 = +3 (+3.4%) | Risk: Low — Utilization is strong at 83.3% and usage increased 3.4% over the last 3 months. - Company: C-0FB9D5AF | CSM: Cole Ingram | ARR: $63,158.00 | Date used: 2026-11-13 (CZ and Chargebee agree) | Seat utilization: 144/199 = 72.4% | 3-month usage trend: 173→176 = +3 (+1.7%) | Risk: Low — Utilization is healthy at 72.4% and usage increased 1.7% over the last 3 months. - Company: C-0B344485 | CSM: Elena Sinclair | ARR: $64,384.00 | Date used: 2026-11-16 (CZ and Chargebee agree) | Seat utilization: 224/287 = 78.0% | 3-month usage trend: 238→244 = +6 (+2.5%) | Risk: Low — Utilization is strong at 78.0% and usage increased 2.5% over the last 3 months. - Company: C-0CB2C1B4 | CSM: Dana Mercer | ARR: $40,628.00 | Date used: 2026-11-20 (CZ and Chargebee agree) | Seat utilization: 386/473 = 81.6% | 3-month usage trend: 47→49 = +2 (+4.3%) | Risk: Low — Utilization is strong at 81.6% and usage increased 4.3% over the last 3 months. - Company: C-22170CA1 | CSM: Cole Ingram | ARR: $45,646.00 | Date used: 2026-11-24 (CZ and Chargebee agree) | Seat utilization: 251/294 = 85.4% | 3-month usage trend: 143→146 = +3 (+2.1%) | Risk: Low — Utilization is very strong at 85.4% and usage increased 2.1% over the last 3 months. Total ARR renewing = $65,901.00 + $54,427.00 + $38,022.00 + $30,993.00 + $90,647.00 + $79,419.00 + $21,770.00 + $56,374.00 + $48,815.00 + $46,230.00 + $16,740.00 + $35,062.00 + $85,128.00 + $30,899.00 + $94,732.00 + $39,740.00 + $63,158.00 + $64,384.00 + $40,628.00 + $45,646.00 = $1,048,715.00 ARR at risk (High + Medium) = High-risk ARR $359,409.00 + Medium-risk ARR $116,815.00 = $476,224.00
Quarter total: 80 tickets. Broad patterns (ranked by ARR affected) 1. HRIS provisioning failures Count/share: 12 tickets; 15.0% = 12/80 Distinct accounts: 3 — C-0B2213A9, C-0DDFC9A7, C-0F6C0F34 ARR affected: $114,000 = $36,000 + $48,000 + $30,000 Two ticket ids: IC-460059, IC-460060 Recommendation: Fix and monitor the HRIS-to-provisioning path, with alerts when expected new hires are skipped. 2. Redemption / gift card checkout failures Count/share: 18 tickets; 22.5% = 18/80 Distinct accounts: 7 — C-0CEF69FD, C-0B827671, C-0FCCD2DF, C-0F876796, C-14264ABD, C-0D9CA315, C-0B0F1BAB ARR affected: $68,800 = $8,900 + $10,700 + $9,600 + $8,700 + $11,000 + $9,600 + $10,300 Two ticket ids: IC-460025, IC-460024 Recommendation: Add checkout failure safeguards and redemption reconciliation so failed orders do not deduct points or lose gift card delivery. 3. Recognition points not posting / balance not updating Count/share: 20 tickets; 25.0% = 20/80 Distinct accounts: 9 — C-0D3278C7, C-0BF20542, C-0D0B047C, C-0BE96399, C-0D284E42, C-0D6CC8E3, C-21FEBCBB, C-0DD0626C, C-0B2895EF ARR affected: $31,100 = $3,500 + $4,500 + $4,500 + $2,700 + $3,400 + $4,200 + $2,900 + $2,500 + $2,900 Two ticket ids: IC-460004, IC-460018 Recommendation: Audit the recognition-to-points ledger flow and add automated replay/reconciliation for stuck balance updates. 4. Slack integration / sync / slash command issues Count/share: 14 tickets; 17.5% = 14/80 Distinct accounts: 4 — C-0B843542, C-10A56B0F, C-0BA71F12, C-8C2E8F00 ARR affected: $18,900 = $4,400 + $5,400 + $3,900 + $5,200 Two ticket ids: IC-460041, IC-460046 Recommendation: Prioritize Slack auth/session persistence and slash-command reliability, with workspace health checks for disconnects. Single-account noise 5. Billing accuracy / seat-count / tier-price issues Count/share: 16 tickets; 20.0% = 16/80 Distinct accounts: 1 — C-0E9C27D1 ARR affected: $52,000 = $52,000 Two ticket ids: IC-460071, IC-460080 Recommendation: Treat this as an account-specific billing escalation and audit C-0E9C27D1 seat-count source, tier mapping, and renewal pricing before the next invoice cycle.
No exact 4/4 case-study match exists for C-82AF3719 among customers where has_case_study=true. Top 3 most similar case-study customers (all tied at 3/4 matching fields): 1) C-64171065 Arithmetic: industry 1 + size_band 1 + use_case 1 + region 0 = 3/4 Matching fields: industry=Technology, size_band=Mid-Market, use_case=employee_recognition Mismatch: region=NA-East vs prospect NA-West 2) C-A13C193D Arithmetic: industry 1 + size_band 1 + use_case 0 + region 1 = 3/4 Matching fields: industry=Technology, size_band=Mid-Market, region=NA-West Mismatch: use_case=retention vs prospect employee_recognition 3) C-11C31562 Arithmetic: industry 0 + size_band 1 + use_case 1 + region 1 = 3/4 Matching fields: size_band=Mid-Market, use_case=employee_recognition, region=NA-West Mismatch: industry=Manufacturing vs prospect Technology
Trailing 6 months used: 2026-03 through 2026-08. Paid channels channel spend SQMs SQOs cost/SQM cost/SQO SQM->SQO rate pipeline pipeline/$ paid_search $36,000 = 6×$6,000 40 18 $900 = 36,000/40 $2,000 = 36,000/18 45.0% = 18/40 $720,000 20.00 = 720,000/36,000 linkedin_ads $24,000 = 6×$4,000 25 8 $960 = 24,000/25 $3,000 = 24,000/8 32.0% = 8/25 $96,000 4.00 = 96,000/24,000 paid_social $18,000 = 6×$3,000 0 0 undefined undefined undefined $0 0.00 = 0/18,000 webinars $9,000 = 6×$1,500 12 5 $750 = 9,000/12 $1,800 = 9,000/5 41.7% = 5/12 $60,000 6.67 = 60,000/9,000 Organic / no-spend channels in the provided data channel volume SQO rate pipeline organic_search 30 33.3% = 10/30 $90,000 referral 15 40.0% = 6/15 $48,000 Rows where SQO date precedes SQM date - CT-000044, linkedin_ads: SQO 2026-07-18 precedes SQM 2026-07-23 - CT-000041, linkedin_ads: SQO 2026-06-09 precedes SQM 2026-06-14 Reallocation recommendation - First reallocate away from paid_social. It spent $18,000 and produced 0 SQMs, 0 SQOs, and $0 pipeline. - If the goal is pipeline creation, reallocate that budget primarily to paid_search. It has the best paid-channel pipeline efficiency at 20.00 pipeline dollars per $1 spent = 720,000/36,000, versus webinars at 6.67 and linkedin_ads at 4.00. - Keep webinars as a smaller secondary/test allocation rather than the main destination. It has the best cost per SQO at $1,800 = 9,000/5, but only 12 SQMs and 5 SQOs in sample. - Deprioritize linkedin_ads versus paid_search on this data: higher cost/SQO ($3,000 vs $2,000), lower SQM-to-SQO rate (32.0% vs 45.0%), lower pipeline/$ (4.00 vs 20.00), plus both flagged date-order issues are in linkedin_ads. Confidence - High on cutting paid_social, because the sample is effectively zero performance despite $18,000 spend. - Moderate on reallocating toward paid_search, because it has the largest paid sample here: 40 SQMs and 18 SQOs. - Low-to-moderate on scaling webinars aggressively, because the sample is smaller: 12 SQMs and 5 SQOs. - Moderate-to-low on linkedin_ads conclusions beyond “worse than paid_search,” because the sample is smaller than paid_search (25 SQMs, 8 SQOs) and includes 2 date-order flags.
Battlecard: Rivally One-line positioning - Appears positioned as a points-based recognition platform emphasizing distributed EU teams, multi-language support, EU data residency, and a separate Pulse survey add-on. [S02][S12][S15][S23] Pricing - Latest public pricing-page capture: Recognition Starter at $7 per user/month, annual billing required, dated 2026-08-12. [S17] - Latest deal-note mention: a prospect said Rivally quoted $7/user/mo list and offered a 15% discount for a 3-year term, dated 2026-08-14. [S18] - Conflict / older sources: the pricing page showed $5 per user/month on 2026-04-01 and 2026-01-20, and one 500-seat prospect was quoted $6.50/user/mo on 2026-06-02. Newer sources win. [S08][S03][S13] Where they win - Distributed EU teams and EU enterprise use cases: multi-language support was praised, and EU data residency is generally available. [S12][S15] - Buyers who want an engaging recognition experience: reviewers praised the points-based recognition feed. [S02][S16] - Buyers who value quick rollout and Slack connectivity: one reviewer said setup took under a week and Slack worked out of the box. [S04] - Buyers who want a lightweight survey add-on: Rivally Pulse launched and later exited beta as a paid add-on. [S06][S23] - Support responsiveness: one G2 reviewer praised response times under 4 hours. [S22] Where we win - Documented win theme: analytics depth; an 800-seat prospect picked Bonusly over Rivally citing analytics depth. [S25] - Rivally analytics/reporting weaknesses: reviewers described analytics as limited and dashboards as basic versus enterprise tools. [S02][S07] - Rivally admin weaknesses: reviewers reported no SCIM provisioning, painful manual user management, lagging admin tooling, and no bulk recognition editing. [S10][S16][S24] - Other pressure points: one review said the EMEA rewards catalog is thinner than the US catalog, and another said analytics exports are CSV-only. [S14][S20] Objections and responses - Objection: “We need EU data residency / strong EU coverage.” Response: Treat that as a real Rivally strength: EU data residency is GA, and EU reviewers praised multi-language support for distributed EU teams; counter on analytics and admin gaps instead. [S15][S12][S07][S10][S24] - Objection: “Rivally is cheaper.” Response: The latest public pricing-page capture is $7/user/month annual, up from $5 earlier in the year; deal notes also show discounting and a prior $6.50 quote, so pricing is moving and negotiable rather than flat. [S17][S08][S03][S18][S13] - Objection: “Rivally has Slack and deploys fast.” Response: Do not claim they lack Slack; one review explicitly says Slack worked out of the box and setup took under a week. Redirect to analytics and admin limitations. [S04][S07][S10][S24] - Objection: “We want surveys / Teams.” Response: Rivally Pulse is a paid add-on, not bundled, and Microsoft Teams app v2 was only in public preview as of 2026-08-20. [S23][S19] Recent changes - Raised a $40M Series C on 2025-11-04. [S01] - Launched Rivally Pulse on 2026-03-05. [S06] - Hired an ex-Workday VP EMEA on 2026-05-09. [S11] - Opened a Dublin office and announced EU data residency generally available on 2026-07-01. [S15] - Updated Recognition Starter pricing from $5 to $7/user/month annual by 2026-08-12. [S17][S08] - Announced Microsoft Teams app v2 in public preview on 2026-08-20. [S19] - Pulse exited beta on 2026-09-01 and is priced as an add-on, not bundled. [S23] Our 12-month win/loss record against them - deals_with_competitor.csv has no snippet_id field, so this section is computed from the deal_alias rows only. - Period covered: 2025-09 through 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 total deals; win rate = 13 / 20 = 0.65 = 65.0%. Unverified / corrected from the old card - “Rivally lacks a Slack integration” is contradicted by a review saying Slack worked out of the box. [S04] - The old card’s “mid-market” positioning tag is unverified from the provided data; the supported portion is points-based recognition. [S02] - “Rivally was acquired by WorkHuman in 2025” is unverified from the provided data.
New Logo Nurture: sent 500+458+428=1,386; open rate 490/1,386=35.4%; reply rate 90/1,386=6.5%; meeting rate 27/1,386=1.9%; weakest step: 3 (18/428=4.2%). Expansion Nurture: sent 300+300+275=875; open rate 565/875=64.6% as reported; reply rate 59/875=6.7%; meeting rate 12/875=1.4%; weakest step: 3 (12/275=4.4%). Tracking error: step 2 opened 340 > sent 300, excess 40. That makes the reported open rate unreliable/inflated. Cold Outbound - HR Leaders: sent 600+595+590=1,785; open rate 545/1,785=30.5%; reply rate 8/1,785=0.45%; meeting rate 0/1,785=0.0%; weakest step: 3 (1/590=0.17%). Failure mode under 2% reply: attention without conversion. Arithmetic: 545 opens but only 8 replies, so open-to-reply = 8/545=1.47%, and meetings stay 0. One change: rewrite step 1 before sending more follow-ups, because step 1 is already weak at 5/600=0.83%. Cold Outbound - People Ops: sent 400+386+377=1,163; open rate 340/1,163=29.2%; reply rate 29/1,163=2.5%; meeting rate 6/1,163=0.5%; weakest step: 3 (6/377=1.6%). Step-level failure mode under 2% reply: late-sequence drop-off. Replies fall 14/400=3.5% to 9/386=2.33% to 6/377=1.59%. One change: cut or rewrite step 3. Audience overlap in the provided file: - Cold Outbound - HR Leaders and Cold Outbound - People Ops share 21 contact_key values. - New Logo Nurture and Expansion Nurture share 2 contact_key values: CT-000301 and CT-000624. - No other cross-sequence overlap appears in the provided data. Fix first: 1. Expansion Nurture tracking error (measurement is broken). 2. Cold Outbound - HR Leaders (worst reply rate: 8/1,785=0.45%). 3. Cold Outbound - People Ops step 3.
Q3-2026 weekly marketing goals update Days elapsed: 66/92 = 0.7174 = 71.74% SQMs: QTD actual 230; target 300; delta = 230 - 300 = -70; pace: ahead. Expected by this point = 300 × 66/92 = 215.22, and 230 > 215.22. SQOs: QTD actual 84; target 120; delta = 84 - 120 = -36; pace: behind. Expected by this point = 120 × 66/92 = 86.09, and 84 < 86.09. DS2s: QTD actual 40; target 75; delta = 40 - 75 = -35; pace: behind. Expected by this point = 75 × 66/92 = 53.80, and 40 < 53.80. Closed-lost MIA rate: QTD actual 5/25 = 0.20 = 20.0%; target 0.10 = 10.0%; delta = 20.0% - 10.0% = +10.0 pts; pace: behind. Lower is better, and 20.0% is above target. Same-quarter close count: QTD actual 10; target 20; delta = 10 - 20 = -10; pace: behind. Expected by this point = 20 × 66/92 = 14.35, and 10 < 14.35. Active pipeline coverage against target: QTD actual 3,000,000 / 4,000,000 = 0.75 = 75.0%; target 100.0%; delta = 75.0% - 100.0% = -25.0 pts; pace: ahead. Expected by this point = 66/92 = 71.74%, and 75.0% > 71.74%. What moved this week: The provided data is QTD-only, so week-over-week movement is missing. Based on the current quarter snapshot only, SQMs and active pipeline coverage are pacing ahead of elapsed-quarter expectations, while SQOs, DS2s, same-quarter closes, and closed-lost MIA rate are behind target pace.
Plan Q3 at 115,976.75: 44,729 from 7 COMMIT deals plus 35% of 203,565 across 24 BEST_CASE; PIPELINE contributes 0. Do not count the 32 post-9/30 deals worth 227,575, including Deal-D348E1 at 13,770 on 2026-10-15. Caveat: treat this as directional only because owners are blank on 85/86 deals and why-buys are empty on 71/86, including all 7 in-quarter COMMIT deals.
Hi, Following up on the August 5 recap I sent after our July 28 demo, including pricing for 150 seats. I wanted to circle back and see where things stand on your end. Could you let me know if this is still a priority for the People team? Best, Alex
Marketing generated 46 SQMs against a target of 52, or 46/52 = 88.5% of plan, leaving a gap of 52 - 46 = 6. Webinar drove 18 of 46 SQMs, which is 18/46 = 39.1% of weekly volume, while paid search held cost per SQM at $150. The week’s signal: demand stayed productive, webinars carried a meaningful share of the load, and the path to target next week is clear. Sales converted 14 SQOs, set 9 DS2 meetings, and created $310,000 in new pipeline. That equals 9/14 = 64.3% as many DS2s as SQOs, and $310,000/14 = $22,142.86 of pipeline per SQO. Same-quarter close count came in at 3, which is 3/14 = 21.4% relative to SQO volume. Net: solid pipeline creation, steady meeting progression, and closes still landing in-quarter. CS saved 2 renewals this week, moved Team NPS to 61, and heads into next week with 3 open red-flag accounts. Put simply, the team protected 2 renewals while carrying a remaining red-flag load of 3, so 3/2 = 1.5 open red-flag accounts for every renewal saved this week. The retention story is moving in the right direction, with a strong NPS baseline and a defined risk queue to tackle next. PLG added 412 new signups with activation at 31%, and 38 companies reached the aha moment of 10 recognition gives. The extract supports 412 × 0.31 = 127.72, so the exact activated signup count is not provided; the stated metric is the 31% activation rate. Aha-moment companies were 38/412 = 9.2% of signup volume. Bottom line: signup volume was healthy, activation has room to improve, and 38 companies crossed a meaningful product-value threshold.
- Apex Rewards Co — active: 2 partner-sourced opps, $275,000 pipeline (Deal-DDAAF2 $180,000 + Deal-2CF33E $95,000 = $275,000). Slack: co-webinar locked for 09-15; both sourced opps are in DS1. - HRCloud Partners — active: 1 partner-sourced opp, $140,000 pipeline (Deal-F1CDA5 $140,000 = $140,000). Slack: integration referral cleared security review and moved to DS2. - CultureBridge — active: 2 partner-sourced opps, $135,000 pipeline (Deal-096E1D $60,000 + Deal-067213 $75,000 = $135,000). Slack: lunch-and-learn produced two sourced opps; both are early stage. - WorkWell Group — active: 0 partner-sourced opps, $0 pipeline. Slack: no sourced deals this period; joint playbook restart targeted for Q4, with a planning call booked for 09-09. - Recogniq — quiet: no Slack update or partner-sourced deal in the provided data. - KudosWave — quiet: no Slack update or partner-sourced deal in the provided data. - PeopleFirst Advisors — quiet: no Slack update or partner-sourced deal in the provided data. - TotalPerk — quiet: no Slack update or partner-sourced deal in the provided data.
Q1: Yes. 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. A copy is available to prospects under NDA. [P2] Q4: Customer data is retained for the duration of the contract plus 90 days, then deleted from production systems. Arithmetic: contract end date + 90 days. [P3] Q5: The subprocessor list is 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 is 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 the provided excerpts; ISO 27001 is not addressed in [P1]-[P8]. The ISO 27001 certificate or trust portal certifications page would answer this. Q9: Unanswerable from the provided excerpts; contractual uptime SLA is not addressed in [P1]-[P8]. The MSA, order form, or service level agreement would answer this. Q10: Unanswerable from the provided excerpts; HIPAA BAA terms are not addressed in [P1]-[P8]. The DPA, BAA template, or legal terms would answer this.
Reconciliation findings
1) CRITICAL | TRIM_DESC | Overlap/duplicate
Skills: comms-drafter vs email-drafter
Evidence: 5 exact duplicate ALWAYS-trigger phrases:
- "write me an email"
- "draft a follow-up"
- "what should I say"
- "bump email"
- "contract nudge"
Arithmetic: 5 duplicate trigger phrases.
Proposal: keep email-only trigger ownership on email-drafter; trim those 5 phrases from comms-drafter.
2) WARNING | TRIM_DESC | Overlap
Skills: pipeline-intelligence-report vs weekly-pipeline-report
Evidence:
- pipeline-intelligence-report claims generic pipeline asks: "run the pipeline report", "pipeline update"
- weekly-pipeline-report claims the same generic intent via "generate the pipeline report", "run the pipeline update", "update the pipeline"
Proposal: keep generic "pipeline report/update" routing on pipeline-intelligence-report; trim weekly-pipeline-report to weekly performance/SQM/SQO/bookings language only.
3) WARNING | REVIEW | Circular delegation chain
Chain: deal-strategy-coach -> email-drafter -> deal-strategy-coach
Evidence:
- deal-strategy-coach: "When drafting manager-to-prospect emails, use the `email-drafter` skill"
- email-drafter: "For deal strategy, diagnosis, or coaching ... use deal-strategy-coach instead"
Proposal: add a one-way precedence rule for mixed strategy + draft asks so the pair cannot bounce.
4) CRITICAL | REVIEW | Dangling delegation targets
Arithmetic: 8 specialist targets in analysis-validator + 1 bonusly-brand + 1 prospect-research-multithreading = 10 dangling targets.
Dangling names:
- bonusly-brand
- prospect-research-multithreading
- 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
Evidence: referenced in analysis-validator, comms-drafter, deal-strategy-coach, email-drafter, and sales-forecast; none has a manifest row or provided file.
Proposal: add these targets to the manifest/file set or remove/retarget the delegations.
5) WARNING | UPDATE_BODY | Version conflict
Skill: analysis-validator
Evidence:
- header/changelog/footer say v3.6
- Validation Trail template says "Validator: analysis-validator v3.2"
Arithmetic: 3.6 != 3.2
Survives: analysis-validator v3.6
Proposal: update the stale v3.2 body reference.
6) INFO | REVIEW | Manifest descriptions > 1,024 chars
Arithmetic: 0 of 14 manifest rows exceed 1,024.
Check: max description_chars = 1006, and 1024 - 1006 = 18.
Proposal: no change.
7) WARNING | REVIEW | Hardcoded page ids in skill bodies
Explicit page ids found:
- deal-strategy-coach: 2257879045
- partner-digest: 2286321666
- sales-forecast: 2232582148
- signalforge-feedback: 2295136266, 2234417154, 2247295002
Arithmetic: 1 + 1 + 1 + 3 = 6 explicit page ids.
Proposal: move page ids into config/reference blocks or one constants section.
8) WARNING | UPDATE_BODY | Hardcoded dates in skill bodies
Examples:
- analysis-validator: April 26, 2026; May 4, 2026; May 9, 2026
- closed-lost-analysis: May 2026; May 4–12
- deal-strategy-coach: April 2026
- model-selection: 2026-05-19
- partner-digest: 2026-05-17; May 16, 2026
- sales-forecast: April 27, 2026
- weekly-pipeline-report: Q1 2026 context; Q2 2026
Proposal: move date-sensitive anchors/examples to references or live-lookup sections.
9) WARNING | UPDATE_BODY | Hardcoded person names in skill bodies
Examples:
- analysis-validator: Manish, Amani Phipps, Alaina Loori, Shealagh Coughlin, Bryce Harmon, Hugo Lindqvist, Dana Mercer, Alex Franklin, Cole Ingram, Gavin Porter, Colleen Perry, Ellie Barton, Ashley Reyer, Megan Franz, Elena Sinclair, Youssef Elkhateeb, Amanda Czenkus, Ben Castelli, John Thomas, Yasmin Wahid
- partner-digest: Amani Phipps, Kelli, Jen Lee, Hani, Bryce, Sara
- sales-forecast: Elena, Alaina
- weekly-pipeline-report: Ben Lavin
Proposal: replace person-name routing dependencies with role-based or live owner/contact lookup.
10) INFO | REVIEW | Manifest drift in both directions
Arithmetic:
- files with no manifest row = 14 provided files - 14 matched manifest rows = 0
- manifest rows with no file = 14 manifest rows - 14 matched provided files = 0
Proposal: no change.
1. [M01] Incident ownership - Who: Bryce Harmon - Command/action: "Acknowledging, taking IC." - Success verification: Not documented — needs confirmation. 2. [M02] Measure queue depth - Who: Farid Osman - Command/action: `bundle exec rake sidekiq:queue_depth` - Success verification: Reported result: reward queue at 48,213 pending jobs. Normal is under 500. 3. [M03] Inspect dead set - Who: Farid Osman - Command/action: Exact inspection command not documented — needs confirmation. - Success verification: Reported result: dead set had 112 jobs, all `Redis::TimeoutError` from around 13:58. 4. [M04] Pause enqueue - Who: Farid Osman - Command/action: `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'` - Success verification: No direct verification of the flag change is documented — needs confirmation. - Rollback: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` 5. [M05] Clear dead set - Who: Elena Sinclair - Command/action: Cleared out the dead set in the console; exact command not documented — needs confirmation. - Success verification: Not documented — needs confirmation. - Rollback: Not documented — needs confirmation. 6. [M06] Scale workers up - Who: Bryce Harmon - Command/action: `kubectl scale deployment/reward-worker --replicas=6` (was 3) - Success verification: No direct replica-count verification is documented — needs confirmation. - Rollback: `kubectl scale deployment/reward-worker --replicas=3` 7. [M07] Check drain progress - Who: Farid Osman - Command/action: Exact measurement command not documented — needs confirmation. - Success verification: Reported result: queue depth down to 9,400 and falling ~1,200/min. 8. [M08] Verify queue drained and errors normalized - Who: Cole Ingram - Command/action: `bundle exec rake sidekiq:queue_depth` - Success verification: Returned 0. Datadog error rate back to baseline. 9. [M09] Re-enable enqueue - Who: Bryce Harmon - Command/action: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` - Success verification: "40 new jobs processed cleanly in the next 3 minutes." - Rollback: Not documented — needs confirmation. 10. [M10] Scale workers back down and close incident - Who: Bryce Harmon - Command/action: `kubectl scale deployment/reward-worker --replicas=3` - Success verification: "Queue stable at 0. Incident resolved." - Rollback: Not documented — needs confirmation.
First error: - 2026-09-03T14:01:12Z, reward-service, ERROR: "Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s" Cascade in order: 1. 2026-09-03T14:01:12Z: reward-service hits the first Redis timeout. 2. 2026-09-03T14:01:20Z: reward-service logs "retry exhausted for RewardGiveJob". Arithmetic: 14:01:20 - 14:01:12 = 8s. 3. 2026-09-03T14:01:30Z: reward-service logs another "retry exhausted for RewardGiveJob". Arithmetic: 14:01:30 - 14:01:20 = 10s. 4. 2026-09-03T14:01:40Z: reward-service logs a third "retry exhausted for RewardGiveJob". Arithmetic: 14:01:40 - 14:01:30 = 10s. 5. 2026-09-03T14:01:40Z: sidekiq logs "RewardGiveJob failed: Redis::TimeoutError; retrying in 60s". 6. 2026-09-03T14:02:28Z: sidekiq logs another "RewardGiveJob failed: Redis::TimeoutError; retrying". 7. 2026-09-03T14:02:30Z: sidekiq warns "Queue reward depth above 10,000". Arithmetic: 14:02:30 - 14:01:12 = 78s = 1m18s. 8. 2026-09-03T14:03:05Z: api-gateway logs "502 upstream timeout calling reward-service /gives". Arithmetic: 14:03:05 - 14:01:12 = 113s = 1m53s. 9. 2026-09-03T14:03:30Z: web-app logs "Give form submission failed: upstream 502 from api-gateway". Arithmetic: 14:03:30 - 14:03:05 = 25s. 10. 2026-09-03T14:03:31Z to 2026-09-03T14:06:52Z: repeated sidekiq RewardGiveJob retry failures, repeated api-gateway 502s, and repeated web-app give-form failures continue. 11. 2026-09-03T14:22:10Z: reward-service logs "Redis connection restored; resuming job processing". 12. 2026-09-03T14:24:45Z: sidekiq logs "Queue reward depth below 500". Arithmetic: 14:24:45 - 14:22:10 = 2m35s. Service and job involved: - Initial failing service: reward-service - Queue processor in the cascade: sidekiq - Downstream affected services: api-gateway, then web-app - Primary failing job shown in the log slice: RewardGiveJob - sidekiq_jobs.csv shows 12 RewardGiveJob failures and 4 RecognitionDigestJob failures. Arithmetic: 12 + 4 = 16 total failed jobs. - RecognitionDigestJob appears in sidekiq_jobs.csv, but it is not named in the log slice. Datadog query to confirm the first error: - service:reward-service "Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s" What the logs do not show: - Why redis-primary timed out; there is no Redis-side root-cause evidence in the data provided. - The exact number of failed give requests or affected users. - A direct mapping from the earlier "job enqueued" entries to job_id values J-00001 through J-00016. - Whether each failed job was later completed successfully after Redis was restored. - Any remediation step before the 2026-09-03T14:22:10Z "Redis connection restored" message.
recognition_streaks_v2 - Controls: calls StreakTracker.record(give) in app/models/recognition.rb. - State: on. - On for: segment:beta_companies. - Company count: 42. points_budget_guardrails - Controls: calls BudgetService.new(company).enforce!(giver, points) in app/services/budget_service.rb. - State: on. - On for: all_companies. - Company count: 220. slack_dm_nudges - Controls: allows SlackDm.send_nudge(user) in app/jobs/nudge_job.rb. - State: on. - On for: segment:region_na. - Company count: 87. redeem_flow_redesign - Controls: renders RedeemV2Component instead of RedeemV1Component in app/controllers/redeem_controller.rb. - State: off. - Targeting rules: targeted_list. - Company count: 12. - Since state = off, the export does not show any companies/segments with it on. analytics_dashboard_v3 - Controls: sets @dashboard = AnalyticsV3.new(company) in app/controllers/analytics_controller.rb. - State: on. - On for: segment:tier_three. - Company count: 65. ms_teams_app_v2 - Controls: calls TeamsAppV2.install(company) in app/services/teams_installer.rb. - State: off. - Targeting rules: targeted_list. - Company count: 9. - Since state = off, the export does not show any companies/segments with it on. legacy_give_modal - No code reference in the excerpt. - State: off. - Targeting rules: segment:legacy_plan. - Company count: 14. - Since state = off, the export does not show any companies/segments with it on. survey_boosters_q3 - No code reference in the excerpt. - State: on. - On for: segment:legacy_plan. - Company count: 7. paused_offboard_cleanup - No code reference in the excerpt. - State: off. - No targeting rules shown. - Company count: 0. - This flag has no targets. Checks - Flags in export = 9. - Flags with code references = 6. - Arithmetic: 9 - 6 = 3 flags with no code reference. - Flags with no code reference: legacy_give_modal, survey_boosters_q3, paused_offboard_cleanup. - Flags with no targets: paused_offboard_cleanup only.
NDA-1 — [PARTY A] and Bonusly: GREEN — Standard mutual NDA with standard carve-outs and standard governing law; key clauses: "Mutual confidentiality," "Carve-outs: information that (a) is or becomes publicly available... (e) must be disclosed by law or court order," and "Governing law: the laws of the State of Delaware, USA"; term math: 2 years + 3 years survival = 5 years total confidentiality tail. NDA-2 — [PARTY B] and Bonusly: YELLOW — Counsel review because it embeds a 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"; restricted period math: 3 years term + 18 months (1.5 years) after = 4.5 years of hiring restriction. NDA-3 — [PARTY C] and Bonusly: RED — Full legal review because it contains a non-compete, has no carve-outs, and uses non-US governing law; driving clauses: "Recipient shall not, directly or indirectly, engage in or provide services to any business that competes with Discloser's business," "No confidentiality carve-outs are stated in this Agreement," and "the laws of the Republic of Ireland"; term math: 5-year one-way confidentiality term plus a 3-year non-compete.