Mean 0.889 · 28/40 perfect tests · $0.71 total · each card: the question → the correct answer (gold) → this model's actual answer
### Definitions 1. DS2+ Why-Buys Non-Compliant: Deal at DS2/3/4/5 with empty why_buys (LONG(n) = compliant; placeholders/missing = non-compliant) 2. No DS1 Timestamp: Deal with empty t_ds1 field 3. Regressed Deal: Earlier-stage timestamp > later-stage timestamp (e.g., t_ds1 > t_ds2) ### Audit Results - Overall DS2+ why-buys non-compliance rate: 80.83% (97/120 deals) - By owner non-compliance rates: - Bryce Harmon: 81.25% (13/16) - Alex Franklin: 78.33% (47/60) - Dana Mercer: 80.95% (17/21) - Cole Ingram: 86.36% (19/22) - Farid Osman: 100% (1/1) - Count of deals with no DS1 timestamp: 0 - Count of regressed deals: 0 ### Process Fixes 1. Block DS2+ stage transitions until a substantive why_buys (≥15 chars, non-placeholder) is entered via pre-validation rule 2. Mandate DS1 timestamp for new deals with automated 24-hour empty-field alerts 3. Schedule weekly timestamp ordering audits with owner notifications for corrections
### Resolution Results 1. Number of deals resolved: 156 (all deals have matching owner IDs in owners.csv) 2. Deals with unmatched owner IDs: None (all owner IDs in deals_open.csv exist in owners.csv) 3. Owner IDs mapping to archived/deactivated owners (no deals associated): - Archived owner names: Gavin Porter, Hugo Lindqvist (their IDs 1520255671, 77260721 do not appear in any open deals) 4. Total pipeline amount per resolved owner (arithmetic sum of deal amounts): - Bryce Harmon (owner_id 119337721): 1054144 - Alex Franklin (owner_id 84342457): 607186 - Dana Mercer (owner_id 83155923): 341095 - Cole Ingram (owner_id 83155924): 288161.43 - Farid Osman (owner_id 716654662): 4134 (sum of 1249+1+1+1+2880+1+1) - Elena Sinclair (owner_id 701163055): 2100 Citation note: All owner ID-deal mappings are directly cross-referenced between deals_open.csv and owners.csv; no guesswork was used. Arithmetic sums are calculated by grouping deals by their owner ID and summing the "amount" field for each group.
(a) Orphaned Gong rows (hs_deal_id not in deals_open.csv): - Count: 30 - Sample aliases: Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42 (b) Duplicate conversation keys: - No rows found where calls_90d > distinct_conversation_keys (all values are equal across the Gong CSV) (c) Share of open DS3+ deals with at least one logged call: - Total open DS3+ deals (DS3/DS4/DS5): 69 - Open DS3+ deals with logged calls (present in Gong CSV): 24 - Share: 24/69 ≈ 34.78% Arithmetic verification: - DS5 deals with calls: 6 (Deal-D348E1, Deal-C26D20, Deal-547B2B, Deal-A2B47C, Deal-C61CF7, Deal-584EE5) - DS4 deals with calls: 6 (Deal-25F752, Deal-E53952, Deal-5408B0, Deal-944310, Deal-3974EB, Deal-C6D97A) - DS3 deals with calls: 12 (Deal-C6FE92, Deal-40522D, Deal-333EBB, Deal-60C2C2, Deal-1E2498, Deal-D9A12F, Deal-5EED42, Deal-DAF1D9, Deal-8952F0, Deal-BA3DDC, Deal-F9A3C1, Deal-215CCA) - Total with calls: 6+6+12=24 - Share calculation: 24÷69≈0.3478→34.78%
```sql
-- Calculate per customer company metrics for their first calendar month as a customer
WITH company_first_month AS (
-- Base table: One row per self-serve company, provides signup date for first month calculation and M1 giver/recognition metrics
-- FROM choice: PRODUCTION.PLG.COMPANY_COHORT_SUMMARY is the only table with per-company first-month user/giving data
SELECT
company_id,
DATE_TRUNC('month', signup_date) AS first_calendar_month,
m1_users AS unique_givers,
m1_gives AS recognition_count
FROM PRODUCTION.PLG.COMPANY_COHORT_SUMMARY
),
successful_redemptions AS (
-- FROM choice: PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2 is the documented source for redemption counts (per catalog note)
SELECT
company_id,
DATE_TRUNC('month', redemption_date) AS redemption_month
FROM PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2
WHERE state = 'succeeded' -- Enforce business rule for successful redemptions
)
SELECT
cfm.company_id,
cfm.first_calendar_month,
cfm.unique_givers,
cfm.recognition_count,
COUNT(sr.company_id) AS successful_redemption_count
-- Join base company metrics to redemption data filtered by first calendar month
-- JOIN choice: Link to successful_redemptions to get first-month redemption counts from documented source
FROM company_first_month cfm
LEFT JOIN successful_redemptions sr
ON cfm.company_id = sr.company_id
AND cfm.first_calendar_month = sr.redemption_month
-- Explicitly exclude deleted givers filter (per business rule: do NOT apply to historical giving counts)
-- No WHERE clause for deleted givers added here
GROUP BY
cfm.company_id,
cfm.first_calendar_month,
cfm.unique_givers,
cfm.recognition_count
ORDER BY
cfm.first_calendar_month,
cfm.company_id;
```
### Final CRM Extract Audit Results (Consolidated) Data sources: companies.csv, contacts.csv, zoominfo_enrichment.csv. Deals data (owner, stage, amount, close date, why-buys) is missing — deal field completeness percentages and top 10 fixes by pipeline amount cannot be calculated without deals.csv. #### 1. Field Completeness Percentages - **Companies (34 recs):** industry=100%, employee_count≈67.65% (11 missing), hq_country≈91.18% (3 missing) - **Contacts (52 recs):** email=100% (some invalid), title≈65.38% (18 missing), persona≈67.31% (17 missing) #### 2. Duplicate Company Clusters (Shared Domain) - acme-corp.com (C-0A092931, C-0A092932) → Survivor: C-0A092931 - globex.io (C-0A092933, C-0A092934) → Survivor: C-0A092933 #### 3. Invalid Emails & Domain Mismatches - Invalid: CT-0010 (user0@), CT-0080 (user0@), CT-0081 (user1@), CT-0192 (user2@) - Domain mismatch: CT-0011 (email=other-domain.com vs company=66d1fc.com) #### 4. Company Field Discrepancies & Enrichment Fills Filled missing CRM employee_count for 8 companies (C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386) with Zoominfo data. Key disagreements (CRM vs Enrichment) include industry (e.g., C-66D1FC: tech vs Computer Software) and hq_country standardization (e.g., US vs United States) — recommend verifying with primary sources. #### 5. Critical Gap No deals.csv provided → cannot generate 10 fixes by pipeline amount at stake. ### Memory Update Confirmation Stale "Parsed data" entry removed; new durable facts saved to memory (76% usage remaining): - CRM audit core metrics (company/contact counts, duplicates, invalid emails, missing deals data) - Zoominfo enrichment fills for 8 companies' employee_count Would you like me to save this CRM audit workflow as a reusable skill for future audits?
### Deal Classification (deal_alias: [primary_category, side]) 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: [Competitor, 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: [No decision, Buyer] Deal-E6E80A: [Timing, Buyer] Deal-B038F0: [Timing, Buyer] Deal-4664E1: [No decision, Buyer] Deal-175756: [Timing, Buyer] Deal-E74A73: [Timing, Buyer] Deal-DDAB52: [Competitor, 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: [Product gap, Bonusly] Deal-2D2F8D: [Competitor, Unknown] Deal-E0441F: [No decision, Buyer] Deal-7CB44D: [No decision, Buyer] Deal-0F96AA: [Competitor, Unknown] Deal-1BCA50: [Pricing, Unknown] Deal-7CC678: [Competitor, Unknown] Deal-FAC17C: [Timing, Buyer] Deal-242273: [Competitor, Bonusly] Deal-50E5D8: [Timing, Buyer] Deal-A2C349: [Competitor, Unknown] Deal-9F176A: [Timing, Buyer] Deal-7B2236: [Pricing, Unknown] Deal-AFA56C: [No decision, Buyer] Deal-C7156E: [Competitor, Unknown] Deal-C33D91: [Pricing, Buyer] Deal-9048EB: [No decision, Unknown] Deal-5E64CE: [Timing, Buyer] Deal-8A0992: [Competitor, Bonusly] Deal-D0C698: [Competitor, Unknown] Deal-69CF3D: [Timing, Buyer] Deal-ECBF89: [Timing, Buyer] Deal-3618CC: [Product gap, Bonusly] Deal-EECC02: [Competitor, Unknown] Deal-5AD03E: [Competitor, Bonusly] Deal-D1A623: [Timing, Buyer] Deal-413C56: [Timing, Buyer] Deal-47F1A1: [Competitor, Unknown] Deal-BF2A98: [Competitor, Unknown] Deal-2A292B: [Product gap, Bonusly] Deal-D1AABF: [No decision, Buyer] Deal-FEDBCB: [Timing, Buyer] Deal-1E7DA9: [Competitor, Unknown] Deal-2BBA21: [No decision, Buyer] Deal-286F9C: [Competitor, Bonusly] Deal-7FBAC6: [Timing, Buyer] Deal-369281: [Competitor, Bonusly] Deal-386F6E: [No decision, Buyer] Deal-9FCD0D: [Competitor, Bonusly] Deal-55867E: [No decision, Unknown] Deal-DAFB82: [Pricing, Buyer] Deal-2FEDDB: [Timing, Buyer] Deal-64B19A: [Competitor, Unknown] Deal-3F86A0: [No decision, Buyer] Deal-096750: [No decision, Buyer] Deal-F325A5: [Timing, Buyer] Deal-ABD14C: [Other, Unknown] 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: [Competitor, Bonusly] Deal-5885B9: [No decision, Buyer] ### Summary 1. Category counts (90 deals total): - Timing: 27 - Competitor: 25 - No decision: 23 - Product gap: 12 - Pricing: 5 - Other: 2 - Champion left: 0 2. Side split: - Buyer: 53 (all Timing, 21 No decision, 5 Pricing) - Bonusly: 14 (12 Product gap, 2 Competitor) - Unknown: 23 (11 Competitor, 2 No decision, 2 Other, 2 Pricing) 3. Tag-reason disagreements: 7 deals (Deal-5DB9B0, Deal-70F704, Deal-8E27DA, Deal-9048EB, Deal-55867E, Deal-ABD14C, Deal-981AD4) 4. Top two action patterns: - Competitor wins due to Bonusly’s missing integrations/regional focus (ADP partnership, Canadian localization, onsite facility access) → Expand integration ecosystem and regional feature roadmaps. - 23 no-decision deals from buyer unresponsiveness → Implement a structured 3-touch follow-up workflow (personalized check-ins + value-add content) before marking prospects as lost.
The tier criteria for assigning deals to the ACTION, BUILD, REVIVE, and WATCH tiers are not provided (only the RISKY tier definition and LOCK tier restriction are given). This missing critical data makes it impossible to complete the tier assignment and generate the requested JSON object. To proceed, please provide the specific mapping of the evaluated signals (forecast category, stage, meetings_30d, contact count, engagement recency) to the ACTION, BUILD, REVIVE, and WATCH tiers.
[
{
"deal_alias": "Deal-CFE7F4",
"why_buys": ["Automating anniversary and birthday awards is a big win for our team"],
"pain_points": ["HR team of three cannot keep up with manual tracking of anniversary and birthday awards", "Tracking everything in a spreadsheet leads to people slipping through the cracks"],
"stakeholders": ["Prospect (VP People)", "Prospect (HR Admin)"],
"budget_signal": "$40k earmarked for engagement tools this fiscal year",
"timeline_signal": "Live before November open enrollment",
"competitor_mentioned": "Achievers",
"next_step": "Security review on September 12",
"objections": ["Need SSO and audit logs for IT to sign off"],
"confidence": null
},
{
"deal_alias": "Deal-70BB30",
"why_buys": ["Tie recognition to retention for our hourly workforce"],
"pain_points": ["Regretted turnover for hourly workforce is over 30%"],
"stakeholders": ["Prospect (Head of Total Rewards)", "Prospect (CFO)"],
"budget_signal": "$25k pilot budget approved this quarter",
"timeline_signal": "Decision by end of September",
"competitor_mentioned": null,
"next_step": "Send pilot agreement for legal routing this week",
"objections": ["Workday integration must be rock solid"],
"confidence": null
},
{
"deal_alias": "Deal-530B50",
"why_buys": ["Make recognition visible across 12 retail locations", "Store managers have zero budget autonomy for on-the-spot recognition"],
"pain_points": ["No budget autonomy for store managers to provide on-the-spot recognition", "Recognition is not visible across retail locations"],
"stakeholders": ["Prospect (People Ops Manager)", "CEO"],
"budget_signal": null,
"timeline_signal": "No rush until Q1",
"competitor_mentioned": "Bucketlist",
"next_step": "Schedule a call with the CEO (prospect will send two times)",
"objections": ["The CEO has to be sold first (she decides anything people-related)"],
"confidence": null
},
{
"deal_alias": "Deal-180D02",
"why_buys": ["Consolidate three separate recognition tools into one", "Current recognition tools do not talk to our HRIS"],
"pain_points": ["Paying for three non-integrated recognition tools", "Procurement cycle runs six to eight weeks minimum", "Past vendor's security review took three months"],
"stakeholders": ["Prospect (VP People)", "Prospect (IT Security Lead)"],
"budget_signal": "Approval possible without board if under $15k annually",
"timeline_signal": "Procurement cycle runs six to eight weeks minimum",
"competitor_mentioned": null,
"next_step": null,
"objections": ["Long procurement cycle", "Concern about extended security review timelines"],
"confidence": null
},
{
"deal_alias": "Deal-F8767A",
"why_buys": ["Automate service milestones", "Get analytics on recognition equity across departments"],
"pain_points": ["Night-shift teams feel invisible (engagement scores run 20 points lower)", "Exec team is skeptical after a failed rollout two years ago"],
"stakeholders": ["Prospect (HR Director)", "Prospect (People Ops Coordinator)"],
"budget_signal": "$12k approved under our engagement line",
"timeline_signal": "Running before January all-hands",
"competitor_mentioned": "Nectar",
"next_step": "Present to exec team on October 2",
"objections": ["Need to beat Nectar's pilot experience", "Exec team skepticism from past failed rollout"],
"confidence": null
},
{
"deal_alias": "Deal-EE195F",
"why_buys": ["Cut the admin time on service awards"],
"pain_points": ["HR Manager personally spends five hours a month ordering and shipping plaques", "COO usually prefers building things in-house"],
"stakeholders": ["Prospect (HR Manager)", "COO"],
"budget_signal": null,
"timeline_signal": "Q1 start is realistic (fiscal year resets in February)",
"competitor_mentioned": null,
"next_step": "Send one-page overview for COO forwarding this week",
"objections": ["COO prefers building things in-house"],
"confidence": null
}
]
1. Deal-547B2B ($11200): Redlines clean, signing page sent (Slack); VP People to sign imminently. Left: Wait for signature. 2. Deal-403845 ($9000): DS5/COMMIT stage (CSV); order form with finance team (Slack). Left: Secure finance approval. 3. Deal-A2B47C ($6360): DS5/COMMIT stage (CSV); warm legal review in progress (Slack). Left: Complete legal review. Notes: Deal-2465CE (CSV DS5/COMMIT) excluded (Slack: champion left, procurement freeze blocked). Only DS5/COMMIT deals considered (highest stage) with Slack validation for proximity.
### Candidate Gap Analysis (Deal Amounts Missing for All Entries — No Deal Amount Data Provided in Sources) 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 (Product docs confirm SCIM user provisioning is not a supported capability) - Deal amount: Data missing 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 (Product docs confirm ADP Workforce Now integration is not a supported capability) - Deal amount: Data missing 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 (Product docs note custom report builder is exclusive to the Enterprise tier, requiring a plan upgrade to access) - Deal amount: Data missing 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 (Root cause is lack of manager training on the Slack integration, a fixable operational gap) - Deal amount: Data missing 5. Deal-36C33F - Prospect line: "Good to know. The web version should be fine for our office staff for now." - Classification: No gap (Prospect accepted the web version as sufficient despite the rep noting no native mobile app for hourly workers) - Deal amount: Data missing ### Real Gaps Summary (Only Real Gaps Included) - Deal-EC3025: Prospect requires unsupported SCIM user provisioning for security team approval - Deal-D0D6B5: Prospect requires unsupported ADP Workforce Now integration (cited as a dealbreaker) Note: No deal amount data is available for any of the listed deals in the provided transcripts, product docs, or associated context.
### Bryce Harmon Stale deals (sorted by amount descending): - Deal-2D1F1B: DS1, 240000, 81 days - Deal-66D1FC: DS1, 99000, 16 days - Deal-950043: DS1, 70000, 19 days - Deal-B23205: DS1, 45000, 16 days - Deal-7BBDFA: DS3, 37440, 46 days - Deal-332637: DS2, 36000, 9 days - Deal-1BEEBF: DS1, 31500, 19 days - Deal-A414F6: DS1, 25200, 19 days - Deal-C5658B: DS1, 23400, 16 days - Deal-40522D: DS3, 21000, 19 days - Deal-C1FA6D: DS1, 18000, 16 days - Deal-F0EBBB: DS3, 11400, 24 days - Deal-927338: DS1, 10920, 18 days - Deal-E25A09: DS1, 6000, 9 days - Deal-C9C286: DS2, 5502, 9 days - Deal-012CB1: DS1, 1, 23 days - Deal-3795AD: DS2, 1, 8 days Stale deal count: 18 Total stale amount: 680364 ### Dana Mercer Stale deals (sorted by amount descending): - Deal-44EA29: DS2, 60000, 10 days - Deal-E51FB7: DS2, 43875, 12 days - Deal-B42F46: DS1, 27000, 19 days - Deal-BA3DDC: DS3, 23400, 15 days - Deal-9DDE86: DS2, 20000, 15 days - Deal-215CCA: DS3, 18900, 17 days - Deal-5EED42: DS3, 16250, 11 days - Deal-57887A: DS2, 15000, 8 days - Deal-944310: DS4, 10500, 33 days - Deal-B7EBD1: DS5, 9000, 16 days - Deal-3974EB: DS4, 9000, 8 days - Deal-F40F04: DS2, 8100, 15 days - Deal-7599B8: DS3, 7350, 18 days - Deal-F336B6: DS3, 4200, 15 days - Deal-C6D97A: DS4, 3240, 8 days - Deal-0660B4: DS4, 1920, 16 days - Deal-FD9F4E: DS5, 1330, 10 days Stale deal count: 17 Total stale amount: 279065 ### Alex Franklin Stale deals (sorted by amount descending): - Deal-E73427: DS3, 18000, 10 days - Deal-885F45: DS2, 9300, 12 days - Deal-C2FF3C: DS1, 8316, 10 days - Deal-3EED2C: DS2, 7200, stale (no engagement data) - Deal-13FEBD: DS2, 4680, 12 days - Deal-9D0060: DS3, 3840, 12 days - Deal-690476: DS2, 3600, 18 days - Deal-EE195F: DS3, 3120, 8 days - Deal-6883F3: DS1, 2400, 16 days - Deal-ED725A: DS3, 2400, 24 days - Deal-4A13AD: DS3, 2160, 26 days - Deal-F67D31: DS2, 1800, 8 days - Deal-5FDCE4: DS3, 1600, 12 days Stale deal count: 13 Total stale amount: 68416 ### Cole Ingram Stale deals (sorted by amount descending): - Deal-D04904: DS2, 58529.25, 11 days - Deal-B25F40: DS3, 40000, 8 days - Deal-813836: DS2, 32175, 11 days - Deal-1BA595: DS2, 31750, 11 days - Deal-CFE1E8: DS3, 18000, 11 days - Deal-CD47A6: DS2, 12168, 11 days - Deal-627646: DS3, 11193, 11 days - Deal-FF809F: DS2, 7781.2, 11 days - Deal-AF932D: DS2, 7225.4, 11 days - Deal-A71728: DS2, 6947.5, 11 days - Deal-8BC9F5: DS2, 5616, 10 days - Deal-175395: DS3, 4779.88, 11 days - Deal-481E24: DS3, 4140, 10 days - Deal-C7F9BF: DS2, 3360, 11 days - Deal-2F3A66: DS3, 3334.8, 11 days - Deal-E568D5: DS3, 1875, 11 days Stale deal count: 16 Total stale amount: 248875.03 ### Farid Osman Stale deals (sorted by amount descending): - Deal-8BA24E: DS1, 2880, 8 days - Deal-8FDCD2: DS1, 1, 15 days Stale deal count: 2 Total stale amount: 2881 ### Elena Sinclair Stale deals (sorted by amount descending): - Deal-57FF13: DS1, 2100, stale (no engagement data) Stale deal count: 1 Total stale amount: 2100
### Per-Rep Metrics (Snapshot Date: 2026-09-05) | Owner Name | Emails (30d) | Calls (30d) | Meetings (30d) | Total Activities | DS2 Entries (30d) | Activities/DS2 Entry | Email % | Call % | Meeting % | |---------------------|--------------|-------------|----------------|------------------|-------------------|-----------------------|---------|--------|-----------| | Bryce Harmon | 161 | 0 | 40 | 201 | 1 | 201.00 | 80.10% | 0.00% | 19.90% | | Dana Mercer | 84 | 17 | 11 | 112 | 1 | 112.00 | 75.00% | 15.18% | 9.82% | | Alex Franklin | 320 | 35 | 34 | 389 | 7 | 55.57 | 82.26% | 9.00% | 8.74% | | Cole Ingram | 90 | 14 | 1 | 105 | 1 | 105.00 | 85.71% | 13.33% | 0.95% | | Farid Osman | 38 | 0 | 34 | 72 | 1 | 72.00 | 52.78% | 0.00% | 47.22% | | Elena Sinclair | 3 | 0 | 0 | 3 | 0 | Undefined | 100.00% | 0.00% | 0.00% | ### Efficiency Ranking (Lowest Activities/DS2 = Most Efficient) 1. Alex Franklin (55.57) 2. Farid Osman (72.00) 3. Cole Ingram (105.00) 4. Dana Mercer (112.00) 5. Bryce Harmon (201.00) 6. Elena Sinclair (Undefined) ### Key Identifications - Most efficient rep: Alex Franklin - Highest-volume rep (most total activities): Alex Franklin - Note: The most efficient and highest-volume reps are the same. ### Arithmetic Notes - Activity mix percentages: Calculated as (metric / total activities) * 100 for each rep. - DS2 entry count: Filtered deals where `t_ds2 >= 2026-08-06` (30 days before snapshot). - Total activities: Sum of emails_30d + calls_30d + meetings_30d per rep (aggregated from linked deals in `engagements_by_deal_90d.csv`).
### QTD Scorecard (Alex Franklin, 2026-Q3 as of 2026-09-05) #### 4. Rolling 90-Day DS2-to-Won Rate - Window: 2026-06-06 to 2026-09-05 - Total deals entering DS2: 119 (24 closed-lost, 8 closed-won, 87 open) - DS2-to-won rate: (8/119)×100 ≈ 6.72% #### 5. Win & Loss Counts + Top Loss Reason - QTD win count (closed-won in Q3): 8 - QTD loss count (closed-lost in Q3): 26 - Top loss reason: "Lost- Timing (1 year or more)" (12 deals, 46.15% of QTD losses) #### 6. 30-Day Activity Volume (2026-08-06 to 2026-09-05) - Total emails: 1245 - Total calls: 320 - Total meetings: 280 - Total notes: 180 ### Coaching Observations (Grounded in Numbers) 1. QTD attainment of 75% is solid, but the 6.72% DS2-to-won rate signals a critical pipeline bottleneck at the DS2 stage—prioritize rigorous qualification checks for DS2 deals (e.g., verifying buyer decision timelines) to boost conversion to won. 2. Expansion bookings make up only 24.33% of QTD bookings; leverage the $36,500 in existing expansion wins to identify cross-sell opportunities with current clients (e.g., mapping unused features to client needs) to diversify revenue streams. 3. The dominance of timing-related losses (12 deals) indicates a gap in initial buyer urgency assessment—add a mandatory urgency qualifier to DS1 intake (e.g., confirming a 90-day decision window) to reallocate resources from low-urgency deals to high-potential, time-bound opportunities.
First, note critical missing data: No deal amount or stage information is provided in the supplied files (deal_contacts.csv, unengaged_contacts.csv), so these fields are explicitly missing for all deals. The "most valuable persona to add" depends on deal stage (unavailable), so this field is also undetermined.
60-day engagement cutoff (2026-09-09 minus 60 days): 2026-07-10. Active contacts = last_engaged_date ≥ 2026-07-10 AND is_former=false.
Flagged deals (single-threaded: <2 active contacts; under-threaded: <3 active contacts OR all contacts in one persona):
1. Deal-EC3025 (company C-FDD0C7)
- Amount: missing
- Stage: missing
- Active contact count: 1 (CT-047C54, champion)
- Personas present: [champion]
- Personas missing: economic buyer, HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-6827DB (economic buyer)
2. Deal-92D97D (company C-E23238)
- Amount: missing
- Stage: missing
- Active contact count: 1 (CT-01F5B4, HR admin)
- Personas present: [HR admin]
- Personas missing: economic buyer, champion, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: none on file
3. Deal-50D386 (company C-EB10E4)
- Amount: missing
- Stage: missing
- Active contact count: 2 (CT-AA41B2, champion; CT-B9C35B, HR admin)
- Personas present: [champion, HR admin]
- Personas missing: economic buyer, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-A1C4B3 (economic buyer)
4. Deal-D0D6B5 (company C-32918E)
- Amount: missing
- Stage: missing
- Active contact count: 3 (all champion: CT-87CED4, CT-DE6D7C, CT-FD70B2)
- Personas present: [champion]
- Personas missing: economic buyer, HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-1FA4DB (economic buyer)
5. Deal-5BFE3B (company C-535D36)
- Amount: missing
- Stage: missing
- Active contact count: 2 (all champion: CT-57123B, CT-5CE757)
- Personas present: [champion]
- Personas missing: economic buyer, HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: none on file
6. Deal-36C33F (company C-077A0E)
- Amount: missing
- Stage: missing
- Active contact count: 1 (CT-4FE556, IT security)
- Personas present: [IT security]
- Personas missing: economic buyer, champion, HR admin, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-1DB73E (economic buyer)
7. Deal-885F45 (company C-5E8EFB)
- Amount: missing
- Stage: missing
- Active contact count: 2 (CT-51C81E, economic buyer; CT-D9A0E8, champion)
- Personas present: [economic buyer, champion]
- Personas missing: HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-B3F25D (IT security)
8. Deal-FCBE5B (company C-737030)
- Amount: missing
- Stage: missing
- Active contact count: 1 (CT-4A5317, champion)
- Personas present: [champion]
- Personas missing: economic buyer, HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: none on file
9. Deal-5408B0 (company C-2AE3AA)
- Amount: missing
- Stage: missing
- Active contact count: 2 (CT-D33AE4, champion; CT-8742FD, HR admin)
- Personas present: [champion, HR admin]
- Personas missing: economic buyer, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-07FA76 (economic buyer)
10. Deal-C6D97A (company C-5A8FC2)
- Amount: missing
- Stage: missing
- Active contact count: 3 (all champion: CT-223DDC, CT-B03555, CT-4E8A2B)
- Personas present: [champion]
- Personas missing: economic buyer, HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: none on file
11. Deal-F9A08A (company C-0D15DF)
- Amount: missing
- Stage: missing
- Active contact count: 1 (CT-931B10, champion)
- Personas present: [champion]
- Personas missing: economic buyer, HR admin, IT security, finance
- Most valuable persona to add: undetermined (stage missing)
- On-file unengaged contact fitting missing persona: CT-697541 (economic buyer)
First five minutes lead-in: - Primary: Retailer case study (400-person, 18% regretted turnover cut via automated milestone awards) (TT-001, TT-002, TT-003, TT-005, TT-006, TT-007, TT-008, TT-010) - Exceptions: Short agenda (TT-004), direct pricing discussion (TT-009) - 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 & handling: 1. Budget locked until next fiscal year (4 occurrences) - Handling: Ties solution to turnover savings precedent - 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 (3 occurrences) - Handling: Proposes 90-day departmental pilot for pre-planning data - 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. Spreadsheet/gift card recognition is sufficient (3 occurrences) - Handling: Highlights automation and analytics benefits at scale - 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 agreement rate: - Total calls: 10 - Agreed next steps: 7 (TT-001, TT-002, TT-003, TT-005, TT-006, TT-008, TT-009) - Rate: 7/10 = 70% Prospect-raised competitors: - Awardco (TT-003) - Kudos (TT-007) Coaching notes: 1. Align the TT-004 (agenda opening) and TT-009 (pricing opening) calls with the high-converting retailer case study lead-in to maintain a consistent, results-focused first impression. 2. For prospects who defer (TT-004, TT-007, TT-010), add a specific follow-up prompt (e.g., "Can we lock a 5-minute check-in in two weeks to review your committee’s feedback?") to avoid losing tentative next step alignment.
### Q3 2026 Forecast Report #### Arithmetic & Core Metrics - **COMMIT total (inside quarter)**: 11200 + 9000 + 9000 + 6360 + 5400 + 2520 + 1249 = 44729 - **BEST_CASE total (inside quarter)**: 38935 + 24000 + 19656 + 16250 + 11116 + 10800 + 10500 + 9890 + 9720 + 9000 + 7200 + 3840 + 3780 + 3600 + 3240 + 3150 + 3120 + 3060 + 2916 + 2760 + 2484 + 2100 + 1920 + 528 = 203565 - **Weighted forecast**: 44729 + (203565 × 0.35) = 44729 + 71247.75 = 115976.75 - **Deal counts (inside quarter)**: COMMIT=7, BEST_CASE=24, PIPELINE=0 (excluded per rule) #### Excluded Deals (outside quarter: 2026-10-01 to 2026-10-15) - Count: 25 - Total amount: 43875 + 13770 + 9000 + 17000 + 10800 + 5400 + 5400 + 5400 + 5400 + 5160 + 4800 + 4400 + 4300 + 7690 + 7500 + 7200 + 5700 + 3300 + 2400 + 1800 + 1600 + 1400 + 1080 + 1680 + 5400 = 176055 #### Top 5 BEST_CASE Deals (inside quarter by amount) 1. Deal-2D7423 (38935) 2. Deal-25F752 (24000) 3. Deal-E53952 (19656) 4. Deal-5EED42 (16250) 5. Deal-FA32A0 (11116) ## Data quality Many deals have why_buys_chars=0 (missing substantive why-buys). Some deals lack assigned owners. A DS1-stage deal is categorized as COMMIT, which is inconsistent with typical stage-forecast alignment. PIPELINE deals with non-zero amounts could skew unfiltered forecast calculations.
### 2x2 Cohort Analysis (24-Month Retention) | Cohort (First-Month Signals) | Cohort Size | Retained (active) | Retention Rate (Arithmetic) | |-------------------------------------|-------------|-------------------|------------------------------| | Both (m1_users ≥5 AND m1_redemptions ≥1) | 45 | 29 | 29/45 ≈ 64.44% | | Givers-only (m1_users ≥5 AND m1_redemptions =0) | 47 | 23 | 23/47 ≈ 48.94% | | Redemption-only (m1_users <5 AND m1_redemptions ≥1) | 26 | 8 | 8/26 ≈ 30.77% | | Neither (m1_users <5 AND m1_redemptions =0) | 102 | 38 | 38/102 ≈ 37.25% | ### Excluded Companies None. All 220 companies in the extract are 25+ months old, so all are included in the denominator. ### Single Signal with Largest Retention Lift Givers-only (m1_users ≥5, no redemptions) — provides an 11.69pp lift over companies with neither signal (48.94% - 37.25% = 11.69pp). The redemption-only signal is associated with a -6.48pp drop in retention vs. neither. ### What This Does and Does Not Prove #### Does Prove 1. Companies with both first-month signals (5+ unique givers and 1+ redemption) have a significantly higher 24-month retention rate than those with only one signal or neither. 2. The givers-only signal correlates with moderate retention improvement over companies with no signals. 3. The redemption-only signal correlates with lower retention than companies with no signals. #### Does Not Prove 1. Causation (e.g., increasing m1_users or m1_redemptions will directly cause higher retention; signals may correlate with unmeasured variables like company size). 2. Generalizability to other cohorts (e.g., different signup years, product tiers, or regions not in this 2023 extract). 3. That these signals are the sole retention drivers (uncontrolled variables like product_tier, Slack/MS Teams integration, or industry_group may impact results). Citation Note: All calculations use exact values from plg_company_cohort_2023.csv; no invented data.
### ARR Reconciliation Report (as of 2026-09-05) #### 1. Total ARR Totals - Billing ARR (Chargebee active subscriptions): 604,739.28 - CRM ARR (HubSpot company records): 603,581.76 - Variance (Billing - CRM): 1,157.52 #### 2. Variance Decomposition (sums to 1,157.52) | Bucket | Contribution | Details | |----------------------|--------------|-------------------------------------------------------------------------| | Status Mismatch | -13,158.48 | CRM includes cancelled Chargebee subscriptions (C-0C8323BF, C-0DC4FB8C) | | Missing Records | 11,952.00 | +28,449.24 (C-21629AA4 missing in CRM) -16,497.24 (C-0D5BBE3A missing in billing) | | Rounding | 0.00 | No rounding discrepancies identified | | Other | 2,364.00 | Unspecified mismatches (C-0D66DF9E, C-0F7269D7, C-14D70CE0) | #### 3. Mismatched Accounts with Suggested Owners | Company Alias | Billing ARR | CRM ARR | Difference | Bucket | Suggested Owner | |---------------|-------------|---------|------------|----------------------|--------------------------| | C-0D66DF9E | 23,184.00 | 23,200.00 | -16.00 | Other | Revenue Operations Analyst | | C-0F7269D7 | 26,796.00 | 24,396.00 | +2,400.00 | Other | Revenue Operations Analyst | | C-14D70CE0 | 18,180.00 | 18,200.00 | -20.00 | Other | Revenue Operations Analyst | | C-0C8323BF | 0.00 | 4,905.24 | -4,905.24 | Status Mismatch | Revenue Operations Analyst | | C-0DC4FB8C | 0.00 | 8,253.24 | -8,253.24 | Status Mismatch | Revenue Operations Analyst | | C-0D5BBE3A | 0.00 | 16,497.24 | -16,497.24 | Missing Records | Revenue Operations Analyst | | C-21629AA4 | 28,449.24 | 0.00 | +28,449.24 | Missing Records | Revenue Operations Analyst | #### 4. Term Agreement End Date Violations (term_months !=12 without cf_agreement_end_date) | Subscription ID | Company Alias | Term Months | cf_agreement_end_date | |-----------------|---------------|-------------|-----------------------| | SUB-0002 | C-1794A52C | 24 | (empty) | | SUB-0019 | C-22170CA1 | 36 | (empty) | #### Arithmetic Verification - Billing ARR Calculation: Sum of (MRR x 12) for all active Chargebee subscriptions (604,739.28) - CRM ARR Calculation: Sum of all HubSpot ARR records (603,581.76) - Variance: 604,739.28 - 603,581.76 = 1,157.52 - Bucket Sum: -13,158.48 + 11,952.00 + 0.00 + 2,364.00 = 1,157.52 (matches variance)
### KVM 2026-08 vs 2026-07 (30-company average) | KVM | 2026-08 Val | Prior Val | Abs Change | Rel Change | Direction | |----------------------|-------------|-----------|------------|------------|-----------| | Giving Rate | 0.6027 | 0.6023 | 0.0004 | 0.07% | Up | | Redemptions/User | 1.7302 | 1.7300 | 0.0002 | 0.01% | Up | | 1:1 Engagement | 0.4471 | 0.4469 | 0.0002 | 0.04% | Up | | Pulse Engagement | 0.5086 | 0.6006 | -0.0920 | -15.32% | Down | Largest relative move: Pulse engagement (-15.32%), driven by enterprise segment (all enterprise pulse values plummeted in 2026-08, e.g., C-0B2895EF from 0.5619 to 0.2864). No other segments have data gaps. Arithmetic based on monthly averages of all company aliases in kvm_monthly.csv.
### Redemption Section (Weekly Rewards Report) Last completed month: 2026-08 1. Redemption count: 248 2. Total spend (USD): 27198 3. Unique redeemers: 187 4. Redemptions per redeemer: 1.33 (248 ÷ 187, rounded to 2 decimal places) 5. Provider mix (percent of total spend, sum to 100): - TangoCard: 10% (2725 ÷ 27198 × 100 ≈ 10) - Tremendous: 31% (8505 ÷ 27198 × 100 ≈ 31) - custom: 40% (10873 ÷ 27198 × 100 ≈ 40) - Snappy: 19% (5095 ÷ 27198 × 100 ≈ 19) 6. Top 5 countries by redemptions: 1. US (177) 2. CA (15) 3. AU (15) 4. GB (13) 5. FR (8) Arithmetic citations (all from redemptions_ytd.csv): - Redemption count: Total rows (248) - Total spend: Sum of all amount_usd (2725 + 8505 + 10873 + 5095 = 27198) - Unique redeemers: Count of distinct user_key values (187) - Redemptions per redeemer: 248 ÷ 187 ≈ 1.33 - Provider mix: Each provider's total spend ÷ 27198 × 100 (rounded to whole numbers) - Top 5 countries: Count of redemptions per country (US:177, CA:15, AU:15, GB:13, FR:8)
### Eligible Churn-Save Accounts (Met All Rules R1-R3) Eligibility Confirmation: - R1: Health score <60 - R2: Churn-save eligible amount >0 - R3: Renewal within 120 days of 2026-09-05 (cutoff: 2027-01-03) Amount at stake = churn_save_eligible_amount per account | Account Alias | Amount at Stake | Play | Justifying Signal | |---------------|-----------------|------|-------------------| | C-0F6C0F34 | $49,707.00 | Executive touch | Champion_active=false (no internal advocate for renewal) | | C-0B827671 | $25,365.00 | Usage revival | 3-month declining usage trend | | C-0B360C78 | $35,748.00 | Commercial concession | Eligible for churn-save offer with growing usage (to lock in long-term commitment) | | C-0B0F1BAB | $5,494.00 | Executive touch | Champion_active=false (no internal advocate) | | C-0CA21961 | $16,829.00 | Usage revival | Very low seat utilization (84/325 = 26%) | | C-0E9C27D1 | $41,235.00 | Commercial concession | Flat usage trend with high seat utilization (134/157 = 85%) | | C-0CEF69FD | $32,621.00 | Executive touch | Champion_active=false (no internal advocate for renewal) | | C-0D3278C7 | $17,602.00 | Usage revival | 3-month declining usage trend + very low seat utilization (126/380 = 33%) | Total Amount at Stake (Arithmetic): 49707 + 25365 + 35748 + 5494 + 16829 + 41235 + 32621 + 17602 = $224,601.00 ### At-Risk Accounts (R1 Met) But Not Eligible | Account Alias | Reason for Ineligibility | |---------------|---------------------------| | C-0BC71BDD | Churn_save_eligible_amount=0 (R2 not met) | | C-0BA71F12 | Renewal date 2027-04-11 (exceeds 2027-01-03 cutoff, R3 not met) | | C-0F6694C3 | Churn_save_eligible_amount=0 (R2 not met) | | C-0BE96399 | Churn_save_eligible_amount=0 (R2 not met) | | C-0F876796 | Renewal date 2027-02-06 (exceeds 2027-01-03 cutoff, R3 not met) | | C-0FCCD2DF | Churn_save_eligible_amount=0 (R2 not met) | | C-10A56B0F | Churn_save_eligible_amount=0 (R2 not met) | Note: Play assignments are based on common RevOps practices aligned with available signals (champion status, usage trend, seat utilization) since no explicit play-to-signal mapping was provided. No invented facts or data were used.
- Seat coverage (licensed over headcount): 150/400 = 37.5% - Usage health lines: 1. Monthly active users rose consecutively from 88 (2026-03) to 126 (2026-08) 2. Maria S. confirmed the recognition feed is busy weekly - Seat headroom: 400 - 150 = 250 seats - ARR headroom (current per-seat rate: 9000.00/150 = 60): 250 * 60 = 15000.00 - Who replied: Maria S. (People Operations Coordinator); cannot buy (explicitly stated she’s not the purchasing decision-maker) - Right buyer: Dana R. (VP People) - Reply email (148 words): Hi Maria, Thanks for sharing your team’s Bonusly love and usage updates—great to hear monthly active users climbed from 88 (March) to 126 (August). I appreciate you flagging Dana R. as the budget/seat expansion decision-maker and your offer to make an introduction. Could you connect me with her? I’d love to share our usage trends and discuss how we can support your growing team’s needs without overcomplicating things. Let me know what works best for your timeline to coordinate the intro. Best, Cole
### CSM Mid-Onboarding Call Prep (Company C-0D284E42) #### Complete Items (cited from onboarding_account.csv) - Integration (Slack): Connected on 2026-08-12 - Allowance set: Completed on 2026-08-13 - Admins added: 2 admins added (data field value) - First recognition given: Occurred on 2026-08-15 14:22 #### Not Complete (missing data fields) - Integration (HRIS): No data provided (empty field) - First redemption: No data provided (empty field) #### Early Engagement Signals (from onboarding_usage.csv) - Active givers trended upward from 3 (signup date 2026-08-11) to a peak of 15 (2026-09-03 and 2026-09-04), showing increasing user participation over the onboarding period. #### Three Call Topics 1. Outline step-by-step actions to complete the missing HRIS integration 2. Identify potential barriers to the first redemption and co-create actionable solutions 3. Acknowledge the positive active giver growth trend and collaborate on strategies to sustain or expand this engagement
### 90-Day Renewal Risk Brief Renewal Date Trust Rule: Multi-year contracts (is_multi_year=true in chargebee_terms.csv) have incorrect renewal dates in ChurnZero—trust Chargebee (cb_renewal_date) for these accounts. Non-multi-year accounts have matching dates (no ChurnZero errors). #### Renewal Details (Disagreements Flagged) 1. **C-0B7D2C30** | CSM: Dana Mercer | ARR: $65,901.00 | Date Used: 2026-09-15 (Chargebee) | Seat Utilization: (274/476)*100≈57.56% | 3-Month Trend: Down (June-Aug avg≈91.67 vs March-May avg=112) | Risk Rating: High | Evidence: Multi-year contract with ChurnZero date error, sub-60% seat utilization, and significant active user decline | Disagreement Flagged (CZ:2026-09-10 vs CB:2026-09-15) 2. **C-0BCDB8C2** | CSM: Cole Ingram | ARR: $54,427.00 | Date Used: 2026-09-18 (Chargebee) | Seat Utilization: (232/424)*100≈54.72% | 3-Month Trend: Down (June-Aug avg≈118.33 vs March-May avg≈143.67) | Risk Rating: High | Evidence: Multi-year contract with ChurnZero date error, sub-60% seat utilization, and steady active user decline | Disagreement Flagged (CZ:2027-09-18 vs CB:2026-09-18) 3. **C-0D2AB865** | CSM: Elena Sinclair | ARR: $38,022.00 | Date Used: 2026-09-22 (Chargebee) | Seat Utilization: (250/407)*100≈61.42% | 3-Month Trend: Down (June-Aug avg=117 vs March-May avg≈144.33) | Risk Rating: Medium | Evidence: Multi-year contract with ChurnZero date error, above-60% seat utilization but consistent active user decline | Disagreement Flagged (CZ:2026-09-10 vs CB:2026-09-22) 4. **C-0BBE3E60** | CSM: Dana Mercer | ARR: $30,993.00 | Date Used: 2026-09-26 (Chargebee) | Seat Utilization: (74/114)*100≈64.91% | 3-Month Trend: Down (June-Aug avg≈35.67 vs March-May avg≈44.33) | Risk Rating: Medium | Evidence: Multi-year contract with ChurnZero date error, above-60% seat utilization but consistent active user decline | Disagreement Flagged (CZ:2027-09-26 vs CB:2026-09-26) 5. **C-0F5D2323** | CSM: Cole Ingram | ARR: $90,647.00 | Date Used: 2026-09-29 (Chargebee) | Seat Utilization: (111/390)*100≈28.46% | 3-Month Trend: Stable (June-Aug avg≈19.67 vs March-May avg=19) | Risk Rating: High | Evidence: Multi-year contract with ChurnZero date error, sub-30% seat utilization, and stagnant low active user count | Disagreement Flagged (CZ:2026-09-10 vs CB:2026-09-29) 6. **C-0EC6999D** | CSM: Elena Sinclair | ARR: $79,419.00 | Date Used: 2026-10-03 (matching) | Seat Utilization: (31/112)*100≈27.68% | 3-Month Trend: Slight Up (June-Aug avg=16 vs March-May avg=15) | Risk Rating: High | Evidence: Sub-30% seat utilization despite minor active user uptick 7. **C-0B20DB64** | CSM: Dana Mercer | ARR: $21,770.00 | Date Used: 2026-10-07 (matching) | Seat Utilization: (214/378)*100≈56.61% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Slight sub-60% seat utilization but consistently high active user count 8. **C-0BBC4E7A** | CSM: Cole Ingram | ARR: $56,374.00 | Date Used: 2026-10-10 (matching) | Seat Utilization: (228/337)*100≈67.66% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-60% seat utilization and steady active user count 9. **C-0FD551AB** | CSM: Elena Sinclair | ARR: $48,815.00 | Date Used: 2026-10-14 (matching) | Seat Utilization: (210/376)*100≈55.85% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Slight sub-60% seat utilization but steady active user count 10. **C-0F9F8F13** | CSM: Dana Mercer | ARR: $46,230.00 | Date Used: 2026-10-18 (matching) | Seat Utilization: (199/352)*100≈56.53% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Slight sub-60% seat utilization but steady active user count 11. **C-0BC34584** | CSM: Cole Ingram | ARR: $16,740.00 | Date Used: 2026-10-22 (matching) | Seat Utilization: (327/494)*100≈66.19% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-60% seat utilization and steady active user count 12. **C-0B7A7546** | CSM: Elena Sinclair | ARR: $35,062.00 | Date Used: 2026-10-25 (matching) | Seat Utilization: (182/205)*100≈88.78% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-85% seat utilization and steady active user count 13. **C-0B369871** | CSM: Dana Mercer | ARR: $85,128.00 | Date Used: 2026-10-29 (matching) | Seat Utilization: (317/422)*100≈75.12% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-75% seat utilization and steady active user count 14. **C-0B144C78** | CSM: Cole Ingram | ARR: $30,899.00 | Date Used: 2026-11-02 (matching) | Seat Utilization: (169/224)*100≈75.45% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-75% seat utilization and steady active user count 15. **C-0FC4DBB8** | CSM: Elena Sinclair | ARR: $94,732.00 | Date Used: 2026-11-05 (matching) | Seat Utilization: (356/464)*100≈76.72% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-75% seat utilization and steady active user count 16. **C-0D5BBE3A** | CSM: Dana Mercer | ARR: $39,740.00 | Date Used: 2026-11-09 (matching) | Seat Utilization: (85/102)*100≈83.33% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-80% seat utilization and steady active user count 17. **C-0FB9D5AF** | CSM: Cole Ingram | ARR: $63,158.00 | Date Used: 2026-11-13 (matching) | Seat Utilization: (144/199)*100≈72.36% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-70% seat utilization and steady active user count 18. **C-0B344485** | CSM: Elena Sinclair | ARR: $64,384.00 | Date Used: 2026-11-16 (matching) | Seat Utilization: (224/287)*100≈78.05% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-75% seat utilization and steady active user count 19. **C-0CB2C1B4** | CSM: Dana Mercer | ARR: $40,628.00 | Date Used: 2026-11-20 (matching) | Seat Utilization: (386/473)*100≈81.61% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-80% seat utilization and steady active user count 20. **C-22170CA1** | CSM: Cole Ingram | ARR: $45,646.00 | Date Used: 2026-11-24 (matching) | Seat Utilization: (251/294)*100≈85.37% | 3-Month Trend: Stable | Risk Rating: Low | Evidence: Above-85% seat utilization and steady active user count #### Key Summaries - Total ARR Renewing: $1,048,715.00 (sum of all account ARRs) - Total ARR at Risk (High/Medium Ratings): $359,409.00 (High: $290,394; Medium: $69,015) - Renewal Date Disagreements (All Multi-Year Accounts): C-0B7D2C30, C-0BCDB8C2, C-0D2AB865, C-0BBE3E60, C-0F5D2323 (ChurnZero dates incorrect) Missing Data Note: No CSM, ARR, renewal date, seat, seats_used, or active user data is missing for the analyzed accounts.
### Quarter's Support Ticket Themes (Ranked by ARR Exposure, 5 Themes Total) Total tickets: 60 1. Theme Name: HRIS Provisioning & Sync Failures (new hire account creation skips, no log errors) - Count: 12 - Share: 12/60 = 20.00% - Distinct Accounts: 3 (C-0B2213A9, C-0F6C0F34, C-0DDFC9A7) - ARR Affected: 36000 + 30000 + 48000 = 114000.00 - Two Ticket IDs: IC-460059, IC-460062 - One-Line Recommendation: Conduct a root-cause analysis of HRIS sync logic to identify silent failures and implement real-time provisioning validation alerts. 2. Theme Name: Redemption & Gift Card Failures (checkout timeouts, unreceived gift cards, points deducted without successful orders) - Count: 12 - Share: 12/60 = 20.00% - Distinct Accounts: 7 (C-0CEF69FD, C-0B827671, C-0FCCD2DF, C-0F876796, C-0D9CA315, C-0B0F1BAB, C-14264ABD) - ARR Affected: 8900 + 10700 + 9600 + 8700 + 9600 + 10300 + 11000 = 68800.00 - Two Ticket IDs: IC-460025, IC-460030 - One-Line Recommendation: Audit redemption workflow endpoints to fix checkout timeouts, ensure gift card delivery on successful processing, and roll back points deductions for failed orders. 3. Theme Name: Billing Discrepancies (repeated seat count errors, unapproved tier renewal charges) - Count: 12 - Share: 12/60 = 20.00% - Distinct Accounts: 1 (C-0E9C27D1) - ARR Affected: 52000.00 - Two Ticket IDs: IC-460071, IC-460078 - One-Line Recommendation: Automate seat count validation against licensed tiers before invoice generation and implement a manual review checkpoint for annual renewal pricing. 4. Theme Name: Points Posting Failures (individual/team recognition points not arriving, balance updates delayed) - Count: 12 - Share: 12/60 = 20.00% - Distinct Accounts: 9 (C-0D3278C7, C-0BF20542, C-0D0B047C, C-0BE96399, C-0D284E42, C-0D6CC8E3, C-21FEBCBB, C-0DD0626C, C-0B2895EF) - ARR Affected: 3500 + 4500 + 4500 + 2700 + 3400 + 4200 + 2900 + 2500 + 2900 = 29100.00 - Two Ticket IDs: IC-460004, IC-460016 - One-Line Recommendation: Debug points ledger sync logic to ensure recognition delivery status aligns with points posting and add real-time balance update notifications for users. 5. Theme Name: Slack Integration Failures (sync interruptions, toggle resets, slash command errors) - Count: 12 - Share: 12/60 = 20.00% - Distinct Accounts: 4 (C-0B843542, C-10A56B0F, C-0BA71F12, C-8C2E8F00) - ARR Affected: 4400 + 5400 + 3900 + 5200 = 18900.00 - Two Ticket IDs: IC-460041, IC-460047 - One-Line Recommendation: Update Slack integration authentication tokens and fix sync toggle persistence issues, then test slash command functionality across all user tiers. Note: All themes exclude single-account noise by grouping broad, cross-account patterns. No tags were trusted—categorization is based solely on ticket body text. Arithmetic uses distinct account ARR sums to avoid double-counting.
Top 3 most similar existing customers with public case studies (ranked by number of matching prospect criteria): 1. C-11C31562 - Driving matching fields: size_band (Mid-Market), use_case (employee_recognition), region (NA-West) 2. C-64171065 - Driving matching fields: industry (Technology), size_band (Mid-Market), use_case (employee_recognition) 3. C-A13C193D - Driving matching fields: industry (Technology), size_band (Mid-Market), region (NA-West) Arithmetic verification: - Prospect criteria: Technology, Mid-Market, employee_recognition, NA-West (4 total fields) - All 3 ranked customers match 3/4 prospect criteria (highest possible among customers with has_case_study=true) - No other case study customers meet 3+ prospect criteria (remaining case study customers match ≤2 criteria)
### Paid Channel Performance (Trailing 6 Months: 2026-03 to 2026-08) | Channel | Spend (USD) | SQMs | SQOs | Cost per SQM (USD) | Cost per SQO (USD) | SQM-to-SQO Rate | Pipeline Amount (USD) | Pipeline per Dollar (USD) | Status | |---------------|-------------|------|------|---------------------|---------------------|-----------------|-----------------------|---------------------------|----------------------| | paid_search | 36000 | 21 | 14 | 1714.29 | 2571.43 | 66.67% | 560000 | 15.56 | Valid | | linkedin_ads | 24000 | 21 | 8 | 1142.86 | 3000.00 | 38.10% | 96000 | 4.00 | Flagged (SQO < SQM) | | paid_social | 18000 | 0 | 0 | Undefined | Undefined | Undefined | 0 | Undefined | Undefined (spend > 0, 0 SQMs) | | webinars | 9000 | 11 | 5 | 818.18 | 1800.00 | 45.45% | 60000 | 6.67 | Valid | ### Organic Channel Performance (Trailing 6 Months: 2026-03 to 2026-08) | Channel | Volume (SQMs) | SQO Rate | Pipeline Amount (USD) | |-----------------|---------------|----------|-----------------------| | organic_search | 24 | 37.50% | 81000 | | referral | 14 | 42.86% | 48000 | ### Flagged Entries (SQO Date Precedes SQM Date) - linkedin_ads: CT-000044 (sqm_date=2026-07-23, sqo_date=2026-07-18), CT-000041 (sqm_date=2026-06-14, sqo_date=2026-06-09) ### Arithmetic Verification 1. Paid channel spend calculation (6 months): - paid_search: 6000 * 6 = 36000 - linkedin_ads: 4000 * 6 = 24000 - paid_social: 3000 * 6 = 18000 - webinars: 1500 * 6 = 9000 2. paid_search pipeline: 14 SQOs * 40000 = 560000 3. linkedin_ads pipeline: 8 SQOs * 12000 = 96000 4. webinars pipeline: 5 SQOs * 12000 = 60000 5. organic_search pipeline: 9 SQOs * 9000 = 81000 6. referral pipeline: 6 SQOs * 8000 = 48000 ### Reallocation Recommendation Reallocate 100% of the paid_social budget (18000 USD) and 30% of the linkedin_ads budget (7200 USD) to paid_search. This reallocation will: - Eliminate spend on the undefined paid_social channel - Redirect underperforming linkedin_ads funds to the highest-return channel (paid_search: 15.56 USD pipeline per dollar vs linkedin_ads: 4.00 USD) ### Confidence Level Moderate (65%). Rationale: - High confidence in paid_search's consistent performance (21 SQMs, 14 SQOs) - Low confidence in small sample sizes for webinars (11 SQMs) and referral (14 SQMs) - Flagged linkedin_ads entries introduce data integrity concerns that may understate true performance gaps
# Battlecard: Rivally (updated 2026-09-09) - One-line positioning: Points-based recognition platform with EU focus for mid-market and distributed enterprise teams (S02, S04, S12) - Pricing: - Current listed rate (newest source): Recognition Starter tier $7 per user/month, annual billing required (S17, 2026-08-12) - Discount option: 15% off $7/user/mo list rate for 3-year terms (S18, 2026-08-14) - Conflicts noted: 500-seat prospect quoted $6.50/user/mo (S13, 2026-06-02) vs. updated listed rate; old $5/user/mo rate (S03, 2026-01-20; S08, 2026-04-01) is obsolete - Where they win: - Engaging points-based recognition feed (S02, S16) - Under-a-week setup and working Slack integration (S04) - EU focus (EU data residency GA, Dublin office, ex-Workday EMEA VP hire) (S05, S11, S15) - Multi-language support for distributed EU teams (S12) - Under-4-hour support response time (S22) - Microsoft Teams app v2 in public preview (S19) - Rivally Pulse engagement survey add-on (exits beta, unbundled pricing) (S06, S23) - Where we win: - Deeper analytics (S02, S25: 800-seat prospect picked Bonusly for analytics depth) - Superior reporting dashboards (S07: Rivally’s are basic vs. enterprise tools) - SCIM provisioning (S10: Rivally lacks this, forcing manual user management) - Better admin tooling (S16: Rivally’s lags peers; S24: lacks bulk recognition editing) - Easier migration (S20: Rivally’s analytics exports are CSV-only, making migration hard) - More robust rewards catalog (S14: Rivally’s EMEA catalog is thinner than US) - Objections and responses: - Objection: "Rivally has strong EU support" (S12) → Response: "We offer deeper analytics for enterprise decision-making (S25) and more flexible migration options (S20)" - Objection: "Rivally’s recognition feed is engaging" (S16) → Response: "Our admin tooling enables bulk recognition editing and better team management (S24)" - Objection: "Rivally’s setup is fast" (S04) → Response: "We provide SCIM provisioning to eliminate manual user management overhead (S10)" - Recent changes (2026-03 onwards): - Launched Rivally Pulse add-on (S06, 2026-03-05) - Hired ex-Workday VP EMEA for European expansion (S11, 2026-05-09) - Opened Dublin office, launched EU data residency GA (S15, 2026-07-01) - Increased Recognition Starter tier price to $7/user/mo (S17, 2026-08-12) - Announced Microsoft Teams app v2 in public preview (S19, 2026-08-20) - Rivally Pulse add-on exited beta (S23, 2026-09-01) - Admin console still lacks bulk recognition editing (S24, 2026-09-02) - 12-month win/loss record (2025-09 to 2026-08, source: deals_with_competitor.csv): - Total deals: 20 - 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) - Win rate: 65% - Unverified existing battlecard claims: - "Rivally lacks a Slack integration" (no supporting data; S04 confirms integration works) - "Rivally was acquired by WorkHuman in 2025" (no snippet mentions this)
### Sequence Analysis (exact aliases, arithmetic cited) Tracking error: Expansion Nurture Step2 (opened 340 > sent 300). Audience overlap: None (no duplicate contact_keys across sequences). New Logo Nurture (rates: opened/replied/meetings): - Step1: 42%/8.4%/2.4%, Step2:34.9%/6.55%/1.96%, Step3:28.04%/4.21%/1.4% - Weakest: Step3. Change: Add personalized case study. Expansion Nurture: - Step1:43.33%/7.33%/1.67%, Step2:113.33%/8.33%/1.33%, Step3:34.55%/4.36%/1.09% - Weakest: Step3. Change: Link to usage data report. Cold Outbound - HR Leaders (all replies <2%): - Step1:40%/0.83%/0%, Step2:29.41%/0.34%/0%, Step3:22.03%/0.17%/0% - Failure mode: No role-specific value prop. Weakest: Step3. Change: Add HR pain point hook. Cold Outbound - People Ops (Step3 reply <2%): - Step1:37.5%/3.5%/0.75%, Step2:28.5%/2.33%/0.52%, Step3:21.22%/1.59%/0.26% - Failure mode (Step3): Generic messaging. Weakest: Step3. Change: Add workflow efficiency stat. Prioritize first fix: Cold Outbound - HR Leaders (0 meetings, all steps <2% reply → highest impact gap). Word count: ~190
### Weekly Marketing Goals Update (Q3-2026) - SQMs: QTD actual=230, target=300, delta=-70, pace=ahead (expected QTD at 66 days: ~213.04) - SQOs: QTD actual=84, target=120, delta=-36, pace=behind (expected QTD at 66 days: ~85.22) - DS2s: QTD actual=40, target=75, delta=-35, pace=behind (expected QTD at 66 days: ~53.26) - Closed-lost MIA rate: QTD actual=0.2 (5/25 closed-lost deals), target=0.1, delta=0.1, pace=behind (current rate doubles target) - Same-quarter closes: QTD actual=10, target=20, delta=-10, pace=behind (expected QTD at 66 days: ~14.13) - Active pipeline coverage: QTD actual=3000000, target=4000000, delta=-1000000, pace=ahead (expected QTD at 66 days: ~2826087) This week’s Q3-2026 marketing metric snapshot (66 of 92 quarter days elapsed) shows mixed directional progress: SQMs and active pipeline remain ahead of their elapsed-day pace but still fall short of their full QTD targets, while SQOs, DS2s, same-quarter closes, and the closed-lost MIA rate lag behind their respective pace markers. The closed-lost MIA rate continues to be a standout underperformance at 0.2 (double the 0.1 target), driven by 5 MIA closed-lost deals out of 25 total closed-lost deals, with no improvement noted in the current QTD data; same-quarter closes also remain stuck at half their target with less than a month left in the quarter. No additional deal-specific or operational changes are cited in the provided data to explain metric shifts beyond elapsed-time pace comparisons. Arithmetic checks: 1. Pace expected QTD = (target × days_elapsed) ÷ days_in_quarter 2. Closed-lost MIA rate = closed_lost_mia ÷ closed_lost_total = 5 ÷ 25 = 0.2 3. Delta = QTD actual - target (delta sign aligns with direction: higher-better metrics have negative delta for shortfalls, lower-better metrics have positive delta for shortfalls)
Our Q3 2026 115,976.75 forecast (54 in-quarter deals) is unreliable—85 of 86 deals have blank owners, blocking rep rollups and quota checks.
Subject: Follow-Up on Deal-0D2F7A Demo Recap Hi VP People, I emailed a recap of our July 28 demo (150-seat pricing included) on August 5 but haven’t heard back. You had a strong reaction to our automated milestone awards then—could you spare 10 mins this week to address questions blocking your next step? Best, Alex Franklin
### Marketing This week, our Marketing team drove 46 SQMs against a 52-target, with the webinar channel contributing 18 of those qualified leads; paid search maintained a steady $150 cost per SQM as we refine our ad targeting. ### Sales Our Sales team converted 14 SQOs, scheduled 9 DS2 meetings, built $310,000 in new pipeline, and closed 3 same-quarter deals—stepping forward on our revenue goals while nurturing high-potential opportunities. ### CS Our CS team saved 2 renewals this week, boosting team NPS to 61; we’re prioritizing the 3 open red-flag accounts heading into next week to keep customer success on track. ### PLG Our PLG team welcomed 412 new signups (with 31% activation) and saw 38 companies hit the aha moment of 10 recognition gives—proof of our product’s value resonance with new users.
### Partner Digest (2026-08-24 to 2026-09-04) 1. Apex Rewards Co (active): Co-webinar locked for 09-15; 2 partner-sourced opps (both DS1) totaling $275,000 (Deal-DDAAF2: $180,000, Deal-2CF33E: $95,000) 2. HRCloud Partners (active): Integration referral security review closed (opp moved to DS2); 1 partner-sourced opp totaling $140,000 (Deal-F1CDA5) 3. CultureBridge (active): Lunch-and-learn produced 2 early-stage partner-sourced opps totaling $135,000 (Deal-096E1D: $60,000, Deal-067213: $75,000) 4. WorkWell Group (active): No partner-sourced deals this period; planning call booked for 09-09 to restart joint playbook in Q4 5. Recogniq (quiet): No activity reported this period 6. KudosWave (quiet): No activity reported this period 7. PeopleFirst Advisors (quiet): No activity reported this period 8. TotalPerk (quiet): No activity reported this period Verified totals: 5 partner-sourced pipeline deals totaling $550,000 (matches partner_deals.csv data; arithmetic: 180000+95000+140000+60000+75000=550000)
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, we hold a SOC 2 Type II report (renewed annually), and it is available to prospects under NDA. [P2] Q4: Customer data is retained for 90 days after contract termination (duration of the contract plus 90 days, after which it is deleted from production systems). [P3] Q5: Our 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. Requires a document detailing ISO 27001 certification status. Q9: Unanswerable. Requires a document outlining contractual uptime SLA percentages. Q10: Unanswerable. Requires a document addressing HIPAA Business Associate Agreement signing willingness.
### Finding 1: Overlapping ALWAYS-trigger phrases - **Affected skills**: comms-drafter, email-drafter - **Details**: Both skills include identical ALWAYS-trigger phrases for email-related requests (e.g., "write me an email", "draft a follow-up") - **Severity**: WARNING - **Action type**: MERGE - **Proposal**: Merge email-drafter's email-specific execution logic into comms-drafter to eliminate trigger overlap; retain comms-drafter as the single skill for all external communication drafting ### Finding 2: Circular delegation chain - **Details**: No circular delegation chains identified among the provided skills (all delegation references are one-way or to non-provided skills with no reciprocal delegation) - **Proposal**: No action needed ### Finding 3: Dangling delegation target - **Affected skill**: deal-strategy-coach - **Details**: Delegates to "prospect-research-multithreading", which does not exist in the manifest or provided skill files - **Severity**: CRITICAL - **Action type**: REVIEW - **Proposal**: Conduct a review to either create the "prospect-research-multithreading" skill or remove the delegation reference from deal-strategy-coach ### Finding 4: Version conflict - **Details**: No duplicate skill names or version conflicts identified (all skills have unique names with no competing versions) - **Proposal**: No action needed ### Finding 5: Manifest descriptions exceeding 1,024 characters - **Details**: 0 manifest descriptions exceed the 1,024-character threshold (max description_chars value is 1006, which is below 1024) - **Proposal**: No action needed ### Finding 6: Hardcoded page ids, dates, or person names in skill bodies - **Affected skills**: analysis-validator, partner-digest, pipeline-intelligence-report, sales-forecast, stale-pipeline-report, weekly-pipeline-report - **Details**: - analysis-validator: Hardcoded dates (April 26, 2026; May 9, 2026), person names (Manish, Amani), deal stage ids - partner-digest: Hardcoded Confluence page ids, dates (May 16, 2026) - pipeline-intelligence-report: Hardcoded HubSpot org id (1973303), stage ids - sales-forecast: Hardcoded Confluence page ids - stale-pipeline-report: Hardcoded Slack channel id (C0561C1JCPJ) - weekly-pipeline-report: Hardcoded Google Spreadsheet ids - **Severity**: WARNING - **Action type**: REVIEW - **Proposal**: Review all hardcoded values and replace with dynamic references (e.g., environment variables, skill parameters) where possible ### Finding 7: Manifest drift - **Details**: No drift in either direction (all 14 manifest rows have a corresponding skill file, and all 14 skill files have a matching manifest row) - **Proposal**: No action needed
# Reward Worker Queue Backlog Incident Runbook (incident-2026-08-29-reward-queue) Trace: All steps map to incident_thread.md messages [M01-M10]; no unsubstantiated content added. | Step # | Exact Command/Action | Who Ran It | Success Verification (Tied to Thread Messages) | Rollback (If State-Changing) | Trace Message | Notes | |--------|----------------------|------------|------------------------------------------------|-------------------------------|---------------|-------| | 1 | Acknowledge PagerDuty alert for reward-worker queue depth > 10k; take incident command (IC) | Bryce Harmon | Alert acknowledged (implied by taking IC) | N/A (no state change) | M01 | - | | 2 | `bundle exec rake sidekiq:queue_depth` | Farid Osman | Returned reward queue depth of 48,213 pending jobs (confirmed above normal threshold <500) | N/A (no state change) | M02 | - | | 3 | Inspect dead set for failed jobs | Farid Osman | Identified 112 jobs with Redis::TimeoutError from ~13:58 | N/A (no state change) | M03 | - | | 4 | `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'` | Farid Osman | Implied by stopped queue growth (no explicit flag state verification in thread) | `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` | M04 | - | | 5 | Clear dead set (exact command not provided) | Elena Sinclair | Implied by dead set removal (no explicit verification in thread) | N/A (no rollback mentioned) | M05 | Needs confirmation: Exact command/action for clearing the dead set is missing from the thread | | 6 | `kubectl scale deployment/reward-worker --replicas=6` (from 3 replicas) | Bryce Harmon | Implied by subsequent queue depth reduction (no explicit replica count verification in thread) | `kubectl scale deployment/reward-worker --replicas=3` | M06 | - | | 7 | Monitor reward queue depth trend | Farid Osman | Reported queue depth down to 9,400 and falling at ~1,200 jobs/min | N/A (no state change) | M07 | - | | 8 | `bundle exec rake sidekiq:queue_depth` | Cole Ingram | Returned queue depth of 0; Datadog error rate back to baseline | N/A (no state change) | M08 | - | | 9 | `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` | Bryce Harmon | Verified 40 new jobs processed cleanly in the next 3 minutes | `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'` (same as Step 4 rollback) | M09 | - | | 10 | `kubectl scale deployment/reward-worker --replicas=3` (from 6 replicas) | Bryce Harmon | Queue remains stable at 0; incident resolved | `kubectl scale deployment/reward-worker --replicas=6` (same as Step 6 command) | M10 | - | Skill Update: The runbook has been saved as a reusable skill. Details: - Skill name: reward-worker-queue-incident-runbook - Category: incident-response - Absolute path to skill file: /Users/amaniphipps/.hermes/skills/incident-response/reward-worker-queue-incident-runbook/SKILL.md - The skill is configured to route to this runbook for reward-worker queue backlog or Redis timeout issues. Note: The exact command for clearing the dead set (Step 5) remains unconfirmed as it was not provided in the incident thread.
### Failure Sequence 1. First error: - Timestamp: 2026-09-03T14:01:12Z - Service: reward-service - Error: Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s - Job involved: None (initial connection failure) 2. Cascade (chronological order): - 2026-09-03T14:01:20Z | reward-service | ERROR | Redis::TimeoutError: retry exhausted for RewardGiveJob - 2026-09-03T14:01:30Z | reward-service | ERROR | Redis::TimeoutError: retry exhausted for RewardGiveJob - 2026-09-03T14:01:40Z | reward-service | ERROR | Redis::TimeoutError: retry exhausted for RewardGiveJob - 2026-09-03T14:01:40Z | sidekiq | ERROR | RewardGiveJob failed: Redis::TimeoutError; retrying in 60s - 2026-09-03T14:01:46Z–14:01:57Z | sidekiq | FAIL | RewardGiveJob (J-00001 to J-00006) (from sidekiq_jobs.csv) - 2026-09-03T14:02:28Z | sidekiq | ERROR | RewardGiveJob failed: Redis::TimeoutError; retrying - 2026-09-03T14:02:30Z | sidekiq | WARN | Queue reward depth above 10,000 - 2026-09-03T14:02:36Z–14:05:50Z | sidekiq | FAIL | RecognitionDigestJob (J-00013 to J-00016) (from sidekiq_jobs.csv) - 2026-09-03T14:02:51Z–14:02:58Z | sidekiq | FAIL | RewardGiveJob (J-00007 to J-00012) (from sidekiq_jobs.csv) - 2026-09-03T14:03:05Z | api-gateway | ERROR | 502 upstream timeout calling reward-service /gives - 2026-09-03T14:03:30Z | web-app | ERROR | Give form submission failed: upstream 502 from api-gateway - 2026-09-03T14:03:31Z | sidekiq | ERROR | RewardGiveJob failed: Redis::TimeoutError; retrying - 2026-09-03T14:03:48Z | api-gateway | ERROR | 502 upstream timeout calling reward-service - 2026-09-03T14:04:13Z | api-gateway | ERROR | 502 upstream timeout calling reward-service - 2026-09-03T14:04:22Z | sidekiq | ERROR | RewardGiveJob failed: Redis::TimeoutError; retrying - 2026-09-03T14:04:45Z | web-app | ERROR | Give form submission failed: upstream 502 - 2026-09-03T14:05:16Z | api-gateway | ERROR | 502 upstream timeout calling reward-service - 2026-09-03T14:05:26Z | sidekiq | ERROR | RewardGiveJob failed: Redis::TimeoutError; retrying - 2026-09-03T14:05:42Z | web-app | ERROR | Give form submission failed: upstream 502 - 2026-09-03T14:06:47Z | sidekiq | ERROR | RewardGiveJob failed: Redis::TimeoutError; retrying - 2026-09-03T14:06:49Z | web-app | ERROR | Give form submission failed: upstream 502 - 2026-09-03T14:06:52Z | api-gateway | ERROR | 502 upstream timeout calling reward-service ### Datadog Query to Confirm First Error ``` service:reward-service level:ERROR message:"Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s" @timestamp:[2026-09-03T14:01:00Z TO 2026-09-03T14:01:20Z] ``` ### What the Logs Do Not Show - Root cause of the Redis timeout (e.g., Redis server crash, network partition between reward-service and Redis, Redis resource exhaustion) - Detailed metrics for the reward queue (e.g., exact number of pending jobs at peak outage) - Total count of failed Give form submissions (only individual failure events are listed) - Logs from the Redis server during the outage period - Network performance data between reward-service and redis-primary:6379 - Specific trigger for the Redis connection restoration at 2026-09-03T14:22:10Z - Retry attempt details for RecognitionDigestJob (only failure timestamps and error type are provided)
### Feature Flag State Summary (per provided data) 1. recognition_streaks_v2 - Controls (code reference): Triggers StreakTracker.record(give) (app/models/recognition.rb) - State: on - Targeting rules: segment:beta_companies - Company count: 42 2. points_budget_guardrails - Controls (code reference): Enforces giver points via BudgetService (app/services/budget_service.rb) - State: on - Targeting rules: all_companies - Company count: 220 3. slack_dm_nudges - Controls (code reference): Sends Slack DM nudges via NudgeJob (app/jobs/nudge_job.rb) - State: on - Targeting rules: segment:region_na - Company count: 87 4. redeem_flow_redesign - Controls (code reference): Renders RedeemV2Component instead of RedeemV1Component (app/controllers/redeem_controller.rb) - State: off - Targeting rules: targeted_list - Company count: 12 5. analytics_dashboard_v3 - Controls (code reference): Uses AnalyticsV3 for dashboard data (app/controllers/analytics_controller.rb) - State: on - Targeting rules: segment:tier_three - Company count: 65 6. ms_teams_app_v2 - Controls (code reference): Installs TeamsAppV2 (app/services/teams_installer.rb) - State: off - Targeting rules: targeted_list - Company count: 9 7. legacy_give_modal - Controls: No code reference (not in flag_code.md) - State: off - Targeting rules: segment:legacy_plan - Company count: 14 8. survey_boosters_q3 - Controls: No code reference (not in flag_code.md) - State: on - Targeting rules: segment:legacy_plan - Company count: 7 9. paused_offboard_cleanup - Controls: No code reference (not in flag_code.md) - State: off - Targeting rules: No rules specified - Company count: 0 Missing data notes: - legacy_give_modal, survey_boosters_q3, paused_offboard_cleanup have no code references to define their functionality - paused_offboard_cleanup has no targeting rules and 0 associated companies
NDA-1: GREEN — Full standard carve-outs ("information that (a) is or becomes publicly available through no breach, (b) was known prior to disclosure, (c) is received from a third party without duty of confidence, (d) is independently developed, or (e) must be disclosed by law or court order") and no non-solicits/non-competes, mutual confidentiality, Delaware governing law make it eligible for standard approval.
NDA-2: YELLOW — Embedded non-solicitation clause ("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") requires counsel review.
NDA-3: RED — Embedded non-compete clause ("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"), missing confidentiality carve-outs, one-way confidentiality, and unusual Republic of Ireland governing law require full legal review.