Mean 0.941 · 32/40 perfect tests · $43.54 total · each card: the question → the correct answer (gold) → this model's actual answer
Definitions: - DS2+ means deals currently at DS2–DS5. Why-buys is non-compliant if blank, fewer than 15 trimmed characters, or a placeholder (e.g., tbd, n/a, see notes). LONG(n) is substantive. - Non-compliance rate = non-compliant DS2+ deals ÷ all DS2+ deals in the same group × 100. - Missing DS1 means t_ds1 is blank, across all open deals. - Regression means any populated earlier-stage timestamp is strictly later than a populated later-stage timestamp. Equal timestamps are valid; missing timestamps alone do not establish regression. Why-buys non-compliance: - Overall: 101 ÷ 124 × 100 = 81.45%. - 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%. - Elena Sinclair: N/A—no DS2+ deals. - Gavin Porter and Hugo Lindqvist: N/A—no open deals. Timestamp hygiene: - No DS1 timestamp: 0 of 156 deals. - Regressed: 0 of 156 deals under the defined timestamp test. Three process fixes: 1. Gate DS2+ advancement on substantive why-buys; reject blanks, short text, and placeholders. Assign existing gaps to owners. 2. Automatically capture DS1 entry timestamps; audit missing values and backfill only from verified history. 3. Preserve immutable stage-transition history and flag timestamp inversions for review rather than overwriting evidence of regression.
Resolved: 156 of 156 open deals, joining deals_open.owner_id to owners.owner_id. Arithmetic: 35 + 24 + 67 + 22 + 7 + 1 = 156. Unmatched owner IDs/deals: None. Archived owners in owners.csv: - 1520255671 — Gavin Porter - 77260721 — Hugo Lindqvist Neither archived owner has any deals in the provided open-deal extract. Total pipeline per resolved owner (sum of amount across all their open deals; currency not specified): Owner ID Owner name 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 Pipeline reconciliation: 1,054,144.00 + 341,195.00 + 624,310.00 + 288,161.43 + 4,134.00 + 2,100.00 = 2,314,044.43.
(a) Orphans: 67 Gong rows − 37 matched to deals_open = 30 orphan rows, joining hs_deal_id to deal_id. Sample aliases: Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42. These are unmatched to 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 = 0. Individual conversation keys were not provided, so cross-deal duplication cannot be checked. (c) Current DS3+ call coverage: - 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%.
```sql -- Cannot construct the requested query from this catalog alone. -- Missing: -- 1. A customer-company source with a company identifier and the date -- the company became a customer. -- 2. A recognition-event source with company ID, giver ID, event timestamp, -- and an event identifier or documented row grain. -- 3. Company ID and event timestamp columns, plus an event identifier or -- documented row grain, for -- PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2. -- -- PRODUCTION.PLG.COMPANY_COHORT_SUMMARY covers only self-serve companies; -- M1_* is not documented as the first calendar month as a customer, -- and no unique-giver metric or company identifier is documented. -- -- Once the missing schema is provided: -- Count distinct givers without excluding deleted givers. -- Count recognition events separately from redemption events to avoid fanout. -- Use the documented redemption source with STATE = 'succeeded' only. -- Bound events to the calendar month containing the customer-start date. -- Avoid all sources marked stale, unpopulated, or retired. ```
Completeness Calculated on the original extract, before enrichment or deduplication. Complete means nonblank after trimming whitespace; validity is assessed separately. Field Arithmetic Completeness Deals: owner No deals extract Not calculable Deals: stage No deals extract Not calculable Deals: amount No deals extract Not calculable Deals: close date No deals extract Not calculable Deals: why-buys No deals extract Not calculable 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: (52 − 4) ÷ 52 × 100 = 92.31%. This does not establish deliverability. Duplicate company clusters Company names are not provided, so name-variant detection is unavailable. Shared domains identify these candidate duplicate clusters: Domain Members Proposed survivor acme-corp.com C-0A092931, C-0A092932 C-0A092931 globex.io C-0A092933, C-0A092934 C-0A092933 Survivors use the lowest alias as a deterministic tie-breaker, not evidence of better data. Confirm they represent the same entity before merging; preserve associations and conflicting values. • C-0A092931 versus C-0A092932: industry “Technology” versus “tech”; employee count 500 versus 510; HQ country “US” versus “USA”. Industry/country differences can be normalized; employee count requires verification. • C-0A092933 versus C-0A092934: industry “SaaS” versus “Technology”; employee count 200 and HQ country “US” agree. Preserve the industry conflict pending taxonomy review. Neither domain has an enrichment row. No supplied source resolves their substantive conflicts. Invalid emails and domain mismatches Contact Company Invalid email Problem CT-0010 C-66D1FC user0@ Missing domain CT-0080 C-92D97D user0@ Missing domain CT-0081 C-92D97D user1@ Missing domain CT-0192 C-425E2A user2@ Missing domain Obtain verified replacements; do not construct addresses by appending company domains. CT-0011, C-66D1FC: email “user1@other-domain.com” conflicts with both the contact’s domain field and company domain, “66d1fc.com”. Verify the email and company association before changing either. All supplied contact domain fields match their linked company domains. The four missing email domains are reported as invalid, not additional valid-domain mismatches. Supported company fills Using exact domain matches in zoominfo_enrichment.csv, fill employee_count = 400 for: C-EC3025, C-96039F, C-44EA29, C-D04904, C-B23205, C-60C75F, C-7BBDFA, C-50D386. These are eight supported fills. Employee-count completeness would become: (25 + 8) ÷ 34 × 100 = 97.06%, before deduplication. Leave these fields blank: • C-93C8BF: employee count; no matching enrichment row. • C-2D1F1B, C-D73B89, C-44EA29, C-D04904, C-2C60E5: HQ country; matching enrichment rows also have blank country. • C-EE9FFB: HQ country; no matching enrichment row. No HQ-country fill is supported; completeness remains 82.35%. CRM versus enrichment differences Industry — every listed enrichment value is “Computer Software”: Companies CRM value C-66D1FC, C-44EA29, C-60C75F “tech” C-EC3025, C-92D97D, C-D04904, C-77A95A, C-AA8DDA, C-B25F40 “Technology” C-425E2A “Tech ” (trailing space) Recommendation: use the matching enrichment value for a standardized industry field if its taxonomy is adopted, while retaining the raw CRM value and source. “Computer Software” is more specific than “Technology”; the data does not establish which source is fresher, so do not silently treat them as equivalent. HQ country — every listed enrichment value is “United States”: Companies CRM value C-66D1FC, C-950043, C-77A95A, C-B23205, C-D0662E “US” C-EC3025, C-96039F, C-E51FB7, C-425E2A, C-2D7423 “USA” Recommendation: use enrichment’s “United States” as the canonical label. These are formatting differences, not geographic disagreements. There are no conflicting nonblank employee counts between CRM and matching enrichment rows. Elsewhere, normalize “tech”/“Tech ” to “Technology” and “health care” to “Healthcare” under an explicit CRM taxonomy; do not infer “Computer Software” for companies without supporting enrichment. Missing contact fields Titles — obtain verified values for: 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. Personas — obtain confirmed roles for: 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. No contact enrichment was supplied. Do not infer persona from title. 10 fixes — pipeline ranking unavailable No deals, amounts, or deal-to-company/contact associations were supplied. Therefore, the ten highest-pipeline fixes cannot be identified or valued. The following are unranked remediation candidates; pipeline amount at stake is unknown for every item, not zero. 1. Supply the linked deals extract; audit owner, stage, amount, close date, and substantive why-buys, then enforce required-field validation. 2. Resolve the acme-corp.com duplicate cluster into proposed survivor C-0A092931, preserving the 500-versus-510 employee-count conflict. 3. Resolve the globex.io duplicate cluster into proposed survivor C-0A092933, preserving the “SaaS”-versus-“Technology” industry conflict. 4. Replace the four invalid emails with verified addresses and add email-syntax validation. 5. Verify CT-0011’s email and association with C-66D1FC. 6. Apply the eight supported employee_count = 400 enrichment fills. 7. Obtain evidence for C-93C8BF’s missing employee count and the six unresolved HQ countries. 8. Resolve industry taxonomy differences and normalize country labels, retaining original values and provenance. 9. Obtain the 13 missing contact titles. 10. Obtain the 15 missing contact personas from confirmed stakeholder-role information.
Classification rules: specific reasons take precedence; tags supply a provisional category when text is vague. “No decision” includes ghosting, deprioritization, and choosing not to buy R&R. “Pricing” includes budget constraints. Side identifies the stated barrier—not blame: Bonusly for explicit offering/value limitations, buyer for internal constraints or preferences, unknown when attribution is unsupported. A competitor tag alone does not establish a Bonusly-side problem. ### Every supplied deal | Deal alias | Primary category | Side | Basis | |---|---|---|---| | Deal-DB0AAC | timing | buyer | Paused; reconnect timeline pending | | Deal-F7F635 | competitor | unknown | Tag; “another direction” is nonspecific | | Deal-AC944F | no decision | unknown | Unresponsive | | Deal-214060 | no decision | unknown | Unresponsive | | Deal-91A056 | timing | buyer | Reconnect early in 2027 | | Deal-29326C | timing | buyer | Timing | | Deal-5DB9B0 | other | unknown | Spam | | Deal-831B7B | timing | buyer | Revisit in the new year | | Deal-F97C37 | competitor | Bonusly | Other vendor’s broader offerings | | Deal-13E9CF | no decision | buyer | R&R deprioritized; explicitly not budget | | Deal-39E25C | timing | buyer | Reconnect next year | | Deal-7ED004 | pricing | buyer | Budget approval denied | | Deal-21B045 | no decision | unknown | MIA | | Deal-B3ABED | timing | buyer | Future revisit and budget planning | | Deal-422BA6 | competitor | Bonusly | Other vendor’s preferred ADP partnership and benefits | | Deal-ED9AE7 | other | buyer | Timing, budget, authority; no dominant reason stated | | Deal-988493 | no decision | unknown | MIA | | Deal-381C8C | competitor | unknown | Tag; text only confirms rejection | | Deal-F308CA | no decision | unknown | No contact; ignored outreach | | Deal-F1E8A6 | competitor | unknown | Tag; text only confirms rejection | | Deal-B6AC09 | timing | buyer | Revisiting in 2027 | | Deal-70F704 | no decision | unknown | MIA; anniversary-only interest does not establish a gap | | Deal-E6E80A | timing | buyer | Pushed to early 2027 | | Deal-B038F0 | timing | buyer | Pushed to early 2027 | | Deal-4664E1 | no decision | unknown | No contact; ignored outreach | | Deal-175756 | timing | buyer | Other priorities; hold until 2027 | | Deal-E74A73 | no decision | buyer | Test manually before buying a platform | | Deal-DDAB52 | competitor | Bonusly | Rippl’s breadth, same cost, easier currency budgeting | | Deal-ACE061 | competitor | unknown | Tag; HeyTaco is the rep’s suspicion, not confirmation | | Deal-BB78F3 | timing | buyer | Leadership wants survey action items first | | Deal-D48E0B | no decision | unknown | MIA | | Deal-15DA99 | timing | buyer | Revisit early 2027 | | Deal-F4AF5D | timing | buyer | Revisit early next year | | Deal-79B7A1 | timing | buyer | Timing | | Deal-583ADB | no decision | unknown | MIA | | Deal-8E27DA | no decision | buyer | Bought swag only; did not want R&R currently | | Deal-2D2F8D | competitor | unknown | Tag; “different direction” is nonspecific | | Deal-E0441F | no decision | unknown | No contact; departed rep was seller-side | | Deal-7CB44D | no decision | unknown | No meaningful contact; ignored outreach | | Deal-0F96AA | competitor | unknown | Tag; RFP elimination without a stated reason | | Deal-1BCA50 | pricing | buyer | “Mostly” budget and gift-card details; another vendor secondary | | Deal-7CC678 | competitor | unknown | Tag only; nothing specific provided | | Deal-FAC17C | no decision | buyer | Executive IT Director’s final approval missing | | Deal-242273 | competitor | Bonusly | Other vendors supported internal currency and onsite spending | | Deal-50E5D8 | no decision | buyer | Leadership pause without a restart commitment | | Deal-A2C349 | competitor | Bonusly | Stayed with Awardco and added its surveys | | Deal-9F176A | timing | buyer | Paused until closer to year-end | | Deal-7B2236 | pricing | Bonusly | Wanted simpler and cheaper | | Deal-AFA56C | no decision | unknown | Unresponsive | | Deal-C7156E | competitor | unknown | Selected another vendor; reason absent | | Deal-C33D91 | pricing | buyer | Budget cuts prevented approval | | Deal-9048EB | product gap | Bonusly | Explicit multiple feature gaps; also no contact | | Deal-5E64CE | timing | buyer | Waiting for Nectar contract end; exit fee inhibits switching | | Deal-8A0992 | competitor | unknown | Canadian provider “more closely aligns”; specifics absent | | Deal-D0C698 | competitor | buyer | Client prefers returning to Kudos | | Deal-69CF3D | timing | buyer | On hold; timing tag | | Deal-ECBF89 | timing | buyer | On hold; timing tag | | Deal-3618CC | other | unknown | Wanted surveys; no explicit gap or decision-maker departure | | Deal-EECC02 | competitor | unknown | Tag; “another direction” is nonspecific | | Deal-5AD03E | competitor | unknown | Tag; “budget access” is too vague to attribute | | Deal-D1A623 | timing | buyer | Timing | | Deal-413C56 | no decision | buyer | Back-to-school priority; CEO not ready | | Deal-47F1A1 | competitor | buyer | Staying with WorkTango | | Deal-BF2A98 | competitor | buyer | Already deployed HiThrive | | Deal-2A292B | no decision | buyer | Building internally instead of buying | | Deal-D1AABF | no decision | unknown | No response | | Deal-FEDBCB | timing | buyer | Reconnect closer to year-end | | Deal-1E7DA9 | competitor | unknown | Selected another platform; reason absent | | Deal-2BBA21 | no decision | unknown | No contact; ignored nudges | | Deal-286F9C | competitor | unknown | Another platform; unspecified fit issue | | Deal-7FBAC6 | no decision | buyer | Leadership paused again | | Deal-369281 | competitor | buyer | Using existing Paylocity offering | | Deal-386F6E | no decision | unknown | No response | | Deal-9FCD0D | competitor | buyer | CEO preferred a Canadian company; no shortfall stated | | Deal-55867E | timing | unknown | Tag only; text supplies no timing explanation | | Deal-DAFB82 | pricing | buyer | Budget allocated elsewhere; not expected until 2028 | | Deal-2FEDDB | timing | buyer | Uncertain timing | | Deal-64B19A | competitor | unknown | Likely Motivosity; unconfirmed | | Deal-3F86A0 | no decision | unknown | Unresponsive | | Deal-096750 | no decision | unknown | No meaningful contact; ignored outreach | | Deal-F325A5 | no decision | buyer | Layoffs/leadership change made this a nonpriority | | Deal-ABD14C | no decision | buyer | Not interested in signing up | | Deal-79E61A | no decision | unknown | Unresponsive | | Deal-8A119B | pricing | buyer | Budget/price tag; approval denied, type unspecified | | Deal-AE7C4E | no decision | unknown | Unresponsive | | Deal-DAB4F1 | no decision | unknown | Unresponsive | | Deal-B4B50F | no decision | unknown | Unresponsive | | Deal-981AD4 | product gap | Bonusly | UI and UK-focus mismatch | | Deal-DC77FE | competitor | Bonusly | Competitor’s customization; explicitly not price | | Deal-5885B9 | no decision | unknown | MIA | ### Category counts | Category | Deals | |---|---:| | pricing | 6 | | competitor | 25 | | no decision | 32 | | timing | 22 | | product gap | 2 | | champion left | 0 | | other | 3 | | **Total** | **90** | Arithmetic: 6 + 25 + 32 + 22 + 2 + 0 + 3 = 90. No text explicitly confirms that a buyer-side champion left. “Lost DM” alone is insufficient; leadership change does not necessarily mean champion departure. ### Side split | Side | Deals | Share | |---|---:|---:| | Bonusly | 9 | 9 ÷ 90 × 100 = 10.0% | | buyer | 42 | 42 ÷ 90 × 100 = 46.7% | | unknown | 39 | 39 ÷ 90 × 100 = 43.3% | Arithmetic: 9 + 42 + 39 = 90. ### Clear tag–reason disagreements **2 deals have a clear primary-reason coding mismatch:** - **Deal-8E27DA:** “Feature Request” versus explicitly not wanting R&R currently and choosing swag only. This describes a buying-scope decision, not a stated missing feature. - **Deal-9048EB:** “MIA” versus an explicit bad fit and multiple feature gaps. Ghosting also occurred, but the text supplies a substantive product-loss reason that the tag obscures. Arithmetic: 1 + 1 = 2. This counts primary-reason mismatches, not every unsupported tag. Vague competitor reasons, “Wanted Surveys” under “Lost DM,” and approval-related notes lack enough detail to prove disagreement. Competitor selection and pricing/product shortcomings can coexist. The compound “Doing nothing/Not a priority/Cost” tag is not contradicted merely because one component does not apply. ### Two patterns most worth acting on 1. **Prioritization, stalled engagement, and deferral dominate.** No decision + timing = 32 + 22 = **54 of 90 deals, or 60.0%**. Use explicit restart milestones and approval paths for deferred opportunities; distinguish them from unresponsive opportunities. Examples: Deal-175756 has a stated hold until 2027, Deal-BB78F3 has prerequisite survey actions, Deal-FAC17C lacks final approval, and Deal-F308CA has ignored outreach rather than a confirmed restart. 2. **Specific competitive losses point to breadth, integrations, and customization—not blanket discounting.** Deal-F97C37 cites broader offerings; Deal-422BA6 cites ADP partnership benefits; Deal-242273 cites internal currency and onsite spending; Deal-A2C349 cites Awardco surveys; Deal-DC77FE cites customization and explicitly excludes price. Tighten qualification and competitive positioning around these requirements, and validate whether each is a capability gap or a positioning issue before committing roadmap changes or discounts.
{"tier_counts":{"LOCK":3,"ACTION":17,"BUILD":34,"REVIVE":11,"WATCH":55,"RISKY":36},"tier_examples":{"LOCK":["Deal-D348E1","Deal-C26D20","Deal-403845"],"ACTION":["Deal-25F752","Deal-3974EB","Deal-C6FE92"],"BUILD":["Deal-A5E80A","Deal-1FC049","Deal-499BF6"],"REVIVE":["Deal-2D1F1B","Deal-66D1FC","Deal-950043"],"WATCH":["Deal-6787C2","Deal-C9C286","Deal-332637"],"RISKY":["Deal-E53952","Deal-5408B0","Deal-9AAE5F"]},"risky_deals":["Deal-E53952","Deal-5408B0","Deal-9AAE5F","Deal-547B2B","Deal-944310","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":"Totals: 3+17+34+11+55+36=156; 99 have zero meetings, 55 have positive meetings, and 2 lack engagement rows (Deal-3EED2C and Deal-57FF13), so 99+55+2=156. Pipeline is meeting-light, with limited closing support. Snapshot date is missing; scoring assumes 2026-09-04 and excludes later engagement dates from recency while retaining supplied meeting counts. Analyst rubric, applied in order: missing evidence → WATCH; COMMIT/BEST_CASE with zero meetings or engagement older than 30 days → RISKY; DS5 COMMIT with meetings, at least 3 contacts and engagement within 14 days → LOCK; other DS3+ deals meeting those engagement/contact thresholds → ACTION; remaining meeting-positive deals with at least 2 contacts → BUILD; remaining deals inactive over 14 days → REVIVE; otherwise WATCH. Recency uses the latest nonfuture email, call or meeting; defective inbound-email counts are ignored."}
[
{
"transcript_id": "TX-001",
"deal_alias": "Deal-CFE7F4",
"why_buys": [
"The big win for us would be automating anniversary and birthday awards — our HR team of three cannot keep up with it manually."
],
"pain_points": [
"Our HR team of three cannot keep up with it manually.",
"Right now we track everything in a spreadsheet, and people slip through the cracks."
],
"stakeholders": [
"Prospect (VP People)",
"Prospect (HR Admin)"
],
"budget_signal": "We have about $40k earmarked for engagement tools this fiscal year.",
"timeline_signal": "Ideally we would have this live before open enrollment in November.",
"competitor_mentioned": [
{
"name": "Achievers",
"context": "We looked at Achievers last year, but it was too heavy for a team our size."
}
],
"next_step": "Yes — let's do the security review on September 12.",
"objections": [
"One concern: we need SSO and audit logs for IT to sign off."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements and speaker labels; confidence is in extraction, not deal outcome."
}
},
{
"transcript_id": "TX-002",
"deal_alias": "Deal-70BB30",
"why_buys": [
"We want to tie recognition to retention for our hourly workforce — regretted turnover there is over 30%."
],
"pain_points": [
"Regretted turnover there is over 30%."
],
"stakeholders": [
"Prospect (Head of Total Rewards)",
"Prospect (CFO)"
],
"budget_signal": "Finance has approved a $25k pilot budget for this quarter.",
"timeline_signal": "We want a decision by end of September.",
"competitor_mentioned": null,
"next_step": "Yes — send the pilot agreement and we'll route it to legal this week.",
"objections": [
"Integration with Workday has to be rock solid — that's my one condition."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements and speaker labels. No competitor named; Workday is an integration requirement, not a competitor. Confidence is in extraction, not deal outcome."
}
},
{
"transcript_id": "TX-003",
"deal_alias": "Deal-530B50",
"why_buys": [
"We need to make recognition visible across our 12 retail locations."
],
"pain_points": [
"Store managers have zero budget autonomy for on-the-spot recognition today."
],
"stakeholders": [
"Prospect (People Ops Manager)"
],
"budget_signal": null,
"timeline_signal": "Honestly there's no rush on our side until Q1.",
"competitor_mentioned": [
{
"name": "Bucketlist",
"context": "My CEO used Bucketlist at her last company and liked it."
}
],
"next_step": "Yes, let's schedule a call with our CEO — I'll send two times.",
"objections": [
"Honestly there's no rush on our side until Q1.",
"The CEO has to be sold first — she decides anything people-related."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements and speaker labels. No prospect-stated purchase budget; rep pricing excluded. CEO is mentioned but is not a speaker. Confidence is in extraction, not deal outcome."
}
},
{
"transcript_id": "TX-004",
"deal_alias": "Deal-180D02",
"why_buys": [
"We want to consolidate three separate recognition tools into one."
],
"pain_points": [
"We're paying for three tools and none of them talk to our HRIS."
],
"stakeholders": [
"Prospect (VP People)",
"Prospect (IT Security Lead)"
],
"budget_signal": "If it's under $15k annually, I can approve it without going to the board.",
"timeline_signal": "Our procurement cycle runs six to eight weeks minimum.",
"competitor_mentioned": null,
"next_step": null,
"objections": [
"The security review took three months for our last vendor — that's my hesitation."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements and speaker labels. Budget signal is an approval threshold, not a committed budget. Competitors are unnamed. CFO follow-up was not agreed: \"Maybe — I need to check her calendar, no promises.\" Confidence is in extraction, not deal outcome."
}
},
{
"transcript_id": "TX-005",
"deal_alias": "Deal-F8767A",
"why_buys": [
"Two things: automate service milestones, and give us analytics on recognition equity across departments."
],
"pain_points": [
"Our night-shift teams feel invisible — their engagement scores run 20 points lower."
],
"stakeholders": [
"Prospect (HR Director)",
"Prospect (People Ops Coordinator)"
],
"budget_signal": "We have $12k approved under our engagement line.",
"timeline_signal": "We need this running before our January all-hands.",
"competitor_mentioned": [
{
"name": "Nectar",
"context": "We're mid-pilot with Nectar right now, so you'd need to beat that experience."
}
],
"next_step": "Yes — come present to our exec team on October 2.",
"objections": [
"We're mid-pilot with Nectar right now, so you'd need to beat that experience.",
"Our exec team is skeptical after a failed rollout two years ago."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements and speaker labels; confidence is in extraction, not deal outcome."
}
},
{
"transcript_id": "TX-006",
"deal_alias": "Deal-EE195F",
"why_buys": [
"I'd love to cut the admin time on service awards."
],
"pain_points": [
"I personally spend five hours a month ordering and shipping plaques.",
"Budget isn't the issue — time is."
],
"stakeholders": [
"Prospect (HR Manager)"
],
"budget_signal": "Budget isn't the issue — time is.",
"timeline_signal": "Our fiscal year resets in February, so a Q1 start is realistic.",
"competitor_mentioned": null,
"next_step": "Yes — send the one-page overview and I'll forward it to our COO this week.",
"objections": [
"Nobody else — we're comparing this against just doing it internally.",
"Fair warning, our COO usually prefers building things in-house."
],
"confidence": {
"extraction": "high",
"basis": "Direct prospect statements and speaker labels. No budget amount stated. No external competitor named; internal delivery is the alternative. COO is mentioned but is not a speaker. Confidence is in extraction, not deal outcome."
}
}
]
Based on the CRM and September 4 Slack thread—the latest status provided: 1. Deal-547B2B — $11,200 Why close: CRM shows DS5/COMMIT. Slack says redlines came back clean, the signing page is out, and VP People said they would sign “tomorrow” (September 5). Strongest explicit signature signal. What is left: Customer signature; no subsequent confirmation of signing is provided. Sources: next_close_deals.csv; Slack, Alex Franklin, 09:12. 2. Deal-403845 — $9,000 Why close: CRM shows DS5/COMMIT. Slack confirms the order form is with their finance team and the deal is “moving fine.” What is left: Finance processing/review and signature; exact finance requirements and signing timing are not provided. Sources: next_close_deals.csv; Slack, Dana Mercer, 10:02. 3. Deal-A2B47C — $6,360 Why close: CRM shows DS5/COMMIT with a September 11 close date. Slack says it remains warm, progressing at normal legal-review pace. Provisionally ahead of Deal-D348E1, which has the same Slack status but an October 15 CRM close date. What is left: Complete legal review and obtain signature; no signing commitment is provided. Sources: next_close_deals.csv; Slack, Alex Franklin, 09:44. Deal-2465CE is excluded despite CRM COMMIT: Slack reports champion departure, a procurement freeze, and a likely Q4 delay. No newer updates establish the actual status right now.
Deal amounts and active-deal status are not provided. Classifications below use only transcripts_gaps.csv and product_docs.md; active status cannot be verified. Candidate review • Deal-EC3025 — Real gap: SCIM user provisioning. Amount: not provided. Prospect: “We need SCIM user provisioning — our security team will not approve any tool that requires manual account management.” Basis: Product docs explicitly say SCIM is not currently listed as supported. (TG-001; product_docs.md, Supported integrations) • Deal-D0D6B5 — Real gap: ADP Workforce Now integration. 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.” Basis: Product docs explicitly say ADP Workforce Now is not currently listed as supported. (TG-002; product_docs.md, Supported integrations) • 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?” Basis: Custom report builder is Enterprise-only. The prospect’s current plan and support for this specific recognition/turnover combination are not documented. The excerpt supports a plan-gate classification for builder access, not a confirmed gap in reporting functionality. (TG-003; product_docs.md, Plans and tiers) • 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.” Basis: Slack integration is available on all plans; the prospect describes missing training, not missing functionality. (TG-004; product_docs.md, Plans and tiers) • 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.” Basis: The mobile-app claim comes from Alex Franklin, not the prospect. Product docs do not address native mobile availability, so no gap/plan-gate/enablement classification is supported. (TG-005) Real-gap summary • SCIM user provisioning — Deal-EC3025: explicit security-approval blocker. Amount not provided. • ADP Workforce Now integration — Deal-D0D6B5: explicit dealbreaker. Amount not provided. Affected amount = amount for Deal-EC3025 + amount for Deal-D0D6B5 = unknown + unknown; cannot calculate. Neither deal’s active status is supplied.
Recency = 2026-09-05 − latest nonblank last_email, last_call, or last_meeting dated on or before the snapshot. Stale means latest contact before 2026-08-29 (more than 7 days ago). Future-dated engagements do not count as past contact; last_contacted_field is not used. Amount currency was not provided. In the tables, “Last contact → days” shows the date subtracted from 2026-09-05; for example, 2026-09-05 − 2026-08-28 = 8 days. Bryce Harmon Deal alias | Stage | Amount | Last contact → days ---|---|---:|--- Deal-2D1F1B | DS1 | 240,000 | 2026-06-16 → 81 Deal-66D1FC | DS1 | 99,000 | 2026-08-20 → 16 Deal-950043 | DS1 | 70,000 | 2026-08-17 → 19 Deal-B23205 | DS1 | 45,000 | 2026-08-20 → 16 Deal-7BBDFA | DS3 | 37,440 | 2026-07-21 → 46 Deal-332637 | DS2 | 36,000 | 2026-08-27 → 9 Deal-1BEEBF | DS1 | 31,500 | 2026-08-17 → 19 Deal-A414F6 | DS1 | 25,200 | 2026-08-17 → 19 Deal-C5658B | DS1 | 23,400 | 2026-08-20 → 16 Deal-40522D | DS3 | 21,000 | 2026-08-17 → 19 Deal-C1FA6D | DS1 | 18,000 | 2026-08-20 → 16 Deal-01E193 | DS1 | 12,600 | 2026-08-28 → 8 Deal-F0EBBB | DS3 | 11,400 | 2026-08-12 → 24 Deal-927338 | DS1 | 10,920 | 2026-08-18 → 18 Deal-E25A09 | DS1 | 6,000 | 2026-08-27 → 9 Deal-C9C286 | DS2 | 5,502 | 2026-08-27 → 9 Deal-012CB1 | DS1 | 1 | 2026-08-13 → 23 Deal-3795AD | DS2 | 1 | 2026-08-28 → 8 Dana Mercer Deal alias | Stage | Amount | Last contact → days ---|---|---:|--- Deal-44EA29 | DS2 | 60,000 | 2026-08-26 → 10 Deal-E51FB7 | DS2 | 43,875 | 2026-08-24 → 12 Deal-B42F46 | DS1 | 27,000 | 2026-08-17 → 19 Deal-BA3DDC | DS3 | 23,400 | 2026-08-21 → 15 Deal-9DDE86 | DS2 | 20,000 | 2026-08-21 → 15 Deal-215CCA | DS3 | 18,900 | 2026-08-19 → 17 Deal-5EED42 | DS3 | 16,250 | 2026-08-25 → 11 Deal-57887A | DS2 | 15,000 | 2026-08-28 → 8 Deal-944310 | DS4 | 10,500 | 2026-08-03 → 33 Deal-B7EBD1 | DS5 | 9,000 | 2026-08-20 → 16 Deal-3974EB | DS4 | 9,000 | 2026-08-28 → 8 Deal-F40F04 | DS2 | 8,100 | 2026-08-21 → 15 Deal-7599B8 | DS3 | 7,350 | 2026-08-18 → 18 Deal-87DDD1 | DS1 | 5,000 | 2026-08-17 → 19 Deal-F336B6 | DS3 | 4,200 | 2026-08-21 → 15 Deal-0660B4 | DS4 | 1,920 | 2026-08-20 → 16 Alex Franklin Deal alias | Stage | Amount | Last contact → days ---|---|---:|--- Deal-CC08D1 | DS1 | 24,000 | 2026-08-20 → 16 Deal-E73427 | DS3 | 18,000 | 2026-08-26 → 10 Deal-885F45 | DS2 | 9,300 | 2026-08-24 → 12 Deal-C2FF3C | DS1 | 8,316 | 2026-08-26 → 10 Deal-0D2F7A | DS3 | 5,100 | 2026-08-24 → 12 Deal-6C60D4 | DS3 | 4,800 | 2026-08-24 → 12 Deal-13FEBD | DS2 | 4,680 | 2026-08-24 → 12 Deal-819506 | DS1 | 4,400 | 2026-08-28 → 8 Deal-9D0060 | DS3 | 3,840 | 2026-08-24 → 12 Deal-690476 | DS2 | 3,600 | 2026-08-18 → 18 Deal-C6D97A | DS4 | 3,240 | 2026-08-28 → 8 Deal-EE195F | DS3 | 3,120 | 2026-08-28 → 8 Deal-278DEC | DS3 | 2,700 | 2026-08-28 → 8 Deal-635B8E | DS3 | 2,600 | 2026-08-18 → 18 Deal-6883F3 | DS1 | 2,400 | 2026-08-20 → 16 Deal-4A13AD | DS3 | 2,160 | 2026-08-10 → 26 Deal-F67D31 | DS2 | 1,800 | 2026-08-28 → 8 Deal-5FDCE4 | DS3 | 1,600 | 2026-08-24 → 12 Deal-BA571A | DS4 | 1,080 | 2026-08-18 → 18 Cole Ingram Deal alias | Stage | Amount | Last contact → days ---|---|---:|--- Deal-D04904 | DS2 | 58,529.25 | 2026-08-25 → 11 Deal-B25F40 | DS3 | 40,000 | 2026-08-28 → 8 Deal-813836 | DS2 | 32,175 | 2026-08-25 → 11 Deal-1BA595 | DS2 | 31,750 | 2026-08-25 → 11 Deal-CFE1E8 | DS3 | 18,000 | 2026-08-25 → 11 Deal-CD47A6 | DS2 | 12,168 | 2026-08-25 → 11 Deal-627646 | DS3 | 11,193 | 2026-08-25 → 11 Deal-FF809F | DS2 | 7,781.20 | 2026-08-25 → 11 Deal-AF932D | DS2 | 7,225.40 | 2026-08-25 → 11 Deal-A71728 | DS2 | 6,947.50 | 2026-08-25 → 11 Deal-8BC9F5 | DS2 | 5,616 | 2026-08-26 → 10 Deal-175395 | DS3 | 4,779.88 | 2026-08-25 → 11 Deal-481E24 | DS3 | 4,140 | 2026-08-26 → 10 Deal-C7F9BF | DS2 | 3,360 | 2026-08-25 → 11 Deal-2F3A66 | DS3 | 3,334.80 | 2026-08-25 → 11 Deal-342E96 | DS2 | 2,700 | 2026-08-12 → 24 Deal-E568D5 | DS3 | 1,875 | 2026-08-25 → 11 Deal-FD9F4E | DS5 | 1,330 | 2026-08-26 → 10 Farid Osman Deal alias | Stage | Amount | Last contact → days ---|---|---:|--- Deal-8BA24E | DS1 | 2,880 | 2026-08-28 → 8 Deal-8FDCD2 | DS1 | 1 | 2026-08-21 → 15 Missing engagement data These deals have no row in engagements_by_deal_90d.csv. No recent contact is documented in the supplied table, but days since last contact and stale status cannot be established. They are excluded from confirmed-stale totals. Owner | Deal alias | Stage | Amount | Days since last contact ---|---|---|---:|--- Alex Franklin | Deal-3EED2C | DS2 | 7,200 | Unknown Elena Sinclair | Deal-57FF13 | DS1 | 2,100 | Unknown Per-owner confirmed-stale totals Owner | 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; 1 unknown | 0.00 confirmed Amount arithmetic, summing each owner’s listed deals: 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). Activities use the supplied emails_30d, calls_30d, and meetings_30d fields, joined to deal owners by deal_id. DS2 entries use t_ds2, regardless of current stage. Activity share = activity count ÷ total activities × 100. Efficiency = total activities ÷ DS2 entries; lower ranks better. | Rank | Rep | Emails | Calls | Meetings | Total activities: arithmetic | Mix: emails / calls / meetings | 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 | Missing | N/A | 0 | Undefined | | — | Gavin Porter (archived) | Missing | Missing | Missing | Missing | N/A | 0 | Undefined | | — | Hugo Lindqvist (archived) | Missing | Missing | Missing | Missing | N/A | 0 | Undefined | Most efficient and highest-volume rep: Alex Franklin, at 21.33 recorded activities per DS2 entry and 384 recorded activities. They do not differ. Data limitations: - Alex Franklin’s Deal-3EED2C has no engagement row but does qualify as a DS2 entry. His activity totals and ranking therefore reflect available engagement records, not confirmed complete activity coverage. - Elena Sinclair’s Deal-57FF13 has no engagement row. Neither archived owner has deals or associated engagement records in the supplied data. Missing activity data is not treated as zero. - The supplied last-30-day counts are used as given. Some last_meeting dates fall after the snapshot; individual activity timestamps are unavailable to independently validate or adjust those counts. - Percentages are rounded and may not sum to exactly 100%.
Alex Franklin — QTD scorecard as of 2026-09-05 QTD: 2026-07-01–2026-09-05. Amounts use the supplied units; currency is not specified. Deal-B3E6F1, closed-won on 2026-06-20 for 24,000, is excluded throughout. Bookings vs quota Source: ae_deals.csv and quota.csv. - New: 40,000 + 35,000 + 21,000 + 11,000 + 6,500 = 113,500 across 5 wins. - Expansion: 20,000 + 12,000 + 4,500 = 36,500 across 3 wins. - Total bookings: 113,500 + 36,500 = 150,000. - Quarterly quota: 200,000. - Attainment: 150,000 ÷ 200,000 × 100 = 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 Source: ae_deals.csv. All supplied open deals, regardless of expected close date; 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 Total amount = 284,621 + 353,760 + 552,705 + 23,574 + 45,730 = 1,260,390. Of this, 22 open deals totaling 109,363 have expected close dates within Q3, including the overdue Deal-7A2454. Conversion and outcomes Source: ae_deals.csv. - Rolling 90-day window: 2026-06-08–2026-09-05, inclusive. - DS2-to-won rate, defined by DS2-entry cohort: 111 deals entered DS2 during the window; 8 won, 27 lost, and 76 remain open. - Conversion to date: 8 ÷ (8 + 27 + 76) × 100 = 7.2%. This is not a final cohort outcome because 76 deals remain open. - QTD outcomes: 8 wins and 27 losses. - Closed-deal win rate, distinct from cohort conversion: 8 ÷ (8 + 27) × 100 = 22.9%. - Top loss reason by count: “Lost- Timing (1 year or more)” — 13 ÷ 27 = 48.1% of losses, totaling 184,681. Last-30-day activity Source: ae_engagements.csv, joined to the included deals. The supplied `_30d` fields are treated as covering 2026-08-07–2026-09-05; individual timestamps are unavailable. 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 recorded activity: 797 + 110 + 126 + 47 = 1,080. Three coaching observations 1. Focus quarter-end execution on the 50,000 quota gap. Q3-dated DS4/DS5 pipeline totals only 34,204, so even winning all of it would leave 50,000 − 34,204 = 15,796 to source from earlier stages or other opportunities. 2. Tighten timing qualification before DS2. Timing accounts for 13 of 27 losses and 184,681 in lost amount. Require a buyer-confirmed decision date and compelling event; Deal-B3ABED alone contributed 40,001 to this loss category. 3. Re-engage near-term late-stage deals beyond email. Deal-547B2B, Deal-A2B47C, and Deal-F9A08A total 11,200 + 6,360 + 2,484 = 20,044, with September close dates but zero recorded calls or meetings in the last 30 days. Confirm live buyer next steps before relying on these closes.
Open/closed status, amount, and stage are missing for every deal. Therefore, I cannot confirm which deals are open or determine the most valuable persona to add given the stage. Below are all threading-flagged deals in the supplied data; these are not confirmed open deals. 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. Personas present/missing refer only to active contacts. 11 flagged deals = 5 single-threaded + 6 additional under-threaded. Single-threaded deals also meet the under-threaded definition. Amount, stage, and stage-specific priority: unavailable for every row. Listed contacts fit missing personas, but are not stage-prioritized. | Deal / company | Flag | Active count arithmetic¹ | Personas present | Personas missing | On-file unengaged contacts fitting missing personas | |---|---|---|---|---|---| | Deal-EC3025 / C-FDD0C7 | Single-threaded | 2 − 1 − 0 = 1 | champion | economic buyer, HR admin, IT security, finance | CT-6827DB — economic buyer | | Deal-92D97D / C-E23238 | Single-threaded | 2 − 0 − 1 = 1 | HR admin | economic buyer, champion, IT security, finance | CT-A902AE — champion; last engaged 2026-06-01 | | Deal-50D386 / C-EB10E4 | Under-threaded: fewer than 3 | 2 − 0 − 0 = 2 | champion, HR admin | economic buyer, IT security, finance | CT-A1C4B3 — economic buyer | | Deal-D0D6B5 / C-32918E | Under-threaded: one persona | 3 − 0 − 0 = 3 | champion | economic buyer, HR admin, IT security, finance | CT-1FA4DB — economic buyer | | Deal-5BFE3B / C-535D36 | Under-threaded: fewer than 3; one persona | 2 − 0 − 0 = 2 | champion | economic buyer, HR admin, IT security, finance | none on file | | Deal-36C33F / C-077A0E | Single-threaded | 3 − 2 − 0 = 1 | IT security | economic buyer, champion, HR admin, finance | CT-1DB73E — economic buyer | | Deal-885F45 / C-5E8EFB | Under-threaded: fewer than 3 | 2 − 0 − 0 = 2 | economic buyer, champion | HR admin, IT security, finance | CT-B3F25D — IT security | | Deal-FCBE5B / C-737030 | Single-threaded | 1 − 0 − 0 = 1 | champion | economic buyer, HR admin, IT security, finance | none on file | | Deal-5408B0 / C-2AE3AA | Under-threaded: fewer than 3 | 2 − 0 − 0 = 2 | champion, HR admin | economic buyer, IT security, finance | CT-07FA76 — economic buyer | | Deal-C6D97A / C-5A8FC2 | Under-threaded: one persona | 3 − 0 − 0 = 3 | champion | economic buyer, HR admin, IT security, finance | none on file | | Deal-F9A08A / C-0D15DF | Single-threaded | 2 − 0 − 1 = 1 | champion | economic buyer, HR admin, IT security, finance | CT-697541 — economic buyer; also CT-913581 — economic buyer, last engaged 2026-06-20 | ¹ Arithmetic: total listed contacts − former contacts − non-former contacts outside the engagement window = active contacts. Sources: deal_contacts.csv for activity, former status, personas, and lapsed contacts; unengaged_contacts.csv for other on-file candidates. Former contacts are excluded from candidates.
Based on the 10 supplied call excerpts: First five minutes - Alex Franklin leads with the same customer-outcome story in 8 ÷ 10 × 100 = 80% of calls: a retailer’s claimed turnover reduction through automated milestone awards. These are the rep’s claims, not independently verified results. Calls: Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-EDC141, Deal-D9A12F, Deal-84DBA6. - Exceptions: Deal-403845 opens with a security-review/pricing agenda; Deal-1E2498 starts with pricing at the prospect’s prior request. - Early competitive positioning also appears: Alex introduces Workhuman in Deal-C61CF7 at minute 2 and responds to prospect-raised Awardco and Kudos at minute 5 in Deal-547B2B and Deal-EDC141, respectively. Three most common objections 1. Budget/approval: 5 distinct calls—4 locked-budget objections plus Deal-403845’s budget-committee dependency. The locked-budget calls are Deal-D348E1, Deal-547B2B, Deal-60C2C2, and Deal-84DBA6. Alex reframes cost around avoided turnover/backfills: “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 Deal-403845 and Deal-84DBA6, he accepts the delay without securing a concrete follow-up. 2. Timing/workload: 3 calls—Deal-5408B0, Deal-C61CF7, Deal-D9A12F. He proposes a smaller pilot to generate evidence before planning: “Makes sense. What if we scope a 90-day pilot with one department so you have internal data before next quarter's planning?” — Deal-5408B0, minute 8. All three agree to a working session; the excerpts do not establish agreement to the pilot itself. 3. Status quo/manual recognition: 3 calls—Deal-403845, Deal-EDC141, Deal-1E2498. He emphasizes automation and visibility: “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. Only Deal-1E2498 agrees to a concrete next step; Deal-403845 stalls on approval and Deal-EDC141 on lack of urgency. Counts above are distinct calls per objection category; categories can overlap. Concrete next-step agreement rate A concrete agreement requires prospect acceptance of a specific action and time—not just the rep proposing one. 7 ÷ 10 × 100 = 70%. - Agreed: Deal-D348E1, Deal-5408B0, Deal-547B2B, Deal-C61CF7, Deal-60C2C2, Deal-D9A12F, Deal-1E2498. - Each accepts a Thursday, 2pm working session and commits to bringing the HRIS manager: “Yes, Thursday at 2pm works — send the invite and I'll bring our HRIS manager.” — Deal-D348E1, minute 15. - No concrete agreement recorded: Deal-403845, Deal-EDC141, Deal-84DBA6. Invite delivery and meeting attendance are not provided. Every prospect-raised competitor - 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, not the prospect, raises it in Deal-C61CF7. Two coaching notes 1. Make the outcome story a bridge to discovery: ask prospects to quantify their own turnover costs or manual-recognition burden before moving into the standard automation/ROI response. 2. Strengthen stalled-call closes: for Deal-403845 and Deal-84DBA6, clarify the committee owner and decision date and seek a scheduled follow-up; for Deal-EDC141, explore what would create urgency before accepting an open-ended delay.
## Q3 2026 forecast Close-date filter: 2026-07-01 through 2026-09-30, inclusive. Amounts are in the extract’s unspecified currency. | Category | In-quarter deal count | Total amount | 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 | | **Weighted forecast** | **54** | | | **115,976.75** | Arithmetic: - COMMIT = 11,200 + 9,000 + 9,000 + 6,360 + 5,400 + 2,520 + 1,249 = **44,729** - BEST_CASE = 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** - In-quarter count = 7 + 24 + 23 = **54 deals** ## Excluded: close dates outside Q3 | Deal alias | 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 | Excluded count = 1 COMMIT + 9 BEST_CASE + 22 PIPELINE = **32 deals**. Excluded amount = 13,770 COMMIT + 28,240 BEST_CASE + 185,565 PIPELINE = **227,575**. ## Top 5 in-quarter BEST_CASE deals | Rank | Deal alias | 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 Owners are blank on 85 of 86 deals; only Deal-C9C286 has an owner, limiting accountability and owner-level validation. `why_buys_chars` is zero on 71 deals, including 67 at DS2–DS5, leaving qualification rationale absent in this extract. Deal-A5E80A is COMMIT at DS1 and Deal-499BF6 is COMMIT at DS2, creating stage/category anomalies that warrant validation before unattended 100% weighting. Deal-31AD2C, Deal-333EBB, Deal-57FF13, and Deal-7A2454 remain open despite close dates before the 2026-09-05 extraction date, indicating potentially stale close dates or statuses.
Using m1_users ≥ 5 and m1_redemptions ≥ 1 as the signals, and only current_status = 'active' as retained: | First-month cohort | Companies | Retained at 24 months | Retention arithmetic | |---|---:|---:|---:| | Both signals | 47 | 31 | 31 ÷ 47 = 65.96% | | Givers-only | 49 | 23 | 23 ÷ 49 = 46.94% | | Redemption-only | 29 | 9 | 9 ÷ 29 = 31.03% | | Neither | 95 | 38 | 38 ÷ 95 = 40.00% | Denominator: 47 + 49 + 29 + 95 = 220 companies. Excluded: 0. All companies meet the supplied age requirement and have the required signal and status fields. Zero activity is included, not treated as missing. The non_renewing companies—C-0B2078FB, C-0A96134F, C-0BEAF685—remain in the denominator but are not counted as retained. Hypothesis: supported descriptively. Both-signal retention exceeds: - Givers-only by 65.96% − 46.94% = 19.02 percentage points. - Redemption-only by 65.96% − 31.03% = 34.92 percentage points. - Neither by 65.96% − 40.00% = 25.96 percentage points. Strongest single signal: 5+ unique givers. - Givers-only versus neither: 46.94% − 40.00% = +6.94 percentage points. - Redemption-only versus neither: 31.03% − 40.00% = −8.97 percentage points. The ranking also holds when measuring each signal across the entire cohort, including companies with both: - Givers present versus absent: (54 ÷ 96 − 47 ÷ 124) × 100 = +18.35 percentage points. - Redemption present versus absent: (40 ÷ 76 − 61 ÷ 144) × 100 = +10.27 percentage points. What this establishes: an observed association between both first-month signals and higher retention in this extract. What it does not prove: that causing these actions improves retention, that these thresholds are optimal, or that the relationship generalizes beyond this cohort. Confounding is not controlled, and statistical significance has not been tested.
ARR reconciliation — 2026-09-05 Basis: Treat supplied statuses as the as-of snapshot; no status-effective dates were provided to verify historical status. Active billing ARR = MRR × 12; cancelled subscriptions contribute zero. Currency was not specified. Variance = CRM − billing. Totals - CRM ARR: Σ hubspot_arr = 603,581.76 - Billing ARR: Σ active MRR × 12 = 50,394.94 × 12 = 604,739.28 - Variance: 603,581.76 − 604,739.28 = −1,157.52 Variance decomposition | Bucket | Arithmetic | CRM − billing | |---|---|---:| | Status mismatch: cancelled billing, positive CRM ARR | 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: unexplained ARR difference | 24,396.00 − 26,796.00 | −2,400.00 | | Total | 13,158.48 + 36.00 − 11,952.00 − 2,400.00 | −1,157.52 | *The two small differences are consistent with rounding billing ARR to the nearest hundred, but no rounding policy was provided. Classification is provisional, not a confirmed cause. Mismatched accounts Missing-side amounts are treated as zero solely for the reconciliation; a missing record does not establish zero actual ARR. Owners below are suggested functions; named owners were not provided. | Company alias | CRM ARR | Billing ARR calculation | Variance | Bucket / suggested owner | |---|---:|---|---:|---| | C-0C8323BF | 4,905.24 | 0; cancelled | +4,905.24 | Status mismatch — RevOps; confirm cancellation with Billing | | C-0DC4FB8C | 8,253.24 | 0; cancelled | +8,253.24 | Status mismatch — RevOps; confirm cancellation with Billing | | C-0D66DF9E | 23,200.00 | 1,932.00 × 12 = 23,184.00 | +16.00 | Provisional rounding — RevOps; validate precision policy | | C-14D70CE0 | 18,200.00 | 1,515.00 × 12 = 18,180.00 | +20.00 | Provisional rounding — RevOps; validate precision policy | | C-0D5BBE3A | 16,497.24 | Missing subscription | +16,497.24 | Missing billing record — Billing Operations; investigate coverage/mapping | | C-21629AA4 | Missing | 2,370.77 × 12 = 28,449.24 | −28,449.24 | Missing CRM record — RevOps; investigate coverage/mapping | | C-0F7269D7 | 24,396.00 | 2,233.00 × 12 = 26,796.00 | −2,400.00 | Other; cause unknown — RevOps + Billing Operations | Agreement-end-date violations | Subscription | Company alias | Term months | cf_agreement_end_date | |---|---|---:|---| | SUB-0002 | C-1794A52C | 24 | Missing | | SUB-0019 | C-22170CA1 | 36 | Missing | Both violate the requirement that subscriptions with terms other than 12 months have cf_agreement_end_date populated.
Unweighted means across 30 companies; user counts are missing, so user-weighted KVMs cannot be calculated. | 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: monthly mean = sum ÷ 30; absolute change = August − July; relative change = absolute change ÷ July × 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 observed decline: 54.998% → 27.428%, or −27.570 pp (−50.1291%). Its contribution is −27.570 × 10/30 = −9.190 pp, accounting for 99.9166% of the net decline. This is descriptive attribution, not evidence of cause. All companies are tier_three; the data does not support comparisons across plan_tier.
Redemptions — YTD through August 2026 Last completed month: 2026-08 (August). Reporting period: January 1–August 31, 2026, using only the supplied redemptions_ytd.csv rows. - 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 a total churn-save eligible amount of 224,601.00. Eligibility requires all three rules in eligibility_rules.csv: - R1: health_score < 60. - R2: churn_save_eligible_amount > 0. - R3: renewal within 120 days of 2026-09-05: cutoff = 2027-01-03. Amounts below use churn_save_eligible_amount, not full ARR. Currency is not specified. ### Qualifying accounts Account signals and amounts are from churnzero_accounts.csv. Days are measured from the documented snapshot, not today. Play recommendations are analytical judgments; the supplied rules do not define play selection. | Account | Health | Renewal (days away) | Eligible amount | 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; seat utilization = 113 ÷ 202 × 100 = 55.9%. | | C-0B360C78 | 57 | 2026-10-28 (53) | 35,748.00 | Undetermined: usage growing, champion active, utilization = 246 ÷ 327 × 100 = 75.2%. No commercial concern is documented to justify a concession. | | C-0B0F1BAB | 38 | 2026-09-23 (18) | 5,494.00 | Executive touch: champion_active=false, health 38, renewal only 18 days away. | | C-0CA21961 | 58 | 2026-12-28 (114) | 16,829.00 | Usage revival: flat usage with utilization = 84 ÷ 325 × 100 = 25.8%. | | C-0E9C27D1 | 39 | 2026-09-24 (19) | 41,235.00 | Undetermined: health 39 and imminent renewal establish urgency, but champion is active and utilization = 134 ÷ 157 × 100 = 85.4%. No commercial concern is documented 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; utilization = 126 ÷ 380 × 100 = 33.2%. | Total arithmetic: 49,707 + 25,365 + 35,748 + 5,494 + 16,829 + 41,235 + 32,621 + 17,602 = 224,601.00. Commercial concession: no account has a supplied price, budget, or contract-friction signal. Eligibility alone does not establish that a concession is the right play, and the eligible amount is not a documented discount amount. ### At risk but not eligible All accounts below pass R1 but fail R2 and/or R3. | Account | Health | Eligible amount field | Renewal (days away) | Why excluded | |---|---:|---:|---|---| | C-0BC71BDD | 55 | 0.00 | 2026-10-27 (52) | Fails R2: amount is zero. | | C-0BA71F12 | 52 | 6,824.00 | 2027-04-11 (218) | Fails R3: 218 > 120 days. | | C-0F6694C3 | 43 | 0.00 | 2027-03-21 (197) | Fails R2 and R3: zero amount; 197 > 120 days. | | C-0BE96399 | 54 | 0.00 | 2026-10-29 (54) | Fails R2: amount is zero. | | C-0F876796 | 47 | 19,958.00 | 2027-02-06 (154) | Fails R3: 154 > 120 days. | | C-0FCCD2DF | 43 | 0.00 | 2027-04-23 (230) | Fails R2 and R3: zero amount; 230 > 120 days. | | C-10A56B0F | 54 | 0.00 | 2026-12-12 (98) | Fails R2: amount is zero. |
Expansion kit: C-0DDFC9A7 Seat coverage: 150 licensed / 400 headcount × 100 = 37.5%. Usage health: - Monthly active users increased every month, from 88 in March to 126 in August: +38 users; 38 / 88 × 100 = 43.2% growth. - August utilization: 126 / 150 licensed seats × 100 = 84.0%. Maria S. reports the team loves Bonusly and the recognition feed is busy weekly. Expansion headroom: - Seats: 400 − 150 = 250. - Current annual per-seat rate: $9,000 / 150 = $60. - Potential incremental ARR: 250 × $60 = $15,000, assuming full-headcount coverage at the current rate—not confirmed demand. Who replied: Maria S., People Operations Coordinator, last engaged 2026-09-02. She explicitly cannot make purchasing decisions and offered an introduction. Right buyer: Dana R., VP People, last engaged 2026-05-18. Maria S. identifies her as responsible for budget and seat expansion and says she has been asking about usage numbers. 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 reached 126 in August, up from 88 in March. An introduction to Dana would be helpful, if you're still happy to make one. I can share a short usage summary so she has the numbers she's been asking about, and we can explore whether broader access would be useful. No need to make any seat decisions now. Thanks for your help, Cole
C-0D284E42 — Mid-onboarding call prep Complete, supported by fields: - 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 happened. 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. - Growth is not uninterrupted: active givers fell from 7 to 5 on 2026-08-18, for example. - Usage records active givers before the recorded first recognition on 2026-08-15; clarify the metric definition or timestamp discrepancy. - Employee count and giver identities are missing, so participation rate and repeat-giver retention cannot be calculated. Three things to cover on the call: 1. Confirm HRIS connection status, identify any blocker, and agree on an owner and next step if incomplete. 2. Confirm whether any redemption has occurred; if not, walk through the redemption process and identify barriers. 3. Review growing giver activity with the two admins, clarify the pre-recognition usage discrepancy, and agree on how to sustain participation.
90-day renewal risk brief Scope: No as-of date was provided. Assuming September 1–November 29, 2026, the 90 days following the latest usage month, all 20 accounts renew within the window. Method: - Seat utilization = seats_used ÷ seats × 100, from churnzero_renewals.csv. - Three-month trend uses June → July → August active_users from usage_12m.csv; percentage change = (August − June) ÷ June × 100. Example: C-0B7D2C30 = (84 − 97) ÷ 97 × 100 = −13.4%. - Analyst-defined risk rules, not supplied company policy: High = utilization below 50% or usage decline of at least 10%; Medium = utilization below 70% unless High; Low = otherwise. - ARR at risk includes High + Medium, representing exposed ARR—not predicted losses. Date reconciliation Trust Chargebee for the five disagreements below because each account has a multi-year contract, which is known to be wrong in ChurnZero. For every other account, use the shared date: both systems agree and Chargebee reports a 12-month, non-multi-year term. | Company | ChurnZero date | Chargebee date used | Reason | |---|---|---|---| | C-0B7D2C30 | 2026-09-10 | 2026-09-15 | Disagreement; 36-month multi-year contract. | | C-0BCDB8C2 | 2027-09-18 | 2026-09-18 | Disagreement; 36-month multi-year contract. | | C-0D2AB865 | 2026-09-10 | 2026-09-22 | Disagreement; 24-month multi-year contract. | | C-0BBE3E60 | 2027-09-26 | 2026-09-26 | Disagreement; 24-month multi-year contract. | | C-0F5D2323 | 2026-09-10 | 2026-09-29 | Disagreement; 24-month multi-year contract. | Renewal-level assessment “CB override” references the disagreement above; “Agreed” means both systems support the date. ARR, CSM and seat counts come from churnzero_renewals.csv. | Company | CSM | ARR | Date used / basis | Seat utilization | Jun → Jul → Aug users; change | Risk — 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% with only 57.6% of seats used. | | C-0BCDB8C2 | Cole Ingram | $54,427 | 2026-09-18 / CB override | 232/424 = 54.7% | 127 → 118 → 110; −13.4% | High — Usage declined each month and utilization is 54.7%. | | C-0D2AB865 | Elena Sinclair | $38,022 | 2026-09-22 / CB override | 250/407 = 61.4% | 125 → 117 → 109; −12.8% | High — Usage fell 12.8%, exceeding the decline threshold. | | 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 — 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 — Utilization is only 27.7% and usage declined each month. | | C-0B20DB64 | Dana Mercer | $21,770 | 2026-10-07 / Agreed | 214/378 = 56.6% | 294 → 298 → 294; 0.0% | Medium — Usage is flat, 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 — Utilization is below 70% and usage declined slightly. | | C-0FD551AB | Elena Sinclair | $48,815 | 2026-10-14 / Agreed | 210/376 = 55.9% | 123 → 122 → 126; +2.4% | Medium — Modest usage growth does not remove the 55.9% utilization concern. | | C-0F9F8F13 | Dana Mercer | $46,230 | 2026-10-18 / Agreed | 199/352 = 56.5% | 185 → 185 → 182; −1.6% | Medium — Utilization is only 56.5% with slightly declining usage. | | C-0BC34584 | Cole Ingram | $16,740 | 2026-10-22 / Agreed | 327/494 = 66.2% | 104 → 104 → 106; +1.9% | Medium — Usage grew slightly, but utilization remains below 70%. | | C-0B7A7546 | Elena Sinclair | $35,062 | 2026-10-25 / Agreed | 182/205 = 88.8% | 64 → 65 → 63; −1.6% | Low — Utilization is 88.8% and the usage decline is limited to 1.6%. | | C-0B369871 | Dana Mercer | $85,128 | 2026-10-29 / Agreed | 317/422 = 75.1% | 326 → 330 → 333; +2.1% | Low — Utilization exceeds 70% and usage increased each month. | | C-0B144C78 | Cole Ingram | $30,899 | 2026-11-02 / Agreed | 169/224 = 75.4% | 101 → 101 → 106; +5.0% | Low — Utilization is 75.4% and usage grew 5.0%. | | C-0FC4DBB8 | Elena Sinclair | $94,732 | 2026-11-05 / Agreed | 356/464 = 76.7% | 189 → 191 → 193; +2.1% | Low — Utilization exceeds 70% 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 — Utilization is 83.3% and usage increased each month. | | C-0FB9D5AF | Cole Ingram | $63,158 | 2026-11-13 / Agreed | 144/199 = 72.4% | 173 → 173 → 176; +1.7% | Low — Utilization exceeds 70% and usage grew 1.7%. | | C-0B344485 | Elena Sinclair | $64,384 | 2026-11-16 / Agreed | 224/287 = 78.0% | 238 → 240 → 244; +2.5% | Low — Utilization is 78.0% and usage increased 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 is growing, although August activity is just 49 users. | | C-22170CA1 | Cole Ingram | $45,646 | 2026-11-24 / Agreed | 251/294 = 85.4% | 143 → 148 → 146; +2.1% | Low — Utilization is 85.4% and August usage remains above June despite July’s higher reading. | Data limitation: The seat snapshot has no timestamp, and the relationship between seats_used and active_users is undefined. August active_users exceeds seats_used for C-0B20DB64, C-0B369871, C-0D5BBE3A, C-0FB9D5AF and C-0B344485; the metrics are therefore kept separate rather than reconciled by assumption. Contract cancellation rights and customer renewal intent are not provided, so ratings are adoption-based signals only. ARR roll-up - High: $65,901 + $54,427 + $38,022 + $30,993 + $90,647 + $79,419 = $359,409. - Medium: $21,770 + $56,374 + $48,815 + $46,230 + $16,740 = $189,929. - Low: $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: all 80 supplied tickets, June–August 2026. Themes come from body_text, not tags. Ranked by affected ARR, counting each account’s ARR once per theme—not once per ticket. ARR exposure is not confirmed revenue loss; resolution and churn outcomes are missing. 1. HRIS provisioning failures — broad pattern Count/share: 12 tickets; 12 ÷ 80 × 100 = 15.0%. Distinct accounts: 3. ARR affected: C-0B2213A9 ($36,000) + C-0F6C0F34 ($30,000) + C-0DDFC9A7 ($48,000) = $114,000. Evidence: IC-460059 reports new-hire accounts not being created; IC-460062 reports skipped hires without logged errors. Recommendation: Reconcile HRIS rosters against provisioned accounts, recover missing hires, and alert on silent sync failures. 2. Redemption and gift-card failures — broad pattern Count/share: 18 tickets; 18 ÷ 80 × 100 = 22.5%. Distinct accounts: 7. ARR affected: C-0CEF69FD ($8,900) + C-0B827671 ($10,700) + C-0FCCD2DF ($9,600) + C-0F876796 ($8,700) + C-14264ABD ($11,000) + C-0D9CA315 ($9,600) + C-0B0F1BAB ($10,300) = $68,800. Evidence: IC-460025 reports checkout hanging and failing; IC-460024 reports points deducted despite a gift-card order error. Recommendation: Trace checkout through fulfillment and reconcile failed orders with deducted points or missing gift cards. 3. Invoice seat-count and renewal-pricing errors — single-account concentration Count/share: 16 tickets; 16 ÷ 80 × 100 = 20.0%. Distinct accounts: 1. ARR affected: C-0E9C27D1 ($52,000) counted once = $52,000. Evidence: IC-460069 reports billing for 200 seats versus 150 licensed; IC-460078 reports the wrong annual-renewal tier price. Recommendation: Assign one billing owner to reconcile licensed seats and tier pricing, correct discrepancies, and validate the next invoice. Interpretation: Material account-specific escalation, not evidence of a broad billing problem; repeated tickets must not inflate ARR exposure. 4. Recognition points not posting — broad pattern Count/share: 20 tickets; 20 ÷ 80 × 100 = 25.0%. Distinct accounts: 9. ARR affected: C-0D3278C7 ($3,500) + C-0BF20542 ($4,500) + C-0D0B047C ($4,500) + C-0BE96399 ($2,700) + C-0D284E42 ($3,400) + C-0D6CC8E3 ($4,200) + C-21FEBCBB ($2,900) + C-0DD0626C ($2,500) + C-0B2895EF ($2,900) = $31,100. Evidence: IC-460004 reports delivered recognitions without points; IC-460016 reports team-wide points not posting. Recommendation: Reconcile delivered recognitions against point balances, repair missing credits, and monitor posting delays. 5. Slack integration failures — broad pattern Count/share: 14 tickets; 14 ÷ 80 × 100 = 17.5%. Distinct accounts: 4. ARR affected: C-0B843542 ($4,400) + C-10A56B0F ($5,400) + C-0BA71F12 ($3,900) + C-8C2E8F00 ($5,200) = $18,900. Evidence: IC-460047 reports recognition sync stopping and its toggle resetting; IC-460051 reports team-wide slash-command errors. Recommendation: Test sync-setting persistence, reauthorization, and slash commands end to end, then add integration-health alerts. Check: 12 + 18 + 16 + 20 + 14 = 80 tickets; shares total 100%. The themes cover 24 distinct accounts with no cross-theme account overlap: $114,000 + $68,800 + $52,000 + $31,100 + $18,900 = $284,800 affected ARR.
For prospect C-82AF3719, scoring gives 1 point per exact match on industry, size_band, use_case, and region. All three customers have has_case_study=true and tie at 3/4; ranking breaks ties by use_case, then industry. 1. C-64171065 — 1 + 1 + 1 + 0 = 3/4 Matches: industry=Technology; size_band=Mid-Market; use_case=employee_recognition. Differs: region=NA-East versus prospect’s NA-West. 2. C-11C31562 — 0 + 1 + 1 + 1 = 3/4 Matches: size_band=Mid-Market; use_case=employee_recognition; region=NA-West. Differs: industry=Manufacturing versus prospect’s Technology. 3. C-A13C193D — 1 + 1 + 0 + 1 = 3/4 Matches: industry=Technology; size_band=Mid-Market; region=NA-West. Differs: use_case=retention versus prospect’s employee_recognition. Case-study URLs and content were not provided; eligibility is based only on has_case_study=true.
Period: March–August 2026, the six months supplied. Volume means contacts with an SQM date; SQOs are contacts with a populated SQO date. Results 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.00 | | linkedin_ads | $24,000 | 25 | 8 | $960 | $3,000 | 32.00% | $96,000 | 4.00 | | paid_social | $18,000 | 0 | 0 | Undefined | Undefined | Undefined | $0 | 0.00 | | webinars | $9,000 | 12 | 5 | $750 | $1,800 | 41.67% | $60,000 | 6.67 | 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 = 20. - 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 = 4. - paid_social: spend = 6 × $3,000 = $18,000; cost/SQM and cost/SQO = $18,000 ÷ 0, undefined; conversion = 0 ÷ 0, undefined. No contact rows are supplied for this channel; recorded pipeline = $0, and pipeline/$ = $0 ÷ $18,000 = 0. - 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.67. 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 spend and pre-SQM lead/traffic volume are not provided. Date-quality flags - CT-000044, linkedin_ads: SQO date 2026-07-18 precedes SQM date 2026-07-23 by 5 days. - CT-000041, linkedin_ads: SQO date 2026-06-09 precedes SQM date 2026-06-14 by 5 days. If those two SQOs and their pipeline are withheld pending validation, while retaining all 25 SQMs, linkedin_ads becomes: 8 − 2 = 6 SQOs; 6 ÷ 25 = 24% conversion; $24,000 ÷ 6 = $4,000/SQO; 6 × $12,000 = $72,000 pipeline; $72,000 ÷ $24,000 = 3 pipeline/$. Reallocation recommendation and confidence Pause paid_social pending attribution/completeness checks. If its zero recorded SQMs are confirmed, redirect its budget primarily toward a staged paid_search expansion, with a smaller webinars test. Consider reducing linkedin_ads after resolving its date errors: its pipeline/$ trails both alternatives even before adjustment. Confidence: moderate in prioritizing paid_search, with the largest paid sample at 40 SQMs/18 SQOs and 20 pipeline/$. Low in scaling webinars aggressively from only 12 SQMs/5 SQOs, or declaring referral superior from 15 SQMs/6 SQOs. Confidence in an exact allocation is low: marginal returns, closed-won revenue, attribution completeness, and subsequent conversion of recent SQMs are not provided. Pipeline/$ is not realized revenue ROI.
Battlecard: Rivally 1. One-line positioning Points-based recognition with a reviewer-praised feed and multi-language support for distributed EU teams; also offers the Rivally Pulse engagement-survey add-on. [S02, S12, S06] Old-card “for mid-market” positioning: unverified as a target-market claim; a mid-market reviewer’s experience does not establish vendor positioning. [S04] 2. Pricing — source, date, and conflict - Current published price: Recognition Starter is $7/user/month, annual billing required. Source: pricing_page, 2026-08-12. [S17] - Conflict: the old card’s $5/user/month reflected the 2026-01-20 pricing page; the 2026-04-01 page also showed $5 for Recognition Starter. The newer pricing page wins. Increase: $7 − $5 = $2/user/month; $2 ÷ $5 × 100 = 40%. [S03, S08, S17] - Deal-specific evidence: call notes recorded a $6.50/user/month quote for a 500-seat prospect on an annual term, dated 2026-06-02. This is not current published pricing. [S13] - On 2026-08-14, a prospect reported $7/user/month list with 15% off for a three-year term: $7 × (1 − 0.15) = $5.95/user/month. Treat as a reported offer, not a generally available discount. [S18] - Rivally Pulse is separately priced, not bundled; the supplied announcement gives no add-on price. Source: press, 2026-09-01. [S23] 3. Where they win Evidence-backed strengths, not documented reasons for our losses: - EU requirements: EU data residency announced generally available; an EU enterprise reviewer praised distributed-team fit and multi-language support. [S15, S12] - Setup and Slack: one mid-market reviewer reported setup under a week and Slack integration working out of the box. [S04] - Recognition experience: reviewers praised the points-based feed and described it as engaging. [S02, S16] - Support: one reviewer praised response times under four hours; this is not a verified SLA. [S22] 4. Where we win - Analytics depth: call notes report an 800-seat prospect choosing Bonusly over Rivally for this reason. No deal alias is supplied, so this cannot be linked to a named deal. [S25] - Discovery opportunities, not proven Bonusly advantages: reviewers described limited/basic analytics, missing SCIM, CSV-only analytics exports that complicated migration, and missing bulk recognition editing. Validate current functionality and demonstrate our capabilities rather than asserting unsupported superiority. [S02, S07, S10] [S20, S24] - EMEA rewards coverage: one reviewer described Rivally’s EMEA catalog as thinner than its US catalog. This does not establish that Bonusly’s catalog is broader. [S14] 5. Objections and responses - “Rivally is cheaper.” Response: “Its latest published Starter price is $7/user/month, billed annually. Let’s compare equivalent scope and terms.” Bonusly pricing is not provided, so relative cost cannot be established. [S17] - “We need EU support.” Response: “Rivally announced generally available EU data residency, and a reviewer praised multi-language support. Let’s validate your residency and language requirements.” Do not dismiss these strengths. [S15, S12] - “Their analytics are sufficient.” Response: “Let’s test your required dashboards and export workflows.” Reviews describe basic reporting and CSV-only analytics exports; one prospect reportedly chose Bonusly for analytics depth. [S07, S20, S25] - “Rivally has no Slack integration.” Response: reject this old-card assertion. Mark it unverified and contradicted by a reviewer reporting a working Slack integration. [S04] - “Their UI is clunky / they discount aggressively.” Response: neither is an established competitor fact; these are explicitly unverified AE opinions. [S09, S21] 6. Recent changes - 2026-03-05: launched Rivally Pulse, a lightweight engagement-survey add-on. [S06] - 2026-05-09: hired an ex-Workday VP EMEA to lead European expansion. [S11] - 2026-07-01: opened a Dublin office and announced EU data residency generally available. [S15] - 2026-08-12: published Starter pricing increased to $7/user/month. [S17] - 2026-08-20: announced Microsoft Teams app v2 in public preview—not general availability. [S19] - 2026-09-01: Pulse exited beta and remained a separately priced add-on. [S23] Old-card acquisition claim: “Rivally was acquired by WorkHuman in 2025” is unverified; no supplied snippet supports it. S01 reports a $40M Series C led by Northgate Ventures, not an acquisition; it does not conclusively disprove the claim. [S01] 7. Our 12-month win/loss record Period: September 2025–August 2026, the supplied 12-month dataset. Source: deals_with_competitor.csv. These records have no snippet IDs; none can truthfully be supplied. - Wins: 13 - Losses: 7 - Total: 13 + 7 = 20 - Win rate: 13 ÷ 20 × 100 = 65% - Loss rate: 7 ÷ 20 × 100 = 35% Wins: 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: Deal-7767F5, Deal-5645A5, Deal-C6FFAA, Deal-D263E0, Deal-935746, Deal-9066A6, Deal-72A02F. Deal values and outcome reasons are missing from the deal file. The September 2026 anecdote is outside this reporting window and is not added to the record. [S25]
Rates = summed events ÷ summed sends × 100; these are per-send rates, not unique-contact conversion rates. “Weakest” means lowest reply rate. • 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. Reported 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%; all steps generated zero meetings. • 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 has 340 opened versus 300 sent: 113.33%, exceeding sends by 40. Change: reconcile opening-event deduplication before using open rates. Audience overlap: • New Logo Nurture ↔ Expansion Nurture: 2 contacts, CT-000301 and CT-000624. • Cold Outbound - HR Leaders ↔ Cold Outbound - People Ops: 21 contacts, including CT-000849, CT-000884 and CT-001159. No other cross-sequence overlaps appear in the supplied rows. Overlap creates duplicate-outreach risk; timing is unavailable. Under-2% failure modes and changes: • Cold Outbound - HR Leaders: all steps fail—5/600 = 0.83%, 2/595 = 0.34%, 1/590 = 0.17%. Recorded opens do not translate into replies. Change: test a lower-friction reply CTA. • Cold Outbound - People Ops: step 3 alone fails; late-step response deterioration. Change: replace step 3 with a new value proposition. Fix Cold Outbound - HR Leaders first for performance. Actual causes remain unproven: copy, delivery diagnostics and enrollment timing are missing.
Q3-2026 weekly marketing goals update July 1–September 30; day 66 of 92 = 71.74% elapsed. Pace assumes linear progress: expected QTD = target × 66/92. Delta = 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. 300 × 66/92 = 215.22 | | SQOs | 84 | 120 | −36 | Behind: 84 vs. 120 × 66/92 = 86.09 | | DS2s | 40 | 75 | −35 | Behind: 40 vs. 75 × 66/92 = 53.80 | | Closed-lost MIA rate | 5/25 = 20% | ≤10% | +10 percentage points | Behind: 20% exceeds 10% ceiling | | Same-quarter close count | 10 | 20 | −10 | Behind: 10 vs. 20 × 66/92 = 14.35 | | Active pipeline coverage against target | 3,000,000 / 4,000,000 = 75% | 4,000,000 (100%) | −1,000,000; −25 percentage points | Ahead on linear proxy: 3,000,000 vs. 4,000,000 × 66/92 = 2,869,565.22 | Active pipeline is a point-in-time balance; its pace above is a linear proxy, not evidence of pipeline growth. Currency is not specified. 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 ahead of linear pace, SQOs, DS2s and same-quarter closes behind, and the closed-lost MIA rate above its ceiling. Active pipeline covers 75% of target, ahead of the 71.74% elapsed-time proxy but still 1,000,000 below the full target.
Treat Q3 2026’s 115,976.75 forecast as provisional: all 7 in-quarter COMMIT deals lack documented why-buys. For 54/86 in-quarter deals, 100% × 44,729 COMMIT + 35% × 203,565 BEST_CASE (24 deals) = 115,976.75; 23 PIPELINE deals contribute 0. Exclude 32 October deals totaling 227,575, including COMMIT Deal-D348E1 (13,770, 2026-10-15) and 9 BEST_CASE totaling 28,240; the remaining 22 PIPELINE deals carry zero weight.
Subject: Deal-0D2F7A — following up on pricing Hi team, Following up on my August 5 email with the July 28 demo recap and pricing for 150 seats. Could you share whether that pricing fits the recognition budget? Thanks, Alex Franklin
Marketing: For the week of 2026-08-31, Marketing brought in 46 SQMs against a target of 52, a gap of 6 (52 − 46 = 6). Webinars contributed 18 of those SQMs, and paid search cost per SQM held at $150. There’s progress to celebrate and a target still to reach. Sales: Sales converted 14 SQOs, set 9 DS2 meetings, and created $310,000 in new pipeline. The week also brought 3 same-quarter closes. Let’s celebrate those wins while keeping new pipeline distinct from closed revenue. CS: A win worth recognizing: 2 renewals saved this week. Team NPS moved to 61; the extract doesn’t provide the prior score, so the direction and size of the change aren’t available. Heading into next week, 3 red-flag accounts remain open and need attention. PLG: Welcome to the 412 new signups! Activation was 31%, and 38 companies reached the aha moment of 10 recognition gives. That’s a milestone worth celebrating: more workplaces putting recognition into practice.
Partner digest | 2026-08-24 to 2026-09-04 Partner-sourced pipeline: 2 + 1 + 2 + 0 = 5 deals; 275,000 + 140,000 + 135,000 + 0 = 550,000. All five deals have utm_source = Partner. Currency not provided. - Apex Rewards Co — Co-webinar confirmed for 09-15. Two sourced opportunities, both in DS1: Deal-DDAAF2 (180,000) + Deal-2CF33E (95,000) = 275,000. - HRCloud Partners — Integration referral completed security review and moved to DS2. One sourced opportunity: Deal-F1CDA5 (140,000) = 140,000. - CultureBridge — Lunch-and-learn produced two sourced opportunities, both early stage: Deal-096E1D (60,000) + Deal-067213 (75,000) = 135,000. - WorkWell Group — Wants to restart the joint playbook in Q4; planning call booked for 09-09. Zero sourced deals; pipeline amount 0. - Recogniq — Quiet; no updates or sourced deals in the provided data. - KudosWave — Quiet; no updates or sourced deals in the provided data. - PeopleFirst Advisors — Quiet; no updates or sourced deals in the provided data. - TotalPerk — Quiet; no updates or sourced deals in the provided data.
Q1. Yes. All customer data is encrypted at rest using AES-256. [P1] Q2. Yes. Data in transit is encrypted with TLS 1.2 or higher. [P1] Q3. Yes. Bonusly maintains an annually renewed SOC 2 Type II report, available to prospects under NDA. [P2] Q4. Customer data is retained for 90 days after the contract ends, then deleted from production systems. [P3] Q5. Our subprocessor list is published at trust.bonusly.com. Customers receive 30 days’ notice before a new subprocessor is added. The notification method and notice for other types of changes are unanswerable from the excerpt; our subprocessor notification policy would be needed. [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. The excerpts do not state whether Bonusly holds ISO 27001 certification. An ISO 27001 certificate or formal certification-status statement would be needed. [P1–P8 reviewed; no supporting excerpt] Q9. Unanswerable. The excerpts do not specify a contractual uptime SLA percentage. The applicable contractual Service Level Agreement would be needed. [P1–P8 reviewed; no supporting excerpt] Q10. Unanswerable. The excerpts do not state whether Bonusly will sign a HIPAA Business Associate Agreement. A formal BAA eligibility and execution policy would be needed. [P1–P8 reviewed; no supporting excerpt]
Scope: supplied files and manifest only. “Dangling” means absent from this supplied set, not proven absent from any external installation. Proposals only; nothing rewritten. 1. Overlapping triggers | Severity | Action | Finding | Proposal | |---|---|---|---| | WARNING | TRIM_DESC | `pipeline-intelligence-report` and `weekly-pipeline-report` overlap on “pipeline update,” “run the pipeline update,” pipeline-report requests, and “what's the pipeline look like” / “what does pipeline look like.” Both use ALWAYS triggers. | Reserve scored/tiered pipeline requests for `pipeline-intelligence-report`; reserve weekly performance, funnel, targets, and bookings updates for `weekly-pipeline-report`. | | 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.” These are unconditional routing descriptions, although not literally labeled ALWAYS. | Merge email-specific capabilities, including signature retrieval, into `comms-drafter` and redirect callers there. | | WARNING | TRIM_DESC | `deal-strategy-coach` claims requests asking which deals are likely to close; `next-to-close` ALWAYS claims “which deals are most likely to close.” | Give shortlist/ranking requests to `next-to-close`; retain strategic diagnosis in `deal-strategy-coach`. | | WARNING | TRIM_DESC | `deal-strategy-coach` claims “draft a manager email,” overlapping the customer-facing email scopes of both `email-drafter` and `comms-drafter`. | Route draft-only requests to the drafting skill; invoke coaching only when strategy is requested or needed. | | WARNING | TRIM_DESC | `pipeline-intelligence-report` claims VP requests for “forecast context” and all pipeline questions; `sales-forecast` ALWAYS claims “pipeline forecast,” current-quarter outlook, and deal-level confidence. | Reserve quarter forecast requests for `sales-forecast`, rather than allowing the master-pipeline catch-all to capture them. | | WARNING | TRIM_DESC | `pipeline-intelligence-report` says never answer pipeline questions without running it, encompassing `stale-pipeline-report`’s ALWAYS triggers for “stale pipeline” and “pipeline hygiene.” | Exclude stale-contact/hygiene requests from the master-pipeline catch-all. | | INFO | REVIEW | `analysis-validator`, `signalforge-claim-compressor`, and `signalforge-feedback` intentionally overlap on analytical/report outputs. `model-selection` covers every task. Shared triggers alone do not make these duplicate skills. | Retain distinct gate roles but document one execution order, including whether compression requires revalidation. | 2. Circular delegation | Severity | Action | Finding | Proposal | |---|---|---|---| | WARNING | UPDATE_BODY | Conditional reciprocal handoff: `deal-strategy-coach` → `email-drafter` → `deal-strategy-coach`. The coach explicitly invokes the drafter for manager-to-prospect emails; the drafter points strategic requests back to the coach. This is a potential routing loop, not an unconditional recursive call. | Make the drafter return its draft to the invoking coach without redispatching strategy already handled by that coach. | No other closed delegation chain is established by the supplied bodies. In particular, `next-to-close` → `pipeline-intelligence-report` → `closed-lost-analysis` has no supplied return edge. 3. Dangling delegation/dependency targets Each row is a separate finding and proposal. | Severity | Action | Missing target | Supplied caller(s) | Proposal | |---|---|---|---|---| | CRITICAL | UPDATE_BODY | `bonusly-data-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-product-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-business-reporting-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-rewards-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-ppp-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-feature-flag-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-deal-desk-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-datadog-questions` | `analysis-validator` §12.4 | Replace the unresolved delegation with a verified available specialist target. | | CRITICAL | UPDATE_BODY | `bonusly-brand` | `comms-drafter`, `email-drafter`, `sales-forecast`; also routed to by `signalforge-claim-compressor` | Resolve the brand prerequisite to an available skill. | | CRITICAL | UPDATE_BODY | `prospect-research-multithreading` | `comms-drafter`, `email-drafter`, `deal-strategy-coach` | Resolve the contact-research handoff to an available skill. | | CRITICAL | UPDATE_BODY | `signalforge-reports` | `pipeline-intelligence-report`, `weekly-pipeline-report` | Resolve the mandatory design-skill dependency and its referenced assets. | | WARNING | REVIEW | `caveman` | Optional combined use in `signalforge-claim-compressor` | Verify availability before retaining the optional integration. | | WARNING | REVIEW | `skill-orchestrator` | Sync reference in `analysis-validator`; registration requirement in `signalforge-feedback` | Verify this missing integration target; it is not an explicit runtime delegation in the supplied text. | Referenced supporting files such as `references/data-sources.md` were not provided. Their existence cannot be verified from this set. 4. Version conflict | Severity | Action | Finding | Proposal | |---|---|---|---| | WARNING | UPDATE_BODY | `analysis-validator` declares v3.6 in its header, changelog, and footer, but its validation-trail template identifies `analysis-validator v3.2`. Full Mode also retains older check ranges, and the decision tree omits G2-F. | Preserve `analysis-validator` v3.6 and align its operational summaries and trail template to that version. | No separate competing version files were supplied, so no version-based `DELETE_SKILL` proposal is supported. `pipeline-intelligence-report` v6 using a v4 design system is not, by itself, a version conflict. 5. Manifest descriptions exceeding 1,024 characters INFO | REVIEW — None. Arithmetic: count(description_chars > 1,024) = 0 of 14. Maximum = 1,006; 1,024 − 1,006 = 18 characters below the limit. Proposal: retain the descriptions against this length criterion; no length-based `TRIM_DESC` is warranted. 6. Hardcoded page IDs, dates, and person names in bodies Historical changelog dates and explicitly labeled examples are distinguished from operational constants below. | Severity | Action | Skill and evidence | Proposal | |---|---|---|---| | WARNING | UPDATE_BODY | `analysis-validator`: operational escalation names `Manish` and `Amani`; dated GTM roster containing `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`; deprecated spelling references `Ashley Le` and `Tracy`. Dates include April 26, 2026; May 4, 2026; May 9, 2026; March 28, 2023; May 2026 calibration anchors; Q1/Q2 2026 examples. | Resolve operational people and calibration data dynamically; retain historical dates only as provenance. | | WARNING | UPDATE_BODY | `closed-lost-analysis`: May 2026 observations and field confirmations; MinIO vacation dates May 4–12; “demo on 4/13”; June 3 outreach example. | Separate historical evidence/examples from reusable live instructions and require current evidence before applying them. | | WARNING | UPDATE_BODY | `deal-strategy-coach`: playbook page ID `2257879045`, April 2026 playbook title, “Pricing — 2026,” and routing names `Perseus` and `Farid`. | Externalize the playbook, pricing version, and routing owners into verified configuration. | | INFO | REVIEW | `model-selection`: `last_checked: 2026-05-19`, dated changelog, April 14, 2026 deprecation claim, knowledge-cutoff dates, and date-stamped model ID. | Keep dates as registry metadata subject to its refresh procedure, not timeless model facts. | | WARNING | UPDATE_BODY | `partner-digest`: folder ID `2286616609`; page IDs `2286321666`, `2265382925`, `2236940297`, `2237825028`, `2239365136`, `2238283777`; names `Amani`, `Amani Phipps`, `Kelli`, `Jen Lee`, `Hani`, `Bryce`, `Sara`; May 16, May 19, June 2, 2026 examples; Q2/Q3 2026 page title; changelog `2026-05-17`. | Configure destinations and contacts, and distinguish historical issues from dynamically generated reporting periods. | | WARNING | UPDATE_BODY | `pipeline-intelligence-report`: May 2026 version/owner verification; hardcoded owners `Bryce Harmon`, `Dana Mercer`, `Cole Ingram`, `Alex Franklin`, `Gavin Porter`; March 2023 stale-table reference. | Resolve owners live and retain dated system claims only as verification history. | | WARNING | UPDATE_BODY | `sales-forecast`: parent page ID `2232582148`; `Alaina` in Manager Forecast; `Elena` and `Alaina` in changelog; April 27, 2026 and July 9, 2026 dates; residual “Open Q2 Deals” and “Q2 Narrative” despite current-quarter instructions. | Parameterize operational destination, leader, and quarter labels while preserving labeled history/examples. | | INFO | REVIEW | `signalforge-claim-compressor`: changelog date `2026-05-09` and attribution `JuliusBrussee/caveman`. | Retain these as historical provenance, not operational personalization. | | WARNING | UPDATE_BODY | `signalforge-feedback`: target page `2295136266`, parent `2234417154`, but activation checklist names Build Log page `2247295002`; example report title uses `Gavin Porter` and “Q2 Pipeline Review.” | Establish one configured feedback destination and align the activation checklist with it. | | INFO | REVIEW | `stale-pipeline-report`: example dates `5/15`, `5/19`, `5/7`; changelog `2026-06-10`. | Keep these explicitly illustrative/historical so they cannot become live outreach facts. | | WARNING | UPDATE_BODY | `weekly-pipeline-report`: `Ben Lavin` in title and `Ben` throughout workflow; hardcoded Q2 window “April 1 – June 30, 2026,” Q2/Q3+ buckets, and Q1 2026 static context. | Parameterize recipient and reporting quarter; retain prior-quarter context only when relevant and labeled. | No literal page IDs, calendar dates, or person names were found in the supplied bodies of `comms-drafter`, `email-drafter`, or `next-to-close`. The HubSpot `1973303` value is an organization/portal ID, not a page ID. 7. Manifest drift in both directions | Severity | Action | Finding and arithmetic | Proposal | |---|---|---|---| | INFO | REVIEW | Files with no manifest row: 14 supplied skill files − 14 matched files = 0. | No manifest additions needed for the supplied files. | | INFO | REVIEW | Manifest rows with no file: 14 manifest rows − 14 matched files = 0. | No manifest-row removals needed for the supplied set. | All supplied filename stems also match their manifest `declared_name` and skill frontmatter `name`. Missing referenced dependencies above are not manifest drift: neither their files nor their manifest rows were supplied.
1. Acknowledge alert and take incident command. [M01]
- Who: Bryce Harmon.
- Action: Acknowledged the PagerDuty alert for reward-worker queue depth > 10k; took IC.
- Verification: Not documented — needs confirmation.
- Rollback: Not documented — needs confirmation.
2. Check queue depth. [M02]
- Who: Farid Osman.
- Command: `bundle exec rake sidekiq:queue_depth`
- Verification: Returned 48,213 pending reward jobs; normal is under 500.
3. Inspect the dead set. [M03]
- Who: Farid Osman.
- Action: Reported 112 dead jobs, all Redis::TimeoutError from around 13:58. Exact inspection command not documented — needs confirmation.
- Verification: Reported findings only; verification method not documented — needs confirmation.
4. Pause enqueue. [M04]
- Who: Farid Osman.
- Command: `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'`
- Verification: No direct confirmation that enqueue was disabled — needs confirmation.
- Rollback: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'`
5. Clear the dead set — execution details need confirmation. [M05]
- Who: Elena Sinclair.
- Action: Cleared the dead set in the console. Exact command not documented — needs confirmation.
- Verification: Completion was reported; no verification documented — needs confirmation.
- Rollback: Not documented — needs confirmation.
6. Scale workers from 3 to 6. [M06]
- Who: Bryce Harmon.
- Command: `kubectl scale deployment/reward-worker --replicas=6`
- Verification: No direct replica-count verification documented — needs confirmation. Subsequent queue observations appear in steps 7–8.
- Rollback: `kubectl scale deployment/reward-worker --replicas=3`
7. Check queue-drain progress. [M07]
- Who: Farid Osman.
- Action: Reported queue depth down to 9,400 and falling ~1,200/min. Measurement command not documented — needs confirmation.
- Verification: Reported observations only; measurement method needs confirmation.
8. Verify queue drained and error rate recovered. [M08]
- Who: Cole Ingram.
- Command: `bundle exec rake sidekiq:queue_depth`
- Action: Checked error rate in Datadog.
- Verification: Queue-depth command returned 0; Datadog error rate was back to baseline.
9. Re-enable enqueue. [M09]
- Who: Bryce Harmon.
- Command: `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'`
- Verification: Verified 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 the incident. [M10]
- Who: Bryce Harmon.
- Command: `kubectl scale deployment/reward-worker --replicas=3`
- Action: Declared the incident resolved.
- Verification: Queue stable at 0. 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” Observed cascade (all timestamps UTC, 2026-09-03): 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. This shares a timestamp with the last retry-exhaustion entry; finer ordering is unavailable. 3. 14:01:46 — earliest failure in sidekiq_jobs.csv: J-00005, RewardGiveJob, Redis::TimeoutError. 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 — J-00013, RecognitionDigestJob, also fails with Redis::TimeoutError, showing another job class is affected. 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 — further job failures/retries, gateway timeouts, and form-submission errors appear. 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/job involved: The first error is in reward-service, connecting to redis-primary:6379. Subsequent errors name RewardGiveJob, executed by sidekiq. The jobs file additionally records RecognitionDigestJob failures. Datadog query to confirm the first error: ```text service:reward-service status:error *:"Connection to Redis" *:"timed out after 5s" ``` Set the time range to 2026-09-03T13:55:00Z–2026-09-03T14:02:00Z and sort oldest first. This query is proposed, not executed. The logs do not show: - Why Redis timed out, or what restored connectivity. - A job ID or job class attached to the first timeout; it cannot be attributed to J-00005. - Trace/request IDs proving causality across services; the cascade is an observed chronological sequence. - Exact queue depths, customer impact, lost/duplicated rewards, or successful completion of every failed job. - Explicit recovery of /gives or the web form. Later queue improvement does not establish full end-to-end recovery.
Counts below are taken directly from the export; no calculation is needed. Individual company aliases are not provided. For flags marked off, listed targets do not mean the feature is enabled. | Flag | State | Controls per code excerpt | Targeting rule | Company count | |---|---|---|---|---:| | recognition_streaks_v2 | on | Records a give via `StreakTracker.record(give)`. | `segment:beta_companies` | 42 | | points_budget_guardrails | on | Enforces the company’s points budget for the giver and points amount. | `all_companies` | 220 | | slack_dm_nudges | on | Permits sending a Slack DM nudge; the job returns without sending if disabled. | `segment:region_na` | 87 | | redeem_flow_redesign | off | Selects `RedeemV2Component` when enabled; otherwise renders `RedeemV1Component`. | `targeted_list`; company identities not provided | 12 | | analytics_dashboard_v3 | on | Initializes `AnalyticsV3` for the company. | `segment:tier_three` | 65 | | ms_teams_app_v2 | off | Permits `TeamsAppV2.install(company)`. | `targeted_list`; company identities not provided | 9 | | legacy_give_modal | off | No code reference in the provided excerpt; behavior unknown. | `segment:legacy_plan` | 14 | | survey_boosters_q3 | on | No code reference in the provided excerpt; behavior unknown. | `segment:legacy_plan` | 7 | | paused_offboard_cleanup | off | No code reference in the provided excerpt; behavior unknown. | No targeting rule provided; no targets | 0 | `legacy_give_modal` and `survey_boosters_q3` share the targeting rule `segment:legacy_plan` but have different exported company counts. The provided data does not explain the difference.
- NDA-1 — [PARTY A] and Bonusly: GREEN (standard approval) — Mutual confidentiality with all five carve-outs, Delaware law, and bounded duration: clause 2 states “Term: two (2) years from the Effective Date; obligations survive for three (3) years after termination.” - NDA-2 — [PARTY B] and Bonusly: YELLOW (counsel review) — Clause 4 embeds a non-solicit and no-hire restriction: “During the term of this Agreement and for eighteen (18) months thereafter, neither party shall solicit for employment or hire any employee of the other party with whom it came into contact under this Agreement.” - NDA-3 — [PARTY C] and Bonusly: 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,” the unusually long clause 1 “Term: five (5) years,” and clause 3’s non-Delaware forum: “the laws of the Republic of Ireland, and the parties submit to the exclusive jurisdiction of its courts.”