Mean 0.919 · 28/40 perfect tests · $0.79 total · each card: the question → the correct answer (gold) → this model's actual answer
Definitions - DS2+ deals: deals with stage DS2, DS3, DS4, or DS5 - Substantive why_buys: why_buys formatted as LONG(n) [treated as present] OR non-empty, non-placeholder text with 15+ characters. Placeholders: tbd, n/a, see notes, na, none (and blank) - DS1 timestamp: non-empty t_ds1 field - Regressed: any deal where an earlier-stage entry timestamp is later than a later-stage entry timestamp (e.g., t_ds1 > t_ds2). Only non-empty stage timestamps are compared Aggregates - DS2+ why-buys non-compliance: 83.5% overall (81 of 97 deals) - Bryce Harmon: 18 DS2+ deals, 15 non-compliant (83.3%) - Dana Mercer: 22 DS2+ deals, 18 non-compliant (81.8%) - Cole Ingram: 22 DS2+ deals, 19 non-compliant (86.4%) - Alex Franklin: 34 DS2+ deals, 28 non-compliant (82.4%) - Farid Osman: 1 DS2+ deal, 1 non-compliant (100.0%) - Deals with no DS1 timestamp: 0 - Regressed deals: 0 Process fixes 1. Enforce why-buys as a required, validated field at DS2+ in the CRM (min 15 chars, reject tbd/n/a/see notes at save time, using a picklist or validation rule) 2. Make owner-level stage hygiene visible in weekly RevOps huddles with leaderboard by non-compliance rate, so Cole (86.4%) and Alex (82.4%) get coaching before deals advance 3. Add a pre-close audit check that blocks advancement to DS3/DS4/DS5 unless why_buys is substantive, preventing blank handoffs and late-stage surprises
Deals resolved: 156 Deals with no owner match in owners table: 0 - Unmatched deal list: none Owner ids that map to archived/deactivated owners with open deals: 0 - Archived owners mapped to open deals: none Total pipeline amount per resolved owner: - Bryce Harmon: $1,054,144.00 - Alex Franklin: $624,310.00 - Dana Mercer: $341,195.00 - Cole Ingram: $288,161.43 - Farid Osman: $4,134.00 - Elena Sinclair: $2,100.00
**Call-to-deal mapping integrity check** Data files: `gong_calls_by_deal_90d.csv` (67 rows) vs `deals_open.csv` (128 rows) --- **(a) Orphan gong rows** - Count: **32** - These are gong rows whose `hs_deal_id` has no matching `deal_id` in the open-deals list. Sample aliases (first 10 of 32): Deal-1E2498, Deal-60C2C2, Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42, Deal-36EA09, Deal-9A43B4, Deal-605F3C Full orphan set (32 aliases): Deal-1E2498, Deal-60C2C2, Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42, Deal-36EA09, Deal-9A43B4, Deal-605F3C, Deal-E2D34B, Deal-76821A, Deal-D84A2D, Deal-1A0416, Deal-228783, Deal-3F86A0, Deal-9897FA, Deal-422BA6, Deal-344163, Deal-B038F0, Deal-5CA5AF, Deal-D3BD1C, Deal-5592CC, Deal-1E8CFB, Deal-AC944F, Deal-DECCF3, Deal-51EA1A, Deal-38CA53, Deal-32088A, Deal-7C4130, Deal-C00480, Deal-3B6668 --- **(b) Duplicate conversation keys** - Count: **0** - No rows where `calls_90d` exceeds `distinct_conversation_keys`. --- **(c) Open deals at DS3 or later with at least one logged call** - Open deals at stage DS3+: **66** - With at least one logged call: **23** - **Share: 34.85%** (23 / 66) Sample DS3+ with logged calls: Deal-25F752, Deal-E53952, Deal-5408B0, Deal-D348E1, Deal-C6D97A, Deal-547B2B, Deal-944310, Deal-B7EBD1, Deal-3974EB, Deal-A2B47C Sample DS3+ without logged calls: Deal-9AAE5F, Deal-403845, Deal-6787C2, Deal-2465CE, Deal-62D607, Deal-7B3B0F, Deal-F9A08A, Deal-0660B4, Deal-1FC049, Deal-FD9F4E Note: The 32 orphan gong rows account for roughly half (32 of 67) of the call data — meaning nearly half of the gong-attributed deals are not currently in the default pipeline’s open list.
```sql
WITH company_first_month AS (
-- Base table: PRODUCTION.PLG.COMPANY_COHORT_SUMMARY
-- Rationale: one row per self-serve company containing SIGNUP_DATE and
-- first-month aggregates (M1_USERS, M1_GIVES). Avoid UNPOPULATED
-- HUBSPOT_HUB_1973303.V2_LIVE.OBJECTS_DEALS and STALE
-- PRODUCTION.HUBSPOT.DEALS. No event-level giving table is catalogued,
-- so the deleted-giver filter is not applied here.
SELECT
COMPANY_ID,
SIGNUP_DATE,
DATE_TRUNC('month', SIGNUP_DATE) AS first_month_start,
DATEADD('month', 1, DATE_TRUNC('month', SIGNUP_DATE)) AS first_month_end,
M1_USERS,
M1_GIVES
FROM PRODUCTION.PLG.COMPANY_COHORT_SUMMARY
WHERE SIGNUP_DATE IS NOT NULL
)
SELECT
cfm.COMPANY_ID,
cfm.M1_USERS AS unique_givers,
cfm.M1_GIVES AS recognition_count,
COUNT(rr.STATE) AS successful_redemption_count
FROM company_first_month cfm
-- Redemption source: PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2
-- Rationale: documented source for redemption counts. Business rule requires
-- STATE = 'succeeded' only. The deleted-giver filter is explicitly not applied
-- because the catalog notes state it understates historical giving counts, and
-- this table records redemption outcomes, not giver identity.
LEFT JOIN PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2 rr
ON rr.COMPANY_ID = cfm.COMPANY_ID
AND rr.STATE = 'succeeded'
AND rr.REDEMPTION_DATE >= cfm.first_month_start
AND rr.REDEMPTION_DATE < cfm.first_month_end
GROUP BY cfm.COMPANY_ID, cfm.M1_USERS, cfm.M1_GIVES
ORDER BY cfm.COMPANY_ID;
```
======================================================================
CRM AUDIT REPORT — Amani GTM Analysis
======================================================================
1. SOURCE DATA SCOPE
--------------------------------------------------
Companies: 34 rows
Contacts: 52 rows
Enrichment: 25 domains (ZoomInfo export)
Deals: NO deals table provided (owner, stage, amount,
close date, why-buys all absent).
GTM constraint: 10 fixes ranked by operational severity
because pipeline amount cannot be calculated.
2. FIELD COMPLETENESS PERCENTAGES
--------------------------------------------------
Companies:
domain : 34/34 (100%)
industry : 34/34 (100%)
employee_count : 25/34 (74%)
hq_country : 28/34 (82%)
Contacts:
email : 52/52 (100%)
title : 40/52 (77%)
persona : 37/52 (71%)
Note: 4 contacts have an 'email' value, but the value is syntactically
invalid (missing domain, just '@'). Email completeness remains
100% because the field is non-empty; validity is reported in §4.
3. DUPLICATE COMPANY CLUSTERS
--------------------------------------------------
Duplicate domains:
domain = acme-corp.com
C-0A092931 industry='Technology' emp=500 hq=US
C-0A092932 industry='tech' emp=510 hq=USA
SURVIVOR: C-0A092931 (most complete row in cluster)
domain = globex.io
C-0A092933 industry='SaaS' emp=200 hq=US
C-0A092934 industry='Technology' emp=200 hq=US
SURVIVOR: C-0A092933 (most complete row in cluster)
Shared free-form industry name variants (not a true duplicate,
but they make reporting/forecasting noisy):
'manufacturing' -> ['C-2D1F1B', 'C-31ED2A', 'C-2D7423']
'technology' -> ['C-66D1FC', 'C-EC3025', 'C-44EA29', 'C-92D97D', 'C-D04904', 'C-77A95A', 'C-AA8DDA', 'C-B25F40', 'C-60C75F', 'C-425E2A', 'C-BA969B', 'C-332637', 'C-93C8BF', 'C-C9BB20', 'C-0A092931', 'C-0A092932', 'C-0A092934']
'retail' -> ['C-C6FE92', 'C-950043', 'C-D73B89', 'C-D0662E', 'C-B97B4E']
'finance' -> ['C-96039F', 'C-E51FB7']
'healthcare' -> ['C-B23205', 'C-63A874', 'C-2C60E5', 'C-7BBDFA', 'C-50D386', 'C-EE9FFB']
4. INVALID EMAILS (4 contacts)
--------------------------------------------------
CT-0010 company=C-66D1FC
email='user0@' expected_domain='66d1fc.com'
CT-0080 company=C-92D97D
email='user0@' expected_domain=''
CT-0081 company=C-92D97D
email='user1@' expected_domain='92d97d.com'
CT-0192 company=C-425E2A
email='user2@' expected_domain='425e2a.com'
Format issues: addresses end in '@' with no domain portion.
5. EMAIL DOMAIN MISMATCHES (1 contact)
--------------------------------------------------
CT-0011 company=C-66D1FC
email=user1@other-domain.com
expected_domain=66d1fc.com actual_domain=other-domain.com
6. ENRICHMENT FILL (values to copy from zoominfo into CRM)
--------------------------------------------------
C-EC3025: fill employee_count = 400 [source: enrichment]
C-96039F: fill employee_count = 400 [source: enrichment]
C-44EA29: fill employee_count = 400 [source: enrichment]
C-D04904: fill employee_count = 400 [source: enrichment]
C-B23205: fill employee_count = 400 [source: enrichment]
C-60C75F: fill employee_count = 400 [source: enrichment]
C-7BBDFA: fill employee_count = 400 [source: enrichment]
C-50D386: fill employee_count = 400 [source: enrichment]
7. ENRICHMENT CONFLICTS (CRM and zoominfo disagree)
--------------------------------------------------
C-66D1FC domain=66d1fc.com
field=industry
crm='tech' zi='Computer Software'
C-66D1FC domain=66d1fc.com
field=hq_country
crm='US' zi='United States'
C-950043 domain=950043.com
field=hq_country
crm='US' zi='United States'
C-EC3025 domain=ec3025.com
field=industry
crm='Technology' zi='Computer Software'
C-EC3025 domain=ec3025.com
field=hq_country
crm='USA' zi='United States'
C-96039F domain=96039f.com
field=hq_country
crm='USA' zi='United States'
C-44EA29 domain=44ea29.com
field=industry
crm='tech' zi='Computer Software'
C-92D97D domain=92d97d.com
field=industry
crm='Technology' zi='Computer Software'
C-D04904 domain=d04904.com
field=industry
crm='Technology' zi='Computer Software'
C-77A95A domain=77a95a.com
field=industry
crm='Technology' zi='Computer Software'
C-77A95A domain=77a95a.com
field=hq_country
crm='US' zi='United States'
C-AA8DDA domain=aa8dda.com
field=industry
crm='Technology' zi='Computer Software'
C-B23205 domain=b23205.com
field=hq_country
crm='US' zi='United States'
C-E51FB7 domain=e51fb7.com
field=hq_country
crm='USA' zi='United States'
C-D0662E domain=d0662e.com
field=hq_country
crm='US' zi='United States'
C-B25F40 domain=b25f40.com
field=industry
crm='Tech' zi='Computer Software'
C-B25F40 domain=b25f40.com
field=employee_count
crm='50' zi='120'
C-60C75F domain=60c75f.com
field=industry
crm='tech' zi='Computer Software'
C-425E2A domain=425e2a.com
field=industry
crm='Tech' zi='Computer Software'
C-425E2A domain=425e2a.com
field=hq_country
crm='USA' zi='United States'
C-2D7423 domain=2d7423.com
field=hq_country
crm='USA' zi='United States'
8. RECOMMENDED SOURCE PRIORITY RULES
--------------------------------------------------
Industry:
- CRM uses free-text ('tech', 'Tech ', 'Technology').
- ZoomInfo uses canonical taxonomy ('Computer Software').
- Rule: standardize to ZoomInfo taxonomy for all tech companies
because it is searchable and dedupe-safe.
Override ONLY if CRM segment is validated by a sales rep.
Employee count / HQ country:
- Treat enrichment as the authoritative source when fields are blank.
- Treat enrichment as the authoritative source when both are non-blank
but differ, because CRM values look stale ('US' vs 'United States' is
a formatting mismatch, not a true semantic diff) and ZoomInfo is
updated more frequently for firmographics.
- Log the change in CRM notes for auditability.
Contact emails:
- CRM email is the record of obligation.
- For invalid/mismatched emails, flag the contact for re-verification
and DO NOT overwrite the CRM value without buyer confirmation.
9. TOP 10 FIXES (ranked by data-quality severity; pipeline amount unknown)
--------------------------------------------------
Because no deals table was provided, fixes are ranked by:
(1) number of duplicates/misaligned records, and
(2) blocking revenue-impact (invalid contacts, null firmographics).
1. DEDUP — acme-corp.com
-> MERGE C-0A092931 + C-0A092932 into survivor C-0A092931
2. DEDUP — globex.io
-> MERGE C-0A092933 + C-0A092934 into survivor C-0A092933
3. FIX invalid emails — 4 contacts
-> Re-verify CT-0010, CT-0080, CT-0081, CT-0192; all lack a domain
4. FIX email domain mismatch — 1 contact
-> Re-verify CT-0011; email domain is other-domain.com, not 66d1fc.com
5. STANDARDIZE industry taxonomy
-> Replace 'tech'/'Tech '/'Technology' with one term (ZoomInfo: 'Computer Software') across 12 companies
6. STANDARDIZE hq_country codes
-> Normalize 'US', 'USA', 'United States' -> one value; enrich 6 blanks from ZoomInfo
7. FILL missing employee_count
-> Copy 8 null values from enrichment (all = 400)
8. FILL missing hq_country
-> Copy 6 null values from enrichment (all = United States or Canada)
9. VALIDATE conflicting firmographics vs enrichment
-> Resolve 20 conflicts; recommend enrichment wins; normalize 'US'/'United States' formatting into a consistent code
10. FIX orphan contacts (C-2D1F1B, C-D73B89, C-44EA29) missing persona/persona
-> Assign persona to 7 contacts in these companies where persona is blank; prioritize champion/economic buyer mapping
======================================================================
END OF REPORT
======================================================================
Report saved to /Users/amaniphipps/crm_audit_report.txt
## Closed-Lost Analysis (Last 6 Months — 90 Deals, $1,267,945 ARR) ### Per-Deal Classification (Primary / Side) | Deal | Tag | Primary Category | Side | |------|-----|------------------|------| | Deal-DB0AAC | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-F7F635 | Competitor | **competitor** | unknown | | Deal-AC944F | MIA | **no decision** | unknown | | Deal-214060 | MIA | **no decision** | unknown | | Deal-91A056 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-29326C | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-5DB9B0 | Lost- ICP | **other** | unknown | | Deal-831B7B | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-F97C37 | Competitor | **competitor** | bonusly | | Deal-13E9CF | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-39E25C | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-7ED004 | Lost- Budget/Price | **pricing** | buyer | | Deal-21B045 | MIA | **no decision** | unknown | | Deal-B3ABED | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-422BA6 | Competitor | **competitor** | buyer | | Deal-ED9AE7 | Lost DM | **no decision** | buyer | | Deal-988493 | MIA | **no decision** | unknown | | Deal-381C8C | Competitor | **competitor** | unknown | | Deal-F308CA | MIA | **no decision** | unknown | | Deal-F1E8A6 | Competitor | **competitor** | unknown | | Deal-B6AC09 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-70F704 | Lost DM | **product gap** | buyer | | Deal-E6E80A | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-B038F0 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-4664E1 | MIA | **no decision** | unknown | | Deal-175756 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-E74A73 | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-DDAB52 | Competitor | **competitor** | bonusly | | Deal-ACE061 | Competitor | **competitor** | unknown | | Deal-BB78F3 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-D48E0B | MIA | **no decision** | unknown | | Deal-15DA99 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-F4AF5D | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-79B7A1 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-583ADB | MIA | **no decision** | unknown | | Deal-8E27DA | Feature Request | **product gap** | buyer | | Deal-2D2F8D | Competitor | **competitor** | unknown | | Deal-E0441F | MIA | **champion left** | unknown | | Deal-7CB44D | MIA | **no decision** | unknown | | Deal-0F96AA | Competitor | **competitor** | unknown | | Deal-1BCA50 | Competitor | **competitor** | unknown | | Deal-7CC678 | Competitor | **competitor** | unknown | | Deal-FAC17C | Lost DM | **no decision** | buyer | | Deal-242273 | Competitor | **product gap** | bonusly | | Deal-50E5D8 | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-A2C349 | Competitor | **competitor** | buyer | | Deal-9F176A | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-7B2236 | Doing nothing/Not a priority/Cost | **pricing** | buyer | | Deal-AFA56C | MIA | **no decision** | unknown | | Deal-C7156E | Competitor | **competitor** | unknown | | Deal-C33D91 | Lost- Budget/Price | **pricing** | buyer | | Deal-9048EB | MIA | **product gap** | buyer | | Deal-5E64CE | Doing nothing/Not a priority/Cost | **timing** | buyer | | Deal-8A0992 | Competitor | **competitor** | buyer | | Deal-D0C698 | Competitor | **competitor** | buyer | | Deal-69CF3D | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-ECBF89 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-3618CC | Lost DM | **product gap** | buyer | | Deal-EECC02 | Competitor | **competitor** | unknown | | Deal-5AD03E | Competitor | **pricing** | buyer | | Deal-D1A623 | Lost- Timing (1 yr+) | **timing** | buyer | | Deal-413C56 | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-47F1A1 | Competitor | **competitor** | buyer | | Deal-BF2A98 | Competitor | **competitor** | buyer | | Deal-2A292B | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-D1AABF | MIA | **no decision** | unknown | | Deal-FEDBCB | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-1E7DA9 | Competitor | **competitor** | unknown | | Deal-2BBA21 | MIA | **no decision** | unknown | | Deal-286F9C | Competitor | **competitor** | unknown | | Deal-7FBAC6 | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-369281 | Competitor | **competitor** | buyer | | Deal-386F6E | MIA | **no decision** | unknown | | Deal-9FCD0D | Competitor | **other** | buyer | | Deal-55867E | Lost- Timing (1 yr+) | **no decision** | unknown | | Deal-DAFB82 | Lost- Budget/Price | **pricing** | buyer | | Deal-2FEDDB | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-64B19A | Competitor | **competitor** | buyer | | Deal-3F86A0 | MIA | **no decision** | unknown | | Deal-096750 | MIA | **no decision** | unknown | | Deal-F325A5 | Lost DM | **champion left** | buyer | | Deal-ABD14C | Doing nothing/Not a priority/Cost | **no decision** | buyer | | Deal-79E61A | MIA | **no decision** | unknown | | Deal-8A119B | Lost- Budget/Price | **pricing** | buyer | | Deal-AE7C4E | MIA | **no decision** | unknown | | Deal-DAB4F1 | MIA | **no decision** | unknown | | Deal-B4B50F | MIA | **no decision** | unknown | | Deal-981AD4 | Feature Request | **product gap** | bonusly | | Deal-DC77FE | Competitor | **product gap** | bonusly | | Deal-5885B9 | MIA | **no decision** | unknown | --- ### Category Counts (Deals / ARR) | Category | Deals | ARR | |----------|-------|-----| | no decision | 32 | $287,399 | | competitor | 22 | $309,935 | | timing | 19 | $256,011 | | product gap | 7 | $186,245 | | pricing | 6 | $196,450 | | champion left | 2 | $16,805 | | other | 2 | $15,100 | | **total** | **90** | **$1,267,945** | --- ### Side Split (Deals / ARR) | Side | Deals | ARR | |------|-------|-----| | buyer | 50 | $725,639 | | unknown | 35 | $473,986 | | bonusly | 5 | $68,320 | | **total** | **90** | **$1,267,945** | --- ### Clear Tag / Reason Disagreements: 16 Deals The structured tag and free-text contradict on these 16 deals: 1. **Deal-F7F635** — Tag: Competitor → free-text says "went in another direction" with **no competitor named**. 2. **Deal-70F704** — Tag: Lost DM → free-text says they wanted Surveys (product scope), no DM departure mentioned. 3. **Deal-8E27DA** — Tag: Feature Request → free-text says they moved to a swag provider and **didn't want R&R at all**. 4. **Deal-1BCA50** — Tag: Competitor → free-text cites budget/gift-card details and other stakeholder, **no competitor named**. 5. **Deal-7CC678** — Tag: Competitor → free-text says "Nothing specific provided." 6. **Deal-FAC17C** — Tag: Lost DM → free-text says partner couldn't get final IT approval, not DM departure. 7. **Deal-242273** — Tag: Competitor → free-text says competitors could digitize internal points + onsite spend (product gap), no competitor named. 8. **Deal-9048EB** — Tag: MIA → free-text explicitly calls out **desired setup and multiple feature gaps**. 9. **Deal-5E64CE** — Tag: Doing nothing/Cost → free-text reveals **Nectar contract lock-in** (active alternative, not "doing nothing"). 10. **Deal-3618CC** — Tag: Lost DM → free-text says "Wanted Surveys" (feature gap). 11. **Deal-EECC02** — Tag: Competitor → free-text only says "Went another direction" with **no competitor named**. 12. **Deal-5AD03E** — Tag: Competitor → free-text says "Wanted more defined budget access" (pricing, not competitor). 13. **Deal-2A292B** — Tag: Doing nothing/Cost → free-text says they're building internally (active alternative). 14. **Deal-1E7DA9** — Tag: Competitor → free-text only says "selected another platform" with no competitor or differentiator named. 15. **Deal-286F9C** — Tag: Competitor → free-text says "not a good fit for us" (product gap language), no competitor named. 16. **Deal-DC77FE** — Tag: Competitor → free-text explicitly says **"competitive in price so that wasn't a factor"**; the actual reason is customization gap. --- ### Two Patterns Most Worth Acting On **1. "Competitor" tag is a default, not a diagnosis.** - 22 deals are tagged Competitor, but **16 of them name no competing product** in the free-text. - Without a named competitor, you cannot build battlecards, track win/loss by specific vendor, or coach reps on specific differentiators. - Action: Burst the tag. Require a named competitor when it's true (Rippl, HeyTaco, Awardco, WorkTango, HiThrive, Motivosity, Kudos, Paylocity, ADP, Nectar are all buried under the wrong label now). When the real reason is "not a good fit," "budget," or "not a good fit," move the tag accordingly. **2. "Timing" is the largest near-term ARR backlog, and most of it is recoverable.** - 19 timing deals ($256K) overwhelmingly cite a **named reconnection window in 2027** (early 2027, Q2 2027, "circle back in the new year," "revisit when we get budget for 2028"). - These are not dead deals—they're shelved. Deal-B3ABED ($40,001), Deal-DAFB82 ($30,000), Deal-79B7A1 ($25,000), and Deal-D1A623 ($25,200) alone represent $120K+ with explicit revisit dates. - Action: Load these dates into a 12-month nurture sequence now. The reason they became "timing" is that rep follow-up lapsed; the fix is calendar-driven re-engagement, not espera. --- ### Notable Gaps / Data Notes - **No decision** (32 deals, $287K) is the biggest bucket by count. Many are MIA with no contact since intro—an engagement defect, not a genuine not-yet-decided. - **Pricing** only appears on 6 deals, but carries the highest ARR per deal ($32.7K avg), suggesting pricing is a real but under-captured field. - **Pricing agreement check:** No pricing facts were invented; all amounts are direct from the CSV. All arithmetic is validated against the source data.
```json
{"tier_counts":{"LOCK":7,"ACTION":35,"BUILD":40,"REVIVE":65,"WATCH":5,"RISKY":4},"tier_examples":{"LOCK":["Deal-25F752","Deal-D348E1","Deal-C26D20"],"ACTION":["Deal-E53952","Deal-5408B0","Deal-9AAE5F"],"BUILD":["Deal-6787C2","Deal-C61CF7","Deal-584EE5"],"REVIVE":["Deal-66D1FC","Deal-950043","Deal-D73B89"],"WATCH":["Deal-2D1F1B","Deal-7BBDFA","Deal-3EED2C"],"RISKY":["Deal-A5E80A","Deal-0660B4","Deal-499BF6","Deal-BA571A"]},"risky_deals":["Deal-0660B4","Deal-499BF6","Deal-A5E80A","Deal-BA571A"],"lock_violations":0}
```
The pipeline is bottom-heavy: 67 deals sit in DS1/DS2 (29 REVIVE + 36 REVIVE + 2 WATCH), 61 deals occupy DS3 (40 BUILD + 1 WATCH), and only 24 deals have reached DS4/DS5 (11 LOCK + 12 ACTION/2 RISKY). Forecast discipline is loose across the book—105 of 156 deals remain PIPELINE, 40 are BEST_CASE, and only 11 are COMMIT—suggesting the forecast category is ahead of engagement evidence in multiple segments.
```json
[
{
"transcript_id": "TX-001",
"deal_alias": "Deal-CFE7F4",
"why_buys": [
"Automate anniversary and birthday awards",
"HR team of three cannot keep up with it manually"
],
"pain_points": [
"Track everything in a spreadsheet",
"People slip through the cracks",
"HR team of three cannot keep up manually"
],
"stakeholders": ["Prospect (VP People)", "Prospect (HR Admin)"],
"budget_signal": "$40k earmarked for engagement tools this fiscal year",
"timeline_signal": "Live before open enrollment in November",
"competitor_mentioned": "Achievers",
"next_step": "Security review on September 12",
"objections": ["Need SSO and audit logs for IT to sign off"],
"confidence": "High"
},
{
"transcript_id": "TX-002",
"deal_alias": "Deal-70BB30",
"why_buys": [
"Tie recognition to retention for hourly workforce",
"Regretted turnover over 30%"
],
"pain_points": [
"Regretted turnover over 30% for hourly workforce"
],
"stakeholders": ["Prospect (Head of Total Rewards)", "Prospect (CFO)"],
"budget_signal": "$25k pilot budget approved for this quarter",
"timeline_signal": "Decision by end of September",
"competitor_mentioned": null,
"next_step": "Send pilot agreement and route to legal this week",
"objections": ["Workday integration has to be rock solid"],
"confidence": "High"
},
{
"transcript_id": "TX-003",
"deal_alias": "Deal-530B50",
"why_buys": [
"Make recognition visible across 12 retail locations",
"Store managers need budget autonomy for on-the-spot recognition"
],
"pain_points": [
"Store managers have zero budget autonomy for on-the-spot recognition today"
],
"stakeholders": ["Prospect (People Ops Manager)"],
"budget_signal": null,
"timeline_signal": "No rush on our side until Q1",
"competitor_mentioned": "Bucketlist",
"next_step": "Schedule a call with CEO (prospect to send two times)",
"objections": [],
"confidence": "Medium"
},
{
"transcript_id": "TX-004",
"deal_alias": "Deal-180D02",
"why_buys": [
"Consolidate three separate recognition tools into one"
],
"pain_points": [
"Paying for three tools and none of them talk to our HRIS",
"Security review took three months for our last vendor"
],
"stakeholders": ["Prospect (VP People)", "Prospect (IT Security Lead)"],
"budget_signal": "Under $15k annually, VP can approve without going to the board",
"timeline_signal": "Procurement cycle runs six to eight weeks minimum",
"competitor_mentioned": null,
"next_step": null,
"objections": [
"Procurement cycle runs six to eight weeks minimum",
"Security review took three months for our last vendor"
],
"confidence": "Medium"
},
{
"transcript_id": "TX-005",
"deal_alias": "Deal-F8767A",
"why_buys": [
"Automate service milestones",
"Analytics on recognition equity across departments"
],
"pain_points": [
"Night-shift teams feel invisible — engagement scores run 20 points lower",
"Exec team skeptical after a failed rollout two years ago"
],
"stakeholders": ["Prospect (HR Director)", "Prospect (People Ops Coordinator)"],
"budget_signal": "$12k approved under engagement line",
"timeline_signal": "Running before January all-hands",
"competitor_mentioned": "Nectar",
"next_step": "Present to exec team on October 2",
"objections": [
"Need to beat Nectar experience",
"Exec team skeptical after a failed rollout two years ago"
],
"confidence": "High"
},
{
"transcript_id": "TX-006",
"deal_alias": "Deal-EE195F",
"why_buys": [
"Cut admin time on service awards"
],
"pain_points": [
"Spend five hours a month ordering and shipping plaques"
],
"stakeholders": ["Prospect (HR Manager)"],
"budget_signal": null,
"timeline_signal": "Q1 start realistic (fiscal year resets in February)",
"competitor_mentioned": null,
"next_step": "Send one-page overview to forward to COO this week",
"objections": ["COO usually prefers building things in-house"],
"confidence": "Medium"
}
]
```
1. **Deal-547B2B** — $11,200. Why close: Alex reported redlines came back clean, signing page is out, and their VP People told him they are signing tomorrow. What is left: final execution/signature only. 2. **Deal-B7EBD1** — $9,000. Why close: CRM shows DS5/COMMIT with the nearest close date (2026-09-10); no blockers or retractions in the Slack thread. What is left: standard closing steps. 3. **Deal-403845** — $9,000. Why close: Dana confirmed in Slack the order form is already with their finance team; CRM holds DS5/COMMIT (close 2026-09-11). What is left: finance approval and signature. Combined pipeline: $29,200.
**Per-transcript classification** TG-001 / Deal-EC3025 Prospect quote: "We need SCIM user provisioning — our security team will not approve any tool that requires manual account management." Classification: Real product gap. Product docs reference: "SCIM user provisioning ... are NOT currently listed as supported capabilities." Deal/amount: Deal-EC3025. Amount: not provided in source data. TG-002 / Deal-D0D6B5 Prospect quote: "Our payroll runs on ADP Workforce Now and I don't see ADP anywhere in your integration list — that's a dealbreaker for us." Classification: Real product gap. Product docs reference: "ADP Workforce Now integrations are NOT currently listed as supported capabilities; HRIS: Workday, BambooHR, Gusto, Rippling (Pro and above)." Deal/amount: Deal-D0D6B5. Amount: not provided in source data. TG-003 / Deal-CFE7F4 Prospect quote: "I tried to build a custom report combining recognition frequency with turnover and couldn't — is that possible on our current plan?" Classification: Plan gate. Product docs reference: Custom report builder is available on the Enterprise tier only. Rep confirmed upgrade path exist. Deal/amount: Deal-CFE7F4. Amount: not provided in source data. TG-004 / Deal-84DBA6 Prospect quote: "We turned on the Slack integration in July, but half our managers still haven't given a single recognition — nobody ever trained them on it." Classification: Rollout/enablement issue. Product docs reference: Slack integration is supported on all plans; not a missing capability. Deal/amount: Deal-84DBA6. Amount: not provided in source data. TG-005 / Deal-36C33F Prospect quote: "Good to know. The web version should be fine for our office staff for now." Classification: Not a prospect-raised gap. Mobile app absence was disclosed proactively by the rep; the prospect accepted the current state as temporary. Product docs reference: No native mobile app listed in docs excerpt. Deal/amount: Deal-36C33F. Amount: not provided in source data. --- **Summary — Real product gaps only** 1. Deal-EC3025 — SCIM user provisioning absent (prospect: "We need SCIM user provisioning — our security team will not approve any tool that requires manual account management.") 2. Deal-D0D6B5 — ADP Workforce Now integration absent (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.") Deal amounts: not present in the provided transcripts and cannot be inferred.
Stale threshold: last logged email/call/meeting strictly before 2026-08-29 (>= 7 days without contact). Snapshot = 2026-09-05. Source of truth = engagements_by_deal_90d.csv last_email/last_call/last_meeting fields. Grand total: 65 stale open deals, $1,252,429.03 Note: 2 deals (Deal-3EED2C, Deal-57FF13) have no engagement record at all; they are treated as stale with days_since = N/A. --- **Bryce Harmon (119337721)** — 13 stale deals | Total: $626,243.00 Deal-2D1F1B DS1 $240,000.00 81 days 2026-06-16 Deal-66D1FC DS1 $ 99,000.00 16 days 2026-08-20 Deal-950043 DS1 $ 70,000.00 19 days 2026-08-17 Deal-B23205 DS1 $ 45,000.00 16 days 2026-08-20 Deal-7BBDFA DS3 $ 37,440.00 46 days 2026-07-21 Deal-332637 DS2 $ 36,000.00 9 days 2026-08-27 Deal-1BEEBF DS1 $ 31,500.00 19 days 2026-08-17 Deal-C5658B DS1 $ 23,400.00 16 days 2026-08-20 Deal-40522D DS3 $ 21,000.00 19 days 2026-08-17 Deal-F0EBBB DS3 $ 11,400.00 24 days 2026-08-12 Deal-E25A09 DS1 $ 6,000.00 9 days 2026-08-27 Deal-C9C286 DS2 $ 5,502.00 9 days 2026-08-27 Deal-012CB1 DS1 $ 1.00 23 days 2026-08-13 --- **Elena Sinclair (701163055)** — 1 stale deal | Total: $2,100.00 Deal-57FF13 DS1 $ 2,100.00 N/A NO CONTACT --- **Dana Mercer (83155923)** — 14 stale deals | Total: $261,645.00 Deal-44EA29 DS2 $ 60,000.00 10 days 2026-08-26 Deal-E51FB7 DS2 $ 43,875.00 12 days 2026-08-24 Deal-B42F46 DS1 $ 27,000.00 19 days 2026-08-17 Deal-BA3DDC DS3 $ 23,400.00 15 days 2026-08-21 Deal-9DDE86 DS2 $ 20,000.00 15 days 2026-08-21 Deal-215CCA DS3 $ 18,900.00 17 days 2026-08-19 Deal-5EED42 DS3 $ 16,250.00 11 days 2026-08-25 Deal-57887A DS2 $ 15,000.00 8 days 2026-08-28 Deal-B7EBD1 DS5 $ 9,000.00 16 days 2026-08-20 Deal-3974EB DS4 $ 9,000.00 8 days 2026-08-28 Deal-F40F04 DS2 $ 8,100.00 15 days 2026-08-21 Deal-87DDD1 DS1 $ 5,000.00 19 days 2026-08-17 Deal-F336B6 DS3 $ 4,200.00 15 days 2026-08-21 Deal-0660B4 DS4 $ 1,920.00 16 days 2026-08-20 --- **Cole Ingram (83155924)** — 18 stale deals | Total: $252,905.03 Deal-D04904 DS2 $ 58,529.25 11 days 2026-08-25 Deal-B25F40 DS3 $ 40,000.00 8 days 2026-08-28 Deal-813836 DS2 $ 32,175.00 11 days 2026-08-25 Deal-1BA595 DS2 $ 31,750.00 11 days 2026-08-25 Deal-CFE1E8 DS3 $ 18,000.00 11 days 2026-08-25 Deal-CD47A6 DS2 $ 12,168.00 11 days 2026-08-25 Deal-627646 DS3 $ 11,193.00 11 days 2026-08-25 Deal-FF809F DS2 $ 7,781.20 11 days 2026-08-25 Deal-AF932D DS2 $ 7,225.40 11 days 2026-08-25 Deal-A71728 DS2 $ 6,947.50 11 days 2026-08-25 Deal-8BC9F5 DS2 $ 5,616.00 10 days 2026-08-26 Deal-175395 DS3 $ 4,779.88 11 days 2026-08-25 Deal-481E24 DS3 $ 4,140.00 10 days 2026-08-26 Deal-C7F9BF DS2 $ 3,360.00 11 days 2026-08-25 Deal-2F3A66 DS3 $ 3,334.80 11 days 2026-08-25 Deal-342E96 DS2 $ 2,700.00 24 days 2026-08-12 Deal-E568D5 DS3 $ 1,875.00 11 days 2026-08-25 Deal-FD9F4E DS5 $ 1,330.00 10 days 2026-08-26 --- **Alex Franklin (84342457)** — 19 stale deals | Total: $109,536.00 Deal-CC08D1 DS1 $ 24,000.00 16 days 2026-08-20 Deal-E73427 DS3 $ 18,000.00 10 days 2026-08-26 Deal-885F45 DS2 $ 9,300.00 12 days 2026-08-24 Deal-C2FF3C DS1 $ 8,316.00 10 days 2026-08-26 Deal-3EED2C DS2 $ 7,200.00 N/A NO CONTACT Deal-0D2F7A DS3 $ 5,100.00 12 days 2026-08-24 Deal-6C60D4 DS3 $ 4,800.00 12 days 2026-08-24 Deal-13FEBD DS2 $ 4,680.00 12 days 2026-08-24 Deal-9D0060 DS3 $ 3,840.00 12 days 2026-08-24 Deal-690476 DS2 $ 3,600.00 18 days 2026-08-18 Deal-C6D97A DS4 $ 3,240.00 8 days 2026-08-28 Deal-EE195F DS3 $ 3,120.00 8 days 2026-08-28 Deal-278DEC DS3 $ 2,700.00 8 days 2026-08-28 Deal-635B8E DS3 $ 2,600.00 18 days 2026-08-18 Deal-6883F3 DS1 $ 2,400.00 16 days 2026-08-20 Deal-4A13AD DS3 $ 2,160.00 26 days 2026-08-10 Deal-F67D31 DS2 $ 1,800.00 8 days 2026-08-28 Deal-5FDCE4 DS3 $ 1,600.00 12 days 2026-08-24 Deal-BA571A DS4 $ 1,080.00 18 days 2026-08-18 --- Arithmetic check: 13 + 1 + 14 + 18 + 19 = 65 deals. $626,243.00 + $2,100.00 + $261,645.00 + $252,905.03 + $109,536.00 = $1,252,429.03. All other active owners (Gavin Porter, Hugo Lindqvist — both archived; Farid Osman) have no stale open deals.
Snapshot: 2026-09-05 | 30-day window: 2026-08-06 to 2026-09-05 Active reps with data: Rank 1 — Alex Franklin (84342457) - Activities: emails=307, calls=36, meetings=41 | total=384 - Mix: emails 79.9% | calls 9.4% | meetings 10.7% - DS2 entries in last 30d: 17 - Activities per DS2 entry: 22.59 Rank 2 — Bryce Harmon (119337721) - Activities: emails=162, calls=0, meetings=43 | total=205 - Mix: emails 79.0% | calls 0.0% | meetings 21.0% - DS2 entries in last 30d: 4 - Activities per DS2 entry: 51.25 Rank 3 — Cole Ingram (83155924) - Activities: emails=96, calls=14, meetings=1 | total=111 - Mix: emails 86.5% | calls 12.6% | meetings 0.9% - DS2 entries in last 30d: 2 - Activities per DS2 entry: 55.50 Rank 4 — Farid Osman (716654662) - Activities: emails=38, calls=0, meetings=34 | total=72 - Mix: emails 52.8% | calls 0.0% | meetings 47.2% - DS2 entries in last 30d: 1 - Activities per DS2 entry: 72.00 Rank 5 — Dana Mercer (83155923) - Activities: emails=84, calls=18, meetings=11 | total=113 - Mix: emails 74.3% | calls 15.9% | meetings 9.7% - DS2 entries in last 30d: 1 - Activities per DS2 entry: 113.00 Rank 6 — Elena Sinclair (701163055) - Activities: 0 (no engagement record matched) - DS2 entries in last 30d: 0 - Activities per DS2 entry: N/A Summary: - Most efficient rep (lowest activities per DS2 entry): Alex Franklin at 22.59 - Highest-volume rep (most total activities): Alex Franklin at 384 - They differ: NO (same rep)
**QTD SCORECARD — Alex Franklin | as-of 2026-09-05** --- **1. Bookings vs Quota** | | | |---|---| | QTD Bookings | $150,000 | | Quota | $200,000 | | Attainment | **75.0%** | | Remaining | $50,000 | Closed-won deals in quarter (8 deals): - Deal-A1C3E5 — $40,000 (2026-07-15) - Deal-F2C7D8 — $20,000 (2026-07-24) - Deal-B7D2F4 — $35,000 (2026-07-31) - Deal-C9E1A6 — $21,000 (2026-08-12) - Deal-A8B4D6 — $12,000 (2026-08-19) - Deal-D4B8C2 — $11,000 (2026-08-21) - Deal-E6F3A9 — $6,500 (2026-09-02) - Deal-C5D9E2 — $4,500 (2026-09-03) *Arithmetic: 40,000 + 20,000 + 35,000 + 21,000 + 12,000 + 11,000 + 6,500 + 4,500 = 150,000* --- **2. New vs Expansion Split** | | Amount | Share | |---|---|---| | New | $113,500 | 75.7% | | Expansion | $36,500 | 24.3% | | **Total** | **$150,000** | **100%** | *Arithmetic: New = 40k + 35k + 21k + 11k + 6.5k = 113,500; Expansion = 20k + 12k + 4.5k = 36,500* --- **3. Open Pipeline by Stage (Amount)** | Stage | Amount | Deal Count | |---|---|---| | DS1 | $284,621 | 27 | | DS2 | $353,760 | 25 | | DS3 | $552,705 | 57 | | DS4 | $23,574 | 4 | | DS5 | $45,730 | 4 | | **Total** | **$1,260,390** | **117** | *DS3 concentration note: 57 deals, 44% of total value.* Top 10 open opportunities by amount: - Deal-EC3025 — DS2 — $62,000 - Deal-92D97D — DS2 — $60,000 - Deal-D0662E — DS1 — $41,000 - Deal-425E2A — DS1 — $40,000 - Deal-60C75F — DS1 — $40,000 - Deal-50D386 — DS2 — $36,000 - Deal-CFE7F4 — DS3 — $32,000 - Deal-530B50 — DS3 — $31,200 - Deal-70BB30 — DS3 — $30,000 - Deal-CC08D1 — DS1 — $24,000 --- **4. Rolling 90-Day DS2-to-Won Rate** Cohort: deals that entered DS2 between **2026-06-07** and **2026-09-05** (n=111) | | Count | |---|---| | Closed-Won | 8 | | Closed-Lost | 27 | | Still Open (in cohort) | 76 | | **Total** | **111** | **Rate: 7.2%** (8 ÷ 111) --- **5. Win / Loss Counts with Top Loss Reason (QTD)** | | Count | |---|---| | Wins | 8 | | Losses | 27 | **Top Loss Reason — "Lost — Timing (1 year or more)": 13 losses (48% of all losses)** Full loss breakdown: - Timing (1 year or more): 13 - MIA: 5 - Competitor: 5 - Lost DM: 2 - Feature Request: 1 - Does not fit ICP: 1 --- **6. Activity Volume — Last 30 Days (2026-08-06 → 2026-09-05)** | Activity | Volume | |---|---| | Emails | 807 | | Calls | 112 | | Meetings | 128 | | Notes | 50 | | **Total Touches** | **1,097** | --- **Coaching Observations** 1. **Timing objection is the killer (48% of losses, 13 of 27).** You are qualifying into deals that know they can't buy for 12+ months. Flip the script: surface budget/timeline constraints in the first call, and park long-horizon prospects in a nurture track instead of feeding DS3 with them. That alone could drop your 27-loss count and free DS3 capacity for near-term buyers. 2. **Pipeline depth is strong ($1.26M, 6.3x quota) but it is front-loaded in DS3 (44% of value, 57 deals).** With a 7.2% DS2-to-won conversion rate and 76 deals still sitting in your 90-day cohort, your bottleneck is advancement, not volume. Pick the 5-10 highest-value DS3 deals and run a weekly "commit review" with champions — push them to a technical proof or exec sponsor in the next 14 days. 3. **High activity (1,097 touches) with low conversion signals weak engagement quality, not effort.** You are averaging ~28 touches/day, but 8 wins against 111 DS2 cohort entries means most outreach is keeping deals warm, not moving them. Audit your 30-day sequences: pull one closed-lost deal from each top reason (Timing, MIA, Competitor) and read your last 3 emails/call notes. If you are saying the same thing to every deal, switch to stage-graded messaging (e.g., DS2 = economic-pain audit, DS3 = ROI calc + procurement plan).
FLAGGED DEALS: 11 **Reference date: 2026-09-07 | 60-day window: 2026-07-09 to 2026-09-07** **Note:** Amount and stage are NOT present in the provided files. Flagging is based solely on active contact count and persona coverage. --- Deal: Deal-36C33F (ID: 63739413805) Flag: single-threaded Active contacts: 1 Personas present: IT security Missing: economic buyer, champion, HR admin, finance Most valuable persona to add: economic buyer On-file unengaged fit: CT-1DB73E (Chief People Officer, economic buyer) Active contact: CT-4FE556 | IT Security Lead | IT security | Engaged 2026-08-15 Deal: Deal-50D386 (ID: 61055128146) Flag: under-threaded Active contacts: 2 Personas present: HR admin, champion Missing: economic buyer, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: CT-A1C4B3 (Chief People Officer, economic buyer) Active contacts: CT-AA41B2 (Head of Employee Experience, champion, 2026-09-01), CT-B9C35B (HRIS Manager, HR admin, 2026-08-25) Deal: Deal-5408B0 (ID: 60182332309) Flag: under-threaded Active contacts: 2 Personas present: HR admin, champion Missing: economic buyer, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: CT-07FA76 (Chief People Officer, economic buyer) Active contacts: CT-D33AE4 (Head of Employee Experience, champion, 2026-09-01), CT-8742FD (HRIS Manager, HR admin, 2026-08-18) Deal: Deal-5BFE3B (ID: 51674270311) Flag: under-threaded Active contacts: 2 Personas present: champion (all 2 contacts are champion — single persona cluster) Missing: economic buyer, HR admin, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: None Active contacts: CT-57123B (People Ops Manager, champion, 2026-08-31), CT-5CE757 (Head of Employee Experience, champion, 2026-08-12) Deal: Deal-885F45 (ID: 60686135564) Flag: under-threaded Active contacts: 2 Personas present: champion, economic buyer Missing: HR admin, IT security, finance Most valuable persona to add: HR admin On-file unengaged fit: CT-B3F25D (IT Security Lead, IT security) — no HR admin on file; falls back to next available missing persona Active contacts: CT-51C81E (VP People, economic buyer, 2026-08-26), CT-D9A0E8 (People Ops Manager, champion, 2026-08-11) Deal: Deal-92D97D (ID: 59728118877) Flag: single-threaded Active contacts: 1 Personas present: HR admin Missing: economic buyer, champion, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: None Active contact: CT-01F5B4 (HRIS Manager, HR admin, 2026-08-28) Deal: Deal-C6D97A (ID: 62121783047) Flag: under-threaded Active contacts: 3 Personas present: champion (all 3 contacts are champion — single persona cluster) Missing: economic buyer, HR admin, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: None Active contacts: CT-223DDC (People Ops Manager, champion, 2026-08-31), CT-B03555 (Head of Employee Experience, champion, 2026-08-20), CT-4E8A2B (People Ops Manager, champion, 2026-08-05) Deal: Deal-D0D6B5 (ID: 60081655042) Flag: under-threaded Active contacts: 3 Personas present: champion (all 3 contacts are champion — single persona cluster) Missing: economic buyer, HR admin, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: CT-1FA4DB (Chief People Officer, economic buyer) Active contacts: CT-87CED4 (People Ops Manager, champion, 2026-09-02), CT-DE6D7C (Head of Employee Experience, champion, 2026-08-19), CT-FD70B2 (Head of Employee Experience, champion, 2026-08-07) Deal: Deal-EC3025 (ID: 61032318100) Flag: single-threaded Active contacts: 1 Personas present: champion Missing: economic buyer, HR admin, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: CT-6827DB (Chief People Officer, economic buyer) Active contact: CT-047C54 (Head of Employee Experience, champion, 2026-09-02) Note: CT-F2C1AE (Chief People Officer, economic buyer) exists but is_former=true; excluded from active count. Deal: Deal-F9A08A (ID: 49757401138) Flag: single-threaded Active contacts: 1 Personas present: champion Missing: economic buyer, HR admin, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: CT-697541 (Chief People Officer, economic buyer) Active contact: CT-931B10 (Head of Employee Experience, champion, 2026-09-03) Note: CT-913581 (Chief People Officer, economic buyer) exists but last_engaged 2026-06-20 (>60 days ago); excluded from active count. Deal: Deal-FCBE5B (ID: 62639586615) Flag: single-threaded Active contacts: 1 Personas present: champion Missing: economic buyer, HR admin, IT security, finance Most valuable persona to add: economic buyer On-file unengaged fit: None Active contact: CT-4A5317 (People Ops Manager, champion, 2026-08-29) --- SUMMARY TABLE Deal Alias Company Active Personas Missing Best Add On-file Fit -------------------------------------------------------------------------------------------------------------------------------------- Deal-36C33F C-077A0E 1 IT security economic buyer+champion+HR admin+finance economic buyer CT-1DB73E (economic buyer) Deal-50D386 C-EB10E4 2 HR admin+champion economic buyer+IT security+finance economic buyer CT-A1C4B3 (economic buyer) Deal-5408B0 C-2AE3AA 2 HR admin+champion economic buyer+IT security+finance economic buyer CT-07FA76 (economic buyer) Deal-5BFE3B C-535D36 2 champion economic buyer+HR admin+IT security+finance economic buyer None Deal-885F45 C-5E8EFB 2 champion+economic buyer HR admin+IT security+finance HR admin CT-B3F25D (IT security) Deal-92D97D C-E23238 1 HR admin economic buyer+champion+IT security+finance economic buyer None Deal-C6D97A C-5A8FC2 3 champion economic buyer+HR admin+IT security+finance economic buyer None Deal-D0D6B5 C-32918E 3 champion economic buyer+HR admin+IT security+finance economic buyer CT-1FA4DB (economic buyer) Deal-EC3025 C-FDD0C7 1 champion economic buyer+HR admin+IT security+finance economic buyer CT-6827DB (economic buyer) Deal-F9A08A C-0D15DF 1 champion economic buyer+HR admin+IT security+finance economic buyer CT-697541 (economic buyer) Deal-FCBE5B C-737030 1 champion economic buyer+HR admin+IT security+finance economic buyer None --- Arithmetic / methodology: - 60-day active threshold: 2026-07-09 to 2026-09-07 - Single-threaded = active_count < 2 (6 deals) - Under-threaded = active_count < 3 OR personas_present count = 1 (11 total flagged; overlap with single-threaded) - Deals with 3+ active contacts but only champion persona (Deal-C6D97A, Deal-D0D6B5) flagged on persona-cluster rule - Former contacts (is_former=true) excluded even if engaged recently - Contacts with last_engaged_date > 60 days excluded from active count - Missing persona ranking: economic buyer (1) > champion (2) > HR admin (3) > IT security (4) > finance (5) - On-file unengaged contact matched to highest-priority missing persona; falls back to next available if none for the top choice
**OPENER (FIRST FIVE MINUTES)**
8 of 10 calls lead with:
> "Quick one to kick off: a 400-person retailer we work with cut regretted turnover 18% in two quarters after automating milestone awards, and I wanted to walk you through exactly how they did it."
The other 2 calls opened with:
> "I put together a short agenda — security review first, then pricing." (Deal-403845)
> "You asked for straight pricing last time, so let's start there." (Deal-1E2498)
---
**THREE MOST COMMON OBJECTIONS + HANDLING**
1. Budget locked (4 occurrences)
Prospect: "Honestly, budget is locked until next fiscal year — I can't add a new line item right now."
Alex: "Totally fair. Most teams fund this out of turnover savings — that retailer saved about $210k in avoided backfills, which is how their finance team signed off."
2. Revisit next quarter / open enrollment crunch (3 occurrences)
Prospect: "This is good, but can we revisit it next quarter? Open enrollment starts in October and we're underwater."
Alex: "Makes sense. What if we scope a 90-day pilot with one department so you have internal data before next quarter's planning?"
3. Spreadsheet and gift cards already in use (3 occurrences)
Prospect: "We already do recognition with a spreadsheet and quarterly gift cards — why would we change?"
Alex: "Spreadsheets work until they scale — the difference is automation: milestones fire without HR lifting a finger, and you get analytics on who is being recognized."
---
**CONCRETE NEXT STEP AGREED**
7 of 10 calls:
> "Yes, Thursday at 2pm works — send the invite and I'll bring our HRIS manager."
No next step locked in 3 calls (Deal-403845, Deal-EDC141, Deal-84DBA6).
Rate: **70%**
---
**COMPETITORS PROSPECT-RAISED**
- Awardco
> "We're also in late talks with Awardco — their rewards catalog looks bigger than yours."
- Kudos
> "How are you different from Kudos? Our CEO used them at her last company."
(Workhuman was mentioned by Alex, not by a prospect.)
---
**COACHING NOTES**
1. The 400-person retailer success story is the dominant opener and the primary lever for defusing budget objections; default to it over agenda-led or pricing-first openings.
2. Accepting stall language ("I'll leave it with you," "I need to think about it," "I can't commit today") kills the close on otherwise qualified calls — always pivot to a specific calendar hold rather than letting the prospect set the close.
## Q3 2026 Forecast (2026-07-01 to 2026-09-30) Quarter window filter applied: close_date >= 2026-07-01 AND <= 2026-09-30. ### Category totals AND counts inside quarter | Category | Count | Total Amount | |-------------|-------|-------------| | COMMIT | 7 | $44,729.00 | | BEST_CASE | 24 | $203,565.00 | | PIPELINE | 23 | $201,637.40 | | **In-quarter deals** | **54** | **$449,931.40** | ### Weighted forecast **Formula:** COMMIT total + (35% × BEST_CASE total) ``` $44,729.00 + 0.35 × $203,565.00 = $44,729.00 + $71,247.75 = $115,976.75 ``` **Weighted forecast: $115,976.75** (PIPELINE excluded from weighting per rule.) --- ### Deals excluded: outside the quarter window | | Count | Total Amount | |-|-------|-------------| | All excluded | 32 | $227,575.00 | | COMMIT excluded | 1 | $13,770.00 | | BEST_CASE excluded | 9 | $28,240.00 | | PIPELINE excluded | 22 | $185,565.00 | Specifically excluded for dates: - Deal-D348E1 (COMMIT, $13,770) — 2026-10-15 - Deal-51FB7, Deal-897294 (PIPELINE), plus 20 others — all close dates in Oct or Aug 28. --- ### Top 5 BEST_CASE deals inside quarter (by amount) | Rank | Deal Alias | Amount | Close Date | |------|-----------|--------|------------| | 1 | Deal-2D7423 | $38,935.00 | 2026-09-30 | | 2 | Deal-25F752 | $24,000.00 | 2026-09-25 | | 3 | Deal-E53952 | $19,656.00 | 2026-09-30 | | 4 | Deal-5EED42 | $16,250.00 | 2026-09-30 | | 5 | Deal-FA32A0 | $11,116.00 | 2026-09-25 | --- ## Data quality Four problems make this forecast unreliable unattended: 1. Every deal has a blank `owner` field except Deal-C9C286 (Bryce Harmon); without owner accountability, progress updates and stage pushes cannot be attributed, so the pipeline can shift silently between reporting snapshots. 2. `why_buys_chars` is non-zero on seven deals but appears to be character counts rather than deal notes, and it was not used in the model—this means critical deal intelligence (trigger events, champion context) is present but unreadable. 3. Deals span DS1 through DS5 with no stage-age audit; several September-close deals are already at DS5 with a fresh pull date of September 5, which may indicate stale stages or data entry lag, inflating both COMMIT and weighted totals. 4. The extract uses an atypical close-date boundary (2026-07-01–2026-10-15) that overlaps Q3 and Q4; without a consistent quarter-filing standard, forecast runs will pull different deal sets week over week.
## Activation Hypothesis Test: 2x2 Cohort Results ### Cohort Definition - **Both signals**: `m1_users >= 5` AND `m1_redemptions >= 1` - **Givers-only**: `m1_users >= 5` AND `m1_redemptions = 0` - **Redemption-only**: `m1_users < 5` AND `m1_redemptions >= 1` - **Neither**: `m1_users < 5` AND `m1_redemptions = 0` - **Retention proxy**: `current_status = 'active'` (all companies are 25+ months old) --- ### Full 2x2 Table | Segment | Cohort Size | Retained (active) | 24-Month Retention Rate | |---|---|---|---| | **Both signals** | 47 | 31 | **66.0%** | | Givers-only (m1_users >= 5) | 49 | 23 | 46.9% | | Redemption-only (m1_redemptions >= 1) | 29 | 9 | 31.0% | | **Neither** | 95 | 38 | 40.0% | | **Total** | **220** | 101 | **45.9%** | **Arithmetic check:** - Both: 31 ÷ 47 = 0.6596 → 66.0% - Givers-only: 23 ÷ 49 = 0.4694 → 46.9% - Redemption-only: 9 ÷ 29 = 0.3103 → 31.0% - Neither: 38 ÷ 95 = 0.4000 → 40.0% - Total: 101 ÷ 220 = 0.4591 → 45.9% --- ### Exclusions from Denominator **None.** All 220 companies in the extract had complete `m1_users` and `m1_redemptions` values; no rows required exclusion. --- ### Single Signal with the Largest Retention Lift vs. Neither (40.0% baseline) - **Givers-only**: 46.9% − 40.0% = **+6.9 ppts** - **Redemption-only**: 31.0% − 40.0% = **−9.0 ppts** (negative; underperforms baseline) **Answer: "givers-only" (m1_users >= 5) is the single signal with the largest retention lift over the neither baseline**, at +6.9 percentage points. Redemption-only, on its own, actually performs worse than having neither signal. --- ### What This Does and Does Not Prove **What this DOES show:** - Companies hitting **both** activation signals in month 1 retain at 24 months at a rate (66.0%) roughly 1.6× higher than the baseline (40.0%) and 1.4× higher than the total cohort. - Within single-signal cohorts, having **givers without redemptions** yields modest improvement over baseline (+6.9 ppts), whereas **redemptions without givers** is a negative indicator. **What this DOES NOT prove:** 1. **Causation.** This is a correlation. Companies with early givers may simply be higher-quality accounts (better fit, more champions, stronger budget) that were always going to retain. The activation signals may be leading indicators of inherent quality rather than causal drivers. 2. **The mechanism.** We do not know *why* month-1 givers retain better. It could be engagement depth, seat expansion propensity, internal champion activity, or just company size/vertical. 3. **Generalizability.** This cohort is signups from Jan–Jul 2023 only. External validity to other time periods, pricing tiers, or geographies is not established by this data. 4. **Intervention value.** Unless we test a program that *increases* the probability of hitting these signals and show retention improves as a result, we cannot claim a causal retention lever. **Bottom line:** The both-signals cohort is clearly the healthiest segment; givers-only is slightly better than nothing; redemption-only flags risk. Treat these as predictive indicators, not proven causes.
**ARR Reconciliation — Billing vs. CRM (2026-09-05)** Totals - Billing ARR (MRR × 12): $617,897.76 - CRM ARR (HubSpot): $603,581.76 - Variance (CRM − Billing): −$14,316.00 Variance Decomposition | Bucket | Amount | Detail | |---|---|---| | Missing Records | −$11,952.00 | | | • C-21629AA4 in billing ($28,449.24), absent from CRM | −$28,449.24 | | | • C-0D5BBE3A in CRM ($16,497.24), absent from billing | +$16,497.24 | | | Status Mismatch | −$2,400.00 | C-0F7269D7 (SUB-0006): CRM understates vs. billing by $2,400 | | Other | +$36.00 | C-0D66DF9E +$16; C-14D70CE0 +$20 — unexplained deltas | | Rounding | $0.00 | | | **Check total** | **−$14,316.00** | | Mismatched Accounts | Account (Alias) | Sub ID | Billing ARR | CRM ARR | Delta | Suggested Owner | |---|---|---|---|---|---| | C-0F7269D7 | SUB-0006 | $26,796.00 | $24,396.00 | −$2,400.00 | Finance / Data Steward | | C-0D66DF9E | SUB-0005 | $23,184.00 | $23,200.00 | +$16.00 | Finance / Data Steward | | C-14D70CE0 | SUB-0008 | $18,180.00 | $18,200.00 | +$20.00 | Finance / Data Steward | Business-Rule Violations (non-12-month term, no end date) | Alias | Sub ID | Term | Suggested Owner | |---|---|---|---| | C-1794A52C | SUB-0002 | 24 mo | Deal Desk / Customer Success | | C-22170CA1 | SUB-0019 | 36 mo | Deal Desk / Customer Success | No rounding differences found; all deltas are exact to the cent.
All 30 respondents have paired Jul/Aug entries; `plan_tier` is uniform (`tier_three`), so segment splitting is only meaningful by `size_band`. | KVM | Jul | Aug | Abs | Rel | Dir | |---|---|---|---|---|---| | Giving rate | 0.6023 | 0.6027 | +0.00042 | +0.07% | UP | | Redemptions / user | 1.7300 | 1.7302 | +0.00018 | +0.01% | UP | | 1:1 engagement | 0.4469 | 0.4472 | +0.00029 | +0.06% | UP | | Pulse check engagement | 0.6006 | 0.5086 | -0.09198 | -15.31% | DOWN | Largest relative move: Pulse check engagement (-15.31%), driven by the `enterprise` size_band (0.5500 → 0.2743, -50.13%). `smb` and `mid_market` were essentially flat on this metric.
Last completed month: 2026-08 Redemption section ------------------ Redemption count: 378 Total spend: $27,846.00 Unique redeemers: 235 Redemptions per redeemer: 1.61 Provider mix (% of spend): custom: 39.0% Tremendous: 30.5% Snappy: 18.8% TangoCard: 11.6% [Sum: 100.0%] Top 5 countries by redemptions: 1. US: 244 2. CA: 24 3. AU: 21 4. GB: 17 5. NL: 17 Source: redemptions_ytd.csv (378 rows; no data beyond 2026-08 present).
**Snapshot:** 2026-09-05 **120-day cutoff:** 2027-01-03 --- ## QUALIFIED ACCOUNTS (8 accounts — all 3 rules met) | Account Alias | Health | ARR | Eligible Amount | Renewal | Usage Trend | Seats Used/Total | Champion | Play | Justifying Signal | |---|---|---|---|---|---|---|---|---|---| | C-0F6C0F34 | 51 | $86,741 | **$49,707** | 2026-10-03 | growing | 308/395 (78%) | false | **Executive Touch** | No active champion on highest-ARR at-risk account ($86,741). Escalate to secure a new executive sponsor before Oct renewal. | | C-0B827671 | 56 | $72,088 | **$25,365** | 2026-11-14 | declining | 113/202 (56%) | true | **Usage Revival** | Usage declining for 3 months + seat utilization collapsed to 56%. Re-engage users to reverse adoption slide. | | C-0B360C78 | 57 | $60,427 | **$35,748** | 2026-10-28 | growing | 246/327 (75%) | true | **Commercial Concession** | Usage is actively growing and utilization is healthy at 75%, yet health score is 57. The gap between proven value and low health points to a price/value perception problem, not a product problem. | | C-0B0F1BAB | 38 | $15,391 | **$5,494** | 2026-09-23 | flat | 238/363 (66%) | false | **Executive Touch** | No active champion on an account with the lowest health score (38) and nearest renewal (Sep 23). Relationship gap is the primary risk driver. | | C-0CA21961 | 58 | $31,501 | **$16,829** | 2026-12-28 | flat | 84/325 (26%) | true | **Usage Revival** | Seat utilization at only 26% despite 325 seats purchased. Extreme underutilization signals a critical onboarding/adoption failure. | | C-0E9C27D1 | 39 | $75,093 | **$41,235** | 2026-09-24 | flat | 134/157 (85%) | true | **Commercial Concession** | 85% seat utilization proves the product is valuable, yet health is 39 and usage is flat. The disconnect between proven value and low health indicates a price/value mismatch. | | C-0CEF69FD | 53 | $79,324 | **$32,621** | 2026-11-21 | growing | 97/136 (71%) | false | **Executive Touch** | No active champion on a $79K ARR account with $32,621 at risk. Usage is growing, so product adoption is not the issue — relationship coverage is. | | C-0D3278C7 | 54 | $33,815 | **$17,602** | 2026-11-12 | declining | 126/380 (33%) | true | **Usage Revival** | Usage declining + seat utilization collapsed to 33%. Classic adoption failure requiring immediate user re-engagement and success intervention. | **Total amount at stake:** **$224,601.00** --- ## AT-RISK ACCOUNTS THAT DO NOT QUALIFY (7 accounts — fail R2 or R3) | Account Alias | Health | ARR | Eligible | Renewal | Fails Rule(s) | Why Ineligible | |---|---|---|---|---|---|---| | C-0BC71BDD | 55 | $54,515 | $0 | 2026-10-27 | R2 | Health is at-risk (55) and renewal is within 120 days, but churn_save_eligible_amount = $0. No save budget allocated. | | C-0BE96399 | 54 | $52,319 | $0 | 2026-10-29 | R2 | Health is at-risk (54) and renewal is within 120 days, but churn_save_eligible_amount = $0. No save budget allocated. | | C-10A56B0F | 54 | $25,717 | $0 | 2026-12-12 | R2 | Health is at-risk (54) and renewal is within 120 days, but churn_save_eligible_amount = $0. No save budget allocated. | | C-0BA71F12 | 52 | $17,061 | $6,824 | 2027-04-11 | R3 | Has eligible amount and at-risk health, but renewal date (Apr 11, 2027) is **outside** the 120-day window. Too early to trigger a churn-save offer. | | C-0F876796 | 47 | $49,895 | $19,958 | 2027-02-06 | R3 | Has eligible amount and at-risk health, but renewal date (Feb 6, 2027) is **outside** the 120-day window. Too early to trigger a churn-save offer. | | C-0F6694C3 | 43 | $11,243 | $0 | 2027-03-21 | R2, R3 | Fails both: eligible amount = $0, and renewal date (Mar 21, 2027) is outside the 120-day window. | | C-0FCCD2DF | 43 | $65,957 | $0 | 2027-04-23 | R2, R3 | Fails both: eligible amount = $0, and renewal date (Apr 23, 2027) is outside the 120-day window. | **Note:** All accounts with health score >= 60 are excluded by Rule R1 and are not considered "at risk" under the documented eligibility criteria.
**EXPANSION KIT — C-0DDFC9A7** **Account profile** - Licensed seats: 150 - Headcount: 400 - Current ARR: $9,000.00 - Per-seat rate: $9,000 / 150 = **$60/seat** **Seat coverage** - 150 licensed / 400 headcount = **37.5%** coverage **Usage health** 1. Licensed-seat utilization climbed to 84% by August (126/150), up from 59% in March (88/150). 2. Active users grew 43% over six months (88 → 126) with no month-over-month decline and no users above licensed headroom. **Headroom** - Unused seats in current license: 150 − 126 = **24 seats** → **$1,440** ARR at $60/seat - Expansion to full headcount: 400 − 150 = **250 seats** → **$15,000** ARR upside at current per-seat rate **Inbound reply** - **Replied:** Maria S., People Operations Coordinator - **Can buy:** No — she explicitly states budget and seat expansion sit elsewhere; she is NOT the purchasing decision maker. **Right buyer from contacts** - **Dana R.**, VP People (last engaged 2026-05-18). Maria confirms Dana owns budget and seat expansion and has been asking about usage numbers. **Reply to Maria** (under 150 words) > Hi Maria, > > Thanks for the reply — great to hear the recognition feed is busy and the team is getting real value. Quick context: August showed 126 monthly active users across your 150 seats (84% utilization), and usage has grown 43% over the last six months with no drop-off. > > Since Dana R. owns budget and seat expansion, and you mentioned she’s been asking about usage, would you be open to introducing us? I can come with a short read on current consumption if it’s helpful. > > Best, > Cole
**C-0D284E42 — Mid-Onboarding Call Prep** --- ### Onboarding Checklist | Item | Status | Evidence | |---|---|---| | Slack integration | **Complete** | `integration_slack` = 2026-08-12 | | HRIS integration | **Not complete** | `integration_hris` is blank | | Allowance set | **Complete** | `allowance_set` = 2026-08-13 | | Admins added | **Complete** | `admins_added` = 2 | | First recognition given | **Complete** | `first_recognition_at` = 2026-08-15 14:22 | | First redemption | **Not complete** | `first_redemption_at` is blank | --- ### Engagement Signals (25-day window: Aug 11 → Sep 4) - **Total giver-days**: 214 - **Avg daily active givers**: 8.56 - **Week 1 (Aug 11-17) avg**: 4.3 | **Week 4 (Aug 29-Sep 4) avg**: 13.0 - **Growth rate**: +203.3% (more than tripled) - **Trend slope**: +0.49 givers per day - **Milestone pacing**: - 5 givers: reached day 4 (Aug 15) - 10 givers: reached day 15 (Aug 26) - 15 givers: reached day 23 (Sep 3) - **Current state**: 2 consecutive days at 15 active givers (Sep 3–4) --- ### Three Things to Cover on the Call 1. **HRIS integration gap** `integration_hris` is blank. If they plan to scale orgs or automate lifecycle syncs, HRIS is the lever. Ask: is this a blocker for their 90-day plan, or are they intentionally deferring? 2. **Redemption gap** Recognition is happening but no redemptions have occurred. With allowance set on Aug 13 and 15 active givers now, the redemption flow may be unclear, rewards inventory may feel thin, or redemption may simply be new to their culture. Surface friction now so the loop closes. 3. **Momentum into department expansion** They grew from 4.3 to 13.0 average weekly givers and hit 15 steady-state givers. Ask which department drove the latest jump and whether they want to discuss adding additional admins or launching a secondary wave before the next billing touchpoint.
90-DAY RENEWAL RISK BRIEF
Disambiguation note:
Multi-year contracts (is_multi_year=true) are known to be incorrect in ChurnZero. For the 5 accounts with is_multi_year=true, the renewal dates in this brief are taken from Chargebee.
For non-multi-year accounts where dates disagree, ChurnZero is used as the default source (no authoritative billing override indicated).
The 90-day window covers renewals from 2026-09-10 through 2026-11-24.
-----
Account: C-0B7D2C30
CSM: Dana Mercer
ARR: $65,901
Renewal Date: 2026-09-15
Seat Utilization: 274/476 (58%)
3-Month Usage Trend: decreasing (May 107 → Aug 84, -21%)
Risk Rating: HIGH — risk of churn or non-renewal above baseline.
Evidence: Moderate utilization (58%) with a 21% drop in active users over 3 months signals fading adoption.
FLAG: Date disagreement. ChurnZero has 2026-09-10; Chargebee has 2026-09-15. Using Chargebee because is_multi_year=true.
-----
Account: C-0BCDB8C2
CSM: Cole Ingram
ARR: $54,427
Renewal Date: 2026-09-18
Seat Utilization: 232/424 (55%)
3-Month Usage Trend: decreasing (May 136 → Aug 110, -19%)
Risk Rating: HIGH
Evidence: Moderate utilization (55%) with a 19% drop in users over 3 months suggests disengagement ahead of renewal.
FLAG: Date disagreement. ChurnZero has 2027-09-18; Chargebee has 2026-09-18. Using Chargebee because is_multi_year=true.
-----
Account: C-0D2AB865
CSM: Elena Sinclair
ARR: $38,022
Renewal Date: 2026-09-22
Seat Utilization: 250/407 (61%)
3-Month Usage Trend: decreasing (May 137 → Aug 109, -20%)
Risk Rating: HIGH
Evidence: Utilization (61%) declined 20% over 3 months and remains in the moderate band where churn risk spikes.
FLAG: Date disagreement. ChurnZero has 2026-09-10; Chargebee has 2026-09-22. Using Chargebee because is_multi_year=true.
-----
Account: C-0BBE3E60
CSM: Dana Mercer
ARR: $30,993
Renewal Date: 2026-09-26
Seat Utilization: 74/114 (65%)
3-Month Usage Trend: decreasing (May 41 → Aug 33, -20%)
Risk Rating: HIGH
Evidence: Moderate utilization (65%) with a steep 20% usage decline indicates waning stickiness.
FLAG: Date disagreement. ChurnZero has 2027-09-26; Chargebee has 2026-09-26. Using Chargebee because is_multi_year=true.
-----
Account: C-0F5D2323
CSM: Cole Ingram
ARR: $90,647
Renewal Date: 2026-09-29
Seat Utilization: 274/476 (58%)
3-Month Usage Trend: decreasing (May 20 → Aug 18, -10%)
Risk Rating: HIGH
Evidence: Utilization (58%) combined with a 10% usage decline shows the account is not deepening engagement.
FLAG: Date disagreement. ChurnZero has 2026-09-10; Chargebee has 2026-09-29. Using Chargebee because is_multi_year=true.
-----
Account: C-0EC6999D
CSM: Elena Sinclair
ARR: $79,419
Renewal Date: 2026-10-03
Seat Utilization: 31/112 (28%)
3-Month Usage Trend: increasing (May 14 → Aug 15, +7%)
Risk Rating: MEDIUM
Evidence: Very low seat utilization (28%) is a drag on renewal willingness, but usage is trending up, so risk is moderate rather than high.
No date disagreement (both systems agree on 2026-10-03).
-----
Account: C-0B20DB64
CSM: Dana Mercer
ARR: $21,770
Renewal Date: 2026-10-07
Seat Utilization: 214/378 (57%)
3-Month Usage Trend: flat (May 296 → Aug 294, -1%)
Risk Rating: MEDIUM
Evidence: Flat usage over 3 months signals stagnant adoption; utilization has room to grow before renewal.
No date disagreement (both systems agree on 2026-10-07).
-----
Account: C-0BBC4E7A
CSM: Cole Ingram
ARR: $56,374
Renewal Date: 2026-10-10
Seat Utilization: 228/337 (68%)
3-Month Usage Trend: flat (May 142 → Aug 139, -2%)
Risk Rating: MEDIUM
Evidence: Utilization (68%) is in the moderate band with flat usage; no momentum either way.
No date disagreement (both systems agree on 2026-10-10).
-----
Account: C-0FD551AB
CSM: Elena Sinclair
ARR: $48,815
Renewal Date: 2026-10-14
Seat Utilization: 210/376 (56%)
3-Month Usage Trend: flat (May 125 → Aug 126, +1%)
Risk Rating: MEDIUM
Evidence: Low-to-moderate engagement (56%) with a flat usage trend indicates an at-risk renewal conversation.
No date disagreement (both systems agree on 2026-10-14).
-----
Account: C-0F9F8F13
CSM: Dana Mercer
ARR: $46,230
Renewal Date: 2026-10-18
Seat Utilization: 199/352 (57%)
3-Month Usage Trend: flat (May 182 → Aug 182, 0%)
Risk Rating: MEDIUM
Evidence: Utilization (57%) is stagnant and usage is flat; no growth signal ahead of renewal.
No date disagreement (both systems agree on 2026-10-18).
-----
Account: C-0BC34584
CSM: Cole Ingram
ARR: $16,740
Renewal Date: 2026-10-22
Seat Utilization: 327/494 (66%)
3-Month Usage Trend: flat (May 103 → Aug 106, +3%)
Risk Rating: MEDIUM
Evidence: Utilization (66%) is moderate and usage has barely moved; flat trend is a neutral-to-negative signal.
No date disagreement (both systems agree on 2026-10-22).
-----
Account: C-0B7A7546
CSM: Elena Sinclair
ARR: $35,062
Renewal Date: 2026-10-25
Seat Utilization: 182/205 (89%)
3-Month Usage Trend: flat (May 61 → Aug 63, +3%)
Risk Rating: LOW
Evidence: Strong seat utilization (89%) with stable usage means this account is well-embedded and low churn risk.
No date disagreement (both systems agree on 2026-10-25).
-----
Account: C-0B369871
CSM: Dana Mercer
ARR: $85,128
Renewal Date: 2026-10-29
Seat Utilization: 317/422 (75%)
3-Month Usage Trend: flat (May 319 → Aug 333, +4%)
Risk Rating: LOW
Evidence: High utilization (75%) and flat/softly-up usage suggest healthy engagement.
No date disagreement (both systems agree on 2026-10-29).
-----
Account: C-0B144C78
CSM: Cole Ingram
ARR: $30,899
Renewal Date: 2026-11-02
Seat Utilization: 169/224 (75%)
3-Month Usage Trend: increasing (May 99 → Aug 106, +7%)
Risk Rating: LOW
Evidence: Utilization is strong (75%) and usage is trending up, indicating expansion and renewal momentum.
No date disagreement (both systems agree on 2026-11-02).
-----
Account: C-0FC4DBB8
CSM: Elena Sinclair
ARR: $94,732
Renewal Date: 2026-11-05
Seat Utilization: 356/464 (77%)
3-Month Usage Trend: flat (May 185 → Aug 193, +4%)
Risk Rating: LOW
Evidence: High utilization (77%) with flat usage should not prevent renewal.
No date disagreement (both systems agree on 2026-11-05).
-----
Account: C-0D5BBE3A
CSM: Dana Mercer
ARR: $39,740
Renewal Date: 2026-11-09
Seat Utilization: 85/102 (83%)
3-Month Usage Trend: flat (May 87 → Aug 91, +5%)
Risk Rating: LOW
Evidence: Strong utilization (83%) shows deep adoption.
No date disagreement (both systems agree on 2026-11-09).
-----
Account: C-0FB9D5AF
CSM: Cole Ingram
ARR: $63,158
Renewal Date: 2026-11-13
Seat Utilization: 144/199 (72%)
3-Month Usage Trend: flat (May 168 → Aug 176, +5%)
Risk Rating: LOW
Evidence: Utilization (72%) is healthy and usage is stable-to-growing.
No date disagreement (both systems agree on 2026-11-13).
-----
Account: C-0B344485
CSM: Elena Sinclair
ARR: $64,384
Renewal Date: 2026-11-16
Seat Utilization: 224/287 (78%)
3-Month Usage Trend: flat (May 235 → Aug 244, +4%)
Risk Rating: LOW
Evidence: Strong utilization (78%) with flat usage; no churn signal.
No date disagreement (both systems agree on 2026-11-16).
-----
Account: C-0CB2C1B4
CSM: Dana Mercer
ARR: $40,628
Renewal Date: 2026-11-20
Seat Utilization: 386/473 (82%)
3-Month Usage Trend: flat (May 50 → Aug 49, -2%)
Risk Rating: LOW
Evidence: Utilization (82%) is strong; a 2% dip over 3 months is noise, not a trend.
No date disagreement (both systems agree on 2026-11-20).
-----
Account: C-22170CA1
CSM: Cole Ingram
ARR: $45,646
Renewal Date: 2026-11-24
Seat Utilization: 251/294 (85%)
3-Month Usage Trend: flat (May 143 → Aug 146, +2%)
Risk Rating: LOW
Evidence: High utilization (85%) and steady usage indicate low churn risk.
No date disagreement (both systems agree on 2026-11-24).
============================================================
SUMMARY
Total ARR renewing (90-day window): $1,048,715
Total ARR rated HIGH risk: $279,990
============================================================
Disagreement summary:
The 5 multi-year accounts all had ChurnZero dates that did not match Chargebee. In four cases ChurnZero showed a 2027 date (off by one year); in one case it showed a 2026 date 5 days earlier. Chargebee was used for all five because multi-year contracts are systematically incorrect in ChurnZero.
No non-multi-year accounts had date disagreements.
Ticketing tier grouping with account-level details. I parsed the 150 tickets by body text, condensed each repeated body into one row, counted distinct `account_alias` values for that body, summed ARR per unique ARR, and tallied ticket counts which equals distinct body text counts per exact text. Then I clustered related body texts into themes. Takeaways: - HRIS / Provisioning Failures dominate ARR exposure ($114,000 across 3 distinct accounts, 11 tickets) - Redemption / Gift Card Failures carry the widest customer impact (7 distinct accounts, $68,800) - Billing / Invoice Discrepancies is concentrated in 1 account ($52,000, 16 tickets) — single-account rally - Points Not Posting is noisiest by ticket volume (20 tickets, 9 accounts, $31,100) - Slack Integration Failures is smaller but recurring (4 accounts, $18,900) Detailed Breakdown: 1. HRIS / Provisioning Failures - Tickets: 11 | Share: 7.3% | Distinct accounts: 3 | ARR affected: $114,000 - Sample ticket IDs: IC-460059, IC-460062 - Accounts: C-0B2213A9 ($36,000), C-0DDFC9A7 ($48,000), C-0F6C0F34 ($30,000) - One-line recommendation: Repair the silent-fail provisioning pipeline; the same 12-hire skip error across high-ARR accounts suggests a code-level bypass, not isolated data issues. 2. Redemption / Gift Card Failures - Tickets: 18 | Share: 12.0% | Distinct accounts: 7 | ARR affected: $68,800 - Sample ticket IDs: IC-460025, IC-460031 - Key accounts: C-0CEF69FD ($8,900), C-0B827671 ($10,700), C-0F876796 ($8,700), C-14264ABD ($11,000), C-0FCCD2DF ($9,600), C-0D9CA315 ($9,600), C-0B0F1BAB ($10,300) - One-line recommendation: Audit checkout redemption and vendor gift-card fulfillment end-to-end; when the same failure repeats across multiple mid-market accounts, the issue sits in the redemption fulfillment layer, not front-end UX. 3. Billing / Invoice Discrepancies - Tickets: 16 | Share: 10.7% | Distinct accounts: 1 | ARR affected: $52,000 - Sample ticket IDs: IC-460071, IC-460079 - Account: C-0E9C27D1 ($52,000) - One-line recommendation: Isolate C-0E9C27D1 in finance and review seat-count logic; 16 tickets from one account indicate an ongoing billing contract mismatch, not a platform bug. 4. Points Not Posting (Crediting / Recognition Delivery) - Tickets: 20 | Share: 13.3% | Distinct accounts: 9 | ARR affected: $31,100 - Sample ticket IDs: IC-460001, IC-460004 - Accounts: C-0D3278C7 ($3,500), C-0BF20542 ($4,500), C-0D0B047C ($4,500), C-0B843542 ($4,400), C-10A56B0F ($5,400), C-0BE96399 ($2,700), C-0D284E42 ($3,400), C-0DD0626C ($2,500), C-0B2895EF ($2,900) - One-line recommendation: Check the points-event backlog after recognition delivery; repeated "sent but never arrived" reports across low-to-mid ARR accounts suggests a queue-time or eventual-consistency issue in the credit writer. 5. Slack Integration Failures - Tickets: 14 | Share: 9.3% | Distinct accounts: 4 | ARR affected: $18,900 - Sample ticket IDs: IC-460047, IC-460046 - Accounts: C-0B843542 ($4,400), C-0BA71F12 ($3,900), C-10A56B0F ($5,400), C-8C2E8F00 ($5,200) - One-line recommendation: Investigate the Slack OAuth/token refresh flow; the “sync toggle resets” and “re-auth doesn’t stick” symptoms are pointing to an authorization persistence bug, not user error. If you want, I can send you a machine-readable JSON version.
Top 3 similar customers with public case studies (ranked by exact field matches to prospect C-82AF3719): **Match count is identical for all three (3 of 4 fields).** Ties broken by prioritizing industry + use case over region given the sales use-case. 1. **C-64171065** — Industry: Technology; Size band: Mid-Market; Use case: employee_recognition; Region: NA-East Matched: industry, size band, use case. Did not match: region (NA-East vs NA-West). 2. **C-11C31562** — Industry: Manufacturing; Size band: Mid-Market; Use case: employee_recognition; Region: NA-West Matched: size band, use case, region. Did not match: industry (Manufacturing vs Technology). 3. **C-A13C193D** — Industry: Technology; Size band: Mid-Market; Use case: retention; Region: NA-West Matched: industry, size band, region. Did not match: use case (retention vs employee_recognition). **Note:** No other customer in the file has a public case study. All remaining case study customers (C-FEFCC020, C-11209339, C-9D69D147, C-CD4829A7, C-0CE315B2) scored 2 matches or fewer against the prospect.
CHANNEL PERFORMANCE — Trailing 6 Months (Mar–Aug 2026) PAID CHANNELS Channel Spend SQMs SQOs Cost/SQM Cost/SQO SQM->SQO% Pipeline Pipeline/$ ------------------------------------------------------------------------------------------- paid_search $36,000 40 18 $900 $2,000 45% $720,000 $20 linkedin_ads $24,000 25 8 $960 $3,000 32% $96,000 $4 paid_social $18,000 0 0 UNDEFINED UNDEFINED UNDEFINED $0 UNDEFINED Arithmetic: - paid_search Cost/SQM: $36,000 / 40 = $900. Cost/SQO: $36,000 / 18 = $2,000. SQM→SQO: 18/40 = 45%. Pipeline/$: $720,000 / $36,000 = $20. - linkedin_ads Cost/SQM: $24,000 / 25 = $960. Cost/SQO: $24,000 / 8 = $3,000. SQM→SQO: 8/25 = 32%. Pipeline/$: $96,000 / $24,000 = $4. - paid_social: $18,000 spend, 0 SQMs → cost per SQM and SQM→SQO rate are UNDEFINED (division by zero). ORGANIC CHANNELS Channel Volume SQOs SQO Rate Pipeline ------------------------------------------------------------ organic_search 30 9 30.0% $81,000 Arithmetic: - organic_search SQO rate: 9 SQOs / 30 contacts = 30.0%. No spend data available, so pipeline/$ cannot be computed. DATE ANOMALIES (SQO precedes SQM) - CT-000044 | linkedin_ads | SQM: 2026-07-23 | SQO: 2026-07-18 - CT-000041 | linkedin_ads | SQM: 2026-06-14 | SQO: 2026-06-09 REALLOCATION RECOMMENDATION - paid_social has $18,000 deployed with zero SQMs and zero pipeline. Immediately reallocate to paid_search (best pipeline efficiency at $20/$) and linkedin_ads (solid SQM volume at $4/$). Pause paid_social spend until conversion tracking is fixed; if any SQMs emerge, reassess, but current data gives no basis to justify continued spend. CONFIDENCE ASSESSMENT Confidence: MEDIUM. Rationale: - paid_social n=0 SQMs — conversion rate and ROI are undefined, not zero. Recommendation to reallocate is high-confidence given zero signal. - linkedin_ads has two anomalous date pairs (CT-000041, CT-000044) where SQO precedes SQM. If these are data-entry errors, SQO counts could shift. Sample of 25 SQMs is workable but should be audited. - organic_search n=30, 30% SQO rate is directional but lacks spend attribution so no ROI comparison possible. - 6-month window reduces seasonality risk; month-over-month trends not analyzed from aggregate data. Deduplication check: 122 unique contact_keys; no duplicates found.
Updated battlecard saved at `/Users/amaniphipps/existing_battlecard.md`. **Verified facts from snippets only:** - Pricing now centers on $7/user/mo (Aug 2026 pricing_page S17), up from $5 in Jan 2026 (S03); deal evidence shows $6.50–7 list with 3-year-term discounting only (S13, S18). - EU expansion: Dublin office open, EU data residency GA as of Jul 2026 (S15); ex-Workday VP EMEA hired May 2026 (S11). - Product: Points-based recognition feed praised (S02, S16); “Rivally Pulse” survey add-on launched Mar 2026, exited beta Sep 2026 as separate add-on (S06, S23); Teams app v2 in public preview Aug 2026 (S19). - Weak spots: basic enterprise dashboards (S07), CSV-only exports (S20), no SCIM provisioning (S10), no bulk recognition editing (S24), thinner EMEA rewards catalog (S14), admin tooling lags peers (S16). - Win/support evidence: sub-week setup with Slack OOTB (S04), under-4-hour support response (S22), strong EU multilingual support (S12). **Unverified / retracted from prior card:** - “Rivally lacks Slack integration” — contradicted by S04. - “Acquired by WorkHuman in 2025” — no evidence in source set. - “$5 as of 2026-01” — superseded; newer source wins. **Win/loss arithmetic (Sep 2025–Aug 2026, 20 deals):** 13 wins + 7 losses = 20 deals. 13 ÷ 20 = 0.65 → 65% win rate. No rep opinions used as competitor facts.
**Per-sequence performance** **New Logo Nurture** Step 1: 500 sent, 42.0% open, 8.4% reply, 2.4% meeting Step 2: 458 sent, 34.9% open, 6.6% reply, 2.0% meeting Step 3: 428 sent, 28.0% open, 4.2% reply, 1.4% meeting Weakest step: 3 (4.2% reply) **Expansion Nurture** Step 1: 300 sent, 43.3% open, 7.3% reply, 1.7% meeting Step 2: 300 sent, 113.3% open, 8.3% reply, 1.3% meeting Step 3: 275 sent, 34.5% open, 4.4% reply, 1.1% meeting Weakest step: 3 (4.4% reply) **Cold Outbound – HR Leaders** Step 1: 600 sent, 40.0% open, 0.8% reply, 0.0% meeting Step 2: 595 sent, 29.4% open, 0.3% reply, 0.0% meeting Step 3: 590 sent, 22.0% open, 0.2% reply, 0.0% meeting Weakest step: 3 (0.2% reply) **Cold Outbound – People Ops** Step 1: 400 sent, 37.5% open, 3.5% reply, 0.8% meeting Step 2: 386 sent, 28.5% open, 2.3% reply, 0.5% meeting Step 3: 377 sent, 21.2% open, 1.6% reply, 0.3% meeting Weakest step: 3 (1.6% reply) --- **Tracking errors** Expansion Nurture Step 2 opened (340) > sent (300). No other instances. **Audience overlap** CT-000301 sits in both Expansion Nurture and New Logo Nurture. No other duplicates detected. **Under-2% reply rate & failure modes** - *Cold Outbound – HR Leaders* Steps 1–3: 0.8%, 0.3%, 0.2%. Low reply despite solid open rates (40% → 22%). Failure mode: the sequence is converting interest into conversation—likely wrong audience fit or value prop mismatch for HR Leaders. - *Cold Outbound – People Ops* Step 3: 1.6%. Reply decays across steps while open stays decent. Failure mode: Step 3 content is stale or irrelevant. **One change per weak sequence & priority** 1. **Cold Outbound – HR Leaders** — fix first. Zero meetings across 1,785 touches; pivot the value prop above open (e.g., lead with ROI metric, not feature). This is a binary blocker, not a decay problem. 2. **Cold Outbound – People Ops** — kill or rewrite Step 3 copy. The drop from 2.3% to 1.6% suggests that third touch is actively hurting conversion.
**Weekly Marketing Goals Update — Q3-2026** Quarter elapsed: 66 of 92 days (71.7%) | metric | qtd_actual | target | delta | pace | |---|---|---|---|---| | sqms | 230 | 300 | -70 | ahead | | sqos | 84 | 120 | -36 | behind | | ds2s | 40 | 75 | -35 | behind | | closed_lost_mia_rate | 20.0% | 10.0% | +10.0pp | behind | | same_quarter_closes | 10 | 20 | -10 | behind | | active_pipeline | $3,000,000 | $4,000,000 | -$1,000,000 | ahead | Arithmetic - closed_lost_mia_rate = 5 ÷ 25 = 0.20 (20.0%). - Pace baseline = 66 ÷ 92 = 71.7% of quarter elapsed. - Higher-better metrics pace determined by (QTD actual ÷ target) vs 71.7%: - SQMs: 230 ÷ 300 = 76.7% → ahead - SQOs: 84 ÷ 120 = 70.0% → behind - DS2s: 40 ÷ 75 = 53.3% → behind - same_quarter_closes: 10 ÷ 20 = 50.0% → behind - active_pipeline: $3M ÷ $4M = 75.0% → ahead - Lower-better closed_lost_mia_rate: actual 20.0% > target 10.0% → behind. --- The provided source files contain only QTD aggregates; no weekly-sequence or prior-week baselines are present, so week-over-week movement cannot be identified. From the QTD position, SQMs and active pipeline are running ahead of the 71.7% elapsed pace, while SQOs, DS2s, and same-quarter closes are all trailing. The closed-lost MIA rate is exactly double its 10% target (20.0%, or 5 of 25 closed-lost deals), which by definition removes those deals from the same-quarter close pool and is the most data-backed bottleneck at this snapshot.
Q3 weighted forecast is $115,977 (44 commitments + 35% of $203,565 best case across 54 in-quarter deals). Excluded deals total $227,575, including $13,770 in committed revenue pushed to October. Treat with caution: 85 of 86 deals have blank owners so rep/quota rollup is impossible, and 71 of 86 have empty why-buys even on committed deals.
Subject: Following up — Deal-0D2F7A Hi there, Following up on the July 28 demo with your People team. You had a strong reaction to the automated milestone awards and points catalog, and asked for pricing. I sent the 150-seat package on August 5 and wanted to make sure it landed. Are you available for a 15-minute call this week to discuss? Alex Franklin
Marketing generated 46 SQMs this week, with webinars driving 18 and paid search holding at $150 per SQM. That’s six short of the 52 target, so the focus for next week is tightening conversion in the channels that are feeding volume. Sales converted 14 SQOs and set 9 DS2 meetings while creating $310,000 in new pipeline. Same-quarter close count was 3, keeping the forecast realistic and the cadence steady. Customer success saved 2 renewals and team NPS moved to 61. Three open red-flag accounts are heading into next week, which means consistent touchpoints will be the difference maker. PLG added 412 new signups with activation at 31%. Thirty-eight companies reached the aha moment of 10 recognition gives, building the kind of early compounding habit we look for in self-serve accounts.
Partner Digest — 2026-08-24 to 2026-09-04 Apex Rewards Co (active): 2 sourced deals this period, total $275,000 — Deal-DDAAF2 ($180,000, DS1) and Deal-2CF33E ($95,000, DS1). Both logged with UTM Source = Partner. Co-webinar locked for 09-15. HRCloud Partners (active): 1 sourced deal this period, $140,000 — Deal-F1CDA5. Opp moved to DS2 after closing security review. CultureBridge (active): 2 sourced deals this period, total $135,000 — Deal-096E1D ($60,000, early stage) and Deal-067213 ($75,000, early stage). Produced from lunch-and-learn. WorkWell Group (active): 0 sourced deals this period. Planning call booked for 09-09 to restart joint playbook in Q4. Recogniq — No deals or activity this period. KudosWave — No deals or activity this period. PeopleFirst Advisors — No deals or activity this period. TotalPerk — No deals or activity this period.
vendor response Q1 — Yes. Customer data is encrypted at rest using AES-256. [P1] Q2 — Yes. Data in transit is encrypted with TLS 1.2 or higher. [P1] Q3 — Yes. Bonusly maintains a SOC 2 Type II report, renewed annually, and it is available to prospects under NDA. [P2] Q4 — Customer data is retained for the duration of the contract plus 90 days, after which it is deleted from production systems. [P3] Q5 — The current subprocessor list is published at trust.bonusly.com. Customers receive 30 days notice before a new subprocessor is added. [P4] Q6 — Yes. SAML 2.0 single sign-on is available on the Enterprise plan. [P5] Q7 — Production databases are backed up daily. Backups are encrypted and retained for 35 days. [P6] Q8 — Unanswerable from the provided excerpts. Document needed: ISO 27001 certification documentation or compliance attestation. Q9 — Unanswerable from the provided excerpts. Document needed: service level agreement or contractual uptime commitment documentation. Q10 — Unanswerable from the provided excerpts. Document needed: HIPAA Business Associate Agreement policy or HIPAA compliance documentation.
**Skill Reconciliation Report** --- **1. ALWAYS-TRIGGER PHRASE OVERLAPS** Finding CRITICAL — comms-drafter and email-drafter share 6 identical trigger phrases and near-identical scopes. Shared triggers: - "write me an email" - "draft a follow-up" - "help me reply" / "help me reply to this" - "what should I say" - "bump email" - "contract nudge" Both skills also claim "any variation" as a catch-all. Scope overlap: outbound prospecting, follow-ups, post-demo recaps, pricing/contract follow-up, EOQ pushes, renewal/expansion, QBR follow-ups, onboarding check-ins. Action: **MERGE** Proposal: Consolidate email-drafter into comms-drafter. comms-drafter already owns the full external-comm surface (Intercom, support, partner outreach, rewards). email-drafter adds no unique execution logic. After merge, remove email-drafter from the manifest and replace all cross-references with comms-drafter. Finding WARNING — pipeline-intelligence-report and weekly-pipeline-report overlap on "pipeline report" and "pipeline update". pipeline-intelligence-report: "run the pipeline report", "pipeline update" weekly-pipeline-report: "run the pipeline update", "weekly pipeline report", "generate the pipeline report" Action: **TRIM_DESC** Proposal: Remove "run the pipeline report", "generate the pipeline report", and "pipeline update" from weekly-pipeline-report's ALWAYS list. weekly-pipeline-report is the recurring summary dashboard; pipeline-intelligence-report is the master scored/tiered report. Keep trigger zones distinct. --- **2. CIRCULAR DELEGATION CHAIN** NONE — No circular delegation chain exists among the 14 skills. Delegation graph inspected: - comms-drafter → deal-strategy-coach - email-drafter → deal-strategy-coach - next-to-close → pipeline-intelligence-report - pipeline-intelligence-report → closed-lost-analysis - deal-strategy-coach → prospect-research-multithreading (dangling) No skill delegates back to an upstream caller. The hypothesized chain (analysis-validator ↔ deal-strategy-coach ↔ pipeline-intelligence-report → closed-lost-analysis) does not appear in the current files. --- **3. DANGLING DELEGATION TARGETS** Finding CRITICAL — `prospect-research-multithreading` is invoked as a delegation target by three skills but is absent from the manifest and filesystem. Invocations: - comms-drafter: "invoke prospect-research-multithreading in Contact Lookup mode first" - deal-strategy-coach: "Invoke **prospect-research-multithreading** whenever..." - email-drafter: "invoke **prospect-research-multithreading** in Contact Lookup mode first" Finding CRITICAL — `bonusly-brand` is referenced as a prerequisite by comms-drafter and email-drafter but is also not present in the manifest. Action: **REVIEW** Proposal: Decide whether to (a) implement `prospect-research-multithreading` and `bonusly-brand` and add them to the manifest, or (b) strip the Invoke/apply calls from comms-drafter, deal-strategy-coach, and email-drafter and replace with a "functionality pending" placeholder note until the skills are built. --- **4. VERSION CONFLICT** Finding WARNING — analysis-validator has an internal version conflict between its header and its trail template. - Header: "Version: 3.6" - Section 7 trail template: "Validator: analysis-validator v3.2" - Changelog: v3.6 and v3.5 both released May 9, 2026 — v3.6 is the latest. Action: **UPDATE_BODY** Proposal: Update the trail template in Section 7 from "v3.2" to "v3.6" so the published output reflects the actual file version. v3.6 should survive as canonical. --- **5. MANIFEST DESCRIPTIONS > 1,024 CHARACTERS** Finding INFO — 0 manifest descriptions exceed 1,024 characters. Arithmetic: - `description_chars` values range from 656 to 1006. - Maximum: 1006 (pipeline-intelligence-report / signalforge-claim-compressor). - 1006 < 1024. - Count = 0. Action: N/A Proposal: No action required. --- **6. HARDCODED PAGE IDS, DATES, OR PERSON NAMES** Finding CRITICAL — Hardcoded Confluence instance IDs and hardcoded person names will break across environments or as personnel change. Confluence / Cloud IDs: - partner-digest.SKILL.md: Cloud ID `73fe98de-a4a3-4869-9f8a-bb1eeed4cf7f`, Space ID `1958248479`, folder ID `2286616609` - signalforge-feedback.SKILL.md: Cloud ID `73fe98de-a4a3-4869-9f8a-bb1eeed4cf7f`, Space ID `2232811524`, Page ID `2295136266`, Parent ID `2234417154`, Build Log ID `2247295002` - sales-forecast.SKILL.md: Space ID `2232811524`, Parent page ID `2232582148` Hardcoded person names in skill titles / owners: - stale-pipeline-report.SKILL.md: "Ben Lavin · Demand Generation · Bonusly" - weekly-pipeline-report.SKILL.md: "Ben Lavin · Demand Generation · Bonusly" - analysis-validator.SKILL.md: "Amani Phipps", "Manish" (Finance escalation) Action: **UPDATE_BODY** Proposal: (a) Move Confluence Cloud/Space/Page IDs into a shared environment config or constants file so they can be overridden per deployment. (b) Replace hardcoded person names with dynamic resolution (e.g., read the authenticated user via HubSpot connector, as the skill already does for other fields). Finding WARNING — Hardcoded schema and reference data scattered across skills. - analysis-validator.SKILL.md: Deal stage IDs `150582536`–`1175632767`, owner IDs (`Amani Phipps 210200121`, etc.), population anchors "~452,000" and "~110,097" despite a "do not use hardcoded figures" directive in Section 8. - deal-strategy-coach.SKILL.md: Hardcoded 2026 pricing table. - sales-forecast.SKILL.md: Hardcoded Google Sheet IDs `1CLZeOsElVDF_LF0ZG_t2nfwvhnZ6bpwqM_nX3WEYzcw` and `1ENuaEcCuLjdKhMvp8FK3Ys1ek5Aw9ZuOZhsHJJFoB_k`. Action: **REVIEW** Proposal: Keep deal stage IDs inline as stable schema constants. Move pricing tables, owner rosters, and spreadsheet IDs to a live-query path or a central `references/data-sources.md` file so they can be updated without body edits. Tag every hardcoded anchor in analysis-validator with `[LIVE QUERY]` per the reconciliation rules. --- **7. MANIFEST DRIFT** Finding INFO — Zero drift. Perfect 1:1 alignment. Arithmetic: - Manifest rows: 14 - Skill files provided: 14 - Files missing from manifest: 0 - Manifest rows missing files: 0 Action: N/A Proposal: No action required.
Incident Runbook: #incident-2026-08-29-reward-queue Step 1: Acknowledge alert and assume incident commander - Time: 2026-08-29 14:02:10Z - Owner: Bryce Harmon - Action: Acknowledge PagerDuty alert for reward-worker queue depth >10k; take IC - Verification: PagerDuty alert acknowledged - State changed: Yes (incident ownership) - Rollback: N/A Step 2: Check reward queue depth - Time: 2026-08-29 14:04:33Z - Owner: Farid Osman - Action: Run `bundle exec rake sidekiq:queue_depth` - Verification: Command returned 48,213 pending jobs (normal is under 500) - State changed: No - Rollback: N/A Step 3: Inspect dead set - Time: 2026-08-29 14:06:02Z - Owner: Farid Osman - Action: Inspect Sidekiq dead set - Verification: Dead set contained 112 jobs, all Redis::TimeoutError from around 13:58 - State changed: No - Rollback: N/A Step 4: Pause auto-recognition enqueue - Time: 2026-08-29 14:08:45Z - Owner: Farid Osman - Action: Run `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'` - Verification: **[NOT IN THREAD — no explicit verification message for this step]** - State changed: Yes (FeatureFlag changed) - Rollback: Run `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` Step 5: Clear dead set - Time: 2026-08-29 14:15:20Z - Owner: Elena Sinclair - Action: Clear the Sidekiq dead set (exact command not provided in thread) - Verification: **[NOT IN THREAD — no explicit verification message for this step]** - State changed: Yes (dead jobs removed) - Rollback: **[NOT IN THREAD — needs confirmation]** Step 6: Scale up reward-worker deployment - Time: 2026-08-29 14:21:07Z - Owner: Bryce Harmon - Action: Run `kubectl scale deployment/reward-worker --replicas=6` (was 3) - Verification: **[NOT IN THREAD — no explicit verification message at this step; later queue depth observed falling]** - State changed: Yes (replica count) - Rollback: Run `kubectl scale deployment/reward-worker --replicas=3` Step 7: Confirm queue draining - Time: 2026-08-29 14:33:41Z - Owner: Farid Osman - Action: Run `bundle exec rake sidekiq:queue_depth` - Verification: Command returned 9,400 and falling ~1,200/min - State changed: No - Rollback: N/A Step 8: Verify queue cleared and error rate normalized - Time: 2026-08-29 14:47:55Z - Owner: Cole Ingram - Action: Run `bundle exec rake sidekiq:queue_depth`; check Datadog - Verification: Queue depth returned 0; Datadog error rate back to baseline - State changed: No - Rollback: N/A Step 9: Re-enable auto-recognition enqueue - Time: 2026-08-29 14:49:10Z - Owner: Bryce Harmon - Action: Run `bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'` - Verification: 40 new jobs processed cleanly in the next 3 minutes - State changed: Yes (FeatureFlag restored) - Rollback: Run `bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'` Step 10: Scale workers back down - Time: 2026-08-29 14:55:00Z - Owner: Bryce Harmon - Action: Run `kubectl scale deployment/reward-worker --replicas=3` - Verification: Queue stable at 0 - State changed: Yes (replica count) - Rollback: Run `kubectl scale deployment/reward-worker --replicas=6`
**First error** - Timestamp: `2026-09-03T14:01:12Z` - Service: `reward-service` - Message: `Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s` **Cascade in order** 1. `2026-09-03T14:01:12Z` — reward-service ERROR: Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s 2. `2026-09-03T14:01:20Z` — reward-service ERROR: Redis::TimeoutError: retry exhausted for RewardGiveJob 3. `2026-09-03T14:01:30Z` — reward-service ERROR: Redis::TimeoutError: retry exhausted for RewardGiveJob 4. `2026-09-03T14:01:40Z` — reward-service ERROR: Redis::TimeoutError: retry exhausted for RewardGiveJob 5. `2026-09-03T14:01:40Z` — sidekiq ERROR: RewardGiveJob failed: Redis::TimeoutError; retrying in 60s 6. `2026-09-03T14:02:28Z` — sidekiq ERROR: RewardGiveJob failed: Redis::TimeoutError; retrying 7. `2026-09-03T14:02:30Z` — sidekiq WARN: Queue reward depth above 10,000 8. `2026-09-03T14:03:05Z` — api-gateway ERROR: 502 upstream timeout calling reward-service /gives 9. `2026-09-03T14:03:30Z` — web-app ERROR: Give form submission failed: upstream 502 from api-gateway 10. `2026-09-03T14:03:31Z` — sidekiq ERROR: RewardGiveJob failed: Redis::TimeoutError; retrying 11. `2026-09-03T14:03:48Z` — api-gateway ERROR: 502 upstream timeout calling reward-service 12. `2026-09-03T14:04:13Z` — api-gateway ERROR: 502 upstream timeout calling reward-service 13. `2026-09-03T14:04:22Z` — sidekiq ERROR: RewardGiveJob failed: Redis::TimeoutError; retrying 14. `2026-09-03T14:04:45Z` — web-app ERROR: Give form submission failed: upstream 502 15. `2026-09-03T14:05:16Z` — api-gateway ERROR: 502 upstream timeout calling reward-service 16. `2026-09-03T14:05:26Z` — sidekiq ERROR: RewardGiveJob failed: Redis::TimeoutError; retrying 17. `2026-09-03T14:05:42Z` — web-app ERROR: Give form submission failed: upstream 502 18. `2026-09-03T14:06:47Z` — sidekiq ERROR: RewardGiveJob failed: Redis::TimeoutError; retrying 19. `2026-09-03T14:06:49Z` — web-app ERROR: Give form submission failed: upstream 502 20. `2026-09-03T14:06:52Z` — api-gateway ERROR: 502 upstream timeout calling reward-service 21. `2026-09-03T14:22:10Z` — reward-service INFO: Redis connection restored; resuming job processing 22. `2026-09-03T14:24:45Z` — sidekiq INFO: Queue reward depth below 500 **Service and job involved** - Services: `reward-service` (root cause), `sidekiq` (queue/worker), `api-gateway` (upstream proxy), `web-app` (frontend) - Job(s): `RewardGiveJob` (visible in both logs); `RecognitionDigestJob` appears only in sidekiq_jobs.csv, not in the main datadog log stream **Datadog query to confirm the first error** ``` service:reward-service level:error "Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s" @timestamp:2026-09-03T14:01:12Z ``` Or a broader matching query: ``` service:reward-service level:error "Redis::TimeoutError" "redis-primary:6379" ``` **What the logs do not show** - The root cause of the Redis timeout (no evidence of network partition, Redis server crash, resource exhaustion, or configuration change) - Whether failed Give form submissions were retried by users or automatically replayed after recovery - Whether the `RecognitionDigestJob` failures (J-00013 through J-00016 in sidekiq_jobs.csv) appear in the datadog log slice or are only visible in the jobs file - The total count of failed Give submissions (only discrete error events are logged, not an aggregate) - Any recovery action taken against `redis-primary:6379` (only that the connection was restored) - Whether enqueued jobs ultimately completed after `14:22:10Z` or if any were lost - User-side impact metrics (e.g., number of failed reward gives, affected user IDs)
Feature flag summary — 9 flags total | 5 ON / 4 OFF | 456 company-count entries in export (counts per flag as reported; possible overlap across flags) --- 1. recognition_streaks_v2 — ON Targeting: segment:beta_companies Company count: 42 Code: app/models/recognition.rb Controls: StreakTracker.record(give) (records recognition give streaks) 2. points_budget_guardrails — ON Targeting: all_companies Company count: 220 Code: app/services/budget_service.rb Controls: BudgetService.enforce!(giver, points) (enforces points budgets per company) 3. slack_dm_nudges — ON Targeting: segment:region_na Company count: 87 Code: app/jobs/nudge_job.rb Controls: SlackDm.send_nudge(user) (sends Slack DM nudges) 4. redeem_flow_redesign — OFF Targeting: targeted_list Company count: 12 Code: app/controllers/redeem_controller.rb Controls: Render path — when ON renders RedeemV2Component.new(company); when OFF renders RedeemV1Component.new(company) 5. analytics_dashboard_v3 — ON Targeting: segment:tier_three Company count: 65 Code: app/controllers/analytics_controller.rb Controls: Assigns @dashboard = AnalyticsV3.new(company) (v3 analytics dashboard) 6. ms_teams_app_v2 — OFF Targeting: targeted_list Company count: 9 Code: app/services/teams_installer.rb Controls: TeamsAppV2.install(company) (Microsoft Teams app v2 installation) 7. legacy_give_modal — OFF Targeting: segment:legacy_plan Company count: 14 Code: none in provided excerpt Controls: not documented in provided code 8. survey_boosters_q3 — ON Targeting: segment:legacy_plan Company count: 7 Code: none in provided excerpt Controls: not documented in provided code 9. paused_offboard_cleanup — OFF Targeting: none (empty targeting_rules) Company count: 0 Code: none in provided excerpt Controls: not documented in provided code --- Flags with no code reference: legacy_give_modal, survey_boosters_q3, paused_offboard_cleanup Flags with no targets (empty targeting_rules / 0 companies): paused_offboard_cleanup Arithmetic check: 42 + 220 + 87 + 12 + 65 + 9 + 14 + 7 + 0 = 456 total company-count entries.
NDA-1: GREEN — Mutual confidentiality paired with standard carve-outs (publicly available, prior knowledge, third-party receipt, independent development, legally required disclosure), Delaware governing law, and no anti-red-flag clauses such as non-solicit, non-compete, or exclusivity.
NDA-2: YELLOW — Embeds an employee non-solicitation and no-hire clause ("During the term of this Agreement and for eighteen (18) months thereafter, neither party shall solicit for employment or hire any employee of the other party with whom it came into contact under this Agreement") that is atypical for an evaluation NDA and should be reviewed by counsel for enforceability and scope before execution.
NDA-3: RED — Contains an aggressive non-compete with no service-area or business limitation ("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") and states no confidentiality carve-outs whatsoever, creating significant overbreadth and enforceability concerns that require full legal review.