Mean 0.952 · 34/40 perfect tests · $19.82 total · each card: the question → the correct answer (gold) → this model's actual answer
Definitions - Why-buys non-compliance: DS2–DS5 deals with blank, fewer than 15 characters, or placeholder why_buys. LONG(n) is compliant. Denominator: DS2+ deals, overall or per owner. - Missing DS1: blank t_ds1 across all open deals. - Regressed: any populated earlier-stage timestamp later than a populated later-stage timestamp. Equal dates are allowed; missing timestamps cannot establish regression. Why-buys non-compliance Overall: 156 open − 32 DS1 = 124 DS2+; 124 − 23 compliant = 101 non-compliant. 101 / 124 × 100 = 81.45%. Owner Non-compliant / DS2+ × 100 Bryce Harmon 15 / 18 × 100 = 83.33% Dana Mercer 18 / 22 × 100 = 81.82% Alex Franklin 48 / 61 × 100 = 78.69% Cole Ingram 19 / 22 × 100 = 86.36% Farid Osman 1 / 1 × 100 = 100.00% Elena Sinclair 0 / 0 = N/A; no DS2+ deals Gavin Porter and Hugo Lindqvist have no open deals; rates are N/A. Timestamp hygiene - Missing DS1: 156 − 156 populated = 0 deals. - Regressed: 0 deals with timestamp inversions. Missing later-stage timestamps limit detection. Three process fixes 1. Gate DS2+ entry and updates on substantive why-buys: enforce minimum length, reject placeholders, and require owners to remediate existing blanks. 2. Automatically capture DS1 entry timestamps; backfill missing values only from verified stage history. 3. Preserve append-only stage-transition history and flag timestamp inversions for review without overwriting genuine regressions.
Resolved: 156 of 156 open deals, using exact owner_id matches. Arithmetic: 35 + 24 + 67 + 22 + 7 + 1 = 156. Unmatched deals: None. Archived owners in owners.csv: - 1520255671 — Gavin Porter - 77260721 — Hugo Lindqvist Neither archived owner has any deals in the supplied extract. All open deals map to owners with archived=false; no separate deactivation field was provided. Total pipeline per resolved owner (all stages and forecast categories; currency not specified): | Owner ID | Resolved owner | Deals | Pipeline amount | |---|---|---:|---:| | 119337721 | Bryce Harmon | 35 | 1,054,144.00 | | 83155923 | Dana Mercer | 24 | 341,195.00 | | 84342457 | Alex Franklin | 67 | 624,310.00 | | 83155924 | Cole Ingram | 22 | 288,161.43 | | 716654662 | Farid Osman | 7 | 4,134.00 | | 701163055 | Elena Sinclair | 1 | 2,100.00 | | Total | | 156 | 2,314,044.43 | Arithmetic by owner, using stage subtotals in DS1 + DS2 + DS3 + DS4 + DS5 order: - Bryce Harmon: 645,497 + 168,091 + 176,400 + 50,656 + 13,500 = 1,054,144. - Dana Mercer: 32,000 + 146,975 + 105,750 + 37,470 + 19,000 = 341,195. - Alex Franklin: 53,516 + 197,800 + 303,690 + 23,574 + 45,730 = 624,310. - Cole Ingram: 0 + 187,152.35 + 96,919.08 + 2,760 + 1,330 = 288,161.43. - Farid Osman: 2,885 + 1,249 + 0 + 0 + 0 = 4,134. - Elena Sinclair: 2,100 + 0 + 0 + 0 + 0 = 2,100. Total: 1,054,144 + 341,195 + 624,310 + 288,161.43 + 4,134 + 2,100 = 2,314,044.43.
(a) Orphans: 67 Gong rows − 37 matching deals_open.deal_id = 30 orphan rows. Sample aliases: Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42. These are unmatched in the supplied open-deal table, not necessarily invalid deals. (b) Duplicate conversation keys: 0 rows where calls_90d > distinct_conversation_keys. All 67 rows have equal counts; total excess = 465 − 465 = 0. Individual conversation keys were not provided, so cross-deal duplication cannot be checked. (c) DS3+ call coverage, using current stage: - Eligible open deals: 61 DS3 + 14 DS4 + 10 DS5 = 85. - With at least one logged call: 12 DS3 + 6 DS4 + 7 DS5 = 25. - Share: 25 ÷ 85 × 100 = 29.41%. Joined on hs_deal_id = deal_id; gong_owner_id was not used.
```sql -- Cannot write the requested query using only this catalog: -- 1. No customer-company source with a company key and customer-start date -- is documented, so the first calendar month cannot be determined. -- 2. No recognition source or company, giver, event ID, and event timestamp -- columns are documented. -- 3. PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2 is the documented -- redemption source, but its company key and event timestamp are not given. -- Its event grain or unique redemption key is also unspecified. -- -- Required rules once the missing schema is provided: -- Count historical giving without excluding deleted givers. -- Count redemptions only where STATE = 'succeeded'. -- Aggregate giving and redemptions separately to avoid join multiplication. -- PRODUCTION.PLG.COMPANY_COHORT_SUMMARY covers only self-serve companies; -- its M1 fields are not documented as first-customer-calendar-month metrics. -- Do not use unpopulated, stale, or retired tables. ```
CRM completeness Completeness = nonblank values ÷ records × 100, after trimming whitespace. These are pre-fix, pre-deduplication results; populated does not necessarily mean valid. | Object | Required field | Arithmetic | Completeness | |---|---|---|---:| | Deals | Owner | No deal extract supplied | N/A | | Deals | Stage | No deal extract supplied | N/A | | Deals | Amount | No deal extract supplied | N/A | | Deals | Close date | No deal extract supplied | N/A | | Deals | Why-buys | No deal extract supplied | N/A | | Companies | Industry | 34 ÷ 34 × 100 | 100.00% | | Companies | Employee count | 25 ÷ 34 × 100 | 73.53% | | Companies | HQ country | 28 ÷ 34 × 100 | 82.35% | | Contacts | Email | 52 ÷ 52 × 100 | 100.00% | | Contacts | Title | 39 ÷ 52 × 100 | 75.00% | | Contacts | Persona | 37 ÷ 52 × 100 | 71.15% | Email syntax validity is separate: (52 − 4) ÷ 52 × 100 = 92.31%. Deliverability cannot be established from these files. Duplicate company clusters Company names are not provided, so name-variant detection is unavailable. Shared domains identify these candidate duplicate clusters: | Shared domain | Members | Proposed survivor | Reconciliation | |---|---|---|---| | acme-corp.com | C-0A092931, C-0A092932 | C-0A092931 | Employee count conflicts: 500 versus 510. Industry is `Technology` versus `tech`; country is `US` versus `USA`. | | globex.io | C-0A092933, C-0A092934 | C-0A092933 | Industry differs: `SaaS` versus `Technology`. Both have employee count 200 and country `US`. | Survivors use lowest alias as a deterministic tie-breaker—not evidence of accuracy or age. Neither domain has enrichment. Confirm common entity identity before merging; preserve conflicting values and relationship history. Do not treat the survivor’s employee count or industry as verified merely because it survives. Invalid emails and domain mismatches | Contact | Company | Email | Issue | |---|---|---|---| | CT-0010 | C-66D1FC | `user0@` | Missing email domain | | CT-0080 | C-92D97D | `user0@` | Missing email domain | | CT-0081 | C-92D97D | `user1@` | Missing email domain | | CT-0192 | C-425E2A | `user2@` | Missing email domain | | CT-0011 | C-66D1FC | `user1@other-domain.com` | Email domain `other-domain.com` differs from company/contact domain `66d1fc.com` | Verify the invalid addresses; do not construct replacements by appending company domains. Investigate CT-0011’s email and company association rather than automatically changing either. All contact `domain` values match their linked company’s domain. Supported company fills Exact domain matches in zoominfo_enrichment.csv support these fills only: | Company | Matching domain | Field | CRM → enrichment | |---|---|---|---| | C-EC3025 | ec3025.com | employee_count | blank → 400 | | C-96039F | 96039f.com | employee_count | blank → 400 | | C-44EA29 | 44ea29.com | employee_count | blank → 400 | | C-D04904 | d04904.com | employee_count | blank → 400 | | C-B23205 | b23205.com | employee_count | blank → 400 | | C-60C75F | 60c75f.com | employee_count | blank → 400 | | C-7BBDFA | 7bbdfa.com | employee_count | blank → 400 | | C-50D386 | 50d386.com | employee_count | blank → 400 | After these proposed fills, employee-count completeness becomes (25 + 8) ÷ 34 × 100 = 97.06%, before deduplication. Leave these fields blank: - HQ country: C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5. Matching enrichment rows also have blank countries. - HQ country: C-EE9FFB. No matching enrichment row. - Employee count: C-93C8BF. No matching enrichment row. No missing HQ country can be filled from the supplied enrichment. A domain alone is not evidence of country. CRM versus enrichment disagreements Industry differences: | Company aliases | CRM industry | Enrichment industry | |---|---|---| | C-66D1FC, C-44EA29, C-60C75F | `tech` | `Computer Software` | | C-EC3025, C-92D97D, C-D04904, C-77A95A, C-AA8DDA, C-B25F40 | `Technology` | `Computer Software` | | C-425E2A | `Tech `, including trailing space | `Computer Software` | Recommendation: use enrichment as the proposed source for a detailed industry classification on these matched rows, subject to review. The exports contain no timestamps or verification metadata proving it is more accurate. Preserve the original CRM value and distinguish taxonomy mapping from a factual correction; `Technology` is broader than `Computer Software`. Country representation differences: | Company aliases | CRM HQ country | Enrichment HQ country | |---|---|---| | C-66D1FC, C-950043, C-77A95A, C-B23205, C-D0662E | `US` | `United States` | | C-EC3025, C-96039F, C-E51FB7, C-425E2A, C-2D7423 | `USA` | `United States` | Recommendation: use enrichment’s `United States` as the canonical spelling for these matched records. These are equivalent country representations, not substantive geographic conflicts. There are no disagreements between populated CRM employee counts and matching enrichment employee counts. Separately, standardize industry casing, whitespace, and equivalent labels (`tech`/`Tech `/`Technology`, `health care`/`Healthcare`) through an explicit taxonomy. Do not infer `Computer Software` for companies lacking a matching enrichment row. Missing contact fields Request verified values for the following; the supplied enrichment contains no contact titles or personas. - Title: 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: 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. Do not infer persona solely from title. 10 fixes — pipeline ranking unavailable No deals, amounts, stages, or deal-to-company/contact associations were supplied. Therefore, the 10 fixes with the most pipeline at stake cannot be identified. The following are unranked fix candidates; pipeline amount is unknown for every item, not zero. 1. Fill the eight supported employee counts with 400 for C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386. 2. Verify and correct CT-0010’s invalid email for C-66D1FC. 3. Verify and correct CT-0080 and CT-0081’s invalid emails for C-92D97D. 4. Verify and correct CT-0192’s invalid email for C-425E2A. 5. Resolve CT-0011’s email/company-domain mismatch for C-66D1FC. 6. Validate and merge C-0A092932 into proposed survivor C-0A092931, retaining the unresolved 500/510 employee-count conflict. 7. Validate and merge C-0A092934 into proposed survivor C-0A092933, retaining the unresolved `SaaS`/`Technology` distinction. 8. Obtain verified values for the missing contact titles and personas listed above. 9. Obtain missing HQ countries for C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5, C-EE9FFB, and employee count for C-93C8BF; leave blank until supported. 10. Review the listed CRM/enrichment industry differences and standardize industry and country representations while preserving source values.
Classification rules: use the stated underlying reason before the outcome; retain the tag when text is inconclusive. “Pricing” includes budget constraints. Side identifies the stated source of the obstacle—not blame: Bonusly for offering/value gaps, buyer for internal constraints or preferences, unknown when attribution is unsupported. MIA maps to no decision, but its cause remains unknown. All supplied deals are included as the requested cohort. ### Deal classifications | Deal alias | Primary category | Side | |---|---|---| | Deal-DB0AAC | timing | buyer | | Deal-F7F635 | competitor | unknown | | Deal-AC944F | no decision | unknown | | Deal-214060 | no decision | unknown | | Deal-91A056 | timing | buyer | | Deal-29326C | timing | buyer | | Deal-5DB9B0 | other | unknown | | Deal-831B7B | timing | buyer | | Deal-F97C37 | product gap | Bonusly | | Deal-13E9CF | no decision | buyer | | Deal-39E25C | timing | buyer | | Deal-7ED004 | pricing | buyer | | Deal-21B045 | no decision | unknown | | Deal-B3ABED | timing | buyer | | Deal-422BA6 | competitor | Bonusly | | Deal-ED9AE7 | other | buyer | | Deal-988493 | no decision | unknown | | Deal-381C8C | competitor | unknown | | Deal-F308CA | no decision | unknown | | Deal-F1E8A6 | competitor | unknown | | Deal-B6AC09 | timing | buyer | | Deal-70F704 | no decision | unknown | | Deal-E6E80A | timing | buyer | | Deal-B038F0 | timing | buyer | | Deal-4664E1 | no decision | unknown | | 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 | unknown | | Deal-15DA99 | timing | buyer | | Deal-F4AF5D | timing | buyer | | Deal-79B7A1 | timing | buyer | | Deal-583ADB | no decision | unknown | | Deal-8E27DA | other | buyer | | Deal-2D2F8D | competitor | unknown | | Deal-E0441F | no decision | unknown | | Deal-7CB44D | no decision | unknown | | Deal-0F96AA | competitor | unknown | | Deal-1BCA50 | pricing | buyer | | Deal-7CC678 | competitor | unknown | | Deal-FAC17C | no decision | buyer | | Deal-242273 | product gap | Bonusly | | Deal-50E5D8 | no decision | buyer | | Deal-A2C349 | competitor | unknown | | Deal-9F176A | timing | buyer | | Deal-7B2236 | pricing | Bonusly | | Deal-AFA56C | no decision | unknown | | Deal-C7156E | competitor | unknown | | Deal-C33D91 | pricing | buyer | | Deal-9048EB | product gap | Bonusly | | Deal-5E64CE | timing | buyer | | Deal-8A0992 | competitor | unknown | | Deal-D0C698 | competitor | buyer | | Deal-69CF3D | timing | buyer | | Deal-ECBF89 | timing | buyer | | Deal-3618CC | product gap | Bonusly | | Deal-EECC02 | competitor | unknown | | Deal-5AD03E | competitor | unknown | | Deal-D1A623 | timing | buyer | | Deal-413C56 | no decision | buyer | | Deal-47F1A1 | competitor | buyer | | Deal-BF2A98 | competitor | buyer | | Deal-2A292B | no decision | buyer | | Deal-D1AABF | no decision | unknown | | Deal-FEDBCB | timing | buyer | | Deal-1E7DA9 | competitor | unknown | | Deal-2BBA21 | no decision | unknown | | Deal-286F9C | competitor | unknown | | Deal-7FBAC6 | no decision | buyer | | Deal-369281 | competitor | buyer | | Deal-386F6E | no decision | unknown | | Deal-9FCD0D | competitor | buyer | | Deal-55867E | timing | unknown | | Deal-DAFB82 | pricing | buyer | | Deal-2FEDDB | timing | buyer | | Deal-64B19A | competitor | unknown | | Deal-3F86A0 | no decision | unknown | | Deal-096750 | no decision | unknown | | Deal-F325A5 | no decision | buyer | | Deal-ABD14C | no decision | unknown | | Deal-79E61A | no decision | unknown | | Deal-8A119B | pricing | buyer | | Deal-AE7C4E | no decision | unknown | | Deal-DAB4F1 | no decision | unknown | | Deal-B4B50F | no decision | unknown | | Deal-981AD4 | product gap | Bonusly | | Deal-DC77FE | product gap | Bonusly | | Deal-5885B9 | no decision | unknown | Classification limitations: - Deal-ED9AE7 lists “Timing, budget, authroity.” without identifying a primary obstacle; classified other. - Deal-3618CC’s “Wanted Surveys” is interpreted as a product-fit requirement; the specific deficiency is missing. Deal-5AD03E’s “Wanted more defined budget access” is too ambiguous to establish a product gap, so the competitor tag is retained. - Vague competitor-tagged reasons do not establish a confirmed competitor selection. HeyTaco in Deal-ACE061 and Motivosity in Deal-64B19A remain explicitly uncertain. - No reason explicitly establishes that a buyer champion left. Deal-F325A5 mentions leadership change and deprioritization; Deal-E0441F mentions a departed sales rep. ### Category counts and side split | Category | Bonusly | buyer | unknown | Total | |---|---:|---:|---:|---:| | pricing | 1 | 5 | 0 | 6 | | competitor | 1 | 5 | 15 | 21 | | no decision | 0 | 8 | 23 | 31 | | timing | 0 | 21 | 1 | 22 | | product gap | 7 | 0 | 0 | 7 | | champion left | 0 | 0 | 0 | 0 | | other | 0 | 2 | 1 | 3 | | Total | 9 | 41 | 40 | 90 | Arithmetic: - Categories: 6 + 21 + 31 + 22 + 7 + 0 + 3 = 90 deals. - Sides: 9 Bonusly + 41 buyer + 40 unknown = 90 deals. ### Clear tag–reason disagreements 4 deals = 3 primary-reason mismatches + 1 explicit timing-horizon mismatch. “Lost DM” is interpreted literally as loss of the decision-maker. | Deal alias | Tag | Free-text disagreement | |---|---|---| | Deal-8E27DA | Feature Request | Chose a swag provider and “didn't want R&R”—a different scope, not a stated missing feature. | | Deal-FAC17C | Lost DM | Could not get approval from the Executive IT Director—not loss of that decision-maker. | | Deal-3618CC | Lost DM | “Wanted Surveys” describes a product requirement, not decision-maker loss. | | Deal-9F176A | Lost- Timing (1 year or more) | “Closer to the end of the year” conflicts with the tag’s one-year-or-more horizon. | Missing corroboration is not counted as clear disagreement. Neither are compatible overlapping reasons: Deal-9048EB explicitly contains both nonresponse and feature gaps; competitor outcomes can coexist with product gaps. “Next year” alone does not establish a one-year-or-more delay. ### Two patterns most worth acting on 1. Timing and non-decisions dominate: 22 + 31 = 53 deals; 53 ÷ 90 × 100 = 58.9%. Separate dated reactivation opportunities from unexplained silence. Use the stated buyer milestones for Deal-91A056, Deal-B3ABED and Deal-5E64CE; use stronger qualification and explicit next-step commitments for nonresponse cases such as Deal-F308CA and Deal-7CB44D. Do not assume those silent deals lost on price or product. 2. Specific offering differences are more actionable than generic competitor labels. Seven product-gap classifications identify broader offerings, customization, surveys, UI/localization or feature fit: Deal-F97C37, Deal-DDAB52, Deal-242273, Deal-9048EB, Deal-3618CC, Deal-981AD4 and Deal-DC77FE. Deal-422BA6 adds an explicit ADP partnership advantage: 7 + 1 = 8 differentiation cases to validate for qualification, positioning, product or partnership action. The notes do not establish the exact missing capabilities in every case.
{"tier_counts":{"LOCK":3,"ACTION":18,"BUILD":34,"REVIVE":1,"WATCH":65,"RISKY":35},"tier_examples":{"LOCK":["Deal-D348E1","Deal-C26D20","Deal-403845"],"ACTION":["Deal-25F752","Deal-3974EB","Deal-499BF6"],"BUILD":["Deal-944310","Deal-A5E80A","Deal-1FC049"],"REVIVE":["Deal-2D1F1B"],"WATCH":["Deal-6787C2","Deal-66D1FC","Deal-950043"],"RISKY":["Deal-E53952","Deal-5408B0","Deal-9AAE5F"]},"risky_deals":["Deal-E53952","Deal-5408B0","Deal-9AAE5F","Deal-547B2B","Deal-B7EBD1","Deal-A2B47C","Deal-2465CE","Deal-C61CF7","Deal-62D607","Deal-584EE5","Deal-C6D97A","Deal-7B3B0F","Deal-F9A08A","Deal-0660B4","Deal-FD9F4E","Deal-BA571A","Deal-FC22A3","Deal-7BBDFA","Deal-60C2C2","Deal-4A13AD","Deal-8AD4A5","Deal-15D24F","Deal-9D0060","Deal-690476","Deal-635B8E","Deal-ED725A","Deal-55164C","Deal-3BA5EA","Deal-5FDCE4","Deal-F336B6","Deal-5EED42","Deal-BA3DDC","Deal-7599B8","Deal-F9A3C1","Deal-FA32A0"],"lock_violations":0,"pipeline_shape":"3+18+34+1+65+35=156 deals; 55 have meetings, 99 have none, and 2 lack engagement rows (Deal-3EED2C, Deal-57FF13), assigned WATCH. Pipeline is meeting-light: 35 BEST_CASE/COMMIT deals lack the designated inbound signal and are RISKY. Provisional rules use 2026-09-04, the latest supplied email/call date, as the snapshot because none is specified; later meeting dates do not establish recency. LOCK requires COMMIT, DS4–5, at least 3 contacts, positive meetings and engagement within 14 days. ACTION requires the same engagement/contact evidence plus DS3–5 or COMMIT, excluding LOCK; other meeting-positive deals are BUILD. Remaining zero-meeting deals are REVIVE if engagement exceeds 30 days, otherwise WATCH; RISKY takes precedence."}
[
{
"transcript_id": "TX-001",
"deal_alias": "Deal-CFE7F4",
"why_buys": [
"Automate anniversary and birthday awards."
],
"pain_points": [
"HR team of three cannot keep up with awards manually.",
"Spreadsheet tracking lets people slip through the cracks."
],
"stakeholders": [
"Prospect (VP People)",
"Prospect (HR Admin)"
],
"budget_signal": "About $40k earmarked for engagement tools this fiscal year; not stated as exclusively allocated to this purchase.",
"timeline_signal": "Ideally live before open enrollment in November; year not stated.",
"competitor_mentioned": [
{
"name": "Achievers",
"context": "Evaluated last year; considered too heavy for a team their size."
}
],
"next_step": "Security review on September 12, explicitly accepted by Prospect (VP People); year not stated.",
"objections": [
"SSO and audit logs required for IT sign-off."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements; next step explicitly accepted."
}
},
{
"transcript_id": "TX-002",
"deal_alias": "Deal-70BB30",
"why_buys": [
"Tie recognition to retention for the hourly workforce."
],
"pain_points": [
"Regretted turnover in the hourly workforce is over 30%."
],
"stakeholders": [
"Prospect (Head of Total Rewards)",
"Prospect (CFO)"
],
"budget_signal": "Finance approved a $25k pilot budget for this quarter.",
"timeline_signal": "Decision wanted by end of September; year not stated.",
"competitor_mentioned": null,
"next_step": "Send the pilot agreement; Prospect (CFO) agreed to route it to legal this week.",
"objections": [
"Rock-solid Workday integration is a condition."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements; no competitor named; next step explicitly accepted."
}
},
{
"transcript_id": "TX-003",
"deal_alias": "Deal-530B50",
"why_buys": [
"Make recognition visible across 12 retail locations."
],
"pain_points": [
"Store managers have zero budget autonomy for on-the-spot recognition."
],
"stakeholders": [
"Prospect (People Ops Manager)"
],
"budget_signal": null,
"timeline_signal": "No rush until Q1; year not stated.",
"competitor_mentioned": [
{
"name": "Bucketlist",
"context": "CEO used it at her last company and liked it; current evaluation not stated."
}
],
"next_step": "Schedule a call with the CEO; Prospect (People Ops Manager) agreed to send two times.",
"objections": [
"CEO must be sold first and decides anything people-related."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements; no prospect-stated purchase budget; next step explicitly accepted."
}
},
{
"transcript_id": "TX-004",
"deal_alias": "Deal-180D02",
"why_buys": [
"Consolidate three separate recognition tools into one."
],
"pain_points": [
"Paying for three tools, none of which connect to their HRIS."
],
"stakeholders": [
"Prospect (VP People)",
"Prospect (IT Security Lead)"
],
"budget_signal": "Prospect (VP People) can approve under $15k annually without board approval; this is an approval threshold, not a committed budget.",
"timeline_signal": "Procurement takes six to eight weeks minimum; no target purchase or launch date stated.",
"competitor_mentioned": null,
"next_step": null,
"objections": [
"Security review took three months for the last vendor, creating hesitation."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements; no competitors named; proposed CFO follow-up was tentative, not agreed."
}
},
{
"transcript_id": "TX-005",
"deal_alias": "Deal-F8767A",
"why_buys": [
"Automate service milestones.",
"Provide analytics on recognition equity across departments."
],
"pain_points": [
"Night-shift teams feel invisible; their engagement scores run 20 points lower, with the comparison group not specified."
],
"stakeholders": [
"Prospect (HR Director)",
"Prospect (People Ops Coordinator)"
],
"budget_signal": "$12k approved under the engagement line.",
"timeline_signal": "Running before the January all-hands; year not stated.",
"competitor_mentioned": [
{
"name": "Nectar",
"context": "Currently mid-pilot; the prospect says this offering must beat that experience."
}
],
"next_step": "Present to the executive team on October 2, explicitly accepted by Prospect (HR Director); year not stated.",
"objections": [
"Must beat the current Nectar pilot experience.",
"Executive team is skeptical after a failed rollout two years ago."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements; next step explicitly accepted."
}
},
{
"transcript_id": "TX-006",
"deal_alias": "Deal-EE195F",
"why_buys": [
"Cut administration time on service awards."
],
"pain_points": [
"Prospect (HR Manager) personally spends five hours a month ordering and shipping plaques."
],
"stakeholders": [
"Prospect (HR Manager)"
],
"budget_signal": "“Budget isn't the issue — time is.” No amount or approval stated.",
"timeline_signal": "Fiscal year resets in February; prospect says a Q1 start is realistic. Year and Q1 calendar basis not stated.",
"competitor_mentioned": [
{
"name": null,
"context": "No external vendor: prospect is comparing against doing it internally."
}
],
"next_step": "Send the one-page overview; Prospect (HR Manager) agreed to forward it to the COO this week.",
"objections": [
"COO usually prefers building things in-house."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements; internal alternative explicitly raised; next step explicitly accepted."
}
}
]
Best-supported ranking from the CRM and September 4 Slack thread; no later signature confirmations are provided. 1. Deal-547B2B — $11,200 Why close: CRM shows DS5/COMMIT. Slack says redlines returned clean, the signing page is out, and VP People said they would sign “tomorrow.” Strongest explicit signature signal. What is left: Customer signature and confirmation it was received; the stated signing expectation is not proof of completion. 2. Deal-403845 — $9,000 Why close: CRM shows DS5/COMMIT; Slack confirms the order form is with finance and the deal is “moving fine.” What is left: Finance processing/approval and signature; neither is confirmed. Ownership needs reconciliation: CRM lists Alex Franklin, but Dana Mercer reports the update. 3. Deal-A2B47C — $6,360 Why close: CRM shows DS5/COMMIT with a September 11 close date; Slack confirms it remains warm and is progressing through normal legal review. Provisional third: Deal-D348E1 has the same Slack status but a later CRM close date. What is left: Complete legal review and obtain signature; no signing commitment is provided. Deal-2465CE is excluded despite CRM COMMIT: Slack reports champion departure, a procurement freeze, and a realistic Q4 timeline. Deal-B7EBD1 has no Slack confirmation of readiness. Amounts are directly reported in next_close_deals.csv; no arithmetic is required.
Deal amounts and deal statuses are not provided. Active-deal status cannot be verified, and affected revenue cannot be calculated. Candidate assessment • Deal-EC3025 — Real gap. Amount: not provided. Prospect: “We need SCIM user provisioning — our security team will not approve any tool that requires manual account management.” Evidence: TG-001; product_docs.md explicitly states SCIM user provisioning is not currently listed as supported. • Deal-D0D6B5 — Real gap. Amount: not provided. Prospect: “Our payroll runs on ADP Workforce Now and I don't see ADP anywhere in your integration list — that's a dealbreaker for us.” Evidence: TG-002; product_docs.md explicitly states ADP Workforce Now is not currently listed as supported. • Deal-CFE7F4 — Plan gate. Amount: not provided. Prospect: “I tried to build a custom report combining recognition frequency with turnover and couldn't — is that possible on our current plan?” Evidence: TG-003; product_docs.md lists the custom report builder as Enterprise-only. The prospect’s current plan and support for this specific report combination are not provided. • Deal-84DBA6 — Rollout/enablement issue. Amount: not provided. Prospect: “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.” Evidence: TG-004; product_docs.md lists Slack integration on all plans. The prospect describes missing training, not missing functionality. • Deal-36C33F — Excluded: no prospect-raised gap. Amount: not provided. Prospect: “Good to know. The web version should be fine for our office staff for now.” Evidence: TG-005; the native-mobile-app claim comes from Alex Franklin, not the prospect. product_docs.md does not establish native mobile availability, so no gap classification is supported. Real-gap summary • SCIM user provisioning — Deal-EC3025: security approval blocker; amount missing. • ADP Workforce Now integration — Deal-D0D6B5: prospect-described dealbreaker; amount missing. Affected amount = amount for Deal-EC3025 + amount for Deal-D0D6B5 = unavailable because both amounts are missing.
As of 2026-09-05, stale means last logged contact was more than 7 days ago: before 2026-08-29. Last contact = latest nonblank last_email, last_call, or last_meeting on or before the snapshot date. Future-dated engagements are excluded; last_contacted_field is not used. Amounts are in the supplied units; currency was not specified. Bryce Harmon Deal alias | Stage | Amount | Days since last contact: snapshot − last contact Deal-2D1F1B | DS1 | 240,000.00 | 2026-09-05 − 2026-06-16 = 81 Deal-66D1FC | DS1 | 99,000.00 | 2026-09-05 − 2026-08-20 = 16 Deal-950043 | DS1 | 70,000.00 | 2026-09-05 − 2026-08-17 = 19 Deal-B23205 | DS1 | 45,000.00 | 2026-09-05 − 2026-08-20 = 16 Deal-7BBDFA | DS3 | 37,440.00 | 2026-09-05 − 2026-07-21 = 46 Deal-332637 | DS2 | 36,000.00 | 2026-09-05 − 2026-08-27 = 9 Deal-1BEEBF | DS1 | 31,500.00 | 2026-09-05 − 2026-08-17 = 19 Deal-A414F6 | DS1 | 25,200.00 | 2026-09-05 − 2026-08-17 = 19 Deal-C5658B | DS1 | 23,400.00 | 2026-09-05 − 2026-08-20 = 16 Deal-40522D | DS3 | 21,000.00 | 2026-09-05 − 2026-08-17 = 19 Deal-C1FA6D | DS1 | 18,000.00 | 2026-09-05 − 2026-08-20 = 16 Deal-01E193 | DS1 | 12,600.00 | 2026-09-05 − 2026-08-28 = 8 Deal-F0EBBB | DS3 | 11,400.00 | 2026-09-05 − 2026-08-12 = 24 Deal-927338 | DS1 | 10,920.00 | 2026-09-05 − 2026-08-18 = 18 Deal-E25A09 | DS1 | 6,000.00 | 2026-09-05 − 2026-08-27 = 9 Deal-C9C286 | DS2 | 5,502.00 | 2026-09-05 − 2026-08-27 = 9 Deal-012CB1 | DS1 | 1.00 | 2026-09-05 − 2026-08-13 = 23 Deal-3795AD | DS2 | 1.00 | 2026-09-05 − 2026-08-28 = 8 Dana Mercer Deal alias | Stage | Amount | Days since last contact: snapshot − last contact Deal-44EA29 | DS2 | 60,000.00 | 2026-09-05 − 2026-08-26 = 10 Deal-E51FB7 | DS2 | 43,875.00 | 2026-09-05 − 2026-08-24 = 12 Deal-B42F46 | DS1 | 27,000.00 | 2026-09-05 − 2026-08-17 = 19 Deal-BA3DDC | DS3 | 23,400.00 | 2026-09-05 − 2026-08-21 = 15 Deal-9DDE86 | DS2 | 20,000.00 | 2026-09-05 − 2026-08-21 = 15 Deal-215CCA | DS3 | 18,900.00 | 2026-09-05 − 2026-08-19 = 17 Deal-5EED42 | DS3 | 16,250.00 | 2026-09-05 − 2026-08-25 = 11 Deal-57887A | DS2 | 15,000.00 | 2026-09-05 − 2026-08-28 = 8 Deal-944310 | DS4 | 10,500.00 | 2026-09-05 − 2026-08-03 = 33 Deal-3974EB | DS4 | 9,000.00 | 2026-09-05 − 2026-08-28 = 8 Deal-B7EBD1 | DS5 | 9,000.00 | 2026-09-05 − 2026-08-20 = 16 Deal-F40F04 | DS2 | 8,100.00 | 2026-09-05 − 2026-08-21 = 15 Deal-7599B8 | DS3 | 7,350.00 | 2026-09-05 − 2026-08-18 = 18 Deal-87DDD1 | DS1 | 5,000.00 | 2026-09-05 − 2026-08-17 = 19 Deal-F336B6 | DS3 | 4,200.00 | 2026-09-05 − 2026-08-21 = 15 Deal-0660B4 | DS4 | 1,920.00 | 2026-09-05 − 2026-08-20 = 16 Alex Franklin Deal alias | Stage | Amount | Days since last contact: snapshot − last contact Deal-CC08D1 | DS1 | 24,000.00 | 2026-09-05 − 2026-08-20 = 16 Deal-E73427 | DS3 | 18,000.00 | 2026-09-05 − 2026-08-26 = 10 Deal-885F45 | DS2 | 9,300.00 | 2026-09-05 − 2026-08-24 = 12 Deal-C2FF3C | DS1 | 8,316.00 | 2026-09-05 − 2026-08-26 = 10 Deal-0D2F7A | DS3 | 5,100.00 | 2026-09-05 − 2026-08-24 = 12 Deal-6C60D4 | DS3 | 4,800.00 | 2026-09-05 − 2026-08-24 = 12 Deal-13FEBD | DS2 | 4,680.00 | 2026-09-05 − 2026-08-24 = 12 Deal-819506 | DS1 | 4,400.00 | 2026-09-05 − 2026-08-28 = 8 Deal-9D0060 | DS3 | 3,840.00 | 2026-09-05 − 2026-08-24 = 12 Deal-690476 | DS2 | 3,600.00 | 2026-09-05 − 2026-08-18 = 18 Deal-C6D97A | DS4 | 3,240.00 | 2026-09-05 − 2026-08-28 = 8 Deal-EE195F | DS3 | 3,120.00 | 2026-09-05 − 2026-08-28 = 8 Deal-278DEC | DS3 | 2,700.00 | 2026-09-05 − 2026-08-28 = 8 Deal-635B8E | DS3 | 2,600.00 | 2026-09-05 − 2026-08-18 = 18 Deal-6883F3 | DS1 | 2,400.00 | 2026-09-05 − 2026-08-20 = 16 Deal-4A13AD | DS3 | 2,160.00 | 2026-09-05 − 2026-08-10 = 26 Deal-F67D31 | DS2 | 1,800.00 | 2026-09-05 − 2026-08-28 = 8 Deal-5FDCE4 | DS3 | 1,600.00 | 2026-09-05 − 2026-08-24 = 12 Deal-BA571A | DS4 | 1,080.00 | 2026-09-05 − 2026-08-18 = 18 Cole Ingram Deal alias | Stage | Amount | Days since last contact: snapshot − last contact Deal-D04904 | DS2 | 58,529.25 | 2026-09-05 − 2026-08-25 = 11 Deal-B25F40 | DS3 | 40,000.00 | 2026-09-05 − 2026-08-28 = 8 Deal-813836 | DS2 | 32,175.00 | 2026-09-05 − 2026-08-25 = 11 Deal-1BA595 | DS2 | 31,750.00 | 2026-09-05 − 2026-08-25 = 11 Deal-CFE1E8 | DS3 | 18,000.00 | 2026-09-05 − 2026-08-25 = 11 Deal-CD47A6 | DS2 | 12,168.00 | 2026-09-05 − 2026-08-25 = 11 Deal-627646 | DS3 | 11,193.00 | 2026-09-05 − 2026-08-25 = 11 Deal-FF809F | DS2 | 7,781.20 | 2026-09-05 − 2026-08-25 = 11 Deal-AF932D | DS2 | 7,225.40 | 2026-09-05 − 2026-08-25 = 11 Deal-A71728 | DS2 | 6,947.50 | 2026-09-05 − 2026-08-25 = 11 Deal-8BC9F5 | DS2 | 5,616.00 | 2026-09-05 − 2026-08-26 = 10 Deal-175395 | DS3 | 4,779.88 | 2026-09-05 − 2026-08-25 = 11 Deal-481E24 | DS3 | 4,140.00 | 2026-09-05 − 2026-08-26 = 10 Deal-C7F9BF | DS2 | 3,360.00 | 2026-09-05 − 2026-08-25 = 11 Deal-2F3A66 | DS3 | 3,334.80 | 2026-09-05 − 2026-08-25 = 11 Deal-342E96 | DS2 | 2,700.00 | 2026-09-05 − 2026-08-12 = 24 Deal-E568D5 | DS3 | 1,875.00 | 2026-09-05 − 2026-08-25 = 11 Deal-FD9F4E | DS5 | 1,330.00 | 2026-09-05 − 2026-08-26 = 10 Farid Osman Deal alias | Stage | Amount | Days since last contact: snapshot − last contact Deal-8BA24E | DS1 | 2,880.00 | 2026-09-05 − 2026-08-28 = 8 Deal-8FDCD2 | DS1 | 1.00 | 2026-09-05 − 2026-08-21 = 15 Missing engagement data — recency and stale status cannot be determined These deals have no row in engagements_by_deal_90d.csv. They are not included in the confirmed-stale totals. Owner | Deal alias | Stage | Amount | Days since last contact Alex Franklin | Deal-3EED2C | DS2 | 7,200.00 | Unknown Elena Sinclair | Deal-57FF13 | DS1 | 2,100.00 | Unknown Per-owner stale totals Count = number of listed stale deals; total stale amount = sum of that owner's listed amounts. Owner | Confirmed stale deals | Total stale amount Bryce Harmon | 18 | 692,964.00 Dana Mercer | 16 | 279,495.00 Alex Franklin | 19 | 106,736.00 Cole Ingram | 18 | 252,905.03 Farid Osman | 2 | 2,881.00 Elena Sinclair | 0 confirmed | 0.00 confirmed Amount arithmetic: Bryce Harmon: 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.00 Dana Mercer: 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.00 Alex Franklin: 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.00 Cole Ingram: 58,529.25 + 40,000 + 32,175 + 31,750 + 18,000 + 12,168 + 11,193 + 7,781.20 + 7,225.40 + 6,947.50 + 5,616 + 4,779.88 + 4,140 + 3,360 + 3,334.80 + 2,700 + 1,875 + 1,330 = 252,905.03 Farid Osman: 2,880 + 1 = 2,881.00
Window: 2026-08-06 through 2026-09-05, inclusive (snapshot minus 30 days through snapshot). Activities use the supplied emails_30d, calls_30d, and meetings_30d columns, joined to owners by deal_id. DS2 entries count qualifying t_ds2 dates regardless of current stage. Activity share = activity-type total ÷ total activities × 100. Efficiency = total activities ÷ DS2 entries; lower ranks better. | Rank | Rep | Emails | Calls | Meetings | Total activities: arithmetic | Activity mix: email / call / meeting | DS2 entries | Activities per DS2: arithmetic | |---:|---|---:|---:|---:|---|---|---:|---| | 1* | Alex Franklin | 307 | 36 | 41 | 307 + 36 + 41 = 384 | 79.95% / 9.38% / 10.68% | 18 | 384 ÷ 18 = 21.33 | | 2 | Bryce Harmon | 162 | 0 | 43 | 162 + 0 + 43 = 205 | 79.02% / 0.00% / 20.98% | 4 | 205 ÷ 4 = 51.25 | | 3 | Cole Ingram | 96 | 14 | 1 | 96 + 14 + 1 = 111 | 86.49% / 12.61% / 0.90% | 2 | 111 ÷ 2 = 55.50 | | 4 | Farid Osman | 38 | 0 | 34 | 38 + 0 + 34 = 72 | 52.78% / 0.00% / 47.22% | 1 | 72 ÷ 1 = 72.00 | | 5 | Dana Mercer | 84 | 18 | 11 | 84 + 18 + 11 = 113 | 74.34% / 15.93% / 9.73% | 1 | 113 ÷ 1 = 113.00 | | — | Elena Sinclair | Missing | Missing | Missing | Unknown | N/A | 0 | Undefined | | — | Gavin Porter (archived) | Missing | Missing | Missing | Unknown | N/A | 0 | Undefined | | — | Hugo Lindqvist (archived) | Missing | Missing | Missing | Unknown | N/A | 0 | Undefined | *Alex Franklin’s Deal-3EED2C entered DS2 on 2026-09-03 but has no engagements row. His activity totals and ranking therefore reflect recorded activity only; missing activity is not assumed to be zero. Elena Sinclair’s Deal-57FF13 also lacks an engagements row. Neither archived owner has deals or attributable engagements in the supplied data. Most efficient on recorded activity: Alex Franklin, at 21.33 activities per DS2 entry. Highest recorded activity volume: Alex Franklin, with 384 activities. They do not differ.
Alex Franklin — QTD scorecard as of 2026-09-05 Quarter to date: 2026-07-01–2026-09-05. Excluded throughout: Deal-B3E6F1, closed-won 2026-06-20 for $24,000, including its activity row. Bookings vs quota - New: Deal-A1C3E5 $40,000 + Deal-B7D2F4 $35,000 + Deal-C9E1A6 $21,000 + Deal-D4B8C2 $11,000 + Deal-E6F3A9 $6,500 = $113,500 across 5 wins. - Expansion: Deal-F2C7D8 $20,000 + Deal-A8B4D6 $12,000 + Deal-C5D9E2 $4,500 = $36,500 across 3 wins. - Total bookings: $113,500 + $36,500 = $150,000. - Quota: $200,000; attainment = $150,000 ÷ $200,000 = 75.0%. - Remaining quota: $200,000 − $150,000 = $50,000. - Booking mix: new = $113,500 ÷ $150,000 = 75.7%; expansion = $36,500 ÷ $150,000 = 24.3%. Active pipeline All supplied open deals, including close dates beyond Q3; amounts are unweighted. Stage Deals Amount DS1 20 $284,621 DS2 28 $353,760 DS3 67 $552,705 DS4 5 $23,574 DS5 5 $45,730 Total 125 $1,260,390 Amount reconciliation: $284,621 + $353,760 + $552,705 + $23,574 + $45,730 = $1,260,390. Of this, 22 open deals totaling $109,363 have Q3 close dates. Rolling 90-day DS2-to-won rate Window: 2026-06-08–2026-09-05, inclusive. Using deals that entered DS2 in this window: - 8 won + 27 lost + 76 still open = 111 deals. - DS2-to-won conversion as of the snapshot = 8 ÷ 111 = 7.2%. - For comparison, excluding unresolved deals gives a closed-outcome win rate of 8 ÷ (8 + 27) = 22.9%; this is not the full-cohort conversion rate. QTD wins and losses - Wins: 8. - Losses: 27. - Top loss reason by count: “Lost- Timing (1 year or more)” — 13 ÷ 27 = 48.1% of losses, totaling $184,681. Activity volume — last 30 days Using the supplied _30d fields as the snapshot’s 2026-08-07–2026-09-05 window. Individual activity timestamps were not provided. Type Lost deals + Open deals + QTD wins = Total Emails 109 + 599 + 89 = 797 Calls 25 + 54 + 31 = 110 Meetings 13 + 90 + 23 = 126 Notes 25 + 1 + 21 = 47 Total: 797 + 110 + 126 + 47 = 1,080 recorded activities. Three coaching observations 1. Focus on the $50,000 quota gap: Q3-dated open pipeline is $109,363 ÷ $50,000 = 2.19× the gap, not guaranteed bookings. Revalidate close dates and next steps, starting with Deal-7A2454: $1,275 remains open despite a 2026-09-04 close date. 2. Tighten timing qualification: 13 of 27 losses (48.1%), representing $184,681, cite “Lost- Timing (1 year or more).” Confirm a buyer-owned implementation date before advancing opportunities. 3. Validate late-stage buyer engagement: Deal-547B2B ($11,200) and Deal-A2B47C ($6,360) are DS5 with 2026-09-11 close dates, but each has zero recorded calls and meetings in the last 30 days. Secure live next steps for this $11,200 + $6,360 = $17,560 of pipeline.
Assuming an as-of date of 2026-09-13: 2026-09-13 − 60 days = 2026-07-15. Active contacts must have engaged on or after that cutoff and not be former.
Missing for every deal: amount, stage, and open/closed status. Therefore, these are threading flags among the supplied deals—not a verified list of open deals. The most valuable persona to add given stage cannot be determined for any deal. Contacts below fit missing personas; they are not stage-ranked recommendations.
Flagged: 5 single-threaded + 6 additional under-threaded = 11 deals. Single-threaded deals also meet the under-threaded definition.
Active-count arithmetic: listed contacts − former contacts − stale non-former contacts.
1. Deal-EC3025 — C-FDD0C7
Flag: single-threaded.
Active: 2 − 1 − 0 = 1.
Present: champion.
Missing: economic buyer, HR admin, IT security, finance.
On-file unengaged fit: CT-6827DB — Chief People Officer, economic buyer.
2. Deal-92D97D — C-E23238
Flag: single-threaded.
Active: 2 − 0 − 1 = 1.
Present: HR admin.
Missing: economic buyer, champion, IT security, finance.
On-file fit: CT-A902AE — Head of Employee Experience, champion; dormant contact in deal_contacts.csv, last engaged 2026-06-01. None in unengaged_contacts.csv.
3. Deal-50D386 — C-EB10E4
Flag: under-threaded; fewer than 3 active contacts.
Active: 2 − 0 − 0 = 2.
Present: champion, HR admin.
Missing: economic buyer, IT security, finance.
On-file unengaged fit: CT-A1C4B3 — Chief People Officer, economic buyer.
4. Deal-D0D6B5 — C-32918E
Flag: under-threaded; all active contacts in one persona.
Active: 3 − 0 − 0 = 3.
Present: champion.
Missing: economic buyer, HR admin, IT security, finance.
On-file unengaged fit: CT-1FA4DB — Chief People Officer, economic buyer.
5. Deal-5BFE3B — C-535D36
Flag: under-threaded; fewer than 3 active contacts and one persona.
Active: 2 − 0 − 0 = 2.
Present: champion.
Missing: economic buyer, HR admin, IT security, finance.
On-file unengaged fit: none on file.
6. Deal-36C33F — C-077A0E
Flag: single-threaded.
Active: 3 − 2 − 0 = 1.
Present: IT security.
Missing: economic buyer, champion, HR admin, finance.
On-file unengaged fit: CT-1DB73E — Chief People Officer, economic buyer. Former contacts excluded.
7. Deal-885F45 — C-5E8EFB
Flag: under-threaded; fewer than 3 active contacts.
Active: 2 − 0 − 0 = 2.
Present: economic buyer, champion.
Missing: HR admin, IT security, finance.
On-file unengaged fit: CT-B3F25D — IT Security Lead, IT security.
8. Deal-FCBE5B — C-737030
Flag: single-threaded.
Active: 1 − 0 − 0 = 1.
Present: champion.
Missing: economic buyer, HR admin, IT security, finance.
On-file unengaged fit: none on file.
9. Deal-5408B0 — C-2AE3AA
Flag: under-threaded; fewer than 3 active contacts.
Active: 2 − 0 − 0 = 2.
Present: champion, HR admin.
Missing: economic buyer, IT security, finance.
On-file unengaged fit: CT-07FA76 — Chief People Officer, economic buyer.
10. Deal-C6D97A — C-5A8FC2
Flag: under-threaded; all active contacts in one persona.
Active: 3 − 0 − 0 = 3.
Present: champion.
Missing: economic buyer, HR admin, IT security, finance.
On-file unengaged fit: none on file.
11. Deal-F9A08A — C-0D15DF
Flag: single-threaded.
Active: 2 − 0 − 1 = 1.
Present: champion.
Missing: economic buyer, HR admin, IT security, finance.
On-file unengaged fit: CT-697541 — Chief People Officer, economic buyer. Also available for re-engagement: CT-913581 — Chief People Officer, economic buyer; last engaged 2026-06-20.
First five minutes Alex Franklin leads with a customer-outcome story in 8 ÷ 10 = 80% of calls: a retailer’s claimed 18% reduction in regretted turnover after automating milestone awards. These are rep-stated results, not independently verified data. - Calls: Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-EDC141, Deal-D9A12F, Deal-84DBA6; all at minute 0. - Exceptions: Deal-403845 opens with security review then pricing; Deal-1E2498 opens with pricing at the prospect’s prior request. Each is 1 ÷ 10 = 10%. - Early competitive positioning: he introduces Workhuman at minute 2 in Deal-C61CF7. In Deal-547B2B and Deal-EDC141, prospects introduce competitors at minute 4; he responds at minute 5. Three most common objections and his handling 1. Budget/approval constraints: 5 ÷ 10 = 50% of calls when committee blockers are included. Explicit locked-budget objections occur in 4 ÷ 10 = 40%: Deal-D348E1, Deal-547B2B, Deal-60C2C2, Deal-84DBA6. Deal-403845 adds a budget-committee blocker; Deal-84DBA6 also mentions committee approval but is counted only once. He counters locked budgets with turnover savings and the retailer’s claimed avoided-backfill savings: “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.” — Deal-D348E1, minute 8. When committee approval blocks progress in Deal-403845 and Deal-84DBA6, he acknowledges it without securing a follow-up. 2. Timing/workload: 3 ÷ 10 = 30% — Deal-5408B0, Deal-C61CF7, Deal-D9A12F. He acknowledges open-enrollment workload and proposes a smaller pilot to generate internal evidence: “Makes sense. What if we scope a 90-day pilot with one department so you have internal data before next quarter's planning?” — Deal-5408B0, minute 8. All three agree to a working session; the transcripts do not establish agreement to run the pilot. 3. Status quo/no reason to change: 3 ÷ 10 = 30% — Deal-403845, Deal-EDC141, Deal-1E2498. He contrasts spreadsheets and gift cards with automation and recognition 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.” — Deal-403845, minute 8. He does not visibly explore the prospect’s current administrative burden or quantify its impact. Deal-EDC141 later states there is no urgency; he accepts that without further discovery. Concrete next-step agreement rate Counting an explicit prospect agreement to a specific activity and time: 7 ÷ 10 × 100 = 70%. - Agreed: Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-D9A12F, Deal-1E2498. Each agrees to a working session Thursday at 2pm and to bring the HRIS manager. - Evidence: “Yes, Thursday at 2pm works — send the invite and I'll bring our HRIS manager.” — Deal-D348E1, minute 15. - No concrete next step agreed: Deal-403845, Deal-EDC141, Deal-84DBA6. - The transcripts do not confirm that invitations were sent or sessions occurred. Every competitor raised by a prospect - Awardco — Deal-547B2B, minute 4: “We're also in late talks with Awardco — their rewards catalog looks bigger than yours.” - Kudos — Deal-EDC141, minute 4: “How are you different from Kudos? Our CEO used them at her last company.” Workhuman is excluded: Alex Franklin, not the prospect, introduces it in Deal-C61CF7. Two coaching notes 1. Follow the outcome story with prospect-specific discovery. Before repeating savings or automation claims, establish the prospect’s turnover costs, manual recognition workload, and reason to change—especially in Deal-403845 and Deal-EDC141. 2. Replace passive acceptance of committee or urgency blockers with a mutually agreed follow-up tied to the decision process: identify the decision owner, required evidence, and review date. Apply this to Deal-403845, Deal-EDC141, and Deal-84DBA6.
## Q3 2026 forecast Source: provided deals.csv; close dates included from 2026-07-01 through 2026-09-30. Amounts are in the extract’s unspecified currency. | Category | Q3 deal count | Q3 total | Weight | Forecast contribution | |---|---:|---:|---:|---:| | COMMIT | 7 | 44,729.00 | 100% | 44,729.00 | | BEST_CASE | 24 | 203,565.00 | 35% | 71,247.75 | | PIPELINE | 23 | 201,637.40 | 0% | 0.00 | COMMIT arithmetic: 11,200 + 9,000 + 9,000 + 6,360 + 5,400 + 2,520 + 1,249 = 44,729. BEST_CASE 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 = (100% × 44,729) + (35% × 203,565) + (0% × 201,637.40) = 44,729 + 71,247.75 + 0 = **115,976.75**. Included deal count = 7 + 24 + 23 = 54. ## Excluded: outside Q3 32 deals totaling 227,575.00, all with October close dates. Count arithmetic: 1 COMMIT + 9 BEST_CASE + 22 PIPELINE = 32. Amount arithmetic: 13,770 COMMIT + 28,240 BEST_CASE + 185,565 PIPELINE = 227,575. | Deal | Close date | Amount | |---|---|---:| | Deal-E51FB7 | 2026-10-01 | 43,875 | | Deal-B936FE | 2026-10-09 | 18,000 | | Deal-D9A12F | 2026-10-15 | 17,000 | | Deal-D348E1 | 2026-10-15 | 13,770 | | Deal-4062CF | 2026-10-15 | 10,800 | | Deal-293AF3 | 2026-10-09 | 9,000 | | Deal-034D49 | 2026-10-15 | 9,000 | | Deal-E0ADD8 | 2026-10-15 | 7,920 | | Deal-9F2E43 | 2026-10-08 | 7,690 | | Deal-FCBE5B | 2026-10-07 | 7,500 | | Deal-712010 | 2026-10-15 | 7,200 | | Deal-6691E0 | 2026-10-15 | 5,700 | | Deal-C61CF7 | 2026-10-09 | 5,400 | | Deal-600CD9 | 2026-10-02 | 5,400 | | Deal-A92065 | 2026-10-15 | 5,400 | | Deal-1D532E | 2026-10-15 | 5,400 | | Deal-48B656 | 2026-10-15 | 5,160 | | Deal-E531A6 | 2026-10-15 | 4,800 | | Deal-D1E6C2 | 2026-10-09 | 4,400 | | Deal-D9E112 | 2026-10-09 | 4,300 | | Deal-5AD94B | 2026-10-15 | 4,000 | | Deal-901332 | 2026-10-15 | 3,600 | | Deal-47AE31 | 2026-10-09 | 3,600 | | Deal-15D24F | 2026-10-09 | 3,600 | | Deal-766C74 | 2026-10-14 | 3,300 | | Deal-ED725A | 2026-10-08 | 2,400 | | Deal-8AD4A5 | 2026-10-07 | 1,800 | | Deal-D7E999 | 2026-10-15 | 1,800 | | Deal-ED13B0 | 2026-10-09 | 1,680 | | Deal-5FDCE4 | 2026-10-01 | 1,600 | | Deal-7FA0C3 | 2026-10-01 | 1,400 | | Deal-F5A622 | 2026-10-08 | 1,080 | ## Top 5 BEST_CASE deals inside Q3 | Rank | Deal | Amount | Close date | |---|---|---:|---| | 1 | Deal-2D7423 | 38,935 | 2026-09-30 | | 2 | Deal-25F752 | 24,000 | 2026-09-25 | | 3 | Deal-E53952 | 19,656 | 2026-09-30 | | 4 | Deal-5EED42 | 16,250 | 2026-09-30 | | 5 | Deal-FA32A0 | 11,116 | 2026-09-25 | ## Data quality Owner is blank on 85 of 86 deals; only Deal-C9C286 has an owner, limiting accountability and validation. 71 deals have why_buys_chars = 0, including all five largest Q3 BEST_CASE deals, leaving no recorded why-buys support. Deal-A5E80A is DS1/COMMIT and Deal-499BF6 is DS2/COMMIT—early-stage commitments requiring validation, although both remain included under the stated category rule. Deal-333EBB (2026-08-28), Deal-57FF13 (2026-09-02), Deal-31AD2C (2026-09-04), and Deal-7A2454 (2026-09-04) remain open with close dates preceding the 2026-09-05 extraction date, indicating stale close dates or statuses.
Using current_status = 'active' as retained at 24 months: | First-calendar-month signals | Cohort size | Retained | 24-month retention | |---|---:|---:|---:| | Both: m1_users ≥ 5 AND m1_redemptions ≥ 1 | 47 | 31 | 31 ÷ 47 = 65.96% | | Givers-only: m1_users ≥ 5 AND m1_redemptions = 0 | 49 | 23 | 23 ÷ 49 = 46.94% | | Redemption-only: m1_users < 5 AND m1_redemptions ≥ 1 | 29 | 9 | 9 ÷ 29 = 31.03% | | Neither: m1_users < 5 AND m1_redemptions = 0 | 95 | 38 | 38 ÷ 95 = 40.00% | Denominator: 47 + 49 + 29 + 95 = 220 companies. Excluded: 0. All are 25+ months old and have the required signal and status fields. Cancelled and non_renewing companies remain in the denominator but are not counted as retained; missing industry/country values do not affect eligibility. Largest single-signal lift: 5+ unique givers. Comparing each single-signal-only group with neither: - Givers-only: 46.94% − 40.00% = +6.94 percentage points. - Redemption-only: 31.03% − 40.00% = −8.97 percentage points. Conclusion: The hypothesis is supported descriptively in this extract. Both signals have the highest retention: +19.02 percentage points versus givers-only, +34.92 versus redemption-only, and +25.96 versus neither. This demonstrates an observed association, not causation. It does not prove that driving companies across these thresholds will improve retention, that these thresholds are optimal, or that the result generalizes beyond this cohort. Confounding has not been controlled for, and statistical significance has not been established.
ARR reconciliation — 2026-09-05 Basis: Treat supplied statuses as the as-of snapshot; effective-date history was not provided. Active billing ARR = MRR × 12; cancelled subscriptions contribute zero. Currency is unspecified. Variance = CRM − billing. Totals - CRM ARR: sum of hubspot_arr = 603,581.76 - Billing ARR: active MRR 50,394.94 × 12 = 604,739.28 - Variance: 603,581.76 − 604,739.28 = −1,157.52 Variance decomposition | Bucket | Arithmetic | Variance | |---|---|---:| | Status mismatch | 4,905.24 + 8,253.24 | +13,158.48 | | Rounding (provisional) | 16.00 + 20.00 | +36.00 | | Missing records | 16,497.24 − 28,449.24 | −11,952.00 | | Other | 24,396.00 − 26,796.00 | −2,400.00 | | Total | 13,158.48 + 36.00 − 11,952.00 − 2,400.00 | −1,157.52 | Rounding is a provisional classification: both CRM values match billing ARR rounded to the nearest hundred, but no rounding policy was provided. Mismatched accounts | Company alias | CRM ARR | Billing ARR arithmetic | CRM − billing | Issue | Suggested owner | |---|---:|---|---:|---|---| | C-0C8323BF | 4,905.24 | Cancelled → 0.00 | +4,905.24 | CRM retains ARR for cancelled subscription | RevOps + Billing Ops | | C-0DC4FB8C | 8,253.24 | Cancelled → 0.00 | +8,253.24 | CRM retains ARR for cancelled subscription | RevOps + Billing Ops | | C-0D66DF9E | 23,200.00 | 1,932.00 × 12 = 23,184.00 | +16.00 | Apparent rounding; verify policy | RevOps | | C-14D70CE0 | 18,200.00 | 1,515.00 × 12 = 18,180.00 | +20.00 | Apparent rounding; verify policy | RevOps | | C-0D5BBE3A | 16,497.24 | No billing record supplied | +16,497.24 | CRM-only record | Billing Ops + RevOps | | C-21629AA4 | Missing | 2,370.77 × 12 = 28,449.24 | −28,449.24 | Billing-only record | RevOps | | C-0F7269D7 | 24,396.00 | 2,233.00 × 12 = 26,796.00 | −2,400.00 | Unexplained ARR difference | Finance + RevOps | Missing records contribute zero on the absent side solely for reconciliation; this does not establish that actual ARR is zero. Owners are suggested roles, not provided assignments. Agreement-end-date violations | Subscription | Company alias | Term months | Violation | |---|---|---:|---| | SUB-0002 | C-1794A52C | 24 | cf_agreement_end_date is blank | | SUB-0019 | C-22170CA1 | 36 | cf_agreement_end_date is blank |
Values are unweighted means across the same 30 companies; user counts are missing, so user-weighted KVMs cannot be calculated. Source: kvm_monthly.csv. | KVM | 2026-08 | 2026-07 | Absolute change | Relative change | Direction | |---|---:|---:|---:|---:|---| | Giving rate | 60.2713% | 60.2297% | +0.0417 pp | +0.0692% | Up | | Redemptions per user | 1.730163 | 1.729983 | +0.000180 | +0.0104% | Up | | 1:1 meetings engagement | 44.7177% | 44.6887% | +0.0290 pp | +0.0649% | Up | | Pulse check engagement | 50.8610% | 60.0587% | −9.1977 pp | −15.3145% | Down | Arithmetic: mean = monthly sum ÷ 30; absolute change = August − July; relative change = absolute change ÷ July × 100. Percentage-point changes multiply raw-rate differences by 100. August/July sums: - Giving: 18.0814 / 18.0689. - Redemptions: 51.9049 / 51.8995. - 1:1: 13.4153 / 13.4066. - Pulse: 15.2583 / 18.0176. Pulse check engagement had the largest relative move. The enterprise size_band drives the decline: 54.998% → 27.428%, or −27.570 pp (−50.129%). Its contribution is (10 ÷ 30) × −27.570 = −9.190 pp, accounting for 99.917% of the net decline. All companies are tier_three, so plan_tier cannot distinguish the driver.
Redemptions — YTD through August 2026 Last completed month: 2026-08 (August). Reporting period: January 1–August 31, 2026. Source: supplied redemptions_ytd.csv. - Redemption count: 90 + 192 + 37 + 59 = 378 - Spend: $3,230 + $8,505 + $10,873 + $5,238 = $27,846 USD - Unique redeemers: 235 distinct user_key values across all providers - Redemptions per redeemer: 378 ÷ 235 = 1.61 Provider mix (% of spend): - TangoCard: $3,230 ÷ $27,846 × 100 = 11.60% - Tremendous: $8,505 ÷ $27,846 × 100 = 30.54% - custom: $10,873 ÷ $27,846 × 100 = 39.05% - Snappy: $5,238 ÷ $27,846 × 100 = 18.81% - Total: 11.60% + 30.54% + 39.05% + 18.81% = 100.00% Top 5 countries by redemption count: 1. US: 244 2. CA: 24 3. AU: 21 4. GB: 17 (tied) 4. NL: 17 (tied)
8 accounts qualify, with $224,601.00 in churn-save eligible amount at stake—not total ARR. Eligibility requires all three rules: health_score < 60 (R1), churn_save_eligible_amount > $0 (R2), and renewal within 120 days of 2026-09-05, through 2027-01-03 (R3). Days below = renewal_date − 2026-09-05. ### Qualifying accounts | Account | Health | Renewal (days away) | Eligible amount at stake | Recommended play and supporting signal | |---|---:|---|---:|---| | C-0F6C0F34 | 51 | 2026-10-03 (28) | $49,707.00 | Executive touch: champion_active=false despite growing usage. | | C-0B827671 | 56 | 2026-11-14 (70) | $25,365.00 | Usage revival: declining usage; seats used = 113 ÷ 202 = 55.9%. | | C-0B360C78 | 57 | 2026-10-28 (53) | $35,748.00 | Undetermined: usage is growing and champion is active. Low health establishes risk, but no commercial issue is provided to justify a concession. | | C-0B0F1BAB | 38 | 2026-09-23 (18) | $5,494.00 | Executive touch: champion_active=false, with flat usage and an imminent renewal. | | C-0CA21961 | 58 | 2026-12-28 (114) | $16,829.00 | Usage revival: flat usage and seats used = 84 ÷ 325 = 25.8%. | | C-0E9C27D1 | 39 | 2026-09-24 (19) | $41,235.00 | Undetermined: usage is flat, seats used = 134 ÷ 157 = 85.4%, and champion is active. No commercial issue is provided to justify a concession. | | C-0CEF69FD | 53 | 2026-11-21 (77) | $32,621.00 | Executive touch: champion_active=false despite growing usage. | | C-0D3278C7 | 54 | 2026-11-12 (68) | $17,602.00 | Usage revival: declining usage; seats used = 126 ÷ 380 = 33.2%. | Total arithmetic: $49,707 + $25,365 + $35,748 + $5,494 + $16,829 + $41,235 + $32,621 + $17,602 = $224,601.00. Play assignments are recommendations, not documented eligibility rules. No pricing objection, budget constraint, or other commercial signal is supplied for any account; commercial concession cannot be justified from these data alone. Eligible amounts are not documented concession sizes. ### At-risk accounts that do not qualify All below meet R1 but fail R2 and/or R3. | Account | Health | Eligible-amount field | Renewal (days away) | Disqualifying rule(s) | |---|---:|---:|---|---| | C-0BC71BDD | 55 | $0.00 | 2026-10-27 (52) | R2: amount is zero. | | C-0BA71F12 | 52 | $6,824.00 | 2027-04-11 (218) | R3: renewal exceeds 120 days. | | C-0F6694C3 | 43 | $0.00 | 2027-03-21 (197) | R2: amount is zero; R3: renewal exceeds 120 days. | | C-0BE96399 | 54 | $0.00 | 2026-10-29 (54) | R2: amount is zero. | | C-0F876796 | 47 | $19,958.00 | 2027-02-06 (154) | R3: renewal exceeds 120 days. | | C-0FCCD2DF | 43 | $0.00 | 2027-04-23 (230) | R2: amount is zero; R3: renewal exceeds 120 days. | | C-10A56B0F | 54 | $0.00 | 2026-12-12 (98) | R2: amount is zero. |
C-0DDFC9A7 Seat coverage: 150 licensed / 400 headcount × 100 = 37.5%. Usage health: - Monthly active users increased every month from March to August: 88 → 126; growth = (126 − 88) / 88 × 100 = 43.2%. - August utilization: 126 / 150 × 100 = 84%; 150 − 126 = 24 licensed seats not active that month. Expansion headroom: - Seats: 400 − 150 = 250 additional seats. - Current annual per-seat rate: $9,000 / 150 = $60. - Potential incremental ARR: 250 × $60 = $15,000, assuming full-headcount licensing at the current rate—not confirmed demand. Who replied: Maria S., People Operations Coordinator, on 2026-09-02. She explicitly cannot make purchasing decisions and offered an introduction. Right buyer: Dana R., VP People; Maria S. confirms she owns budget and seat expansion. Last engaged: 2026-05-18. Reply email Subject: RE: Growing your team's recognition program Hi Maria, Thanks for the context—glad the team is enjoying Bonusly. Monthly active users grew from 88 in March to 126 in August, so there’s a useful usage story to share with Dana R. If you’re still comfortable making an introduction, I’d appreciate it. I can send Dana a brief usage summary and current seat coverage to help her assess whether any changes would be useful. No need to decide on expansion now. Thanks for your help, Cole
C-0D284E42 — Mid-onboarding call prep Complete, supported by data: - Slack connected: integration_slack = 2026-08-12. - Allowance set: allowance_set = 2026-08-13. - Admins added: admins_added = 2. - First recognition given: first_recognition_at = 2026-08-15 14:22. Not confirmed complete: - HRIS connected: integration_hris is blank. - First redemption: first_redemption_at is blank. Blank fields indicate missing evidence, not proof these actions never occurred. Early engagement signals: - Daily active givers increased from 3 on 2026-08-11 to 15 on 2026-09-04: 15 − 3 = 12 more; 12 ÷ 3 × 100 = 400% growth. - First seven days averaged 30 ÷ 7 = 4.29 active givers/day; last seven days averaged 91 ÷ 7 = 13. - Employee count and unique-giver totals are missing, so adoption percentage and distinct participants cannot be determined. - Data discrepancy to clarify: active givers appear before the recorded first recognition on 2026-08-15. Three things to cover on the call: 1. Confirm HRIS connection status; identify any blocker and agree on an owner and next step. 2. Confirm whether a redemption has occurred; if not, walk through the redemption process and identify barriers. 3. Review rising giver activity and how to sustain it; clarify the active_givers definition versus the first-recognition timestamp and obtain employee count to assess adoption.
90-day renewal risk brief Scope: Assumed window September 1–November 29, 2026, using the latest usage month, August 2026, as the reporting cutoff; no as-of date was supplied. All 20 reconciled renewals fall within this window. ARR currency was not supplied. Date reconciliation Trust Chargebee for the five multi-year accounts below because ChurnZero is known to misstate multi-year renewal dates. Every disagreement is flagged: | Company | ChurnZero date rejected | Chargebee date used | Reason | |---|---|---|---| | C-0B7D2C30 | 2026-09-10 | 2026-09-15 | 36-month multi-year contract | | C-0BCDB8C2 | 2027-09-18 | 2026-09-18 | 36-month multi-year contract | | C-0D2AB865 | 2026-09-10 | 2026-09-22 | 24-month multi-year contract | | C-0BBE3E60 | 2027-09-26 | 2026-09-26 | 24-month multi-year contract | | C-0F5D2323 | 2026-09-10 | 2026-09-29 | 24-month multi-year contract | For every other account, use the shared date: Chargebee and ChurnZero agree, and the contract is 12 months. “Agreed” below identifies these accounts individually. Calculation and rating rules - Seat utilization = ChurnZero seats_used ÷ seats × 100. - Three-month trend shows June → July → August active users; percentage change = (August − June) ÷ June × 100. Example: C-0B7D2C30 = (84 − 97) ÷ 97 × 100 = −13.4%. - Analyst-defined risk rules, not supplied company policy: High if utilization is below 40% or usage declines at least 10%; otherwise Medium if utilization is below 70%; otherwise Low. - ARR at risk includes High + Medium, at full ARR—not probability-weighted expected loss. Renewal detail | Company | CSM | ARR | Date used / basis | Seat utilization | Jun → Jul → Aug; change | Risk — one-sentence evidence | |---|---|---:|---|---|---|---| | C-0B7D2C30 | Dana Mercer | 65,901 | 2026-09-15 / CB override | 274/476 = 57.6% | 97 → 94 → 84; −13.4% | High — Usage fell 13.4% while only 57.6% of seats were utilized. | | C-0BCDB8C2 | Cole Ingram | 54,427 | 2026-09-18 / CB override | 232/424 = 54.7% | 127 → 118 → 110; −13.4% | High — Usage fell 13.4% with 54.7% seat utilization. | | C-0D2AB865 | Elena Sinclair | 38,022 | 2026-09-22 / CB override | 250/407 = 61.4% | 125 → 117 → 109; −12.8% | High — Usage declined each month, falling 12.8% overall. | | C-0BBE3E60 | Dana Mercer | 30,993 | 2026-09-26 / CB override | 74/114 = 64.9% | 39 → 35 → 33; −15.4% | High — Usage fell 15.4% despite 64.9% seat utilization. | | C-0F5D2323 | Cole Ingram | 90,647 | 2026-09-29 / CB override | 111/390 = 28.5% | 20 → 21 → 18; −10.0% | High — Seat utilization is only 28.5%, and usage fell 10.0%. | | C-0EC6999D | Elena Sinclair | 79,419 | 2026-10-03 / Agreed | 31/112 = 27.7% | 17 → 16 → 15; −11.8% | High — Seat utilization is only 27.7%, and usage declined 11.8%. | | C-0B20DB64 | Dana Mercer | 21,770 | 2026-10-07 / Agreed | 214/378 = 56.6% | 294 → 298 → 294; 0.0% | Medium — Usage was flat overall, but seat utilization is only 56.6%. | | C-0BBC4E7A | Cole Ingram | 56,374 | 2026-10-10 / Agreed | 228/337 = 67.7% | 142 → 141 → 139; −2.1% | Medium — Seat utilization is 67.7%, with a modest 2.1% usage decline. | | C-0FD551AB | Elena Sinclair | 48,815 | 2026-10-14 / Agreed | 210/376 = 55.9% | 123 → 122 → 126; +2.4% | Medium — Usage grew 2.4%, but seat utilization remains 55.9%. | | C-0F9F8F13 | Dana Mercer | 46,230 | 2026-10-18 / Agreed | 199/352 = 56.5% | 185 → 185 → 182; −1.6% | Medium — Seat utilization is 56.5%, accompanied by a slight usage decline. | | C-0BC34584 | Cole Ingram | 16,740 | 2026-10-22 / Agreed | 327/494 = 66.2% | 104 → 104 → 106; +1.9% | Medium — Usage increased 1.9%, but seat utilization is below 70%. | | C-0B7A7546 | Elena Sinclair | 35,062 | 2026-10-25 / Agreed | 182/205 = 88.8% | 64 → 65 → 63; −1.6% | Low — Seat utilization is 88.8%, with only a 1.6% usage decline. | | C-0B369871 | Dana Mercer | 85,128 | 2026-10-29 / Agreed | 317/422 = 75.1% | 326 → 330 → 333; +2.1% | Low — Seat utilization is 75.1%, and usage rose each month. | | C-0B144C78 | Cole Ingram | 30,899 | 2026-11-02 / Agreed | 169/224 = 75.4% | 101 → 101 → 106; +5.0% | Low — Seat utilization is 75.4%, with 5.0% usage growth. | | C-0FC4DBB8 | Elena Sinclair | 94,732 | 2026-11-05 / Agreed | 356/464 = 76.7% | 189 → 191 → 193; +2.1% | Low — Seat utilization is 76.7%, and usage increased each month. | | C-0D5BBE3A | Dana Mercer | 39,740 | 2026-11-09 / Agreed | 85/102 = 83.3% | 88 → 90 → 91; +3.4% | Low — Seat utilization is 83.3%, with 3.4% usage growth. | | C-0FB9D5AF | Cole Ingram | 63,158 | 2026-11-13 / Agreed | 144/199 = 72.4% | 173 → 173 → 176; +1.7% | Low — Seat utilization exceeds 70%, and usage increased 1.7%. | | C-0B344485 | Elena Sinclair | 64,384 | 2026-11-16 / Agreed | 224/287 = 78.0% | 238 → 240 → 244; +2.5% | Low — Seat utilization is 78.0%, and usage grew each month. | | C-0CB2C1B4 | Dana Mercer | 40,628 | 2026-11-20 / Agreed | 386/473 = 81.6% | 47 → 48 → 49; +4.3% | Low — Reported seat utilization is 81.6% and usage grew 4.3%, although August active users were only 49 versus 386 seats_used. | | C-22170CA1 | Cole Ingram | 45,646 | 2026-11-24 / Agreed | 251/294 = 85.4% | 143 → 148 → 146; +2.1% | Low — Seat utilization is 85.4%, and August usage remained 2.1% above June. | Data limitations: seats_used has no snapshot date or definition linking it to monthly active users. August active users exceed seats_used for C-0B20DB64, C-0B369871, C-0D5BBE3A, C-0FB9D5AF, and C-0B344485; these measures cannot safely be treated as interchangeable. Ratings are usage-based screens, not confirmed renewal outcomes; customer intent and commercial health were not supplied. Sources: churnzero_renewals.csv for CSM, ARR and seats; chargebee_terms.csv for contract terms and reconciled dates; usage_12m.csv for active-user trends. ARR totals - High, 6 accounts: 65,901 + 54,427 + 38,022 + 30,993 + 90,647 + 79,419 = 359,409. - Medium, 5 accounts: 21,770 + 56,374 + 48,815 + 46,230 + 16,740 = 189,929. - Low, 9 accounts: 35,062 + 85,128 + 30,899 + 94,732 + 39,740 + 63,158 + 64,384 + 40,628 + 45,646 = 499,377. Total ARR renewing = 359,409 + 189,929 + 499,377 = 1,048,715. ARR at risk = 359,409 + 189,929 = 549,338, or 549,338 ÷ 1,048,715 × 100 = 52.4%.
Scope: supplied June–August 2026 tickets. Themes classified from body_text, ignoring tags. Share = theme tickets ÷ 80 × 100. ARR affected counts each distinct account once per theme; it is exposure, not confirmed lost revenue. Ranked by ARR, not ticket volume. 1. HRIS provisioning failures — $114,000 ARR Count: 12 | Share: 12 ÷ 80 × 100 = 15.0% | Distinct accounts: 3 ARR: $36,000 + $30,000 + $48,000 = $114,000. Pattern: Cross-account failures to create new-hire accounts, including skipped hires without logged errors. C-0B2213A9 contributes 7 of 12 tickets, but the issue also affects C-0F6C0F34 and C-0DDFC9A7. Tickets: IC-460059, IC-460060. Recommendation: Reconcile HRIS new hires against created accounts, replay missed provisioning, and alert on silent skips. 2. Redemption and gift-card failures — $68,800 ARR Count: 18 | Share: 18 ÷ 80 × 100 = 22.5% | Distinct accounts: 7 ARR: $8,900 + $10,700 + $9,600 + $8,700 + $11,000 + $9,600 + $10,300 = $68,800. Pattern: Broad failures spanning checkout hangs, missing gift-card delivery, and points deducted despite failed orders. Tickets: IC-460025, IC-460024. Recommendation: Trace checkout through fulfillment and reconcile deducted points against unsuccessful orders. 3. Invoice seat-count and tier-price errors — $52,000 ARR Count: 16 | Share: 16 ÷ 80 × 100 = 20.0% | Distinct accounts: 1 ARR: C-0E9C27D1 alone = $52,000, counted once despite 16 tickets. Pattern: Single-account concentration, not evidence of a broad billing defect; repeated seat-count discrepancies and incorrect renewal-tier pricing warrant account-specific escalation. Tickets: IC-460069, IC-460078. Recommendation: Assign one billing owner to reconcile licensed seats and contracted tier pricing, correct invoices, and verify the next billing cycle. 4. Recognition points not credited — $31,100 ARR Count: 20 | Share: 20 ÷ 80 × 100 = 25.0% | Distinct accounts: 9 ARR: $3,500 + $4,500 + $4,500 + $2,700 + $3,400 + $4,200 + $2,900 + $2,500 + $2,900 = $31,100. Pattern: Widest account reach: delivered recognitions without points, stale balances, and team-wide posting failures. Tickets: IC-460004, IC-460016. Recommendation: Reconcile delivered recognitions to points-ledger entries, repair missing credits, and monitor posting delays. 5. Slack integration failures — $18,900 ARR Count: 14 | Share: 14 ÷ 80 × 100 = 17.5% | Distinct accounts: 4 ARR: $4,400 + $5,400 + $3,900 + $5,200 = $18,900. Pattern: Cross-account recognition-sync, persistent-authentication, and slash-command failures; C-0BA71F12 contributes 6 of 14 tickets, but three other accounts also report failures. Tickets: IC-460047, IC-460051. Recommendation: Investigate authentication and sync-setting persistence, then test recognition delivery and slash commands across affected accounts. Reconciliation: 12 + 18 + 16 + 20 + 14 = 80 tickets; 3 + 7 + 1 + 9 + 4 = 24 distinct accounts, with no cross-theme account overlap; total affected ARR = $114,000 + $68,800 + $52,000 + $31,100 + $18,900 = $284,800.
For prospect C-82AF3719, the three closest customers tie for first using equally weighted exact matches on industry, size_band, use_case, and region (1 point each). All have has_case_study=true in customers.csv. 1. C-64171065 — tied first, 3/4 = 1+1+1+0. Matches: industry=Technology; size_band=Mid-Market; use_case=employee_recognition. Difference: region=NA-East versus prospect’s NA-West. 1. C-A13C193D — tied first, 3/4 = 1+1+0+1. Matches: industry=Technology; size_band=Mid-Market; region=NA-West. Difference: use_case=retention versus prospect’s employee_recognition. 1. C-11C31562 — tied first, 3/4 = 0+1+1+1. Matches: size_band=Mid-Market; use_case=employee_recognition; region=NA-West. Difference: industry=Manufacturing versus prospect’s Technology. Case-study URLs and explicit confirmation of public availability were not provided; eligibility relies on has_case_study=true.
Period: March–August 2026, the six months provided. Volume means contacts with an SQM date in this period; SQOs have a populated SQO date in the period. Metrics below retain flagged records as reported. Paid performance | Channel | Spend | SQMs | SQOs | Cost/SQM | Cost/SQO | SQM→SQO | Pipeline | Pipeline/$ | |---|---:|---:|---:|---:|---:|---:|---:|---:| | paid_search | $36,000 | 40 | 18 | $900 | $2,000 | 45.00% | $720,000 | 20.00x | | linkedin_ads | $24,000 | 25 | 8 | $960 | $3,000 | 32.00% | $96,000 | 4.00x | | paid_social | $18,000 | 0 | 0 | Undefined | Undefined | Undefined | $0 | 0.00x | | webinars | $9,000 | 12 | 5 | $750 | $1,800 | 41.67% | $60,000 | 6.67x | Arithmetic: - paid_search: spend = 6 × $6,000 = $36,000; cost/SQM = $36,000 ÷ 40 = $900; cost/SQO = $36,000 ÷ 18 = $2,000; conversion = 18 ÷ 40 = 45%; pipeline = 18 × $40,000 = $720,000; pipeline/$ = $720,000 ÷ $36,000 = 20x. - linkedin_ads: spend = 6 × $4,000 = $24,000; cost/SQM = $24,000 ÷ 25 = $960; cost/SQO = $24,000 ÷ 8 = $3,000; conversion = 8 ÷ 25 = 32%; pipeline = 8 × $12,000 = $96,000; pipeline/$ = $96,000 ÷ $24,000 = 4x. - paid_social: spend = 6 × $3,000 = $18,000; no contact rows. Cost/SQM and cost/SQO = $18,000 ÷ 0, undefined; conversion = 0 ÷ 0, undefined. Recorded pipeline/$ = $0 ÷ $18,000 = 0x, not an undefined denominator. - webinars: spend = 6 × $1,500 = $9,000; cost/SQM = $9,000 ÷ 12 = $750; cost/SQO = $9,000 ÷ 5 = $1,800; conversion = 5 ÷ 12 = 41.67%; pipeline = 5 × $12,000 = $60,000; pipeline/$ = $60,000 ÷ $9,000 = 6.67x. Organic performance | Channel | Volume (SQMs) | SQOs | SQO rate | Pipeline | |---|---:|---:|---:|---:| | organic_search | 30 | 10 | 10 ÷ 30 = 33.33% | 10 × $9,000 = $90,000 | | referral | 15 | 6 | 6 ÷ 15 = 40.00% | 6 × $8,000 = $48,000 | Organic costs are not provided; these channels cannot be assumed cost-free. Date-quality flags - 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. If both flagged conversions and their pipeline are excluded pending correction, while retaining their SQMs, linkedin_ads has 8 − 2 = 6 valid SQOs: conversion = 6 ÷ 25 = 24%; cost/SQO = $24,000 ÷ 6 = $4,000; pipeline = $96,000 − 2 × $12,000 = $72,000; pipeline/$ = $72,000 ÷ $24,000 = 3x. Reallocation recommendation and confidence Pause paid_social pending attribution validation: $18,000 has no recorded SQMs. If tracking is complete, redirect that budget primarily to paid_search, which has the strongest observed pipeline/$ at 20x. Consider reducing linkedin_ads after correcting its dates. Preserve webinars as a measured test: its $1,800 cost/SQO is lowest, but rests on only 5 SQOs. Confidence is moderate in the directional shift toward paid_search (40 SQMs, 18 SQOs), but low in an exact allocation or expected incremental return. webinars (12/5), linkedin_ads (25/8, including two invalid date sequences), organic_search (30/10), and referral (15/6) have limited samples. Attribution completeness, closed-won outcomes, and marginal performance at higher spend are missing; recent SQMs may also be immature. Pipeline/$ is not realized revenue ROI.
Battlecard: Rivally One-line positioning Points-based recognition with a reviewer-praised feed and multilingual support for distributed EU teams; EU data residency is generally available. [S02, S12, S15] The old card’s “for mid-market” positioning is unverified: one mid-market review does not establish target-market positioning. [S04] Pricing — source, date, and conflict - Current published price: Recognition Starter at $7/user/month, annual billing required — pricing page, 2026-08-12. [S17] - Conflict: the old card’s $5/user/month, annual billing was supported by the 2026-01-20 pricing page; Starter still showed $5 on 2026-04-01. The newer pricing page wins: replace $5 with $7. Increase: $7 − $5 = $2/user/month; $2 ÷ $5 × 100 = 40%. [S03, S08, S17] - Deal-specific evidence, not general pricing: call notes dated 2026-06-02 report $6.50/user/month for a 500-seat prospect on an annual term. [S13] - A prospect reportedly received $7/user/month list with a 15% discount for a three-year term on 2026-08-14: $7 × (1 − 0.15) = $5.95/user/month. This is a reported offer, not a published discount policy. [S18] - Rivally Pulse is a separately priced add-on, not bundled; no add-on amount is provided. [S23] Where they win - EU requirements: announced generally available EU data residency; an EU enterprise reviewer praised multilingual support and suitability for distributed EU teams. This supports the old card’s EU-strength claim with qualification, not a universal enterprise advantage. [S15, S12] - Fast setup and Slack: one mid-market reviewer reported setup in under a week and Slack working out of the box. The old claim “Rivally lacks a Slack integration” is contradicted; remove it. [S04] - Recognition experience: reviewers praised the points-based feed and its engagement. [S02, S16] - Support: one reviewer praised response times under four hours; this is not evidence of a contractual SLA. [S22] Where we win - Analytics: an 800-seat prospect reportedly picked Bonusly over Rivally citing analytics depth. This is a specific reported win, not proof of universal superiority. [S25] - Supporting competitive angles: reviewers described limited analytics and basic reporting dashboards. [S02, S07] - Discovery areas, not established Bonusly advantages: reviewers reported missing SCIM, lagging admin tooling, and missing bulk recognition editing. No supplied evidence establishes Bonusly’s corresponding capabilities. [S10, S16, S24] Objections and responses - “Rivally is cheaper.” Response: “Its latest published Starter price is $7/user/month with annual billing, not the old $5. Compare equivalent scope and terms; no Bonusly pricing is supplied to establish which is cheaper.” [S17, S03, S08] - “We need EU residency and multilingual support.” Response: “Rivally announced EU residency GA, and an EU enterprise reviewer praised multilingual support. Validate your specific requirements rather than denying these strengths.” [S15, S12] - “Their analytics are sufficient.” Response: “Test your required reports and exports. Reviews describe basic reporting and CSV-only analytics exports; one prospect reportedly chose Bonusly for analytics depth.” These are attributed reports, not independently verified product limitations. [S07, S20, S25] - “Their EMEA rewards coverage meets our needs.” Response: “Validate the catalog in your employees’ countries; one reviewer described EMEA coverage as thinner than the US catalog.” [S14] - “Their administration will scale.” Response: “Ask for a demonstration of provisioning and bulk editing; reviewers reported absent SCIM and bulk recognition editing.” Current availability needs validation. [S10, S24] Recent changes - 2026-03-05: launched Rivally Pulse, a lightweight engagement-survey add-on; 2026-09-01: Pulse exited beta as a paid add-on, not bundled. [S06, S23] - 2026-05-09: hired an ex-Workday VP EMEA to lead European expansion; 2026-07-01: opened a Dublin office and announced EU data residency GA. [S11, S15] - 2026-08-12: published Starter pricing rose to $7/user/month from the earlier $5. [S17, S08] - 2026-08-20: announced Microsoft Teams app v2 in public preview—not general availability. [S19] - Old-card acquisition claim: “Rivally was acquired by WorkHuman in 2025” — UNVERIFIED; no supplied snippet supports it. S01 reports a $40M Series C led by Northgate Ventures, not an acquisition, and does not independently disprove one. [S01] - Excluded as competitor facts: Bryce Harmon’s “clunky” UI assessment and Elena Sinclair’s aggressive-discounting impression are explicitly unconfirmed rep opinions. [S09, S21] Our 12-month win/loss record Period: September 2025–August 2026, the 12 months covered by deals_with_competitor.csv. This file has no snippet IDs; exact deal aliases below serve as row citations rather than inventing snippet IDs. - 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. - Total = 13 + 7 = 20; win rate = 13 ÷ 20 × 100 = 65%; loss rate = 7 ÷ 20 × 100 = 35%. [deals_with_competitor.csv, rows cited above] - The September 2026 prospect win is outside this window and has no deal alias linking it to the outcomes file; it is not added to the record. [S25]
Rates = summed events ÷ summed sends × 100, not unique-contact conversion. Weakest step = lowest reply rate. Sequence results • New Logo Nurture: sent = 500+458+428 = 1,386. Open: 490/1,386 = 35.35%; reply: 90/1,386 = 6.49%; meeting: 27/1,386 = 1.95%. Weakest: step 3, replies 18/428 = 4.21%. • Expansion Nurture: sent = 300+300+275 = 875. Open: 565/875 = 64.57% (unreliable); reply: 59/875 = 6.74%; meeting: 12/875 = 1.37%. Weakest: step 3, replies 12/275 = 4.36%. • Cold Outbound - HR Leaders: sent = 600+595+590 = 1,785. Open: 545/1,785 = 30.53%; reply: 8/1,785 = 0.45%; meeting: 0/1,785 = 0%. Weakest: step 3, replies 1/590 = 0.17%. • Cold Outbound - People Ops: sent = 400+386+377 = 1,163. Open: 340/1,163 = 29.23%; reply: 29/1,163 = 2.49%; meeting: 6/1,163 = 0.52%. Weakest: step 3, replies 6/377 = 1.59%. Tracking error Expansion Nurture step 2: 340/300 = 113.33% opened; 340−300 = 40 above sent. Correct tracking before trusting opens; corrected count is missing. Audience overlap New Logo Nurture ↔ Expansion Nurture: 2 contacts—CT-000301, CT-000624. Cold Outbound - HR Leaders ↔ Cold Outbound - People Ops: 21 contacts—CT-000849, CT-000884, CT-000890, CT-000908, CT-001033, CT-001097, CT-001101, CT-001103, CT-001105, CT-001130, CT-001153, CT-001159, CT-001217, CT-001227, CT-001236, CT-001255, CT-001258, CT-001277, CT-001285, CT-001311, CT-001345. No other overlaps in supplied rows. Failure modes and changes • Fix Cold Outbound - HR Leaders first: highest send volume, lowest reply rate, zero meetings. Every step is below 2%: 5/600=0.83%, 2/595=0.34%, 1/590=0.17%. Observed failure: opens without replies. Change: test a role-specific value proposition. • Cold Outbound - People Ops: step 3 alone falls below 2%; late-step response deterioration. Change: replace step 3 with a distinct offer. Copy, timing, and delivery data are missing; relevance, fatigue, and overlap effects remain hypotheses, not proven causes.
Q3-2026 weekly marketing goals update Quarter elapsed: 66 ÷ 92 = 71.74%. Pace uses a straight-line benchmark: target × 66/92. Delta = QTD actual − full-quarter target. MIA rate is compared directly with its ceiling, not prorated. | Metric | QTD actual | Target | Delta | Pace | |---|---:|---:|---:|---| | SQMs | 230 | 300 | −70 | Ahead: 230 vs. 215.22 expected | | SQOs | 84 | 120 | −36 | Behind: 84 vs. 86.09 expected | | DS2s | 40 | 75 | −35 | Behind: 40 vs. 53.80 expected | | Closed-lost MIA rate | 5 ÷ 25 = 20% | ≤10% | +10 percentage points (unfavorable) | Behind: twice the ceiling | | Same-quarter close count | 10 | 20 | −10 | Behind: 10 vs. 14.35 expected | | Active pipeline coverage | 3,000,000 ÷ 4,000,000 = 75% | 100% (4,000,000) | −25 percentage points (−1,000,000) | Ahead of linear benchmark: 75% vs. 71.74%; still below full target | Active pipeline is a snapshot; its “ahead” classification assumes a linear build toward the quarter-end target, not demonstrated growth. What moved this week: Weekly movement cannot be determined because no prior-week snapshot or weekly activity data was provided. The supplied QTD snapshot shows SQMs and active pipeline above the linear benchmark, while SQOs, DS2s, and same-quarter closes are behind; the MIA rate exceeds its ceiling. No specific weekly changes or drivers can be established.
Treat Q3 2026’s 115,976.75 forecast as provisional: all 7 in-quarter COMMIT deals lack documented why-buys. Across 54/86 deals, 100% × 44,729 COMMIT + 35% × 203,565 BEST_CASE = 115,976.75; PIPELINE contributes 0. Exclude 32 deals totaling 227,575 closing after September 30, including Deal-D348E1 (13,770 COMMIT, October 15) and 9 BEST_CASE totaling 28,240; validate buying rationale before relying on the forecast.
Subject: Deal-0D2F7A — pricing follow-up Hi team, I'm following up on my August 5 email with the July 28 demo recap and pricing for 150 seats. Is this still something you'd like to move forward with? Thanks, Alex Franklin
Marketing: We brought in 46 SQMs against a weekly target of 52, leaving a gap of 6 (52 − 46 = 6). Webinars contributed 18 of those SQMs, a bright spot worth celebrating. Paid search cost per SQM held at $150. Sales: We converted 14 SQOs and set 9 DS2 meetings this week. New pipeline totaled $310,000, and the same-quarter close count was 3. Those closes are worth a cheer, with new conversations on the calendar. CS: We saved 2 renewals this week, a win worth recognizing. Team NPS moved to 61; the extract doesn’t provide the previous score, so the size and direction of the change aren’t available. Heading into next week, 3 open red-flag accounts remain on the radar. PLG: We welcomed 412 new signups, with activation at 31%. And 38 companies reached the aha moment of 10 recognition gives—a milestone worth celebrating as more teams put appreciation into practice.
Partner digest | 2026-08-24 to 2026-09-04 - Apex Rewards Co — Co-webinar locked for 09-15. 2 sourced opportunities, both DS1: Deal-DDAAF2 (180,000) + Deal-2CF33E (95,000) = 275,000. - HRCloud Partners — Security review completed; opportunity moved to DS2. 1 sourced opportunity: Deal-F1CDA5 (140,000). - CultureBridge — Lunch-and-learn produced 2 sourced opportunities, both early stage: Deal-096E1D (60,000) + Deal-067213 (75,000) = 135,000. - WorkWell Group — Joint playbook restart requested for Q4; planning call booked for 09-09. 0 sourced deals; 0 pipeline amount. - Recogniq — Quiet; no activity reported or sourced deals listed. - KudosWave — Quiet; no activity reported or sourced deals listed. - PeopleFirst Advisors — Quiet; no activity reported or sourced deals listed. - TotalPerk — Quiet; no activity reported or sourced deals listed. Partner-sourced pipeline (UTM Source = Partner): Count: 2 + 1 + 2 = 5 deals. Amount: 180,000 + 95,000 + 140,000 + 60,000 + 75,000 = 550,000. Currency not provided.
Q1. Yes. All customer data is encrypted at rest using AES-256. [P1] Q2. Yes. Data in transit is encrypted using TLS 1.2 or higher. [P1] Q3. Yes. Bonusly maintains a SOC 2 Type II report, renewed annually. Prospects can obtain the report under NDA. [P2] Q4. Customer data is retained for 90 days after the contract ends, then deleted from production systems. [P3] Q5. Our current subprocessor list is published at trust.bonusly.com. Customers receive 30 days’ notice before a new subprocessor is added; the notification method is not specified. [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 certification status is not stated. P2 addresses SOC 2 only. Required document: a current ISO 27001 certificate or an official certification-status statement. [P2; no excerpt answers this question] Q9. Unanswerable from the provided excerpts: no contractual uptime SLA percentage is stated. Required document: the contractual Service Level Agreement. [P1–P8: not addressed] Q10. Unanswerable from the provided excerpts: willingness to sign a HIPAA Business Associate Agreement is not stated. Required document: an official HIPAA/BAA contracting policy or written confirmation from Legal. [P1–P8: not addressed]
Scope: only the supplied manifest and skill files. “Dangling” means absent from this supplied set, not proven absent from an external installation. 1. Overlapping / duplicate triggers | Severity | Action | Finding | Proposal | |---|---|---|---| | WARNING | MERGE | `comms-drafter` and `email-drafter` duplicate “write me an email,” “draft a follow-up,” “what should I say,” “bump email,” and “contract nudge,” plus email review/rewrite coverage. | Consolidate into `comms-drafter`, preserving `email-drafter`’s signature retrieval and context-sourcing behavior. This is a scope-based recommendation, not a verified version succession. | | WARNING | TRIM_DESC | `pipeline-intelligence-report` and `weekly-pipeline-report` overlap on pipeline report/update requests and “what’s the pipeline look like” / “what does pipeline look like.” | Reserve scored/tiered active-deal reports for `pipeline-intelligence-report` and weekly funnel/target performance for `weekly-pipeline-report`. | | WARNING | TRIM_DESC | `pipeline-intelligence-report` claims all pipeline questions and VP “forecast context”; `sales-forecast` claims “pipeline forecast,” quarter outlook, and deal-level confidence. | Narrow `pipeline-intelligence-report` to scoring requests, excluding quarter-revenue forecasts. | | WARNING | TRIM_DESC | `pipeline-intelligence-report`’s blanket pipeline-question trigger includes `next-to-close` requests, although `next-to-close` explicitly says not to use it for shortlists. | Add an explicit shortlist exclusion to `pipeline-intelligence-report`. | | WARNING | TRIM_DESC | `pipeline-intelligence-report`’s blanket trigger includes the stale/activity-gap requests assigned to `stale-pipeline-report`. | Exclude stale-contact and hygiene-only requests from its trigger. | | WARNING | TRIM_DESC | `deal-strategy-coach` triggers on “which deals are likely to close”; `next-to-close` ALWAYS triggers on “which deals are most likely to close.” | Reserve immediate close shortlists for `next-to-close`; retain diagnosis/coaching in `deal-strategy-coach`. | | WARNING | TRIM_DESC | `deal-strategy-coach` covers forecast risk, rep pipeline reviews, and stalled deals, overlapping `sales-forecast`, `pipeline-intelligence-report`, and `stale-pipeline-report`. | Limit coaching triggers to diagnostic/advisory intent rather than report-generation intent. | | WARNING | TRIM_DESC | `deal-strategy-coach` triggers on “draft a manager email,” which also falls within both drafting skills’ broad triggers. | Make strategy requests the coaching entry point and route drafting-only requests to the consolidated drafter. | | INFO | REVIEW | `model-selection` covers every task; `analysis-validator`, `signalforge-claim-compressor`, and `signalforge-feedback` overlap on analytical/report outputs. These are lifecycle stages, not necessarily duplicate task skills. | Review them as one ordered lifecycle rather than treating shared subject coverage as grounds for deletion. | The drafting and coaching descriptions use “whenever” or “also trigger,” rather than the literal word ALWAYS; their unconditional trigger coverage still overlaps. 2. Circular delegation CRITICAL · UPDATE_BODY — `deal-strategy-coach → email-drafter → deal-strategy-coach`. Evidence: - `deal-strategy-coach`, “Manager-to-prospect email frameworks”: use `email-drafter`. - `email-drafter`, “Lane marker”: route strategic coaching to `deal-strategy-coach`. Proposal: make the drafting handoff terminal for an already-diagnosed request, returning the draft to the caller without routing back. This is a conditional routing cycle, not proof that every invocation recurses. No reverse delegation from `closed-lost-analysis` to `pipeline-intelligence-report` is specified. “Called from pipeline-intelligence-report” documents an inbound call, not a circular edge. 3. Dangling targets Each row is a separate finding and proposal. | Severity | Action | Missing target | Referencing skill(s) | Proposal | |---|---|---|---|---| | CRITICAL | REVIEW | `bonusly-data-questions` | `analysis-validator`, §12.4; also §G1-J | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-product-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-business-reporting-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-rewards-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-ppp-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-feature-flag-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-deal-desk-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-datadog-questions` | `analysis-validator`, §12.4 | Verify and supply the specialist dependency before enabling its delegation. | | CRITICAL | REVIEW | `bonusly-brand` | `comms-drafter`, `email-drafter`, `sales-forecast`, `signalforge-claim-compressor` | Verify and supply the shared brand dependency. | | CRITICAL | REVIEW | `prospect-research-multithreading` | `comms-drafter`, `email-drafter`, `deal-strategy-coach` | Verify and supply the contact-research handoff target. | | CRITICAL | REVIEW | `signalforge-reports` | Mandatory skill-file reads in `pipeline-intelligence-report` and `weekly-pipeline-report` | Verify and supply the design skill and its referenced assets. | | WARNING | REVIEW | `skill-orchestrator` | `analysis-validator` self-improvement references; `signalforge-feedback` registration checklist | Verify the missing integration dependency; these references do not establish a runtime delegation edge. | | INFO | REVIEW | `caveman` | `signalforge-claim-compressor`, optional combined use | Verify availability before advertising the optional combination. | Referenced supporting files such as `references/data-sources.md` were not supplied. Their existence cannot be determined from this input; they are not manifest skill rows. 4. Version conflicts and survivor WARNING · UPDATE_BODY — `analysis-validator` declares v3.6 in its header/footer, but its validation-trail template identifies the validator as v3.2. Full Mode still lists G1-A–G1-H and G2-A–G2-E; the decision tree also omits G2-F from its Gate 2 range. Proposal: retain `analysis-validator` v3.6 as authoritative and align active version labels/check ranges with it. Historical changelog entries should remain historical. INFO · REVIEW — No competing versioned skill files are supplied. Neither `comms-drafter` nor `email-drafter` declares a version, so the data cannot establish that one is the newer release. `pipeline-intelligence-report` v6 using a v4 design system is not, by itself, a version conflict. Proposal: do not delete a skill on version grounds without an explicit succession record. 5. Manifest descriptions exceeding 1,024 characters INFO · REVIEW — 0 descriptions exceed the limit. Arithmetic: - Count = Σ[description_chars > 1,024] = 0 across 14 rows. - Maximum = 1,006, shared by `pipeline-intelligence-report` and `signalforge-claim-compressor`. - Headroom = 1,024 − 1,006 = 18 characters. Proposal: retain all descriptions with respect to this length threshold; any trigger trimming above addresses routing, not oversize descriptions. 6. Hardcoded page IDs, dates, and person names in bodies Each row groups literals within one skill into one finding and proposal. Historical/example literals are distinguished from operational dependencies. | Severity | Action | Skill and evidence | Proposal | |---|---|---|---| | WARNING | UPDATE_BODY | `analysis-validator`: named Finance escalation to Manish / Amani; embedded roster including 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, Amani Phipps, John Thomas, Yasmin Wahid; correction literals “Ashley Le” and “Tracy.” Dates include March 28, 2023; April 26, 2026; May 4, 2026; May 9, 2026; May 2026; Q1/Q2 2026 examples. | Resolve operational people/rosters dynamically and clearly separate dated historical evidence from current authority. | | WARNING | UPDATE_BODY | `deal-strategy-coach`: playbook page `2257879045`, April 2026 playbook, “Pricing — 2026,” and routing to Perseus / Farid. | Move operational reference locations, pricing validity, and routing identities into maintained configuration. | | WARNING | UPDATE_BODY | `partner-digest`: folder `2286616609`; pages `2286321666`, `2265382925`, `2236940297`, `2237825028`, `2239365136`, `2238283777`; Amani / Amani Phipps, Kelli, Jen Lee, Hani, Bryce, Sara; May 16, May 19, June 2, 2026, `2026-05-17`, and Q2/Q3 2026 references. | Parameterize destination/source pages and people, retaining dated issue references only as labeled examples/history. | | WARNING | UPDATE_BODY | `sales-forecast`: parent page `2232582148`; Alaina in the operational Manager Forecast heading; Elena / Alaina in history; hardcoded “Open Q2 Deals” and “Q2 Narrative”; July 9, 2026 example and April 27, 2026 changelog. | Make operational quarter labels, leader identity, and destination configurable while retaining historical/example dates. | | WARNING | UPDATE_BODY | `signalforge-feedback`: target page `2295136266`, parent `2234417154`, but activation checklist points to Build Log page `2247295002`; “Gavin Porter Rep Diagnostic” and “Q2 Pipeline Review” examples. | Consolidate operational logging references around one configured destination; keep person/quarter examples explicitly illustrative. | | WARNING | UPDATE_BODY | `pipeline-intelligence-report`: fixed roster Bryce Harmon, Dana Mercer, Cole Ingram, Alex Franklin, Gavin Porter; May 2026 verification/version/deprecation references and March 2023 stale-table reference. | Replace the operational roster with live owner resolution and label dated system assertions as requiring re-verification. | | WARNING | UPDATE_BODY | `weekly-pipeline-report`: Ben Lavin / Ben; fixed April 1–June 30, 2026 window, Q1 2026 context, and Q2/Q3 reporting buckets. Also fixed spreadsheet IDs `1CLZeOsElVDF_LF0ZG_t2nfwvhnZ6bpwqM_nX3WEYzcw` and `1ENuaEcCuLjdKhMvp8FK3Ys1ek5Aw9ZuOZhsHJJFoB_k`. | Parameterize recipient, reporting periods, and spreadsheet configuration. | | INFO | REVIEW | `closed-lost-analysis`: May 2026 observations/field confirmations, MinIO vacation “May 4–12,” and illustrative “4/13” / “June 3.” | Review dated observations for continued relevance and prevent examples from becoming runtime dates. | | INFO | REVIEW | `model-selection`: `last_checked: 2026-05-19`, dated changelog/deprecation assertions, knowledge-cutoff dates, and dated model identifier `claude-haiku-4-5-20251001`. | Preserve identifiers/history but verify the registry through its stated freshness procedure before using it. | | INFO | REVIEW | `stale-pipeline-report`: example dates `5/15`, `5/19`, `5/7`; changelog `2026-06-10`. | Keep these explicitly illustrative/historical rather than inserting them into live outreach. | | INFO | REVIEW | `signalforge-claim-compressor`: changelog `2026-05-09` and attribution handle `JuliusBrussee/caveman`. | Retain as provenance, not operational personalization. | No hardcoded page IDs, fixed dates, or person names were identified in the bodies of `comms-drafter`, `email-drafter`, or `next-to-close`. The HubSpot `1973303` URL literal is a portal/account ID, not a page ID. 7. Manifest drift in both directions | Severity | Action | Check | Arithmetic / result | Proposal | |---|---|---|---|---| | INFO | REVIEW | Supplied skill files without manifest rows | 14 files − 14 matched files = 0. | No manifest addition is indicated. | | INFO | REVIEW | Manifest rows without supplied skill files | 14 rows − 14 matched rows = 0. | No manifest-row removal is indicated. | All supplied file stems also match their manifest `declared_name` values. Missing referenced dependencies are dangling references, not evidence of files-without-rows drift.
1. Acknowledge the alert and take incident command — Bryce Harmon [M01]
Action: Acknowledge PagerDuty alert for reward-worker queue depth > 10k; take IC.
Verification: Acknowledgment and IC assignment stated in the message; separate verification not documented.
Rollback: Not documented — needs confirmation.
2. Check queue depth — Farid Osman [M02]
Command: `bundle exec rake sidekiq:queue_depth`
Verification: Returned 48,213 pending reward jobs; normal is under 500.
Rollback: Not applicable; read-only check.
3. Inspect the dead set — Farid Osman [M03]
Action: Reported 112 dead jobs, all Redis::TimeoutError from around 13:58. Exact inspection command not documented — needs confirmation.
Verification: Findings reported in the message.
Rollback: Not applicable; inspection only.
4. Pause enqueue — Farid Osman [M04]
Command: `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'`
Verification: No explicit confirmation that enqueue stopped — needs confirmation.
Rollback: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'`
5. Clear the dead set — Elena Sinclair [M05]
Action: “While I was in the console I cleared out the dead set.” Exact command not documented — needs confirmation.
Verification: Completion reported; no verification result documented — needs confirmation.
Rollback: Not documented — needs confirmation.
6. Scale workers from 3 to 6 — Bryce Harmon [M06]
Command: `kubectl scale deployment/reward-worker --replicas=6`
Verification: No replica-count verification documented — needs confirmation. Subsequent queue observations appear in [M07–M08], but do not directly verify the replica count.
Rollback: `kubectl scale deployment/reward-worker --replicas=3`
7. Check queue progress — Farid Osman [M07]
Action: Reported queue depth down to 9,400 and falling approximately 1,200/min. Exact measurement command not documented — needs confirmation.
Verification: Queue depth and trend reported in the message.
Rollback: Not applicable; observation only.
8. Verify queue drainage and error recovery — Cole Ingram [M08]
Command: `bundle exec rake sidekiq:queue_depth`
Action: Check error rate in Datadog.
Verification: Command returned 0; Datadog error rate back to baseline. Exact Datadog query or view not documented — needs confirmation.
Rollback: Not applicable; read-only checks.
9. Re-enable enqueue — Bryce Harmon [M09]
Command: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'`
Verification: 40 new jobs processed cleanly in the next 3 minutes.
Rollback: Not documented for this step — needs confirmation.
10. Scale workers back to 3 and resolve — Bryce Harmon [M10]
Command: `kubectl scale deployment/reward-worker --replicas=3`
Verification: Queue stable at 0; incident declared resolved. Direct replica-count verification not documented — needs confirmation.
Rollback: Not documented for this step — needs confirmation.
First error 2026-09-03T14:01:12Z — reward-service: “Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s” This is the first observed error in the supplied slice, not proof of the underlying cause. Cascade in timestamp order (2026-09-03, UTC) 1. 14:01:20 → 14:01:30 → 14:01:40 — reward-service reports retries exhausted for RewardGiveJob. 2. 14:01:40 — sidekiq reports RewardGiveJob failed with Redis::TimeoutError; retrying in 60s. The two 14:01:40 events cannot be ordered more precisely. 3. 14:01:46 — J-00005 is the earliest failed_at entry in sidekiq_jobs.csv, for RewardGiveJob. Further RewardGiveJob failures follow. 4. 14:02:28 — sidekiq reports another RewardGiveJob failure/retry. 5. 14:02:30 — sidekiq warns: “Queue reward depth above 10,000”. 6. 14:02:36 — RecognitionDigestJob also fails with Redis::TimeoutError, first recorded as J-00013. 7. 14:03:05 — api-gateway reports “502 upstream timeout calling reward-service /gives”. 8. 14:03:30 — web-app reports “Give form submission failed: upstream 502 from api-gateway”. 9. Through 14:06:52 — job failures/retries, gateway timeouts, and form-submission failures continue. 10. 14:22:10 — reward-service reports Redis connection restored and job processing resuming. 11. 14:24:45 — sidekiq reports reward queue depth below 500. Service and job The first failing service is reward-service; the explicitly named job is RewardGiveJob, with execution failures also logged by sidekiq. RecognitionDigestJob is additionally affected in sidekiq_jobs.csv. Datadog confirmation query Set the UTC time window to 2026-09-03T13:55:00Z–2026-09-03T14:02:00Z and sort oldest first: ```text service:reward-service *:"Redis::TimeoutError" *:"redis-primary:6379" *:"timed out after 5s" ``` This query targets the first error’s service and message; it has not been executed here. What the logs do not show - Why Redis timed out, or whether failures began before this slice. - Trace/job IDs linking the initial timeout to particular requests or failed jobs; chronology alone does not prove every causal link. - A remediation action responsible for recovery. - Exact queue peak, queue clearance, successful retries for individual jobs, or confirmed end-user recovery. - Total affected users, lost/duplicated rewards, or business impact.
Source: flags_export.csv for state, targeting, and company counts; flag_code.md for behavior. Company aliases and targeted-list members are not provided. Counts below are copied directly from the export, not calculated. Off flags retain configured targets; those counts do not mean the feature is on. | Flag | State | Targeting rule | Export company_count | Controls per code excerpt | |---|---|---|---:|---| | recognition_streaks_v2 | on | segment:beta_companies | 42 | Records a give through `StreakTracker.record(give)` when enabled. | | points_budget_guardrails | on | all_companies | 220 | Calls `BudgetService.new(company).enforce!(giver, points)` when enabled. | | slack_dm_nudges | on | segment:region_na | 87 | Gates `SlackDm.send_nudge(user)`; the job returns without sending when disabled. | | redeem_flow_redesign | off | targeted_list | 12 | Selects `RedeemV2Component` when enabled; otherwise renders `RedeemV1Component`. Configured targets are not currently on. | | analytics_dashboard_v3 | on | segment:tier_three | 65 | Sets `@dashboard = AnalyticsV3.new(company)` when enabled. | | ms_teams_app_v2 | off | targeted_list | 9 | Gates `TeamsAppV2.install(company)`. Configured targets are not currently on. | | legacy_give_modal | off | segment:legacy_plan | 14 | No code reference in the provided excerpt; behavior unknown. Configured targets are not currently on. | | survey_boosters_q3 | on | segment:legacy_plan | 7 | No code reference in the provided excerpt; behavior unknown. | | paused_offboard_cleanup | off | Blank | 0 | No code reference in the provided excerpt; behavior unknown. No targets reported. | Targeting gaps: segment definitions and evaluation logic are not provided. `legacy_give_modal` and `survey_boosters_q3` share `segment:legacy_plan` but have different exported counts—14 and 7, respectively; the provided data does not explain the difference.
NDA-1 — GREEN (standard approval): Mutual confidentiality with all stated standard carve-outs and Delaware law; clause 2 sets a bounded duration: “Term: two (2) years from the Effective Date; obligations survive for three (3) years after termination.” No non-solicit or non-compete is stated. NDA-2 — YELLOW (counsel review): Clause 4 embeds a non-solicit and hiring restriction beyond confidentiality: “During the term of this Agreement and for eighteen (18) months thereafter, neither party shall solicit for employment or hire any employee of the other party with whom it came into contact under this Agreement.” NDA-3 — RED (full legal review): Clause 2 imposes a broad non-compete—“For a period of three (3) years following the Effective Date, Recipient shall not, directly or indirectly, engage in or provide services to any business that competes with Discloser's business.”—compounded by clause 4, “No confidentiality carve-outs are stated in this Agreement,” clause 1’s lengthy “Term: five (5) years,” and clause 3’s non-Delaware law and exclusive foreign forum: “the laws of the Republic of Ireland, and the parties submit to the exclusive jurisdiction of its courts.”