home · ← back to all models
openai

openai/gpt-5-pro

Mean 0.927 · 29/40 perfect tests · $93.00 total · each card: the question → the correct answer (gold) → this model's actual answer

data-crm
stage-hygiene-auditPASS 1.00

? The Question

Audit stage hygiene on the open pipeline below. Rules: a deal at DS2 or later must have a substantive why-buys (15+ characters, not a placeholder such as tbd, n/a, see notes). A why_buys value of the form LONG(n) means the real text was present but truncated for display; treat it as present and substantive. Every deal should have a DS1 entry timestamp. A deal whose stage entry timestamps are out of order regressed (an earlier-stage timestamp is later than a later-stage timestamp). Report: percent of DS2+ deals non-compliant on why-buys overall and by owner (use the owners table for names), count of deals with no DS1 timestamp, count that regressed, and three process fixes. State definitions before numbers.
cost $6.1886 · 586s · in 122,390 / out 36,273 tok
✓ noncomp_pct✓ no_ds1_0✓ regressed_0✓ per_owner_breakdown✓ definitions_first✓ three_fixes

✓ Correct Answer (ground truth)

noncomp_pct: 81.5
ds2plus: 124
justin_noncomp: 15
no_ds1: 0
regressed: 0
n_deals: 156
graded checks: noncomp_pct · no_ds1_0 · regressed_0 · per_owner_breakdown · definitions_first · three_fixes

Model's actual answer

show the model's full answer
DEFINITIONS
- DS2+ deals must have a substantive why_buys: length ≥ 15 characters; LONG(n) counts as substantive; placeholders (tbd, n/a, see notes) are non-compliant.
- Every deal should have a DS1 entry timestamp (t_ds1).
- Regressed = any earlier-stage timestamp later than a later-stage timestamp (e.g., t_ds1 > t_ds2).

Why-buys non-compliance (DS2+)
- Overall: 101/124 = 81.5%
- By owner:
  - Bryce Harmon: 15/18 = 83.3%
  - Dana Mercer: 18/22 = 81.8%
  - Alex Franklin: 48/61 = 78.7%
  - Cole Ingram: 19/22 = 86.4%
  - Farid Osman: 1/1 = 100.0%

Other hygiene counts
- Deals with no DS1 timestamp: 0
- Deals that regressed: 0

Process fixes (3)
- Gate DS2+ stage changes on why_buys validity: length ≥ 15 or LONG(n); reject placeholders (tbd, n/a, see notes).
- Auto-stamp DS1 on deal creation; block any stage progression if t_ds1 is missing.
- Enforce non-decreasing stage timestamps (validation to block/save-with-error when an earlier stage date is later than a later stage date).
owner-resolution0.67

? The Question

The deal extract below has an owner name field that is blank on nearly every row and an owner id field that is populated. Using the owners table, resolve each open deal to an owner name. Report: number of deals resolved, deals whose owner id has no match in the owners table (list them), the owner ids that map to archived/deactivated owners (list their names), and the total pipeline amount per resolved owner. Do not guess a name for any unmatched id.
cost $3.5835 · 382s · in 69,131 / out 21,221 tok
✓ resolved_count✗ unmatched_none✗ deactivated_flagged✓ jake_amount✓ justin_amount✓ no_invented

✓ Correct Answer (ground truth)

resolved: 156
jake_amount: 1054144.0
justin_amount: 624310.0
per_owner: Bryce Harmon=1054144.0; Alex Franklin=624310.0; Dana Mercer=341195.0; Cole Ingram=288161.43; Farid Osman=4134.0; Elena Sinclair=2100.0
deactivated:
graded checks: resolved_count · unmatched_none · deactivated_flagged · jake_amount · justin_amount · no_invented

Model's actual answer

show the model's full answer
Number of deals resolved: 156

Deals whose owner_id has no match in owners.csv: None

Owner_ids that map to archived/deactivated owners (names): None

Total pipeline amount per resolved owner (arithmetic shown):
- Bryce Harmon: Deal-25F752=24000 + Deal-E53952=19656 + Deal-C26D20=13500 + Deal-6787C2=7000 + Deal-A5E80A=2520 + Deal-2D1F1B=240000 + Deal-66D1FC=99000 + Deal-C6FE92=72000 + Deal-950043=70000 + Deal-D73B89=63600 + Deal-B23205=45000 + Deal-012CB1=1 + Deal-40522D=21000 + Deal-C5658B=23400 + Deal-523604=13680 + Deal-C9C286=5502 + Deal-CA7DC0=8160 + Deal-483B2D=1 + Deal-F0EBBB=11400 + Deal-3795AD=1 + Deal-332637=36000 + Deal-1BEEBF=31500 + Deal-E25A09=6000 + Deal-FC22A3=10800 + Deal-036E80=30275 + Deal-BB8880=17400 + Deal-01E193=12600 + Deal-C1FA6D=18000 + Deal-7BBDFA=37440 + Deal-A62B1D=18828 + Deal-333EBB=2880 + Deal-93C8BF=36000 + Deal-1CCE5C=20880 + Deal-927338=10920 + Deal-A414F6=25200 = 1054144.00
- Dana Mercer: Deal-9AAE5F=11250 + Deal-944310=10500 + Deal-B7EBD1=9000 + Deal-3974EB=9000 + Deal-2465CE=5400 + Deal-62D607=4800 + Deal-584EE5=4600 + Deal-0660B4=1920 + Deal-57887A=15000 + Deal-F336B6=4200 + Deal-215CCA=18900 + Deal-B42F46=27000 + Deal-E51FB7=43875 + Deal-9DDE86=20000 + Deal-44EA29=60000 + Deal-F40F04=8100 + Deal-5EED42=16250 + Deal-DAF1D9=3150 + Deal-87DDD1=5000 + Deal-8952F0=2100 + Deal-BA3DDC=23400 + Deal-7E2131=5400 + Deal-7599B8=7350 + Deal-F9A3C1=25000 = 341195.00
- Alex Franklin: Deal-5408B0=14850 + Deal-D348E1=13770 + Deal-547B2B=11200 + Deal-403845=9000 + Deal-A2B47C=6360 + Deal-C61CF7=5400 + Deal-C6D97A=3240 + Deal-F9A08A=2484 + Deal-1FC049=1920 + Deal-BA571A=1080 + Deal-3EED2C=7200 + Deal-60C2C2=19000 + Deal-FA053A=2880 + Deal-7FA0C3=1400 + Deal-E531A6=4800 + Deal-D0BC96=1632 + Deal-5296C9=10000 + Deal-885F45=9300 + Deal-278DEC=2700 + Deal-4A13AD=2160 + Deal-8AD4A5=1800 + Deal-15D24F=3600 + Deal-9D0060=3840 + Deal-36C33F=15000 + Deal-0D0211=1968 + Deal-5AD94B=4000 + Deal-690476=3600 + Deal-6C60D4=4800 + Deal-EE195F=3120 + Deal-F436DA=2520 + Deal-034D49=9000 + Deal-6883F3=2400 + Deal-EC3025=62000 + Deal-317E6F=5400 + Deal-0D2F7A=5100 + Deal-1E2498=16700 + Deal-D1E6C2=4400 + Deal-BE3D9D=1620 + Deal-635B8E=2600 + Deal-DCA846=7200 + Deal-D9A72E=18000 + Deal-D9A12F=17000 + Deal-C2FF3C=8316 + Deal-CA5E44=8100 + Deal-4F775F=18000 + Deal-898FC5=12600 + Deal-CC08D1=24000 + Deal-792D44=15000 + Deal-293AF3=9000 + Deal-D8ABF7=7200 + Deal-46988D=3780 + Deal-E0B692=16200 + Deal-712010=7200 + Deal-13FEBD=4680 + Deal-F67D31=1800 + Deal-E73427=18000 + Deal-42F601=2730 + Deal-ED725A=2400 + Deal-55164C=3060 + Deal-B936FE=18000 + Deal-4B0BEB=12000 + Deal-D7E999=1800 + Deal-819506=4400 + Deal-530B50=31200 + Deal-3BA5EA=7200 + Deal-5FDCE4=1600 + Deal-92D97D=60000 = 624310.00
- Cole Ingram: Deal-7B3B0F=2760 + Deal-FD9F4E=1330 + Deal-AF932D=7225.4 + Deal-C7F9BF=3360 + Deal-8BC9F5=5616 + Deal-342E96=2700 + Deal-FF809F=7781.2 + Deal-A71728=6947.5 + Deal-B25F40=40000 + Deal-CD47A6=12168 + Deal-42326B=2480.4 + Deal-FA32A0=11116 + Deal-627646=11193 + Deal-E568D5=1875 + Deal-1BA595=31750 + Deal-813836=32175 + Deal-175395=4779.88 + Deal-2F3A66=3334.8 + Deal-D04904=58529.25 + Deal-481E24=4140 + Deal-CFE1E8=18000 + Deal-99A240=18900 = 288161.43
- Farid Osman: Deal-499BF6=1249 + Deal-03BA69=1 + Deal-117863=1 + Deal-F17780=1 + Deal-8BA24E=2880 + Deal-2B39B0=1 + Deal-8FDCD2=1 = 4134.00
- Elena Sinclair: Deal-57FF13=2100 = 2100.00
gong-hubspot-join-integrity0.75

? The Question

Check the integrity of the call-to-deal mapping below. The gong table lists calls in the last 90 days keyed to HubSpot deal ids; deals_open lists the current open default-pipeline deals. Report: (a) count of gong rows whose deal id has NO match in deals_open (orphans; list a few sample aliases), (b) duplicate conversation keys (rows where calls_90d exceeds distinct_conversation_keys), (c) among the open deals that ARE at stage DS3 or later, the share that have at least one logged call. Give sample aliases for the orphan finding, all taken from the data. Note: gong_owner_id is a Gong user id, not a HubSpot owner id.
cost $3.7240 · 628s · in 76,725 / out 21,443 tok
✓ orphan_count✗ dup_keys_0✓ ds3_coverage✓ sample_ids_present

✓ Correct Answer (ground truth)

orphans: 30
orphan_aliases: Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42, Deal-36EA09
dup: 0
ds3_cov_pct: 29.4
graded checks: orphan_count · dup_keys_0 · ds3_coverage · sample_ids_present

Model's actual answer

show the model's full answer
(a) Orphans (gong deal ids not in deals_open): 30
- Sample aliases: Deal-8FA85D, Deal-8FC3F9, Deal-3B7945, Deal-42B265, Deal-9CCC42
- Arithmetic: 67 gong rows − 37 matched = 30 orphans

(b) Duplicate conversation keys (calls_90d > distinct_conversation_keys): 0
- Arithmetic: 0 rows where calls_90d > distinct_conversation_keys

(c) DS3+ open deals with ≥1 logged call: 25/85 = 0.2941 (29.41%)
snowflake-sql-trapped-catalogPASS 1.00

? The Question

Using ONLY the catalog provided, write one Snowflake SQL query returning, per customer company, for its first calendar month as a customer: unique givers, recognition count, successful redemption count. Read the catalog notes carefully: some tables are stale or unpopulated and must be avoided, and one documented filter (excluding deleted givers) must NOT be applied to historical giving counts. Put a comment above each FROM or JOIN explaining the table choice. Return only fenced SQL.
cost $1.7460 · 270s · in 15,848 / out 12,569 tok
✓ avoids_stale_deals✓ avoids_unpopulated_live✓ uses_cohort_summary✓ succeeded_filter✓ no_giver_deletion_filter✓ returns_sql

✓ Correct Answer (ground truth)

graded checks: avoids_stale_deals · avoids_unpopulated_live · uses_cohort_summary · succeeded_filter · no_giver_deletion_filter · returns_sql

Model's actual answer

show the model's full answer
```sql
WITH first_month AS (
  SELECT
    -- Return company identifier so results are per customer company.
    COMPANY_ID,
    -- Use M1_* fields which are first-month metrics exposed by this summary.
    M1_USERS,
    M1_GIVES,
    M1_REDEMPTIONS
  -- PRODUCTION.PLG.COMPANY_COHORT_SUMMARY:
  -- Chosen because it is the only table in the provided catalog with per-company first-month (M1) usage metrics (gives, redemptions).
  -- Avoids HUBSPOT_HUB_1973303.V2_LIVE.OBJECTS_DEALS (unpopulated) and PRODUCTION.HUBSPOT.DEALS (stale).
  -- Per notes, DO NOT apply any 'deleted givers' exclusion to historical giving counts; none is applied here.
  FROM PRODUCTION.PLG.COMPANY_COHORT_SUMMARY
  WHERE FIRST_SUB_PAYMENT_DATE IS NOT NULL  -- restrict to customers (paying companies)
)
SELECT
  COMPANY_ID AS company_id,
  /* Data missing: no event-level givers/gives table in the provided catalog to derive true unique givers.
     Using M1_USERS from COMPANY_COHORT_SUMMARY as the first-month unique-givers metric exposed by this summary.
     No 'deleted giver' exclusion is applied. */
  COALESCE(M1_USERS, 0) AS unique_givers,
  /* Recognition count for first month (M1) as provided by the summary. */
  COALESCE(M1_GIVES, 0) AS recognition_count,
  /* Successful redemptions for first month (M1) from the summary.
     Note: The documented event source is PRODUCTION.DEPRECATED_RECOGNITION.REDEMPTION_RECORDS_V2 (STATE='succeeded'),
     but we rely on the summary's M1_REDEMPTIONS within the provided catalog context. */
  COALESCE(M1_REDEMPTIONS, 0) AS successful_redemption_count
-- CTE selected to ensure per-customer-company scope and first-month metrics only.
FROM first_month;
```
crm-completeness-enrichment0.80

? The Question

Audit the CRM extract for completeness and propose fixes. Deals need owner, stage, amount, close date, why-buys; companies need industry, employee count, HQ country; contacts need email, title, persona. Report completeness percent per field. Identify duplicate company clusters (name variants, shared domain) with a survivor per cluster. List invalid emails and domain mismatches. Fill missing company fields only where the enrichment export has a matching row; where CRM and enrichment disagree list both and recommend a source. Never invent a value. End with the 10 fixes with the most pipeline amount at stake.
cost $2.2299 · 573s · in 41,518 / out 13,393 tok
✓ dup_clusters✗ invalid_emails✓ survivor_language✓ completeness_pct✓ no_invent

✓ Correct Answer (ground truth)

n_companies: 34
n_contacts: 52
company_missing: industry=0; employee_count=9; hq_country=6
invalid_email_count: 4
invalid_emails: CT-0010, CT-0080, CT-0081, CT-0192
domain_mismatch_count: 1
domain_mismatches: CT-0011
duplicate_clusters: ['C-0A092931', 'C-0A092932'], ['C-0A092933', 'C-0A092934']
n_dup_clusters: 2
enrichment_matches: 25
graded checks: dup_clusters · invalid_emails · survivor_language · completeness_pct · no_invent

Model's actual answer

show the model's full answer
CRM completeness (showing arithmetic)

Deals (owner, stage, amount, close date, why-buys)
- MISSING — no deals extract provided; cannot compute completeness for these fields.

Companies (34 records)
- industry: 34/34 = 100.0%
- employee_count: 25/34 = 73.5%
- hq_country: 28/34 = 82.4%

Contacts (52 records)
- email: 52/52 = 100.0%
- title: 39/52 = 75.0%
- persona: 37/52 = 71.2%

Duplicate company clusters (by shared domain) with survivor
- acme-corp.com: members [C-0A092931, C-0A092932] → survivor C-0A092931
- globex.io: members [C-0A092933, C-0A092934] → survivor C-0A092933

Invalid emails
- CT-0010 (C-66D1FC): user0@
- CT-0080 (C-92D97D): user0@
- CT-0081 (C-92D97D): user1@
- CT-0192 (C-425E2A): user2@

Domain mismatches (email domain vs company domain)
- CT-0011 (C-66D1FC): other-domain.com vs 66d1fc.com

Fill missing company fields from enrichment (exact fills only where matching row exists)
- C-EC3025 (ec3025.com): employee_count → 400
- C-96039F (96039f.com): employee_count → 400
- C-44EA29 (44ea29.com): employee_count → 400
- C-D04904 (d04904.com): employee_count → 400
- C-B23205 (b23205.com): employee_count → 400
- C-60C75F (60c75f.com): employee_count → 400
- C-7BBDFA (7bbdfa.com): employee_count → 400
- C-50D386 (50d386.com): employee_count → 400

CRM vs enrichment disagreements (list both; recommend ZoomInfo as source)
- C-66D1FC industry: CRM=tech vs ZI=Computer Software — recommend ZoomInfo
- C-66D1FC hq_country: CRM=US vs ZI=United States — recommend ZoomInfo
- C-950043 hq_country: CRM=US vs ZI=United States — recommend ZoomInfo
- C-EC3025 industry: CRM=Technology vs ZI=Computer Software — recommend ZoomInfo
- C-EC3025 hq_country: CRM=USA vs ZI=United States — recommend ZoomInfo
- C-96039F hq_country: CRM=USA vs ZI=United States — recommend ZoomInfo
- C-44EA29 industry: CRM=tech vs ZI=Computer Software — recommend ZoomInfo
- C-92D97D industry: CRM=Technology vs ZI=Computer Software — recommend ZoomInfo
- C-D04904 industry: CRM=Technology vs ZI=Computer Software — recommend ZoomInfo
- C-77A95A industry: CRM=Technology vs ZI=Computer Software — recommend ZoomInfo
- C-77A95A hq_country: CRM=US vs ZI=United States — recommend ZoomInfo
- C-AA8DDA industry: CRM=Technology vs ZI=Computer Software — recommend ZoomInfo
- C-B23205 hq_country: CRM=US vs ZI=United States — recommend ZoomInfo
- C-E51FB7 hq_country: CRM=USA vs ZI=United States — recommend ZoomInfo
- C-D0662E hq_country: CRM=US vs ZI=United States — recommend ZoomInfo
- C-B25F40 industry: CRM=Technology vs ZI=Computer Software — recommend ZoomInfo
- C-60C75F industry: CRM=tech vs ZI=Computer Software — recommend ZoomInfo
- C-425E2A industry: CRM=Tech  vs ZI=Computer Software — recommend ZoomInfo
- C-425E2A hq_country: CRM=USA vs ZI=United States — recommend ZoomInfo
- C-2D7423 hq_country: CRM=USA vs ZI=United States — recommend ZoomInfo

Proposed fixes
- Deduplicate clusters: merge C-0A092932 into survivor C-0A092931; merge C-0A092934 into survivor C-0A092933.
- Correct invalid emails or remove records: CT-0010, CT-0080, CT-0081, CT-0192.
- Fix domain mismatch: CT-0011 email domain should match 66d1fc.com or update company mapping if CRM is wrong.
- Apply enrichment fills listed above for employee_count.
- Standardize disputed fields per ZoomInfo for listed disagreements (industry taxonomy → Computer Software; hq_country → United States).

Top 10 fixes by pipeline amount at stake
- MISSING — no deals extract (owner, stage, amount, close date, why-buys) provided; cannot rank fixes by pipeline amount.
deal-intelligence
closed-lost-classificationPASS 1.00

? The Question

Classify every deal lost in the last 6 months below into one primary category: pricing, competitor, no decision, timing, product gap, champion left, or other. Also assign a side (Bonusly, buyer, unknown). Then summarize: category counts, the side split, the number of deals where the structured closed_lost_tag clearly disagrees with the free-text reason, and the two patterns most worth acting on. Base everything only on the tag and free-text provided.
cost $2.2982 · 363s · in 19,455 / out 16,720 tok
✓ total_90✓ competitor_top✓ category_counts_present✓ side_split✓ two_patterns

✓ Correct Answer (ground truth)

graded checks: total_90 · competitor_top · category_counts_present · side_split · two_patterns

Model's actual answer

show the model's full answer
Deal-DB0AAC — timing — buyer
Deal-F7F635 — competitor — Bonusly
Deal-AC944F — no decision — buyer
Deal-214060 — no decision — buyer
Deal-91A056 — timing — buyer
Deal-29326C — timing — buyer
Deal-5DB9B0 — other — unknown
Deal-831B7B — timing — buyer
Deal-F97C37 — competitor — Bonusly
Deal-13E9CF — no decision — buyer
Deal-39E25C — timing — buyer
Deal-7ED004 — pricing — buyer
Deal-21B045 — no decision — buyer
Deal-B3ABED — timing — buyer
Deal-422BA6 — competitor — Bonusly
Deal-ED9AE7 — timing — buyer
Deal-988493 — no decision — buyer
Deal-381C8C — competitor — Bonusly
Deal-F308CA — no decision — buyer
Deal-F1E8A6 — competitor — Bonusly
Deal-B6AC09 — timing — buyer
Deal-70F704 — no decision — buyer
Deal-E6E80A — timing — buyer
Deal-B038F0 — timing — buyer
Deal-4664E1 — no decision — buyer
Deal-175756 — timing — buyer
Deal-E74A73 — no decision — buyer
Deal-DDAB52 — competitor — Bonusly
Deal-ACE061 — competitor — Bonusly
Deal-BB78F3 — timing — buyer
Deal-D48E0B — no decision — buyer
Deal-15DA99 — timing — buyer
Deal-F4AF5D — timing — buyer
Deal-79B7A1 — timing — buyer
Deal-583ADB — no decision — buyer
Deal-8E27DA — product gap — Bonusly
Deal-2D2F8D — competitor — Bonusly
Deal-E0441F — other — Bonusly
Deal-7CB44D — no decision — buyer
Deal-0F96AA — competitor — Bonusly
Deal-1BCA50 — competitor — Bonusly
Deal-7CC678 — competitor — Bonusly
Deal-FAC17C — no decision — buyer
Deal-242273 — competitor — Bonusly
Deal-50E5D8 — no decision — buyer
Deal-A2C349 — competitor — Bonusly
Deal-9F176A — timing — buyer
Deal-7B2236 — pricing — buyer
Deal-AFA56C — no decision — buyer
Deal-C7156E — competitor — Bonusly
Deal-C33D91 — pricing — buyer
Deal-9048EB — product gap — Bonusly
Deal-5E64CE — timing — buyer
Deal-8A0992 — competitor — Bonusly
Deal-D0C698 — competitor — Bonusly
Deal-69CF3D — timing — buyer
Deal-ECBF89 — timing — buyer
Deal-3618CC — product gap — Bonusly
Deal-EECC02 — competitor — Bonusly
Deal-5AD03E — competitor — Bonusly
Deal-D1A623 — timing — buyer
Deal-413C56 — no decision — buyer
Deal-47F1A1 — competitor — Bonusly
Deal-BF2A98 — competitor — Bonusly
Deal-2A292B — other — buyer
Deal-D1AABF — no decision — buyer
Deal-FEDBCB — no decision — buyer
Deal-1E7DA9 — competitor — Bonusly
Deal-2BBA21 — no decision — buyer
Deal-286F9C — competitor — Bonusly
Deal-7FBAC6 — no decision — buyer
Deal-369281 — competitor — Bonusly
Deal-386F6E — no decision — buyer
Deal-9FCD0D — competitor — Bonusly
Deal-55867E — timing — buyer
Deal-DAFB82 — pricing — buyer
Deal-2FEDDB — timing — buyer
Deal-64B19A — competitor — Bonusly
Deal-3F86A0 — no decision — buyer
Deal-096750 — no decision — buyer
Deal-F325A5 — no decision — buyer
Deal-ABD14C — no decision — buyer
Deal-79E61A — no decision — buyer
Deal-8A119B — pricing — buyer
Deal-AE7C4E — no decision — buyer
Deal-DAB4F1 — no decision — buyer
Deal-B4B50F — no decision — buyer
Deal-981AD4 — product gap — Bonusly
Deal-DC77FE — competitor — Bonusly
Deal-5885B9 — no decision — buyer

Summary
- Category counts (sum check: 26+22+5+30+4+0+3 = 90):
  - competitor: 26
  - timing: 22
  - pricing: 5
  - no decision: 30
  - product gap: 4
  - champion left: 0
  - other: 3

- Side split (sum check: 58+31+1 = 90):
  - buyer: 58
  - Bonusly: 31
  - unknown: 1

- Tag vs text disagreements: 11 deals

- Two patterns worth acting on:
  1) Buyer deferral dominates: no decision (30) + timing (22) = 52 of 90 = 57.8%.
  2) Capability/fit signals in losses: 8 competitor notes cite specific needs (e.g., Canadian provider/company x2, ADP TotalSource partnership x1, customization like labeling points as dollars x1, digitizing internal points currency/on‑site spend x1, “more diversified offerings” x1, “more defined budget access” x1) and 4 product-gap losses. 8+4 = 12 of 90 = 13.3%.
pipeline-tieringPASS 1.00

? The Question

Score the open pipeline below on these signals: forecast category, stage, meetings_30d, contact count, and engagement recency. Assign exactly one tier per deal: LOCK, ACTION, BUILD, REVIVE, WATCH, or RISKY (RISKY = the forecast category disagrees with the engagement evidence). Never tier a deal LOCK if it has zero meetings_30d. Do NOT list every deal. Return ONLY a compact JSON object with exactly these keys: - "tier_counts": object mapping each tier to the number of deals in it (must sum to the total deal count), - "tier_examples": object mapping each tier to up to 3 example deal aliases from the data, - "risky_deals": array of the deal aliases you tiered RISKY, - "lock_violations": number of deals tiered LOCK that have zero meetings_30d (should be 0), - "pipeline_shape": one short paragraph on the overall pipeline shape. Note: inbound_emails_30d is 0 for every row due to a data defect, so treat meetings_30d as the inbound signal.
cost $4.4438 · 406s · in 82,894 / out 26,670 tok
✓ json_returned✓ tier_vocabulary✓ tier_counts_sum✓ risky_deals_listed✓ no_lock_violation_claimed

✓ Correct Answer (ground truth)

total: 156
graded checks: json_returned · tier_vocabulary · tier_counts_sum · risky_deals_listed · no_lock_violation_claimed

Model's actual answer

show the model's full answer
{"tier_counts":{"LOCK":3,"ACTION":10,"BUILD":42,"REVIVE":11,"WATCH":84,"RISKY":6},"tier_examples":{"LOCK":["Deal-D348E1","Deal-C26D20","Deal-403845"],"ACTION":["Deal-25F752","Deal-944310","Deal-3974EB"],"BUILD":["Deal-D73B89","Deal-012CB1","Deal-523604"],"REVIVE":["Deal-E53952","Deal-5408B0","Deal-9AAE5F"],"WATCH":["Deal-2D1F1B","Deal-66D1FC","Deal-950043"],"RISKY":["Deal-547B2B","Deal-B7EBD1","Deal-A2B47C"]},"risky_deals":["Deal-547B2B","Deal-B7EBD1","Deal-A2B47C","Deal-2465CE","Deal-584EE5","Deal-FD9F4E"],"lock_violations":0,"pipeline_shape":"Total deals = 156 = 3+10+42+11+84+6 across tiers (LOCK 3, ACTION 10, BUILD 42, REVIVE 11, WATCH 84, RISKY 6). Shape is top-heavy in WATCH with few LOCKs; RISKY are COMMIT without meetings_30d. lock_violations=0."}
call-transcript-extractionPASS 1.00

? The Question

For each transcript, extract CRM write-back fields as JSON: why-buys (prospect statements only), pain points, stakeholders from the speaker list, budget signal (prospect-stated or null), timeline signal, competitor mentioned (only if the prospect raised it), next step (only if explicitly agreed), objections, confidence. Never fill a field from what the rep said or hoped.
cost $1.9224 · 292s · in 16,667 / out 13,937 tok
✓ json_emitted✓ budget_signal✓ null_discipline✓ stakeholders✓ competitor_prospect_only

✓ Correct Answer (ground truth)

rep: Alex Franklin
per_transcript: {"TX-001": {"why_buys": ["automating anniversary and birthday awards"], "pain_points": ["HR team of three cannot keep up with it manually", "track everything in a spreadsheet, and people slip through
rep_sourced_nulls: {"TX-003": ["budget_signal \u2014 only the rep mentioned pricing/budget"], "TX-004": ["next_step \u2014 rep proposed, prospect said 'no promises'"], "TX-006": ["budget_signal \u2014 rep decoy, prospec
allowed_new: TX-001, TX-002, TX-003, TX-004, TX-005, TX-006, Achievers, Bucketlist, Nectar
graded checks: json_emitted · budget_signal · null_discipline · stakeholders · competitor_prospect_only

Model's actual answer

show the model's full answer
[
  {
    "transcript_id": "TX-001",
    "deal_alias": "Deal-CFE7F4",
    "why_buys": [
      "Automating anniversary and birthday awards"
    ],
    "pain_points": [
      "HR team of three cannot keep up with it manually",
      "Tracking in a spreadsheet; people slip through the cracks"
    ],
    "stakeholders": [
      "Prospect (VP People)",
      "Prospect (HR Admin)"
    ],
    "budget_signal": {
      "raw": "about $40k",
      "amount": 40000,
      "currency": "USD",
      "bound": "approx",
      "arithmetic": "40 * 1000 = 40000"
    },
    "timeline_signal": [
      "Live before open enrollment in November",
      "Security review on September 12"
    ],
    "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"
    ],
    "pain_points": [
      "Regretted turnover over 30% in hourly workforce"
    ],
    "stakeholders": [
      "Prospect (Head of Total Rewards)",
      "Prospect (CFO)"
    ],
    "budget_signal": {
      "raw": "$25k pilot budget for this quarter",
      "amount": 25000,
      "currency": "USD",
      "bound": "exact",
      "arithmetic": "25 * 1000 = 25000"
    },
    "timeline_signal": [
      "Decision by end of September",
      "Route pilot agreement to legal this week"
    ],
    "competitor_mentioned": null,
    "next_step": "Send the pilot agreement; prospect will route to legal this week",
    "objections": [
      "Integration with Workday has to be rock solid — that's my one condition"
    ],
    "confidence": "high"
  },
  {
    "transcript_id": "TX-003",
    "deal_alias": "Deal-530B50",
    "why_buys": [
      "Make recognition visible across 12 retail locations"
    ],
    "pain_points": [
      "Store managers have zero budget autonomy for on-the-spot recognition today"
    ],
    "stakeholders": [
      "Prospect (People Ops Manager)"
    ],
    "budget_signal": null,
    "timeline_signal": [
      "No rush until Q1"
    ],
    "competitor_mentioned": "Bucketlist",
    "next_step": "Schedule a call with CEO; prospect will 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"
    ],
    "stakeholders": [
      "Prospect (VP People)",
      "Prospect (IT Security Lead)"
    ],
    "budget_signal": {
      "raw": "under $15k annually",
      "amount": 15000,
      "currency": "USD",
      "bound": "max",
      "arithmetic": "15 * 1000 = 15000 (max)"
    },
    "timeline_signal": [
      "Procurement cycle runs 6–8 weeks minimum"
    ],
    "competitor_mentioned": null,
    "next_step": null,
    "objections": [
      "Security review took three months for our last vendor — that's my hesitation"
    ],
    "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"
    ],
    "stakeholders": [
      "Prospect (HR Director)",
      "Prospect (People Ops Coordinator)"
    ],
    "budget_signal": {
      "raw": "$12k approved under our engagement line",
      "amount": 12000,
      "currency": "USD",
      "bound": "exact",
      "arithmetic": "12 * 1000 = 12000"
    },
    "timeline_signal": [
      "Running before January all-hands",
      "Exec presentation on October 2"
    ],
    "competitor_mentioned": "Nectar",
    "next_step": "Present to exec team on October 2",
    "objections": [
      "Exec team is skeptical after a failed rollout two years ago"
    ],
    "confidence": "high"
  },
  {
    "transcript_id": "TX-006",
    "deal_alias": "Deal-EE195F",
    "why_buys": [
      "Cut the admin time on service awards"
    ],
    "pain_points": [
      "Spends five hours a month ordering and shipping plaques"
    ],
    "stakeholders": [
      "Prospect (HR Manager)"
    ],
    "budget_signal": {
      "raw": "Budget isn't the issue — time is.",
      "amount": null,
      "currency": null,
      "bound": null,
      "arithmetic": null
    },
    "timeline_signal": [
      "Fiscal year resets in February; Q1 start is realistic"
    ],
    "competitor_mentioned": "doing it internally",
    "next_step": "Send the one-page overview; prospect will forward to COO this week",
    "objections": [
      "COO usually prefers building things in-house"
    ],
    "confidence": "high"
  }
]
next-to-close0.75

? The Question

Which 3 deals are closest to signature right now? Use the CRM data and the Slack thread; Slack often has the real status before the CRM does. For each: deal, amount, why it is close, what is left. Under 250 words.
cost $0.8471 · 127s · in 15,993 / out 5,060 tok
✓ exactly_three✗ top3_named✓ slack_first✓ blocked_excluded

✓ Correct Answer (ground truth)

top3: rank=1; deal_alias=Deal-547B2B; amount=11200; stage=DS5; forecast_category=COMMIT; close_date=2026-09-11 | rank=2; deal_alias=Deal-B7EBD1; amount=9000; stage=DS5; forecast_category=COMMIT; close_date=2026-09-10 | rank=3; deal_alias=Deal-403845; amount=9000; stage=DS5; forecast_category=COMMIT; close_date=2026-09-11
exactly_three: True
blocked_excluded: deal_alias=Deal-2465CE; reason=champion left + procurement freeze (Slack #sales-sparring 2026-09-04)
ranking_rule: Slack signature-imminent deal ranks first; remaining ranked by stage (DS5>DS4), forecast (COMMIT>BEST_CASE>PIPELINE), close_date asc, amount desc
graded checks: exactly_three · top3_named · slack_first · blocked_excluded

Model's actual answer

show the model's full answer
- Deal-547B2B — $11,200 — Why close: Slack (2026-09-04): “redlines came back clean,” “signing page is out,” VP People said “signing tomorrow.” CRM: DS5/COMMIT, close_date 2026-09-11. What is left: Signature only (steps_left=1).

- Deal-403845 — $9,000 — Why close: Slack: “order form is with their finance team.” CRM: DS5/COMMIT, close_date 2026-09-11. What is left: Finance sign-off + signature (1+1=2 steps).

- Deal-A2B47C — $6,360 — Why close: Slack: “still warm, just normal legal-review pace.” CRM: DS5/COMMIT, close_date 2026-09-11. What is left: Legal review + signature (1+1=2 steps).
product-gap-detectionPASS 1.00

? The Question

Surface true product gaps raised by prospects in active deals. For each candidate: quote the prospect line, classify as real gap, plan gate, or rollout/enablement issue using the product docs excerpt, and name the deal and amount. Only real gaps go in the summary. Rep language does not count as prospect voice.
cost $0.6390 · 316s · in 15,591 / out 3,376 tok
✓ real_gaps✓ plan_gate_classified✓ enablement_classified✓ gap_summary

✓ Correct Answer (ground truth)

real_gaps: transcript_id=TG-001; deal_alias=Deal-EC3025; amount=62000; feature=SCIM user provisioning; quote=We need SCIM user provisioning — our security team will not approve any tool that requires manual account management.; why_real=not listed in product docs at any tier | transcript_id=TG-002; deal_alias=Deal-D0D6B5; amount=23800; feature=ADP Workforce Now integration; 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.; why_real=supported HRIS list is Workday/BambooHR/Gusto/Rippling only
plan_gates: transcript_id=TG-003; deal_alias=Deal-CFE7F4; amount=32000; feature=Custom report builder; tier_required=Enterprise; quote=I tried to build a custom report combining recognition frequency with turnover and couldn't — is that possible on our current plan?
enablement_issues: transcript_id=TG-004; deal_alias=Deal-84DBA6; amount=16000; feature=Slack integration recognition adoption; 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.; why_enablement=Slack integration exists on all plans; managers were never trained
excluded_rep_voice: transcript_id=TG-005; line=Full transparency — we don't have a native mobile app for hourly workers yet, though it's on the roadmap.; reason=rep voice, not prospect-raised
allowed_new: TG-001, TG-002, TG-003, TG-004, TG-005, SCIM user provisioning, ADP Workforce Now integration, Custom report builder
graded checks: real_gaps · plan_gate_classified · enablement_classified · gap_summary

Model's actual answer

show the model's full answer
Candidates
1) Prospect line: "We need SCIM user provisioning — our security team will not approve any tool that requires manual account management."
- Classification: Real gap (product docs: SCIM user provisioning is NOT listed as supported)
- Deal: Deal-EC3025
- Amount: not provided in the data

2) Prospect line: "Our payroll runs on ADP Workforce Now and I don't see ADP anywhere in your integration list — that's a dealbreaker for us."
- Classification: Real gap (product docs: ADP Workforce Now integration is NOT listed as supported)
- Deal: Deal-D0D6B5
- Amount: not provided in the data

3) Prospect line: "I tried to build a custom report combining recognition frequency with turnover and couldn't — is that possible on our current plan?"
- Classification: Plan gate (product docs: Custom report builder is Enterprise-only)
- Deal: Deal-CFE7F4
- Amount: not provided in the data

4) Prospect line: "We turned on the Slack integration in July, but half our managers still haven't given a single recognition — nobody ever trained them on it."
- Classification: Rollout/enablement issue (product docs: Slack is supported on all plans; issue is training/adoption)
- Deal: Deal-84DBA6
- Amount: not provided in the data

Summary (real gaps only)
- SCIM user provisioning not supported (Deal-EC3025; amount not provided). Prospect: "We need SCIM user provisioning — our security team will not approve any tool that requires manual account management."
- ADP Workforce Now integration not supported (Deal-D0D6B5; amount not provided). Prospect: "Our payroll runs on ADP Workforce Now and I don't see ADP anywhere in your integration list — that's a dealbreaker for us."

Arithmetic
- Prospect-raised candidates: 4 = real gaps (2) + plan gate (1) + rollout/enablement (1)
rep-performance
stale-pipeline-by-rep0.67

? The Question

The snapshot date is 2026-09-05. Using the open deals and the engagements-by-deal table, list every open deal with no logged email, call, or meeting in the last 7 days. Compute recency from the engagements table's last_email/last_call/last_meeting fields, NOT from any date field on the deal (the deal's last_contacted_field is unreliable). For each stale deal give: deal alias, owner name, stage, amount, days since last contact. Group by owner, order by amount descending within each owner. Then state, per owner, how many stale deals they carry and the total stale amount. (Do not write outreach text.)
cost $5.7018 · 638s · in 86,065 / out 36,757 tok
✓ stale_recall_ge_80✓ grouped_by_owner✓ jake_top_amount✓ kevin_stale_amt✗ jenn_stale_amt✗ stale_count

✓ Correct Answer (ground truth)

stale_count: 65
jake_amt: 626243.0
kevin_amt: 252905.03
jenn_amt: 261645.0
top_alias: Deal-2D1F1B
top_amount: 240000.0
graded checks: stale_recall_ge_80 · grouped_by_owner · jake_top_amount · kevin_stale_amt · jenn_stale_amt · stale_count

Model's actual answer

show the model's full answer
Owner: Bryce Harmon
- Deal-2D1F1B | DS1 | amount 240000 | days since last contact: 81 (calc: 2026-09-05 - 2026-06-16 = 81 days)
- Deal-66D1FC | DS1 | amount 99000 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-950043 | DS1 | amount 70000 | days since last contact: 19 (calc: 2026-09-05 - 2026-08-17 = 19 days)
- Deal-B23205 | DS1 | amount 45000 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-7BBDFA | DS3 | amount 37440 | days since last contact: 46 (calc: 2026-09-05 - 2026-07-21 = 46 days)
- Deal-332637 | DS2 | amount 36000 | days since last contact: 9 (calc: 2026-09-05 - 2026-08-27 = 9 days)
- Deal-1BEEBF | DS1 | amount 31500 | days since last contact: 19 (calc: 2026-09-05 - 2026-08-17 = 19 days)
- Deal-A414F6 | DS1 | amount 25200 | days since last contact: 19 (calc: 2026-09-05 - 2026-08-17 = 19 days)
- Deal-C5658B | DS1 | amount 23400 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-40522D | DS3 | amount 21000 | days since last contact: 19 (calc: 2026-09-05 - 2026-08-17 = 19 days)
- Deal-C1FA6D | DS1 | amount 18000 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-01E193 | DS1 | amount 12600 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-F0EBBB | DS3 | amount 11400 | days since last contact: 24 (calc: 2026-09-05 - 2026-08-12 = 24 days)
- Deal-927338 | DS1 | amount 10920 | days since last contact: 18 (calc: 2026-09-05 - 2026-08-18 = 18 days)
- Deal-E25A09 | DS1 | amount 6000 | days since last contact: 9 (calc: 2026-09-05 - 2026-08-27 = 9 days)
- Deal-C9C286 | DS2 | amount 5502 | days since last contact: 9 (calc: 2026-09-05 - 2026-08-27 = 9 days)
- Deal-012CB1 | DS1 | amount 1 | days since last contact: 23 (calc: 2026-09-05 - 2026-08-13 = 23 days)
- Deal-3795AD | DS2 | amount 1 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
Totals for Bryce Harmon: 18 stale deals, total stale amount = sum([240000, 99000, 70000, 45000, 37440, 36000, 31500, 25200, 23400, 21000, 18000, 12600, 11400, 10920, 6000, 5502, 1, 1]) = 692964

Owner: Dana Mercer
- Deal-44EA29 | DS2 | amount 60000 | days since last contact: 10 (calc: 2026-09-05 - 2026-08-26 = 10 days)
- Deal-E51FB7 | DS2 | amount 43875 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-B42F46 | DS1 | amount 27000 | days since last contact: 19 (calc: 2026-09-05 - 2026-08-17 = 19 days)
- Deal-BA3DDC | DS3 | amount 23400 | days since last contact: 15 (calc: 2026-09-05 - 2026-08-21 = 15 days)
- Deal-9DDE86 | DS2 | amount 20000 | days since last contact: 15 (calc: 2026-09-05 - 2026-08-21 = 15 days)
- Deal-215CCA | DS3 | amount 18900 | days since last contact: 17 (calc: 2026-09-05 - 2026-08-19 = 17 days)
- Deal-5EED42 | DS3 | amount 16250 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-57887A | DS2 | amount 15000 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-944310 | DS4 | amount 10500 | days since last contact: 33 (calc: 2026-09-05 - 2026-08-03 = 33 days)
- Deal-B7EBD1 | DS5 | amount 9000 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-3974EB | DS4 | amount 9000 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-F40F04 | DS2 | amount 8100 | days since last contact: 15 (calc: 2026-09-05 - 2026-08-21 = 15 days)
- Deal-7599B8 | DS3 | amount 7350 | days since last contact: 18 (calc: 2026-09-05 - 2026-08-18 = 18 days)
- Deal-87DDD1 | DS1 | amount 5000 | days since last contact: 19 (calc: 2026-09-05 - 2026-08-17 = 19 days)
- Deal-F336B6 | DS3 | amount 4200 | days since last contact: 15 (calc: 2026-09-05 - 2026-08-21 = 15 days)
- Deal-0660B4 | DS4 | amount 1920 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
Totals for Dana Mercer: 16 stale deals, total stale amount = sum([60000, 43875, 27000, 23400, 20000, 18900, 16250, 15000, 10500, 9000, 9000, 8100, 7350, 5000, 4200, 1920]) = 279495

Owner: Alex Franklin
- Deal-CC08D1 | DS1 | amount 24000 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-E73427 | DS3 | amount 18000 | days since last contact: 10 (calc: 2026-09-05 - 2026-08-26 = 10 days)
- Deal-885F45 | DS2 | amount 9300 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-C2FF3C | DS1 | amount 8316 | days since last contact: 10 (calc: 2026-09-05 - 2026-08-26 = 10 days)
- Deal-3EED2C | DS2 | amount 7200 | days since last contact: unknown — no logged email/call/meeting in 90d (calc: no last_* date available)
- Deal-0D2F7A | DS3 | amount 5100 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-6C60D4 | DS3 | amount 4800 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-13FEBD | DS2 | amount 4680 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-819506 | DS1 | amount 4400 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-9D0060 | DS3 | amount 3840 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-690476 | DS2 | amount 3600 | days since last contact: 18 (calc: 2026-09-05 - 2026-08-18 = 18 days)
- Deal-C6D97A | DS4 | amount 3240 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-EE195F | DS3 | amount 3120 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-278DEC | DS3 | amount 2700 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-635B8E | DS3 | amount 2600 | days since last contact: 18 (calc: 2026-09-05 - 2026-08-18 = 18 days)
- Deal-6883F3 | DS1 | amount 2400 | days since last contact: 16 (calc: 2026-09-05 - 2026-08-20 = 16 days)
- Deal-4A13AD | DS3 | amount 2160 | days since last contact: 26 (calc: 2026-09-05 - 2026-08-10 = 26 days)
- Deal-F67D31 | DS2 | amount 1800 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-5FDCE4 | DS3 | amount 1600 | days since last contact: 12 (calc: 2026-09-05 - 2026-08-24 = 12 days)
- Deal-BA571A | DS4 | amount 1080 | days since last contact: 18 (calc: 2026-09-05 - 2026-08-18 = 18 days)
Totals for Alex Franklin: 20 stale deals, total stale amount = sum([24000, 18000, 9300, 8316, 7200, 5100, 4800, 4680, 4400, 3840, 3600, 3240, 3120, 2700, 2600, 2400, 2160, 1800, 1600, 1080]) = 113936

Owner: Cole Ingram
- Deal-D04904 | DS2 | amount 58529.25 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-B25F40 | DS3 | amount 40000 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-813836 | DS2 | amount 32175 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-1BA595 | DS2 | amount 31750 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-CFE1E8 | DS3 | amount 18000 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-CD47A6 | DS2 | amount 12168 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-627646 | DS3 | amount 11193 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-FF809F | DS2 | amount 7781.2 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-AF932D | DS2 | amount 7225.4 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-A71728 | DS2 | amount 6947.5 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-8BC9F5 | DS2 | amount 5616 | days since last contact: 10 (calc: 2026-09-05 - 2026-08-26 = 10 days)
- Deal-175395 | DS3 | amount 4779.88 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-481E24 | DS3 | amount 4140 | days since last contact: 10 (calc: 2026-09-05 - 2026-08-26 = 10 days)
- Deal-C7F9BF | DS2 | amount 3360 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-2F3A66 | DS3 | amount 3334.8 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-342E96 | DS2 | amount 2700 | days since last contact: 24 (calc: 2026-09-05 - 2026-08-12 = 24 days)
- Deal-E568D5 | DS3 | amount 1875 | days since last contact: 11 (calc: 2026-09-05 - 2026-08-25 = 11 days)
- Deal-FD9F4E | DS5 | amount 1330 | days since last contact: 10 (calc: 2026-09-05 - 2026-08-26 = 10 days)
Totals for Cole Ingram: 18 stale deals, total stale amount = sum([58529.25, 40000, 32175, 31750, 18000, 12168, 11193, 7781.2, 7225.4, 6947.5, 5616, 4779.88, 4140, 3360, 3334.8, 2700, 1875, 1330]) = 252905.03

Owner: Farid Osman
- Deal-8BA24E | DS1 | amount 2880 | days since last contact: 8 (calc: 2026-09-05 - 2026-08-28 = 8 days)
- Deal-8FDCD2 | DS1 | amount 1 | days since last contact: 15 (calc: 2026-09-05 - 2026-08-21 = 15 days)
Totals for Farid Osman: 2 stale deals, total stale amount = sum([2880, 1]) = 2881

Owner: Elena Sinclair
- Deal-57FF13 | DS1 | amount 2100 | days since last contact: unknown — no logged email/call/meeting in 90d (calc: no last_* date available)
Totals for Elena Sinclair: 1 stale deals, total stale amount = sum([2100]) = 2100
activity-mix-vs-outcomePASS 1.00

? The Question

The snapshot date is 2026-09-05. For each sales rep (owner), compute the last-30-day totals of emails, calls, and meetings from the engagements table, and the number of deals that entered DS2 in the last 30 days (t_ds2 within 30 days of the snapshot). Report per rep: the activity mix as percentages (emails/calls/meetings share of that rep's total activities), total activities per DS2 entry, and rank the reps by that efficiency ratio (lowest activities per DS2 entry = most efficient). Name the most efficient rep and the highest-volume rep, and note if they differ. Do not attribute cause.
cost $5.1391 · 631s · in 83,428 / out 32,397 tok
✓ justin_ds2✓ justin_volume_high✓ efficient_named✓ mix_present✓ no_causal_claim

✓ Correct Answer (ground truth)

justin_ds2: 4
graded checks: justin_ds2 · justin_volume_high · efficient_named · mix_present · no_causal_claim

Model's actual answer

show the model's full answer
Window: 2026-08-06 to 2026-09-05 (inclusive)

Ranked by efficiency (lowest activities per DS2 entry first). Per rep: emails + calls + meetings = total; DS2 entries; mix; total/DS2 = activities per DS2.
1) Alex Franklin: 307 + 36 + 41 = 384; DS2 entries 18; mix emails 79.9% / calls 9.4% / meetings 10.7%; 384/18 = 21.33 activities/DS2
   Data gap: missing engagements row for Deal-3EED2C (64623982954) — totals are minimums.
2) Bryce Harmon: 162 + 0 + 43 = 205; DS2 entries 4; mix emails 79.0% / calls 0.0% / meetings 21.0%; 205/4 = 51.25 activities/DS2
3) Cole Ingram: 96 + 14 + 1 = 111; DS2 entries 2; mix emails 86.5% / calls 12.6% / meetings 0.9%; 111/2 = 55.50 activities/DS2
4) Farid Osman: 38 + 0 + 34 = 72; DS2 entries 1; mix emails 52.8% / calls 0.0% / meetings 47.2%; 72/1 = 72.00 activities/DS2
5) Dana Mercer: 84 + 18 + 11 = 113; DS2 entries 1; mix emails 74.3% / calls 15.9% / meetings 9.7%; 113/1 = 113.00 activities/DS2
6) Elena Sinclair: 0 + 0 + 0 = 0; DS2 entries 0; mix n/a; activities/DS2 n/a (no DS2 entries)
   Data gap: missing engagements row for Deal-57FF13 (64524667574) — totals are minimums.

Most efficient rep: Alex Franklin (21.33 activities/DS2; 384 activities over 18 DS2 entries)
Highest-volume rep: Alex Franklin (384 total activities)
Do they differ? No
ae-qtd-scorecardPASS 1.00

? The Question

Build a QTD scorecard for the named AE as of 2026-09-05: bookings vs quota with attainment percent, new vs expansion split, active pipeline by stage with amount, rolling 90-day DS2-to-won rate, win and loss counts with top loss reason, activity volume by type in the last 30 days. Exclude any closed-won deal dated before the quarter. Close with three coaching observations grounded in the numbers.
cost $3.1982 · 562s · in 58,339 / out 19,359 tok
✓ bookings✓ quota✓ attainment✓ new_expansion_split✓ top_loss_reason✓ coaching_obs

✓ Correct Answer (ground truth)

owner: Alex Franklin
quarter: 2026-Q3
snapshot_date: 2026-09-05
bookings: 150000
quota: 200000
attainment_pct: 75.0
new_bookings: 113500
new_count: 5
expansion_bookings: 36500
expansion_count: 3
pipeline_by_stage: {"DS1": {"count": 20, "amount": 284621}, "DS2": {"count": 28, "amount": 353760}, "DS3": {"count": 67, "amount": 552705}, "DS4": {"count": 5, "amount": 23574}, "DS5": {"count": 5, "amount": 45730}}
open_deals_count: 125
ds2_to_won: window_start=2026-06-07; won_in_window=8; closed_in_window=35; rate=0.2286
wins_qtd: 8
losses_qtd: 27
top_loss_reason: reason=Lost- Timing (1 year or more); count=13
activity_30d_totals: emails_30d=807; calls_30d=112; meetings_30d=128; notes_30d=50
prior_quarter_excluded: deal_alias=Deal-B3E6F1; close_date=2026-06-20; amount=24000
allowed_new: 18 items — e.g. Deal-A1C3E5, Deal-B7D2F4, Deal-C9E1A6, Deal-D4B8C2
graded checks: bookings · quota · attainment · new_expansion_split · top_loss_reason · coaching_obs

Model's actual answer

show the model's full answer
AE: Alex Franklin — QTD Scorecard as of 2026-09-05

Bookings QTD (exclude pre-2026-07-01 wins): 150000
  Arithmetic: 40000 (Deal-A1C3E5) + 20000 (Deal-F2C7D8) + 35000 (Deal-B7D2F4) + 21000 (Deal-C9E1A6) + 12000 (Deal-A8B4D6) + 11000 (Deal-D4B8C2) + 6500 (Deal-E6F3A9) + 4500 (Deal-C5D9E2) = 150000
Quota (2026-Q3): 200000
Attainment: 75.0%
  Arithmetic: 150000 / 200000 * 100 = 75.0%

Bookings split — new: 113500; expansion: 36500
  Arithmetic (new): 40000 (Deal-A1C3E5) + 35000 (Deal-B7D2F4) + 21000 (Deal-C9E1A6) + 11000 (Deal-D4B8C2) + 6500 (Deal-E6F3A9) = 113500
  Arithmetic (expansion): 20000 (Deal-F2C7D8) + 12000 (Deal-A8B4D6) + 4500 (Deal-C5D9E2) = 36500

Active pipeline by stage (open only):
  DS1: 284621
  DS2: 353760
  DS3: 552705
  DS4: 23574
  DS5: 45730

Rolling 90-day DS2-to-won rate: 7.2%
  Window: 2026-06-07 to 2026-09-05; entered DS2: 111; won: 8
  Arithmetic: 8 / 111 * 100 = 7.2%

QTD wins: 8; QTD losses: 27; Top loss reason: Lost- Timing (1 year or more) (13)

Activity volume (last 30 days):
  Emails: 807
  Calls: 112
  Meetings: 128
  Notes: 50

Coaching observations:
  1) Late-stage coverage (DS4+DS5) = 69304; prioritize advancing DS3 (552705) to strengthen near-term coverage.
  2) DS2→Won conversion at 7.2% on 111 entries; tighten qualification and exit criteria at DS2 to raise efficiency.
  3) Loss pattern led by Lost- Timing (1 year or more) (13); add earlier timing validation and ROI-by-timeline talk tracks to reduce defer-outs.
multithreading-gap0.75

? The Question

Find every open deal that is single-threaded (fewer than 2 active contacts) or under-threaded (fewer than 3, or all contacts in one persona). Active means engaged in the last 60 days and not marked former. Personas: economic buyer, champion, HR admin, IT security, finance. For each flagged deal: amount, stage, active contact count, personas present, personas missing, the most valuable persona to add given the stage, and any on-file unengaged contact at that company who fits; otherwise say none on file.
cost $2.5557 · 360s · in 37,413 / out 16,621 tok
✓ flagged_recall✓ persona_language✗ single_thread_term✓ on_file_fit

✓ Correct Answer (ground truth)

active_window_start: 2026-07-07
persona_universe: economic buyer, champion, HR admin, IT security, finance
flag_rule: flag if active_contacts < 2 (single-threaded) or active_contacts < 3 or all active contacts share one persona (under-threaded); active = engaged within 60 days and not former
best_persona_rule: DS2/DS3: economic buyer > IT security > finance > HR admin > champion; DS4/DS5: economic buyer > finance > IT security > HR admin > champion; first persona not present among active contacts
flagged: deal_alias=Deal-36C33F; amount=15000; stage=DS2; active_count=1; reason=single-threaded; best_persona_to_add=economic buyer | deal_alias=Deal-50D386; amount=36000; stage=DS2; active_count=2; reason=under-threaded; best_persona_to_add=economic buyer | deal_alias=Deal-5408B0; amount=14850; stage=DS4; active_count=2; reason=under-threaded; best_persona_to_add=economic buyer | deal_alias=Deal-5BFE3B; amount=18000; stage=DS2; active_count=2; reason=under-threaded; best_persona_to_add=economic buyer | deal_alias=Deal-885F45; amount=9300; stage=DS2; active_count=2; reason=under-threaded; best_persona_to_add=IT security | deal_alias=Deal-92D97D; amount=60000; stage=DS2; active_count=1; reason=single-threaded; best_persona_to_add=economic buyer … (+5 more)
healthy_not_flagged: Deal-4B0BEB, Deal-84DBA6, Deal-D348E1
allowed_new: 59 items — e.g. C-077A0E, C-0D15DF, C-1BDFE0, C-2AE3AA
graded checks: flagged_recall · persona_language · single_thread_term · on_file_fit

Model's actual answer

show the model's full answer
Deal-36C33F (C-077A0E)
- amount: MISSING
- stage: MISSING
- active contact count: 1 (= 3 total - 2 former - 0 out-of-window non-former)
- personas present: IT security
- personas missing: economic buyer, champion, HR admin, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-1DB73E (economic buyer)

Deal-50D386 (C-EB10E4)
- amount: MISSING
- stage: MISSING
- active contact count: 2 (= 2 total - 0 former - 0 out-of-window non-former)
- personas present: champion, HR admin
- personas missing: economic buyer, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-A1C4B3 (economic buyer)

Deal-5408B0 (C-2AE3AA)
- amount: MISSING
- stage: MISSING
- active contact count: 2 (= 2 total - 0 former - 0 out-of-window non-former)
- personas present: champion, HR admin
- personas missing: economic buyer, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-07FA76 (economic buyer)

Deal-5BFE3B (C-535D36)
- amount: MISSING
- stage: MISSING
- active contact count: 2 (= 2 total - 0 former - 0 out-of-window non-former)
- personas present: champion
- personas missing: economic buyer, HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: none on file

Deal-885F45 (C-5E8EFB)
- amount: MISSING
- stage: MISSING
- active contact count: 2 (= 2 total - 0 former - 0 out-of-window non-former)
- personas present: economic buyer, champion
- personas missing: HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-B3F25D (IT security)

Deal-92D97D (C-E23238)
- amount: MISSING
- stage: MISSING
- active contact count: 1 (= 2 total - 0 former - 1 out-of-window non-former)
- personas present: HR admin
- personas missing: economic buyer, champion, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: none on file

Deal-C6D97A (C-5A8FC2)
- amount: MISSING
- stage: MISSING
- active contact count: 3 (= 3 total - 0 former - 0 out-of-window non-former)
- personas present: champion
- personas missing: economic buyer, HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: none on file

Deal-D0D6B5 (C-32918E)
- amount: MISSING
- stage: MISSING
- active contact count: 3 (= 3 total - 0 former - 0 out-of-window non-former)
- personas present: champion
- personas missing: economic buyer, HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-1FA4DB (economic buyer)

Deal-EC3025 (C-FDD0C7)
- amount: MISSING
- stage: MISSING
- active contact count: 1 (= 2 total - 1 former - 0 out-of-window non-former)
- personas present: champion
- personas missing: economic buyer, HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-6827DB (economic buyer)

Deal-F9A08A (C-0D15DF)
- amount: MISSING
- stage: MISSING
- active contact count: 1 (= 2 total - 0 former - 1 out-of-window non-former)
- personas present: champion
- personas missing: economic buyer, HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: CT-697541 (economic buyer)

Deal-FCBE5B (C-737030)
- amount: MISSING
- stage: MISSING
- active contact count: 1 (= 1 total - 0 former - 0 out-of-window non-former)
- personas present: champion
- personas missing: economic buyer, HR admin, IT security, finance
- most valuable persona to add (given stage): CANNOT DETERMINE (stage missing)
- on-file unengaged contact who fits: none on file
talk-track-from-transcriptsPASS 1.00

? The Question

From this rep's last 10 calls: what they lead with in the first five minutes, how they handle the three most common objections, how often a concrete next step is agreed (rate), and every competitor a prospect raised. Quote at most one line per finding and only lines that appear in the transcripts. End with two coaching notes.
cost $1.2770 · 139s · in 17,522 / out 8,451 tok
✓ objection_count✓ next_step_rate✓ competitors✓ coaching✓ quote_used

✓ Correct Answer (ground truth)

rep: Alex Franklin
n_transcripts: 10
opener_theme: theme=opens with a customer recognition win story (400-person retailer, 18% turnover reduction); count=8; total=10; quote=Quick one to kick off: a 400-person retailer we work with cut regretted turnover 18% in two quarters after automating milestone awards, and I wanted to walk you through exactly how they did it.; transcript_id=TT-001
objections: objection=budget; count=4; quote=Honestly, budget is locked until next fiscal year — I can't add a new line item right now.; transcript_id=TT-001 | objection=timing; count=3; quote=This is good, but can we revisit it next quarter? Open enrollment starts in October and we're underwater.; transcript_id=TT-002 | objection=in-house; count=3; quote=We already do recognition with a spreadsheet and quarterly gift cards — why would we change?; transcript_id=TT-004
objection_count: 3
next_step: agreed=7; total=10; rate=0.7
competitors_prospect_raised: Awardco, Kudos
competitor_quotes: 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.
rep_raised_competitors_excluded: Workhuman
allowed_new: 13 items — e.g. TT-001, TT-002, TT-003, TT-004
graded checks: objection_count · next_step_rate · competitors · coaching · quote_used

Model's actual answer

show the model's full answer
Lead-with in first five minutes
- Primary opener used 8/10 calls; exceptions: agenda-first 1/10, pricing-first 1/10. Example: "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."

Handling the three most common objections
- Budget locked (4/10): "Totally fair. Most teams fund this out of turnover savings — that retailer saved about $210k in avoided backfills, which is how their finance team signed off."
- Revisit next quarter / bandwidth (3/10): "Makes sense. What if we scope a 90-day pilot with one department so you have internal data before next quarter's planning?"
- Status quo (spreadsheets/gift cards) (3/10): "Spreadsheets work until they scale — the difference is automation: milestones fire without HR lifting a finger, and you get analytics on who is being recognized."

Concrete next step agreed (rate)
- Arithmetic: 7 agreed / 10 calls = 70%
- Example acceptance: "Yes, Thursday at 2pm works — send the invite and I'll bring our HRIS manager."

Competitors a prospect raised
- Awardco; Kudos
- Example: "We're also in late talks with Awardco — their rewards catalog looks bigger than yours."

Coaching notes
- When you hear committee/no-urgency stalls, still propose a lightweight, time-bound next step (tentative hold or brief working session) instead of ending the thread.
- Keep the case-study opener but confirm the prospect’s top priority first (pricing/security) to choose the right lead-in more often.
reporting-analytics
q3-weighted-forecastPASS 1.00

? The Question

Below are the open deals in the default sales pipeline with a close date between 2026-07-01 and 2026-10-15, pulled from the CRM warehouse on 2026-09-05. Stages: DS1 (discovery) through DS5 (contract). Build the Q3 2026 forecast (quarter = 2026-07-01 to 2026-09-30). Weighting rule: 100 percent of COMMIT plus 35 percent of BEST_CASE. PIPELINE deals count zero. Only deals with a close date inside the quarter count. Report: COMMIT total, BEST_CASE total, weighted forecast, count of deals in each category inside the quarter, the deals you excluded for being outside the quarter (count and total amount), and the top 5 BEST_CASE deals by amount inside the quarter. Show arithmetic. Then, in a final '## Data quality' section of no more than four sentences, name the data quality problems in this extract that would make the forecast unreliable if it were run unattended.
cost $2.3253 · 371s · in 39,622 / out 14,425 tok
✓ commit_total_44729✓ best_case_total_203565✓ weighted_115976.75✓ commit_count_7✓ best_case_count_24✓ excluded_count_32✓ excluded_amount_227575✓ top5_aliases✓ flags_blank_owner✓ flags_missing_why_buys

✓ Correct Answer (ground truth)

graded checks: commit_total_44729 · best_case_total_203565 · weighted_115976.75 · commit_count_7 · best_case_count_24 · excluded_count_32 · excluded_amount_227575 · top5_aliases · flags_blank_owner · flags_missing_why_buys

Model's actual answer

show the model's full answer
COMMIT total (in-quarter): 44,729
Arithmetic: 11200 + 9000 + 9000 + 6360 + 5400 + 2520 + 1249 = 44729

BEST_CASE total (in-quarter): 203,565
Arithmetic: 38935 + 24000 + 19656 + 16250 + 11116 + 10800 + 10500 + 9890 + 9720 + 9000 + 7200 + 3840 + 3780 + 3600 + 3240 + 3150 + 3120 + 3060 + 2916 + 2760 + 2484 + 2100 + 1920 + 528 = 203565

Weighted forecast: 115,976.75
Calculation: 44,729 + 0.35 × 203,565 = 44,729 + 71,247.75 = 115,976.75

Counts inside the quarter:
- COMMIT: 7
- BEST_CASE: 24
- PIPELINE: 23

Excluded for being outside the quarter:
- count: 32
- total amount: 227,575

Top 5 BEST_CASE deals by amount (inside the quarter):
- Deal-2D7423 — 38,935
- Deal-25F752 — 24,000
- Deal-E53952 — 19,656
- Deal-5EED42 — 16,250
- Deal-FA32A0 — 11,116

## Data quality
- 85/86 deals have blank owner.
- One DS1 marked COMMIT (Deal-A5E80A) and one DS5 marked BEST_CASE (Deal-C61CF7) indicate stage/forecast mismatches.
- 39 in-quarter DS3+ deals have why_buys_chars = 0 (no substantive why-buys).
- A non-integer amount exists (Deal-42326B at 2480.4).
aha-moment-2x20.83

? The Question

Test the activation hypothesis on the company cohort below: companies with 5+ unique givers (m1_users >= 5) AND 1+ successful redemption (m1_redemptions >= 1) in their first calendar month retain better at 24 months than those with one signal or neither. Every company in this extract is already 25+ months old, so current_status = 'active' means retained at 24 months. Report the full 2x2 (cohort size and 24-month retention rate for: both signals, givers-only, redemption-only, neither), state how many companies were excluded from the denominator and why (if none, say so), name the single signal with the largest retention lift, and state what this does and does not prove.
cost $2.8310 · 295s · in 61,741 / out 15,874 tok
✓ both_66✓ givers_47✓ redemp_31✓ neither_40✓ excluded_0✗ largest_lift_givers

✓ Correct Answer (ground truth)

graded checks: both_66 · givers_47 · redemp_31 · neither_40 · excluded_0 · largest_lift_givers

Model's actual answer

show the model's full answer
2x2 results (signup month 2023; retained at 24 months = current_status = active)
- Both signals (m1_users >= 5 AND m1_redemptions >= 1): n=47; retention 31/47 = 65.96%
- Givers-only (m1_users >= 5 AND m1_redemptions = 0): n=49; retention 23/49 = 46.94%
- Redemption-only (m1_users < 5 AND m1_redemptions >= 1): n=29; retention 9/29 = 31.03%
- Neither (m1_users < 5 AND m1_redemptions = 0): n=95; retention 38/95 = 40.00%

Exclusions
- 0 companies excluded; all rows had m1_users, m1_redemptions, and current_status present.

Single-signal with the largest retention lift
- m1_users >= 5 (givers): 46.94% vs neither 40.00% → +6.94 percentage points (23/49 − 38/95)

What this does and does not prove
- Does: In this extract, companies with both early signals retained better at 24 months than those with only one signal or neither.
- Does not: Establish causation or generalize beyond this cohort/timeframe; no controls for confounders (e.g., tier, region, industry).
arr-rollforward-reconciliationPASS 1.00

? The Question

Reconcile ARR between CRM company records and billing subscriptions as of 2026-09-05. Billing ARR is MRR x 12. Report both totals, the variance, and a decomposition into buckets (status mismatch, rounding, missing records, other) that sums exactly to the variance. List each mismatched account with a suggested owner. Business rule: any subscription with a term other than 12 months must have cf_agreement_end_date populated; list violations.
cost $2.0482 · 456s · in 36,300 / out 12,531 tok
✓ billing_total✓ crm_total✓ variance✓ buckets_sum✓ violations_listed

✓ Correct Answer (ground truth)

as_of: 2026-09-05
billing_arr_total: 604739.28
crm_arr_total: 603581.76
variance: 1157.52
variance_definition: billing_arr_total - crm_arr_total (billing ARR = sum of MRR x 12 over status=active subscriptions)
buckets: {"status_mismatch": {"amount": "-13158.48", "accounts": [{"company_alias": "C-0C8323BF", "billing_arr": "0.00", "hubspot_arr": "4905.24", "diff": "-4905.24", "suggested_owner": "Dana Mercer"}, {"compa
bucket_sum_equals_variance: True
n_mismatched_accounts: 7
rule: term_months != 12 requires cf_agreement_end_date
violations: subscription_id=SUB-0002; company_alias=C-1794A52C; term_months=24 | subscription_id=SUB-0019; company_alias=C-22170CA1; term_months=36
n_companies: 40
graded checks: billing_total · crm_total · variance · buckets_sum · violations_listed

Model's actual answer

show the model's full answer
Totals (as of 2026-09-05)
- Billing ARR (active MRR x 12): 604739.28
- CRM ARR total: 603581.76
- Variance (CRM - Billing): -1157.52

Variance decomposition (sums to -1157.52)
- Status mismatch: 13158.48 = 4905.24 (C-0C8323BF, cancelled) + 8253.24 (C-0DC4FB8C, cancelled)
- Rounding: 0.00
- Missing records: -11952.00 = 16497.24 (C-0D5BBE3A, CRM only) + (-28449.24) (C-21629AA4, Billing only)
- Other: -2364.00 = 16.00 (C-0D66DF9E) + 20.00 (C-14D70CE0) + (-2400.00) (C-0F7269D7)

Mismatched accounts with suggested owner (alias | CRM ARR | Billing ARR | Diff = CRM - Billing | Owner)
- C-0C8323BF | 4905.24 | 0.00 | +4905.24 | RevOps (CRM)
- C-0DC4FB8C | 8253.24 | 0.00 | +8253.24 | RevOps (CRM)
- C-0D5BBE3A | 16497.24 | 0.00 | +16497.24 | Finance/Billing
- C-21629AA4 | 0.00 | 28449.24 | -28449.24 | RevOps (CRM)
- C-0D66DF9E | 23200.00 | 23184.00 | +16.00 | RevOps/Finance
- C-14D70CE0 | 18200.00 | 18180.00 | +20.00 | RevOps/Finance
- C-0F7269D7 | 24396.00 | 26796.00 | -2400.00 | RevOps/Finance

Business-rule violations (term_months != 12 must have cf_agreement_end_date)
- SUB-0002 | C-1794A52C | term_months=24 | cf_agreement_end_date missing
- SUB-0019 | C-22170CA1 | term_months=36 | cf_agreement_end_date missing
kvm-month-over-monthPASS 1.00

? The Question

Report the four core KVMs for 2026-08 against 2026-07: giving rate, redemptions per user, 1:1 meetings engagement, pulse check engagement. For each: value, prior value, absolute and relative change, direction. Name the KVM with the largest relative move and the segment (plan_tier or size_band) driving it if the data supports that; otherwise say the data does not. Under 200 words plus one table.
cost $1.9541 · 257s · in 39,092 / out 11,398 tok
✓ four_kvms✓ biggest_mover_named✓ direction_correct✓ segment_named✓ word_cap

✓ Correct Answer (ground truth)

aggregation: simple mean of company-level values per month
kvms: {"giving_rate": {"2026-07": 0.6023, "2026-08": 0.6027, "abs_change": 0.0004, "rel_change_pct": 0.07, "direction": "up"}, "redemptions_per_user": {"2026-07": 1.73, "2026-08": 1.7302, "abs_change": 0.00
biggest_mover: pulse_engagement
driving_segment: size_band=enterprise; 2026-07=0.55; 2026-08=0.2743; rel_change_pct=-50.13
segment_detail: {"smb": {"2026-07": 0.6588, "2026-08": 0.6573, "rel_change_pct": -0.23}, "mid_market": {"2026-07": 0.593, "2026-08": 0.5942, "rel_change_pct": 0.2}, "enterprise": {"2026-07": 0.55, "2026-08": 0.2743,
n_company_rows_per_month: 30
graded checks: four_kvms · biggest_mover_named · direction_correct · segment_named · word_cap

Model's actual answer

show the model's full answer
+-----------------------------+----------+----------+---------+----------+-----------+
| KVM                         | 2026-08  | 2026-07  | Abs Δ   | Rel Δ %  | Direction |
+-----------------------------+----------+----------+---------+----------+-----------+
| giving rate                 | 0.6027   | 0.6023   | 0.0004  | 0.07%    | up        |
| redemptions per user        | 1.7302   | 1.7300   | 0.0002  | 0.01%    | up        |
| 1:1 meetings engagement     | 0.4472   | 0.4469   | 0.0003  | 0.06%    | up        |
| pulse check engagement      | 0.5086   | 0.6006   | -0.0920 | -15.31%  | down      |
+-----------------------------+----------+----------+---------+----------+-----------+

Largest relative move: pulse check engagement (-15.31%, down). Driver: size_band=enterprise (0.2743 vs 0.5500; Δ=-0.2757; -0.2757/0.5500=-50.13%).

Arithmetic (averages across companies):
- giving rate: 0.6027133-0.6022967=+0.0004167; +0.0004167/0.6022967=+0.07%
- redemptions per user: 1.7301633-1.7299833=+0.0001800; +0.0001800/1.7299833=+0.01%
- 1:1 meetings engagement: 0.4471767-0.4468867=+0.0002900; +0.0002900/0.4468867=+0.06%
- pulse check engagement: 0.5086100-0.6005867=-0.0919767; -0.0919767/0.6005867=-15.31%
rewards-ytd-sectionPASS 1.00

? The Question

Produce the redemption section of the weekly rewards report through the last completed month (2026-08): redemption count, spend, unique redeemers, redemptions per redeemer, provider mix as percent of spend, top 5 countries by redemptions. Say which month is the last completed month. Provider shares must sum to 100.
cost $3.6886 · 379s · in 77,396 / out 21,064 tok
✓ count✓ spend✓ unique_redeemers✓ month_named✓ provider_mix✓ top_country

✓ Correct Answer (ground truth)

redemption_count: 378
total_spend_usd: 27846.00
unique_redeemers: 235
redemptions_per_redeemer: 1.61
provider_mix_pct_of_spend: TangoCard=11.6; Tremendous=30.54; custom=39.05; Snappy=18.81
top5_countries_by_count: country=US; count=244 | country=CA; count=24 | country=AU; count=21 | country=GB; count=17 | country=NL; count=17
graded checks: count · spend · unique_redeemers · month_named · provider_mix · top_country

Model's actual answer

show the model's full answer
Last completed month: 2026-08

- Redemption count: 378
- Spend (USD): 27,846.00 = 10,873.00 (custom) + 8,505.00 (Tremendous) + 5,238.00 (Snappy) + 3,230.00 (TangoCard)
- Unique redeemers: 235
- Redemptions per redeemer: 378 / 235 = 1.61

- Provider mix (% of spend; sums to 100.00%):
  - custom: 10,873.00 / 27,846.00 = 39.05%
  - Tremendous: 8,505.00 / 27,846.00 = 30.54%
  - Snappy: 5,238.00 / 27,846.00 = 18.81%
  - TangoCard: 3,230.00 / 27,846.00 = 11.60%
  - Total: 100.00%

- Top 5 countries by redemptions (count):
  - US: 244
  - CA: 24
  - AU: 21
  - GB: 17
  - NL: 17
customer-success
churn-save-eligibilityPASS 1.00

? The Question

Which at-risk accounts qualify for a churn-save offer under the documented eligibility rules, what amount is at stake per account and in total, and which play fits each (usage revival, executive touch, commercial concession)? Cite the signal that justifies each play. List accounts that look at risk but do not qualify and why.
cost $1.8043 · 357s · in 35,366 / out 10,615 tok
✓ eligible_set✓ total_at_stake✓ plays_cited✓ noneligible_named✓ rules_applied

✓ Correct Answer (ground truth)

snapshot_date: 2026-09-05
rules: health_score < 60, churn_save_eligible_amount > 0, renewal within 120 days of snapshot
eligible: account_alias=C-0F6C0F34; amount_at_stake=49707.00; play=executive touch; justifying_signal=champion_active is false - no executive sponsor engaged | account_alias=C-0B827671; amount_at_stake=25365.00; play=usage revival; justifying_signal=usage_trend_3m=declining over the last 3 months | account_alias=C-0B360C78; amount_at_stake=35748.00; play=commercial concession; justifying_signal=usage stable/growing with seat utilization 75% - risk is commercial, not adoption | account_alias=C-0B0F1BAB; amount_at_stake=5494.00; play=executive touch; justifying_signal=champion_active is false - no executive sponsor engaged | account_alias=C-0CA21961; amount_at_stake=16829.00; play=usage revival; justifying_signal=seat utilization 26% is below 50% | account_alias=C-0E9C27D1; amount_at_stake=41235.00; play=commercial concession; justifying_signal=usage stable/growing with seat utilization 85% - risk is commercial, not adoption … (+2 more)
total_amount_at_stake: 224601.00
non_eligible_at_risk: account_alias=C-0BC71BDD; health_score=55 | account_alias=C-0BA71F12; health_score=52 | account_alias=C-0F6694C3; health_score=43 | account_alias=C-0BE96399; health_score=54 | account_alias=C-0F876796; health_score=47 | account_alias=C-0FCCD2DF; health_score=43 … (+1 more)
n_accounts: 30
graded checks: eligible_set · total_at_stake · plays_cited · noneligible_named · rules_applied

Model's actual answer

show the model's full answer
QUALIFYING AT-RISK ACCOUNTS (R1+R2+R3)
- C-0F6C0F34 — amount=49707.00 — play=executive touch — signal: champion_active=false
- C-0B827671 — amount=25365.00 — play=usage revival — signal: usage_trend_3m=declining; utilization=113/202=56.0%
- C-0B360C78 — amount=35748.00 — play=commercial concession — signal: usage_trend_3m=growing; champion_active=true
- C-0B0F1BAB — amount=5494.00 — play=executive touch — signal: champion_active=false
- C-0CA21961 — amount=16829.00 — play=usage revival — signal: usage_trend_3m=flat; utilization=84/325=25.8%
- C-0E9C27D1 — amount=41235.00 — play=usage revival — signal: usage_trend_3m=flat
- C-0CEF69FD — amount=32621.00 — play=executive touch — signal: champion_active=false
- C-0D3278C7 — amount=17602.00 — play=usage revival — signal: usage_trend_3m=declining; utilization=126/380=33.2%

TOTAL AT STAKE
49707.00 + 25365.00 + 35748.00 + 5494.00 + 16829.00 + 41235.00 + 32621.00 + 17602.00 = 224601.00

AT-RISK BUT DO NOT QUALIFY (fail R2 and/or R3)
- C-0BA71F12 — health_score=52; reason: renewal in 218 days (outside 0–120)
- C-0BC71BDD — health_score=55; reason: churn_save_eligible_amount=0.00
- C-0BE96399 — health_score=54; reason: churn_save_eligible_amount=0.00
- C-0F6694C3 — health_score=43; reasons: churn_save_eligible_amount=0.00; renewal in 197 days (outside 0–120)
- C-0F876796 — health_score=47; reason: renewal in 154 days (outside 0–120)
- C-0FCCD2DF — health_score=43; reasons: churn_save_eligible_amount=0.00; renewal in 230 days (outside 0–120)
- C-10A56B0F — health_score=54; reason: churn_save_eligible_amount=0.00
expansion-kitPASS 1.00

? The Question

A customer replied to outreach (reply included). Build the expansion kit: seat coverage (licensed over headcount), two lines on usage health, headroom in seats and ARR at the current per-seat rate, who replied and whether they can buy, the right buyer from our contacts, and a reply email under 150 words that moves toward the right person without being pushy and cites one real usage fact.
cost $1.2098 · 231s · in 31,139 / out 6,189 tok
✓ coverage_pct✓ headroom_arr✓ right_buyer✓ replier_not_buyer✓ usage_fact✓ email_under_150

✓ Correct Answer (ground truth)

company_alias: C-0DDFC9A7
coverage_pct: 37.5
headroom_seats: 250
per_seat_annual_rate: 60.00
headroom_arr: 15000.00
replier: Maria S.
replier_can_buy: False
right_buyer: name=Dana R.; title=VP People
usage_facts: active_users_2026_08=126; active_users_2026_03=88; growth_pct_6m=43.2; licensed_seat_utilization_pct=84.0
usage_health_lines: Monthly active users grew from 88 (2026-03) to 126 (2026-08), +43.2% over 6 months., Last month 126 of 150 licensed seats were active (84.0% utilization), approaching the seat cap.
graded checks: coverage_pct · headroom_arr · right_buyer · replier_not_buyer · usage_fact · email_under_150

Model's actual answer

show the model's full answer
- Seat coverage (C-0DDFC9A7): 150/400 = 37.5%
- Usage health:
  - MAUs Mar→Aug: 88 → 95 → 102 → 110 → 118 → 126 (net +38 = 126−88; +43.18% = 38/88)
  - Aug license utilization: 126/150 = 84.0%
- Headroom and ARR:
  - Headroom seats to headcount: 400−150 = 250
  - Current per-seat ARR: 9000/150 = 60.00
  - Headroom ARR at current rate: 250×60.00 = 15,000.00
- Who replied / can they buy: Maria S., People Operations Coordinator — replied; cannot buy (she states budget/seat expansion sit with Dana R.)
- Right buyer from contacts: Dana R., VP People

Reply email (≤150 words):
Hi Maria,

Thanks for the quick reply. One data point Dana may want: 126 monthly active users in Aug. If you’re open to it, could you introduce me to Dana R. so we can align seats and budget at your current per‑seat rate? I can also send her a brief one‑pager with usage and options if that’s easier.

Best,
Cole
onboarding-statusPASS 1.00

? The Question

Prep the CSM for the mid-onboarding call: what is complete (integrations connected, allowance set, admins added, first recognition given, first redemption), what is not, early engagement signals, and the three things to cover on the call. Mark nothing complete without a data field that shows it.
cost $1.9998 · 263s · in 32,854 / out 12,558 tok
✓ complete_items✓ incomplete_items✓ three_items✓ grounded

✓ Correct Answer (ground truth)

company_alias: C-0D284E42
days_live: 25
checklist: {"slack_integration_connected": {"complete": true, "field": "integration_slack", "value": "2026-08-12"}, "hris_integration_connected": {"complete": false, "field": "integration_hris", "value": ""}, "a
engagement_signals: avg_active_givers_week1=4.3; avg_active_givers_last_week=13.0; latest_active_givers=15; days_with_activity=25
call_items: Connect the HRIS integration (integration_hris is empty) to automate user provisioning and offboarding., Get to first redemption (first_redemption_at is empty): walk admins through the rewards catalog and confirm allowance funding., Build the giving habit: daily active givers averaged 4.3 in week 1 vs 13.0 last week - agree on manager nudges and a recognition cadence.
graded checks: complete_items · incomplete_items · three_items · grounded

Model's actual answer

show the model's full answer
C-0D284E42

Complete (backed by fields)
- integration_slack: 2026-08-12
- allowance_set: 2026-08-13
- admins_added: 2
- first_recognition_at: 2026-08-15 14:22

Not complete (no value in file)
- integration_hris: missing
- first_redemption_at: missing

Early engagement signals (with arithmetic)
- Time-to-first-recognition: 2026-08-15 14:22 − 2026-08-11 = 4 days + 14h22m = 4 + (14 + 22/60)/24 ≈ 4.60 days
- Active_givers growth: last (15 on 2026-09-04) − first (3 on 2026-08-11) = 12; percent = 12/3 = 4.00 = +400%
- 7-day averages:
  - First 7 days: sum = 3+3+4+4+5+4+7 = 30; avg = 30/7 ≈ 4.29
  - Last 7 days: sum = 11+13+11+13+13+15+15 = 91; avg = 91/7 = 13.00
  - Increase = 13.00 − 4.29 = 8.71; percent = 8.71/4.29 ≈ 2.0333 = +203.33%
- Days with ≥10 active_givers: 10/25 = 0.40 = 40%
- Longest ≥10 streak: 10 consecutive days (2026-08-26 → 2026-09-04)
- Max active_givers: 15 (dates: 2026-09-03, 2026-09-04)

Three things to cover on the call
1) HRIS integration: integration_hris is blank — identify owner and timeline to connect.
2) First redemption: first_redemption_at is blank — walkthrough redemption flow and plan a first-redemption push (Slack is integrated as of 2026-08-12).
3) Sustain recognition momentum: review cadence to maintain the ≥10 active_givers streak (10 straight days) and build on growth (7-day avg 4.29 → 13.00).
renewal-risk-conflicting-datesPASS 1.00

? The Question

Produce a 90-day renewal risk brief. Two systems hold renewal dates and disagree on some accounts; decide which to trust per account and say why (multi-year contracts are known to be wrong in ChurnZero). For every renewal: company, CSM, ARR, date used, seat utilization, 3-month usage trend, risk rating with one sentence of evidence. Flag every disagreement. Close with total ARR renewing and ARR at risk.
cost $2.7519 · 346s · in 48,601 / out 16,857 tok
✓ total_renewing✓ arr_at_risk✓ disagreements_flagged✓ trust_rule

✓ Correct Answer (ground truth)

snapshot_date: 2026-09-05
window: 2026-09-05 to 2026-12-04
trust_rule: multi-year contracts: Chargebee is authoritative (ChurnZero known wrong); otherwise systems agree or Chargebee wins
accounts: 20 items — e.g. account_alias=C-0B144C78; csm=Cole Ingram; arr=30899.00; trusted_renewal_date=2026-11-02; trusted_source_why=systems agree (annual term); in_90d_window=True; dates_disagree=False; seat_utilization_pct=75.4; usage_3m_ratio=1.03; risk=low; evidence=3-month usage ratio 1.03 (last3 avg 103 vs prior3 100), seat utilization 75% | account_alias=C-0B20DB64; csm=Dana Mercer; arr=21770.00; trusted_renewal_date=2026-10-07; trusted_source_why=systems agree (annual term); in_90d_window=True; dates_disagree=False; seat_utilization_pct=56.6; usage_3m_ratio=1.0; risk=medium; evidence=3-month usage ratio 1.00 (last3 avg 295 vs prior3 295), seat utilization 57% | account_alias=C-0B344485; csm=Elena Sinclair; arr=64384.00; trusted_renewal_date=2026-11-16; trusted_source_why=systems agree (annual term); in_90d_window=True; dates_disagree=False; seat_utilization_pct=78.0; usage_3m_ratio=1.04; risk=low; evidence=3-month usage ratio 1.04 (last3 avg 241 vs prior3 231), seat utilization 78% | account_alias=C-0B369871; csm=Dana Mercer; arr=85128.00; trusted_renewal_date=2026-10-29; trusted_source_why=systems agree (annual term); in_90d_window=True; dates_disagree=False; seat_utilization_pct=75.1; usage_3m_ratio=1.04; risk=low; evidence=3-month usage ratio 1.04 (last3 avg 330 vs prior3 316), seat utilization 75%
disagreements: account_alias=C-0B7D2C30; cz_renewal_date=2026-09-10; cb_renewal_date=2026-09-15; is_multi_year=True; trusted=2026-09-15 | account_alias=C-0BBE3E60; cz_renewal_date=2027-09-26; cb_renewal_date=2026-09-26; is_multi_year=True; trusted=2026-09-26 | account_alias=C-0BCDB8C2; cz_renewal_date=2027-09-18; cb_renewal_date=2026-09-18; is_multi_year=True; trusted=2026-09-18 | account_alias=C-0D2AB865; cz_renewal_date=2026-09-10; cb_renewal_date=2026-09-22; is_multi_year=True; trusted=2026-09-22 | account_alias=C-0F5D2323; cz_renewal_date=2026-09-10; cb_renewal_date=2026-09-29; is_multi_year=True; trusted=2026-09-29
n_disagreements: 5
total_arr_renewing_90d: 1048715.00
arr_at_risk_90d: 359409.00
n_accounts: 20
graded checks: total_renewing · arr_at_risk · disagreements_flagged · trust_rule

Model's actual answer

show the model's full answer
C-0B7D2C30 | Dana Mercer | ARR $65,901.00 | date 2026-09-15 | utilization 274/476=57.6% | trend 97->94->84 (84-97=-13) | risk High — 274/476 seats used (57.6%) and 3-mo 97->84 (84-97=-13, -13.4%). [DISAGREE: cz=2026-09-10, cb=2026-09-15; Using Chargebee; multi-year contracts known wrong in ChurnZero.]
C-0BCDB8C2 | Cole Ingram | ARR $54,427.00 | date 2026-09-18 | utilization 232/424=54.7% | trend 127->118->110 (110-127=-17) | risk High — 232/424 seats used (54.7%) and 3-mo 127->110 (110-127=-17, -13.4%). [DISAGREE: cz=2027-09-18, cb=2026-09-18; Using Chargebee; multi-year contracts known wrong in ChurnZero.]
C-0D2AB865 | Elena Sinclair | ARR $38,022.00 | date 2026-09-22 | utilization 250/407=61.4% | trend 125->117->109 (109-125=-16) | risk High — 250/407 seats used (61.4%) and 3-mo 125->109 (109-125=-16, -12.8%). [DISAGREE: cz=2026-09-10, cb=2026-09-22; Using Chargebee; multi-year contracts known wrong in ChurnZero.]
C-0BBE3E60 | Dana Mercer | ARR $30,993.00 | date 2026-09-26 | utilization 74/114=64.9% | trend 39->35->33 (33-39=-6) | risk High — 74/114 seats used (64.9%) and 3-mo 39->33 (33-39=-6, -15.4%). [DISAGREE: cz=2027-09-26, cb=2026-09-26; Using Chargebee; multi-year contracts known wrong in ChurnZero.]
C-0F5D2323 | Cole Ingram | ARR $90,647.00 | date 2026-09-29 | utilization 111/390=28.5% | trend 20->21->18 (18-20=-2) | risk High — 111/390 seats used (28.5%) and 3-mo 20->18 (18-20=-2, -10.0%). [DISAGREE: cz=2026-09-10, cb=2026-09-29; Using Chargebee; multi-year contracts known wrong in ChurnZero.]
C-0EC6999D | Elena Sinclair | ARR $79,419.00 | date 2026-10-03 | utilization 31/112=27.7% | trend 17->16->15 (15-17=-2) | risk High — 31/112 seats used (27.7%) and 3-mo 17->15 (15-17=-2, -11.8%). [AGREE: cz=2026-10-03, cb=2026-10-03; Systems agree; using Chargebee.]
C-0B20DB64 | Dana Mercer | ARR $21,770.00 | date 2026-10-07 | utilization 214/378=56.6% | trend 294->298->294 (294-294=0) | risk Medium — 214/378 seats used (56.6%) and 3-mo 294->294 (294-294=0, +0.0%). [AGREE: cz=2026-10-07, cb=2026-10-07; Systems agree; using Chargebee.]
C-0BBC4E7A | Cole Ingram | ARR $56,374.00 | date 2026-10-10 | utilization 228/337=67.7% | trend 142->141->139 (139-142=-3) | risk Medium — 228/337 seats used (67.7%) and 3-mo 142->139 (139-142=-3, -2.1%). [AGREE: cz=2026-10-10, cb=2026-10-10; Systems agree; using Chargebee.]
C-0FD551AB | Elena Sinclair | ARR $48,815.00 | date 2026-10-14 | utilization 210/376=55.9% | trend 123->122->126 (126-123=3) | risk Medium — 210/376 seats used (55.9%) and 3-mo 123->126 (126-123=3, +2.4%). [AGREE: cz=2026-10-14, cb=2026-10-14; Systems agree; using Chargebee.]
C-0F9F8F13 | Dana Mercer | ARR $46,230.00 | date 2026-10-18 | utilization 199/352=56.5% | trend 185->185->182 (182-185=-3) | risk Medium — 199/352 seats used (56.5%) and 3-mo 185->182 (182-185=-3, -1.6%). [AGREE: cz=2026-10-18, cb=2026-10-18; Systems agree; using Chargebee.]
C-0BC34584 | Cole Ingram | ARR $16,740.00 | date 2026-10-22 | utilization 327/494=66.2% | trend 104->104->106 (106-104=2) | risk Medium — 327/494 seats used (66.2%) and 3-mo 104->106 (106-104=2, +1.9%). [AGREE: cz=2026-10-22, cb=2026-10-22; Systems agree; using Chargebee.]
C-0B7A7546 | Elena Sinclair | ARR $35,062.00 | date 2026-10-25 | utilization 182/205=88.8% | trend 64->65->63 (63-64=-1) | risk Low — 182/205 seats used (88.8%) and 3-mo 64->63 (63-64=-1, -1.6%). [AGREE: cz=2026-10-25, cb=2026-10-25; Systems agree; using Chargebee.]
C-0B369871 | Dana Mercer | ARR $85,128.00 | date 2026-10-29 | utilization 317/422=75.1% | trend 326->330->333 (333-326=7) | risk Low — 317/422 seats used (75.1%) and 3-mo 326->333 (333-326=7, +2.1%). [AGREE: cz=2026-10-29, cb=2026-10-29; Systems agree; using Chargebee.]
C-0B144C78 | Cole Ingram | ARR $30,899.00 | date 2026-11-02 | utilization 169/224=75.4% | trend 101->101->106 (106-101=5) | risk Low — 169/224 seats used (75.4%) and 3-mo 101->106 (106-101=5, +5.0%). [AGREE: cz=2026-11-02, cb=2026-11-02; Systems agree; using Chargebee.]
C-0FC4DBB8 | Elena Sinclair | ARR $94,732.00 | date 2026-11-05 | utilization 356/464=76.7% | trend 189->191->193 (193-189=4) | risk Low — 356/464 seats used (76.7%) and 3-mo 189->193 (193-189=4, +2.1%). [AGREE: cz=2026-11-05, cb=2026-11-05; Systems agree; using Chargebee.]
C-0D5BBE3A | Dana Mercer | ARR $39,740.00 | date 2026-11-09 | utilization 85/102=83.3% | trend 88->90->91 (91-88=3) | risk Low — 85/102 seats used (83.3%) and 3-mo 88->91 (91-88=3, +3.4%). [AGREE: cz=2026-11-09, cb=2026-11-09; Systems agree; using Chargebee.]
C-0FB9D5AF | Cole Ingram | ARR $63,158.00 | date 2026-11-13 | utilization 144/199=72.4% | trend 173->173->176 (176-173=3) | risk Low — 144/199 seats used (72.4%) and 3-mo 173->176 (176-173=3, +1.7%). [AGREE: cz=2026-11-13, cb=2026-11-13; Systems agree; using Chargebee.]
C-0B344485 | Elena Sinclair | ARR $64,384.00 | date 2026-11-16 | utilization 224/287=78.0% | trend 238->240->244 (244-238=6) | risk Low — 224/287 seats used (78.0%) and 3-mo 238->244 (244-238=6, +2.5%). [AGREE: cz=2026-11-16, cb=2026-11-16; Systems agree; using Chargebee.]
C-0CB2C1B4 | Dana Mercer | ARR $40,628.00 | date 2026-11-20 | utilization 386/473=81.6% | trend 47->48->49 (49-47=2) | risk Low — 386/473 seats used (81.6%) and 3-mo 47->49 (49-47=2, +4.3%). [AGREE: cz=2026-11-20, cb=2026-11-20; Systems agree; using Chargebee.]
C-22170CA1 | Cole Ingram | ARR $45,646.00 | date 2026-11-24 | utilization 251/294=85.4% | trend 143->148->146 (146-143=3) | risk Low — 251/294 seats used (85.4%) and 3-mo 143->146 (146-143=3, +2.1%). [AGREE: cz=2026-11-24, cb=2026-11-24; Systems agree; using Chargebee.]

Total ARR renewing = $65,901.00 + $54,427.00 + $38,022.00 + $30,993.00 + $90,647.00 + $79,419.00 + $21,770.00 + $56,374.00 + $48,815.00 + $46,230.00 + $16,740.00 + $35,062.00 + $85,128.00 + $30,899.00 + $94,732.00 + $39,740.00 + $63,158.00 + $64,384.00 + $40,628.00 + $45,646.00 = $1,048,715.00
ARR at risk (Medium+High) = $65,901.00 + $54,427.00 + $38,022.00 + $30,993.00 + $90,647.00 + $79,419.00 + $21,770.00 + $56,374.00 + $48,815.00 + $46,230.00 + $16,740.00 = $549,338.00
ticket-theme-synthesis0.60

? The Question

Synthesize the quarter's support tickets into 4 to 7 themes. Do not trust existing tags; read the text. Per theme: name, count, share, distinct accounts, ARR affected, two ticket ids, one-line recommendation. Separate broad patterns from single-account noise and rank by ARR exposure, not volume.
cost $2.6127 · 586s · in 43,228 / out 16,369 tok
✗ theme_count_range✓ counts_verifiable✓ single_account_flagged✓ arr_ranked✗ ticket_ids

✓ Correct Answer (ground truth)

quarter_window: 2026-06-01 through 2026-08-31
total_tickets: 80
themes: {"points_not_posting": {"count": 20, "share_pct": 25.0, "distinct_accounts": 9, "arr_affected": "31100.00", "example_ticket_ids": ["IC-460001", "IC-460002"], "single_account": false}, "slack_sync": {"
ranking_by_arr_exposure: hris_provisioning, redemption_failures, billing_dispute, points_not_posting, slack_sync
single_account_noise_theme: billing_dispute
note: existing tags are noisy/unreliable; classify by text
sample_ticket_ids: 80 items — e.g. IC-460004, IC-460016, IC-460001, IC-460041
graded checks: theme_count_range · counts_verifiable · single_account_flagged · arr_ranked · ticket_ids

Model's actual answer

show the model's full answer
1. [BROAD] HRIS provisioning failures (new hires not created)
   - Count: 12
   - Share: 12/80 = 15.0%
   - Distinct accounts: 3 (C-0B2213A9, C-0DDFC9A7, C-0F6C0F34)
   - ARR affected: 36,000 + 48,000 + 30,000 = 114,000
   - Example tickets: IC-460056, IC-460060
   - Recommendation: Add idempotent, hourly HRIS delta sync with alerting on skipped records; block seat-billing deltas until provisioning completes.

2. [BROAD] Redemption/checkout failures (gift cards/codes)
   - Count: 18
   - Share: 18/80 = 22.5%
   - Distinct accounts: 7 (C-0B0F1BAB, C-0B827671, C-0CEF69FD, C-0D9CA315, C-0F876796, C-0FCCD2DF, C-14264ABD)
   - ARR affected: 10,300 + 10,700 + 8,900 + 9,600 + 8,700 + 9,600 + 11,000 = 68,800
   - Example tickets: IC-460029, IC-460034
   - Recommendation: Add retry and timeout around the gift-card API and reconcile point balances only after confirmed issuance.

3. [SINGLE-ACCOUNT] Billing/invoice overcharge (seat-count/tier price)
   - Count: 16
   - Share: 16/80 = 20.0%
   - Distinct accounts: 1 (C-0E9C27D1)
   - ARR affected: 52,000 = 52,000
   - Example tickets: IC-460065, IC-460066
   - Recommendation: Lock invoice seat sources to one system of record and add pre-bill validation for seat deltas and pricing tiers.

4. [BROAD] Points not posting / missing balances after recognitions
   - Count: 20
   - Share: 20/80 = 25.0%
   - Distinct accounts: 9 (C-0B2895EF, C-0BE96399, C-0BF20542, C-0D0B047C, C-0D284E42, C-0D3278C7, C-0D6CC8E3, C-0DD0626C, C-21FEBCBB)
   - ARR affected: 2,900 + 2,700 + 4,500 + 4,500 + 3,400 + 3,500 + 4,200 + 2,500 + 2,900 = 31,100
   - Example tickets: IC-460001, IC-460009
   - Recommendation: Queue recognitions with eventual-consistency writes and backfill balances on delay; surface a status banner when lag >5m.

5. [BROAD] Slack integration failures (channel sync/slash commands)
   - Count: 14
   - Share: 14/80 = 17.5%
   - Distinct accounts: 4 (C-0B843542, C-0BA71F12, C-10A56B0F, C-8C2E8F00)
   - ARR affected: 4,400 + 3,900 + 5,400 + 5,200 = 18,900
   - Example tickets: IC-460040, IC-460044
   - Recommendation: Harden Slack OAuth token refresh and add health checks for channel webhooks and slash-command scopes.
marketing
case-study-matchPASS 1.00

? The Question

Given the prospect, rank the three most similar existing customers with public case studies for use as social proof. Similarity on industry, size band, use case, region. Cite the fields that drove each match. Do not name any customer without a case study and never include billing data or contact names.
cost $1.5567 · 267s · in 32,761 / out 8,877 tok
✓ top3✓ decoys_excluded✓ cites_fields✓ no_billing

✓ Correct Answer (ground truth)

top3: company_alias=C-11C31562; similarity_score=3 | company_alias=C-64171065; similarity_score=3 | company_alias=C-A13C193D; similarity_score=3
decoys_excluded: company_alias=C-D6217CAA; similarity_score=4; reason=no_case_study | company_alias=C-C153868F; similarity_score=4; reason=no_case_study
constraints: no_billing_data, no_contact_names, only_customers_with_has_case_study_true_named
prospect_fields_used: industry, size_band, use_case, region
prospect_alias: C-82AF3719
graded checks: top3 · decoys_excluded · cites_fields · no_billing

Model's actual answer

show the model's full answer
1) C-64171065
   similarity = 3 = 1 (industry) + 1 (size_band) + 1 (use_case) + 0 (region) out of 4
   Matched fields: industry=Technology; size_band=Mid-Market; use_case=employee_recognition

2) C-11C31562
   similarity = 3 = 0 (industry) + 1 (size_band) + 1 (use_case) + 1 (region) out of 4
   Matched fields: size_band=Mid-Market; use_case=employee_recognition; region=NA-West

3) C-A13C193D
   similarity = 3 = 1 (industry) + 1 (size_band) + 0 (use_case) + 1 (region) out of 4
   Matched fields: industry=Technology; size_band=Mid-Market; region=NA-West
channel-attribution-mathPASS 1.00

? The Question

Compute channel performance for the trailing 6 months. Paid: spend, SQMs, SQOs, cost per SQM, cost per SQO, SQM-to-SQO rate, pipeline amount, pipeline per dollar. Organic: volume, SQO rate, pipeline. Report a channel with spend and zero SQMs as undefined, not zero. Flag rows where SQO date precedes SQM date. Finish with a reallocation recommendation and your confidence given sample sizes.
cost $4.0222 · 598s · in 41,421 / out 28,341 tok
✓ undefined_channel✓ undefined_not_zero✓ flagged_rows✓ best_channel✓ reallocation

✓ Correct Answer (ground truth)

months: 2026-03, 2026-04, 2026-05, 2026-06, 2026-07, 2026-08
per_channel: {"linkedin_ads": {"spend_usd": 24000, "sqms": 25, "sqos": 8, "pipeline_amount": 96000, "cost_per_sqm": 960.0, "cost_per_sqo": 3000.0, "sqm_to_sqo_rate": 0.32, "pipeline_per_dollar": 4.0}, "organic_sea
undefined_channels: paid_social
flagged_rows_sqo_before_sqm: CT-000041, CT-000044
best_pipeline_per_dollar_channel: paid_search
reallocation_recommendation: from=paid_social; to=paid_search; rationale=paid_social has spend but zero SQMs (cost per SQM undefined, not zero); paid_search has the highest pipeline per dollar.
confidence_note: webinars and referral have small SQM samples (<20); treat rates as directional.
graded checks: undefined_channel · undefined_not_zero · flagged_rows · best_channel · reallocation

Model's actual answer

show the model's full answer
TRAILING 6 MONTHS: 2026-03 to 2026-08

Paid channels:
- linkedin_ads:
  spend: 6 x 4000 = 24000 -> $24,000
  SQMs: 25
  SQOs: 8
  cost_per_SQM: $960.00 (arith: 24000 / 25)
  cost_per_SQO: $3,000.00 (arith: 24000 / 8)
  SQM_to_SQO_rate: 32.0% (arith: 8 / 25)
  pipeline_amount: $96,000 (arith: sum of pipeline for 8 SQOs)
  pipeline_per_dollar: 4.00 (arith: 96000 / 24000)
- paid_search:
  spend: 6 x 6000 = 36000 -> $36,000
  SQMs: 40
  SQOs: 18
  cost_per_SQM: $900.00 (arith: 36000 / 40)
  cost_per_SQO: $2,000.00 (arith: 36000 / 18)
  SQM_to_SQO_rate: 45.0% (arith: 18 / 40)
  pipeline_amount: $720,000 (arith: sum of pipeline for 18 SQOs)
  pipeline_per_dollar: 20.00 (arith: 720000 / 36000)
- paid_social:
  spend: 6 x 3000 = 18000 -> $18,000
  SQMs: 0
  SQOs: undefined (no SQMs recorded)
  cost_per_SQM: undefined
  cost_per_SQO: undefined
  SQM_to_SQO_rate: undefined
  pipeline_amount: undefined
  pipeline_per_dollar: undefined
- webinars:
  spend: 6 x 1500 = 9000 -> $9,000
  SQMs: 12
  SQOs: 5
  cost_per_SQM: $750.00 (arith: 9000 / 12)
  cost_per_SQO: $1,800.00 (arith: 9000 / 5)
  SQM_to_SQO_rate: 41.7% (arith: 5 / 12)
  pipeline_amount: $60,000 (arith: sum of pipeline for 5 SQOs)
  pipeline_per_dollar: 6.67 (arith: 60000 / 9000)

Organic channels:
- organic_search:
  volume: 30
  SQO_rate: 33.3% (arith: 10 / 30)
  pipeline: $90,000 (arith: sum of pipeline for 10 SQOs)
- referral:
  volume: 15
  SQO_rate: 40.0% (arith: 6 / 15)
  pipeline: $48,000 (arith: sum of pipeline for 6 SQOs)

Data quality flags (SQO date precedes SQM date):
- CT-000044 | linkedin_ads | SQM 2026-07-23 vs SQO 2026-07-18
- CT-000041 | linkedin_ads | SQM 2026-06-14 vs SQO 2026-06-09

Reallocation recommendation:
- Increase allocation to paid_search (highest pipeline_per_dollar among paid).
- Maintain or modestly increase webinars (mid pipeline_per_dollar, lowest cost_per_SQO).
- Decrease linkedin_ads (lowest pipeline_per_dollar among paid with signal).
- Pause paid_social until tracking yields SQMs; metrics undefined with current data.
Confidence: moderate. Sample sizes — paid_search SQMs=40, SQOs=18; webinars SQMs=12, SQOs=5; linkedin_ads SQMs=25, SQOs=8; paid_social SQMs=0.
competitor-battlecard-update0.80

? The Question

Update the battlecard for the competitor. Sections: one-line positioning, pricing with source and date (newer source wins, note the conflict), where they win, where we win, objections and responses, recent changes, our 12-month win/loss record against them. Cite a snippet id for every factual claim. Rep opinion on a call is not a fact about the competitor. Anything from the old card you cannot re-source gets marked unverified.
cost $2.5911 · 437s · in 33,349 / out 17,424 tok
✓ competitor_named✓ pricing✓ win_loss✓ unverified_marked✗ citations

✓ Correct Answer (ground truth)

competitor: Rivally
pricing: value_per_user_per_month=7; source_snippet=S17; source_date=2026-08-12
win_loss_12mo: wins=13; losses=7
unverified_old_claims: Rivally lacks a Slack integration., Rivally was acquired by WorkHuman in 2025.
rep_opinion_snippet_ids_not_facts: S09, S21
citation_ids_available: 25 items — e.g. S01, S02, S03, S04
graded checks: competitor_named · pricing · win_loss · unverified_marked · citations

Model's actual answer

show the model's full answer
ONE-LINE POSITIONING
- Points-based employee recognition platform with an engaging feed, EU/multi‑language emphasis, EU data residency, and an optional lightweight “Rivally Pulse” engagement survey add-on. [S02][S12][S15][S23]

PRICING (source, date; newer source wins; conflicts noted)
- Current list: Recognition Starter at $7 per user/month, annual billing required (pricing page, 2026-08-12). [S17]
- Older list (conflict, superseded): $5 per user/month, annual billing required (pricing page, 2026-01-20 and 2026-04-01). Newer source above wins; indicates a price increase. [S03][S08]
- Deal mentions (not list price):
  - Quoted $6.50/user/month for a 500‑seat prospect, annual term (call notes, 2026-06-02). [S13]
  - Prospect reported 15% discount for a 3‑year term on $7 list (call notes, 2026-08-14). Arithmetic: $7 × (1 − 0.15) = $5.95. [S18]

WHERE THEY WIN
- Distributed EU teams and multi‑language support praised; EU data residency GA with Dublin office and EMEA leadership hire support EU focus. [S12][S15][S11]
- Fast implementation (setup under a week). [S04]
- Slack integration worked out of the box. [S04]
- Recognition feed is engaging. [S02][S16]
- Support response time praised (under 4 hours). [S22]
- Microsoft Teams presence (app v2 in public preview). [S19]
- Optional “Pulse” lightweight survey add‑on available. [S06][S23]

WHERE WE WIN
- Buyers prioritizing analytics depth (800‑seat prospect picked Bonusly over Rivally citing analytics depth). [S25]
- Buyers requiring identity automation: Rivally lacks SCIM provisioning; user management is manual. [S10]
- Buyers needing advanced analytics/dashboards: reviews cite limited analytics and basic dashboards. [S02][S07]
- Admin efficiency needs: admin tooling lags peers; bulk recognition editing is missing. [S16][S24]
- Data portability beyond CSV: exports noted as CSV‑only, making migration harder. [S20]
- EMEA rewards breadth: EMEA catalog thinner than US. [S14]

OBJECTIONS AND RESPONSES
- “We need EU coverage (multi‑language, EU data residency).” Acknowledge: strong EU/multi‑language feedback and EU data residency GA with Dublin office. Probe depth of analytics, admin, and provisioning given cited gaps (limited analytics; basic dashboards; lacks SCIM; admin tooling/ bulk edit gaps; CSV‑only exports). [S12][S15][S02][S07][S10][S16][S24][S20]
- “We want quick time‑to‑value and Slack/Teams.” Acknowledge: setup under a week and Slack OOTB; Teams app v2 is in public preview (clarify GA vs preview). Re‑center on admin/analytics/provisioning depth. [S04][S19][S02][S07][S10][S16][S24]
- “Their price looks lower.” Acknowledge current list $7 (newer source), prior $5 (older, superseded). If multi‑year discount raised, show math: $7 × (1 − 0.15) = $5.95 (deal mention). Clarify that “Pulse” is priced as an add‑on, not bundled. [S17][S03][S08][S18][S23]
- “They have strong support SLAs.” Acknowledge under‑4‑hour response reviews; pivot to fit/gaps in analytics, admin, and provisioning. [S22][S02][S07][S10][S16][S24]

RECENT CHANGES
- Pricing page increased Recognition Starter to $7/user/month, annual billing (2026-08-12). [S17]
- “Rivally Pulse” exited beta and is priced as an add‑on, not bundled (2026-09-01). [S23]
- Microsoft Teams app v2 entered public preview (2026-08-20). [S19]
- Dublin office opened; EU data residency generally available (2026-07-01). [S15]
- Hired ex‑Workday VP EMEA to lead European expansion (2026-05-09). [S11]
- Launched “Rivally Pulse,” a lightweight engagement survey add‑on (2026-03-05). [S06]
- Announced Series C raise of $40M led by Northgate Ventures (2025-11-04). [S01]
- Corrections vs prior card:
  - “Rivally lacks a Slack integration” — unverified; contradicted by reviewer stating Slack worked out of the box. [S04]
  - “Rivally was acquired by WorkHuman in 2025” — unverified; a Series C in late 2025 indicates continued independence. [S01]
  - “Positioning for mid‑market” — unverified; only a mid‑market reviewer is cited, not vendor positioning. [S04]

OUR 12-MONTH WIN/LOSS RECORD AGAINST THEM
- Period: 2025-09 through 2026-08 inclusive (source: deals_with_competitor.csv).
- Results: 13 wins, 7 losses, total 20.
- Arithmetic: 13 wins + 7 losses = 20 total; win rate = 13 ÷ 20 = 65.0%.
nurture-sequence-diagnosisPASS 1.00

? The Question

Review the sequences. Per sequence: sent, open rate, reply rate, meeting rate, weakest step. Identify tracking errors (opened above sent), audience overlap between sequences, and the failure mode for anything under 2 percent reply. One change per weak sequence and which to fix first. Under 350 words.
cost $3.4596 · 452s · in 65,787 / out 20,607 tok
✓ tracking_error✓ overlap_pair✓ weakest_step✓ fix_priority

✓ Correct Answer (ground truth)

per_sequence: {"New Logo Nurture": {"sent": 1386, "opened": 490, "replied": 90, "meetings": 27, "open_rate": 0.3535, "reply_rate": 0.0649, "meeting_rate": 0.0195, "weakest_step": 3}, "Expansion Nurture": {"sent": 8
tracking_error: sequence=Expansion Nurture; step=2; sent=300; opened=340; issue=opened exceeds sent
audience_overlap_pair: Cold Outbound - HR Leaders, Cold Outbound - People Ops
all_pairwise_overlaps: ['Cold Outbound - HR Leaders', 'Cold Outbound - People Ops'], ['Expansion Nurture', 'New Logo Nurture']
under_2pct_reply: Cold Outbound - HR Leaders
failure_mode: Cold Outbound - HR Leaders=opens healthy (~37%) but replies near zero from step 1 -> body/CTA not landing, not a deliverability or subject-line problem
fix_priority_first: Cold Outbound - HR Leaders
graded checks: tracking_error · overlap_pair · weakest_step · fix_priority

Model's actual answer

show the model's full answer
Per sequence
- New Logo Nurture: sent=1386; open rate=490/1386=35.4%; reply rate=90/1386=6.5%; meeting rate=27/1386=1.9%; weakest step=3 (18/428=4.2%).
- Expansion Nurture: sent=875; open rate=565/875=64.6%; reply rate=59/875=6.7%; meeting rate=12/875=1.4%; weakest step=3 (12/275=4.4%).
- Cold Outbound - HR Leaders: sent=1785; open rate=545/1785=30.5%; reply rate=8/1785=0.4%; meeting rate=0/1785=0.0%; weakest step=3 (1/590=0.2%).
- Cold Outbound - People Ops: sent=1163; open rate=340/1163=29.2%; reply rate=29/1163=2.5%; meeting rate=6/1163=0.5%; weakest step=3 (6/377=1.6%).

Tracking errors (opened > sent)
- Expansion Nurture step 2: opened 340 > sent 300.

Audience overlap
- Contacts in >1 sequence: 23.
- Cold Outbound - HR Leaders ∩ Cold Outbound - People Ops = 21.
- Expansion Nurture ∩ New Logo Nurture = 2.

Failure mode (<2% reply)
- Cold Outbound - HR Leaders: 8/1785=0.4% (<2%). Opens are not the primary limiter (545/1785=30.5%); conversion from open→reply is weak (8/545=1.5%) and there are no meetings (0/1785=0.0%). Failure mode: low reply per open + no meetings.

One change per weak sequence
- Cold Outbound - HR Leaders: Rewrite/strengthen CTA at step 3 to convert opens to replies (reply per open 1/130=0.8% at this step).

Fix first
- Cold Outbound - HR Leaders (lowest reply rate at highest volume: 8/1785=0.4%).
weekly-marketing-goals-rollupPASS 1.00

? The Question

Produce the weekly marketing goals update for the active quarter: SQMs, SQOs, DS2s, closed-lost MIA rate, same-quarter close count, active pipeline coverage against target. For each: QTD actual, target, delta, pace (on/behind/ahead given days elapsed). One paragraph on what moved this week.
cost $1.6003 · 226s · in 32,438 / out 9,281 tok
✓ metrics_present✓ deltas✓ coverage_ratio✓ pace✓ paragraph

✓ Correct Answer (ground truth)

days_elapsed: 66
days_in_quarter: 92
elapsed_fraction: 0.7174
metrics: {"SQMs": {"qtd_actual": 230, "target": 300, "delta": -70, "expected_at_day_elapsed": 215.22, "pace": "ahead"}, "SQOs": {"qtd_actual": 84, "target": 120, "delta": -36, "expected_at_day_elapsed": 86.09,
coverage_ratio_active_pipeline: 0.75
pace_rule: expected = target * days_elapsed/days_in_quarter; within +/-5% of expected = on, above = ahead, below = behind; lower_better metrics invert.
this_week_paragraph_required: True
graded checks: metrics_present · deltas · coverage_ratio · pace · paragraph

Model's actual answer

show the model's full answer
SQMs - QTD actual: 230; target: 300; delta: -70; pace: ahead (target-to-date = 300 * (66/92) = 215.22)
SQOs - QTD actual: 84; target: 120; delta: -36; pace: behind (target-to-date = 120 * (66/92) = 86.09)
DS2s - QTD actual: 40; target: 75; delta: -35; pace: behind (target-to-date = 75 * (66/92) = 53.80)
closed-lost MIA rate - QTD actual: 20.0% (rate = 5/25 = 0.20); target: 10.0%; delta: +10.0 pp; pace: behind
same-quarter closes - QTD actual: 10; target: 20; delta: -10; pace: behind (target-to-date = 20 * (66/92) = 14.35)
active pipeline coverage - QTD actual: 75.0%; target: 100.0%; delta: -25.0 pp; pace: ahead (coverage = 3,000,000/4,000,000 = 75.0%; target-to-date = 4,000,000 * (66/92) = 2,869,565)

What moved this week: No weekly breakdown provided, so week-over-week changes cannot be isolated from the data given. QTD vs pace shows SQMs and active pipeline coverage ahead; SQOs, DS2s, and same-quarter closes behind; closed-lost MIA rate at 20.0% vs 10.0% target (behind).
communication
ceo-slack-compression0.80

? The Question

Compress the forecast analysis below into a single Slack message for the CEO. Rules: at most three sentences; under 80 words; lead with the decision or the so-what; keep every distinct number that matters and the one caveat that changes the conclusion; cut any sentence that does not carry a claim, a number, or a directive. No em dashes, no throat-clearing phrases.
cost $0.8295 · 175s · in 15,465 / out 4,979 tok
✗ max_3_sentences✓ under_80_words✓ weighted_present✓ caveat_present✓ no_em_dash

✓ Correct Answer (ground truth)

graded checks: max_3_sentences · under_80_words · weighted_present · caveat_present · no_em_dash

Model's actual answer

show the model's full answer
Q3 forecast: 115,976.75 = 44,729 + 0.35 x 203,565 = 44,729 + 71,247.75 (rule: 100% COMMIT + 35% BEST_CASE; PIPELINE=0).
In-quarter: 54/86 deals; COMMIT 7=44,729; BEST_CASE 24=203,565; PIPELINE 23=0; excluded after 2026-09-30: 32 deals, 227,575 (incl. Deal-D348E1 13,770 on 2026-10-15; 9 BEST_CASE=28,240).
Caveat: owner blank on 85/86 and why-buys empty on 71/86 (incl. all 7 COMMIT), so the forecast looks precise and is not.
stalled-deal-followup-emailPASS 1.00

? The Question

Write a follow-up email for this stalled deal. Under 120 words. Reference one specific prior touch from the engagement history, make one clear ask, and match the tone of the prior thread. No invented details.
cost $0.7443 · 127s · in 15,244 / out 4,297 tok
✓ word_cap✓ references_touch✓ single_ask

✓ Correct Answer (ground truth)

deal_alias: Deal-0D2F7A
amount: 5100
stage: DS3
owner: Alex Franklin
days_since_last_engagement: 31
word_cap: 120
must_reference: engagement_id=ENG-00002; date=2026-07-28; type=meeting; why=most substantive prior touch; concrete prospect reactions to milestone awards and points catalog
single_cta: True
tone: warm, concise, professional (matches prior thread)
allowed_facts: 14 items — e.g. Deal-0D2F7A, $5,100, DS3, Alex Franklin
allowed_new: ENG-00001, ENG-00002, ENG-00003, ENG-00004, ENG-00005
graded checks: word_cap · references_touch · single_ask

Model's actual answer

show the model's full answer
Hi,

Following up on my 2026-08-05 email with pricing for 150 seats. Could we schedule a quick call to confirm the 150-seat plan and align on next steps?

Thanks,
Alex Franklin
funnel-digest-paragraphPASS 1.00

? The Question

Write the weekly GTM digest: one paragraph per team (Marketing, Sales, CS, PLG) in Bonusly brand voice. Every number must trace to the extracts. No customer contact names, no employee performance commentary, no compensation. Four paragraphs, under 400 words total.
cost $1.2154 · 425s · in 30,609 / out 6,302 tok
✓ four_paragraphs✓ word_cap✓ teams

✓ Correct Answer (ground truth)

required_paragraphs: Marketing, Sales, CS, PLG
allowed_numbers: 16 items — e.g. 2, 3, 9, 08
word_cap: 400
banned: customer contact names, employee performance commentary, compensation
graded checks: four_paragraphs · word_cap · teams

Model's actual answer

show the model's full answer
Marketing: SQMs came in at 46 vs a 52 target—attainment 88.5% (46/52=88.5%), short by 6 (46-52=-6). Webinars delivered 18 SQMs (18/46=39.1% share). Paid search cost per SQM held at $150.

Sales: 14 SQOs converted and 9 DS2 meetings set, with $310,000 in new pipeline created. DS2/SQO ratio was 64.3% (9/14=64.3%). Simple average pipeline per SQO was $22,142.86 ($310,000/14=$22,142.86). Same-quarter closes: 3.

CS: Renewals saved this week: 2. Team NPS moved to 61. Heading into next week there are 3 open red-flag accounts.

PLG: 412 new signups with activation at 31%, yielding about 128 activated (412×0.31=127.72≈128). 38 companies reached the aha moment of 10 recognition gives.
partner-digest-section0.67

? The Question

Write the partner digest for the period. Every partner in the roster appears once: active plays get status with numbers, quiet partners get one line. Partner-sourced pipeline count and amount must match the deal data. Nothing omitted, nothing added.
cost $0.7256 · 399s · in 15,300 / out 4,134 tok
✓ all_partners✗ pipeline_amount✓ quiet_one_line

✓ Correct Answer (ground truth)

roster: partner_name=Apex Rewards Co; status=active | partner_name=HRCloud Partners; status=active | partner_name=CultureBridge; status=active | partner_name=WorkWell Group; status=active | partner_name=Recogniq; status=quiet | partner_name=KudosWave; status=quiet … (+2 more)
per_partner_pipeline: {"Apex Rewards Co": {"count": 2, "amount": 275000}, "HRCloud Partners": {"count": 1, "amount": 140000}, "CultureBridge": {"count": 2, "amount": 135000}}
partner_sourced_pipeline: count=5; amount=550000
quiet_partners: Recogniq, KudosWave, PeopleFirst Advisors, TotalPerk
active_no_deals: WorkWell Group
rule: every roster partner named exactly once; quiet partners get one line; no partners outside roster.
graded checks: all_partners · pipeline_amount · quiet_one_line

Model's actual answer

show the model's full answer
Apex Rewards Co — active: co-webinar locked for 09-15; two sourced opps in DS1. Pipeline: 2 deals (Deal-DDAAF2 180000 + Deal-2CF33E 95000 = 275000).

HRCloud Partners — active: integration referral closed security review; opp moved to DS2. Pipeline: 1 deal (Deal-F1CDA5 140000 = 140000).

CultureBridge — active: lunch-and-learn produced two sourced opps; both early stage. Pipeline: 2 deals (Deal-096E1D 60000 + Deal-067213 75000 = 135000).

WorkWell Group — active: planning call booked for 09-09; no sourced deals this period. Pipeline: 0 deals (0).

Recogniq — quiet; pipeline: 0 deals (0).

KudosWave — quiet; pipeline: 0 deals (0).

PeopleFirst Advisors — quiet; pipeline: 0 deals (0).

TotalPerk — quiet; pipeline: 0 deals (0).
rfp-answer-from-policyPASS 1.00

? The Question

Answer the 10 questionnaire items from the policy excerpts only. Cite the excerpt id for every answer. Where the excerpts do not answer the question, mark it unanswerable and say what document would; do not guess. Tone: vendor response, direct.
cost $0.8006 · 135s · in 15,293 / out 4,760 tok
✓ answered_count✓ unanswerable_flagged✓ citations✓ no_guess

✓ Correct Answer (ground truth)

answered_count: 7
answer_map: {"Q1": ["P1"], "Q2": ["P1"], "Q3": ["P2"], "Q4": ["P3"], "Q5": ["P4"], "Q6": ["P5"], "Q7": ["P6"]}
unanswerable: Q8, Q9, Q10
valid_citation_ids: P1, P2, P3, P4, P5, P6, P7, P8
rule: unanswerable items must be flagged and the document that would answer them named; do not guess.
graded checks: answered_count · unanswerable_flagged · citations · no_guess

Model's actual answer

show the model's full answer
Q1: Yes — AES-256 at rest. [P1]
Q2: Yes — TLS 1.2+ in transit. [P1]
Q3: Yes — SOC 2 Type II; available under NDA. [P2]
Q4: 90 days after contract termination (retention after termination = 90 days). [P3]
Q5: Published at trust.bonusly.com; 30 days advance notice before a new subprocessor. [P4]
Q6: Yes — SAML 2.0 SSO (Enterprise plan). [P5]
Q7: Daily backups; retained 35 days. [P6]
Q8: Unanswerable from provided policy excerpts; would be answered by an ISO 27001 certificate or formal compliance attestation. [Not in P1–P8]
Q9: Unanswerable from provided policy excerpts; would be answered by the Service Level Agreement (SLA) or MSA. [Not in P1–P8]
Q10: Unanswerable from provided policy excerpts; would be answered by a HIPAA compliance statement or BAA policy. [Not in P1–P8]
ops-maintenance
skill-file-reconciliationPASS 1.00

? The Question

Reconcile the skill set below against its manifest. Find and report (with severity CRITICAL/WARNING/INFO and an action type TRIM_DESC, UPDATE_BODY, DELETE_SKILL, MERGE, or REVIEW): (1) any two skills whose ALWAYS-trigger phrases overlap/duplicate, (2) any circular delegation chain between skills (name it), (3) any delegation target that does not exist (dangling, name it), (4) any version conflict and which skill should survive, (5) how many manifest descriptions exceed 1,024 characters, (6) any hardcoded page ids, dates, or person names in skill bodies, (7) manifest drift in BOTH directions (files with no manifest row, and manifest rows with no file). Make one proposal per finding; rewrite nothing.
cost $2.6815 · 269s · in 79,972 / out 12,349 tok
✓ duplicate_trigger_found✓ circular_chain✓ dangling_target✓ oversized_desc_count✓ hardcoded_values✓ manifest_drift✓ severity_and_action

✓ Correct Answer (ground truth)

graded checks: duplicate_trigger_found · circular_chain · dangling_target · oversized_desc_count · hardcoded_values · manifest_drift · severity_and_action

Model's actual answer

show the model's full answer
(1) Overlapping/duplicated ALWAYS-trigger phrases
- Severity: WARNING | Action: MERGE
  Pair: comms-drafter ↔ email-drafter
  Evidence: Both list triggers like “write me an email,” “draft a follow-up,” “help me reply,” “bump email,” “contract nudge,” and review/rewrites.
  Proposal: Merge scope so email-drafter owns all customer-facing email drafting/review; trim comms-drafter triggers to exclude email-specific asks (keep non-email external comms).

- Severity: WARNING | Action: TRIM_DESC
  Pair: pipeline-intelligence-report ↔ weekly-pipeline-report
  Evidence: Overlap on “pipeline report,” “pipeline update,” and “what’s the pipeline look like.”
  Proposal: Narrow weekly-pipeline-report triggers to “weekly/mid-month update” phrasing; narrow pipeline-intelligence-report to “full/score/tier/intelligence” phrasing; remove “pipeline update” from one of them to avoid double-fire.

- Severity: WARNING | Action: TRIM_DESC
  Pair: deal-strategy-coach ↔ email-drafter
  Evidence: deal-strategy-coach triggers on “draft a manager email” while email-drafter triggers on general email drafting.
  Proposal: Keep deal-strategy-coach trigger for “manager email” only when strategy/diagnosis is requested; add explicit “then hand off drafting to email-drafter” note; remove generic email-drafting trigger language from deal-strategy-coach.

(2) Circular delegation chains
- Severity: CRITICAL | Action: REVIEW
  Chain: email-drafter ↔ deal-strategy-coach
  Evidence: email-drafter points users to deal-strategy-coach for strategy; deal-strategy-coach instructs using email-drafter for manager-to-prospect emails.
  Proposal: Break the loop by making delegation one-way at execution time: deal-strategy-coach may call email-drafter for drafting; email-drafter should not auto-route to deal-strategy-coach unless the user explicitly asks for strategy.

(3) Dangling (delegation targets that do not exist in manifest)
- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-brand (referenced by comms-drafter, email-drafter, sales-forecast)
  Proposal: Either add bonusly-brand to the manifest or replace references with an installed branding skill.

- Severity: CRITICAL | Action: REVIEW
  Target: prospect-research-multithreading (referenced by deal-strategy-coach, email-drafter, comms-drafter)
  Proposal: Add to manifest (with Contact Lookup mode) or remove/replace references.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-data-questions (analysis-validator §12.4)
  Proposal: Add to manifest or replace with an existing data-validation skill.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-product-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-business-reporting-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-rewards-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-ppp-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-feature-flag-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-deal-desk-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: CRITICAL | Action: REVIEW
  Target: bonusly-datadog-questions (analysis-validator §12.4)
  Proposal: Add or replace.

- Severity: WARNING | Action: REVIEW
  Target: signalforge-reports org skill (referenced paths in pipeline-intelligence-report and weekly-pipeline-report)
  Proposal: Register as a skill in the manifest (organization/signalforge-reports) or change references to local static files.

(4) Version conflicts
- Severity: WARNING | Action: UPDATE_BODY
  Conflict: analysis-validator header “Version: 3.6” vs Validation Trail template line “Validator: analysis-validator v3.2.”
  Proposal: Standardize both to v3.6 (latest per header and changelog) and remove v3.2 mention.

(5) Manifest descriptions > 1,024 chars
- Severity: INFO | Action: REVIEW
  Count: 0/14 exceed 1,024 chars (threshold=1,024; max observed=1,006).
  Arithmetic: rows=14; over_limit=0; 0 ÷ 14 = 0.0%.

(6) Hardcoded page IDs, dates, or person names in bodies
- Severity: WARNING | Action: UPDATE_BODY
  partner-digest: Confluence Cloud ID 73fe98de-a4a3-4869-9f8a-bb1eeed4cf7f, Space ID 1958248479, Folder ID 2286616609; Slack user ID <@U03QLMBL7AR>; owner name “Amani Phipps.”
  Proposal: Externalize IDs to config; parameterize owner; replace hardcoded Slack user ID with variable lookup.

- Severity: WARNING | Action: UPDATE_BODY
  signalforge-feedback: Confluence Page ID 2295136266; SpaceId 2232811524; Parent 2234417154; Cloud ID 73fe98de-a4a3-4869-9f8a-bb1eeed4cf7f.
  Proposal: Move IDs to config or environment variables.

- Severity: WARNING | Action: REVIEW
  sales-forecast: Confluence Cloud ID 73fe98de-a4a3-4869-9f8a-bb1eeed4cf7f; SpaceId 2232811524; Parent 2232582148; title format “Q[N] [YEAR] …”.
  Proposal: Externalize IDs; keep title format but compute dynamically.

- Severity: WARNING | Action: REVIEW
  weekly-pipeline-report: Hardcoded person name in title “Ben Lavin.”
  Proposal: Replace with role-based label or parameter.

- Severity: WARNING | Action: REVIEW
  pipeline-intelligence-report: HubSpot org ID 1973303; hardcoded AE owner IDs list “verified May 2026.”
  Proposal: Resolve org/owner IDs dynamically at runtime; keep mapping as fallback only.

- Severity: INFO | Action: REVIEW
  analysis-validator: Multiple hardcoded dates (“Created: April 26, 2026”; “Last Updated: May 9, 2026”; changelog dates) and named individuals (e.g., “Escalate to Finance (Manish / Amani)”; extensive GTM roster).
  Proposal: Confirm these remain current; consider moving rosters/escalation contacts to a shared config that can be updated without editing the skill.

- Severity: INFO | Action: REVIEW
  partner-digest: Named partner contacts (Kelli, Jen Lee, Hani, Bryce, Sara) embedded in Gmail search guidance.
  Proposal: Replace with role-based examples or configurable contact lists.

- Severity: WARNING | Action: UPDATE_BODY
  stale-pipeline-report: Slack channel ID C0561C1JCPJ is hardcoded.
  Proposal: Move channel ID to config; allow override via input.

(7) Manifest drift (both directions)
- Severity: INFO | Action: REVIEW
  Files with no manifest row: 0
  Manifest rows with no file: 0
  Arithmetic: files listed=14; manifest rows=14; missing_files=0; extra_rows=0.
runbook-from-slack-threadPASS 1.00

? The Question

Turn the resolved incident thread into a runbook: ordered steps with the exact command or action taken, who ran it, how success was verified, and rollback for each step that changed state. Every step must trace to a message in the thread. Add nothing the thread does not contain; where the thread is unclear, mark the step as needing confirmation.
cost $0.8158 · 297s · in 15,467 / out 4,865 tok
✓ ordered_steps✓ rollback✓ needs_confirmation✓ sourced

✓ Correct Answer (ground truth)

steps: order=1; msg=M01; actor=Bryce Harmon; action=acknowledge PagerDuty alert, take IC; state_change=False; verified_by=M01 | order=2; msg=M02; actor=Farid Osman; action=check queue depth; command=bundle exec rake sidekiq:queue_depth; state_change=False; verified_by=M02 (48,213 pending) | order=3; msg=M04; actor=Farid Osman; action=pause auto-enqueue via feature flag; command=bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'; state_change=True; rollback=bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'; verified_by=M07 (queue depth falling) | order=4; msg=M05; actor=Elena Sinclair; action=cleared the dead set; state_change=True; needs_confirmation=thread gives no command or method for clearing the dead set | order=5; msg=M06; actor=Bryce Harmon; action=scale reward-worker to 6 replicas; command=kubectl scale deployment/reward-worker --replicas=6; state_change=True; rollback=kubectl scale deployment/reward-worker --replicas=3; verified_by=M07/M08 | order=6; msg=M08; actor=Cole Ingram; action=verify queue drained and error rate baseline; command=bundle exec rake sidekiq:queue_depth; state_change=False; verified_by=M08 (returns 0) … (+2 more)
ambiguous_step: order=4; msg=M05; mark=needs-confirmation
rule: no steps beyond what the thread contains; every step traces to a message id.
graded checks: ordered_steps · rollback · needs_confirmation · sourced

Model's actual answer

show the model's full answer
Runbook: Incident #incident-2026-08-29-reward-queue (resolved)

1) [M01] Acknowledge PagerDuty alert and take IC
   - Who: Bryce Harmon
   - Command/Action: Acknowledged PagerDuty alert for reward-worker queue depth > 10k; took Incident Commander role
   - Verification: PagerDuty acknowledgment recorded (per message)
   - Rollback: N/A

2) [M02] Measure queue depth
   - Who: Farid Osman
   - Command/Action: bundle exec rake sidekiq:queue_depth
   - Verification: Output reported reward queue at 48,213 pending jobs (normal < 500)
   - Rollback: N/A

3) [M03] Inspect dead set
   - Who: Farid Osman
   - Command/Action: Inspected dead set (method not specified) — found 112 jobs, all Redis::TimeoutError from around 13:58
   - Verification: Count 112 and error class/time window as stated
   - Rollback: N/A

4) [M04] Pause enqueue
   - Who: Farid Osman
   - Command/Action: bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)'
   - Verification: Not explicitly stated in thread — needs confirmation
   - Rollback: bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'

5) [M05] Clear dead set
   - Who: Elena Sinclair
   - Command/Action: Cleared out the dead set (exact console/command not specified) — needs confirmation
   - Verification: Not explicitly stated in thread — needs confirmation
   - Rollback: Not provided in thread — needs confirmation

6) [M06] Scale workers up
   - Who: Bryce Harmon
   - Command/Action: kubectl scale deployment/reward-worker --replicas=6 (was 3)
   - Verification: Subsequent queue depth decreasing reported [M07]
   - Rollback: kubectl scale deployment/reward-worker --replicas=3

7) [M07] Re-check queue depth trend
   - Who: Farid Osman
   - Command/Action: Measured queue depth again (method not restated)
   - Verification: Queue depth down to 9,400 and falling ~1,200/min (per message)
   - Rollback: N/A

8) [M08] Verify drain complete and errors normal
   - Who: Cole Ingram
   - Command/Action: bundle exec rake sidekiq:queue_depth; observed Datadog
   - Verification: Queue depth returned 0; error rate in Datadog back to baseline
   - Rollback: N/A

9) [M09] Re-enable enqueue
   - Who: Bryce Harmon
   - Command/Action: bin/rails runner 'FeatureFlag.enable(:auto_recognition_enqueue)'
   - Verification: Verified 40 new jobs processed cleanly in the next 3 minutes
   - Rollback: bin/rails runner 'FeatureFlag.disable(:auto_recognition_enqueue)' (rollback command referenced from [M04])

10) [M10] Scale workers back down
    - Who: Bryce Harmon
    - Command/Action: kubectl scale deployment/reward-worker --replicas=3
    - Verification: Queue stable at 0; incident resolved
    - Rollback: kubectl scale deployment/reward-worker --replicas=6 (scale-up command referenced from [M06])
datadog-incident-timelinePASS 1.00

? The Question

From the log slice, sequence the failure: first error with timestamp, the cascade in order, the service and job involved, and the Datadog query that would confirm the first error. State what the logs do not show.
cost $0.9869 · 162s · in 16,489 / out 6,163 tok
✓ first_error_ts✓ service_named✓ cascade_ordered✓ query✓ gaps_stated

✓ Correct Answer (ground truth)

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_order: service=reward-service; first_error_at=2026-09-03T14:01:12Z | service=sidekiq; first_error_at=2026-09-03T14:01:40Z | service=api-gateway; first_error_at=2026-09-03T14:03:05Z | service=web-app; first_error_at=2026-09-03T14:03:30Z
job_class_involved: RewardGiveJob
confirming_query: service:reward-service status:error "@message:Redis::TimeoutError"
logs_do_not_show: root cause of the Redis timeout, redis-server's own logs, infrastructure metrics (CPU/memory/network), any deploy or config change preceding the incident, who applied mitigation or when (no actor fields in logs)
clean_services: postgres
graded checks: first_error_ts · service_named · cascade_ordered · query · gaps_stated

Model's actual answer

show the model's full answer
First error
- 2026-09-03T14:01:12Z — reward-service — ERROR — Redis::TimeoutError: Connection to Redis at redis-primary:6379 timed out after 5s
- Arithmetic: 12 prior lines (13:55:13Z–13:59:30Z) are level=INFO; ERRORs before 14:01:12Z = 0

Cascade (in order)
1) 14:01:12Z — reward-service — Redis::TimeoutError (connection timed out)
2) 14:01:20Z, 14:01:30Z, 14:01:40Z — reward-service — Redis::TimeoutError: retry exhausted for RewardGiveJob
3) 14:01:40Z — sidekiq — ERROR — RewardGiveJob failed: Redis::TimeoutError; retrying in 60s
4) 14:01:46Z–14:02:57Z — sidekiq_jobs.csv — multiple RewardGiveJob failures (Redis::TimeoutError)
5) 14:02:28Z — sidekiq — ERROR — RewardGiveJob failed: Redis::TimeoutError; retrying
6) 14:02:30Z — sidekiq — WARN — Queue reward depth above 10,000
7) 14:02:36Z–14:05:50Z — sidekiq_jobs.csv — RecognitionDigestJob failures (Redis::TimeoutError)
8) 14:03:05Z — api-gateway — ERROR — 502 upstream timeout calling reward-service /gives
9) 14:03:30Z — web-app — ERROR — Give form submission failed: upstream 502 from api-gateway
10) 14:03:48Z, 14:04:13Z, 14:05:16Z, 14:06:52Z — api-gateway — ERROR — 502 upstream timeout calling reward-service
11) 14:04:45Z, 14:05:42Z, 14:06:49Z — web-app — ERROR — Give form submission failed: upstream 502
12) 14:22:10Z — reward-service — INFO — Redis connection restored; resuming job processing
13) 14:24:45Z — sidekiq — INFO — Queue reward depth below 500

Service and job involved
- Service: reward-service
- Job: RewardGiveJob (RecognitionDigestJob also impacted)

Datadog query to confirm the first error
- service:reward-service "Redis::TimeoutError" "redis-primary:6379"

What the logs do not show
- Root cause of the Redis::TimeoutError (no Redis/server/network logs or metrics).
- Any remediation action taken; only that the connection was later restored.
- Whether specific failed jobs were replayed/succeeded post-recovery (only queue depth drops).
- Broader user impact or other endpoints beyond /gives.
feature-flag-state-summaryPASS 1.00

? The Question

Summarize the state of the listed feature flags: what each controls per the code excerpt, which companies or segments have it on, targeting rules, and any flag with no code reference or no targets. Company counts must match the export. Do not describe a flag that is not in the export.
cost $0.9700 · 181s · in 15,331 / out 6,167 tok
✓ orphans✓ no_targets✓ counts_match✓ no_invented

✓ Correct Answer (ground truth)

flags: {"recognition_streaks_v2": {"state": "on", "targeting_rules": "segment:beta_companies", "company_count": 42}, "points_budget_guardrails": {"state": "on", "targeting_rules": "all_companies", "company_c
code_referenced: recognition_streaks_v2, points_budget_guardrails, slack_dm_nudges, redeem_flow_redesign, analytics_dashboard_v3, ms_teams_app_v2
orphan_flags_no_code_reference: legacy_give_modal, survey_boosters_q3, paused_offboard_cleanup
flags_with_no_targets: paused_offboard_cleanup
rule: company counts must equal the export; do not describe flags absent from the export.
graded checks: orphans · no_targets · counts_match · no_invented

Model's actual answer

show the model's full answer
recognition_streaks_v2
- Controls (per code): In app/models/recognition.rb, enables StreakTracker.record(give).
- On for: segment:beta_companies (42).
- Targeting rules: segment:beta_companies.
- Arithmetic: on-targets = 42 (from company_count).
- Code reference: present.

points_budget_guardrails
- Controls (per code): In app/services/budget_service.rb, enforces BudgetService.enforce!(giver, points).
- On for: all_companies (220).
- Targeting rules: all_companies.
- Arithmetic: on-targets = 220 (from company_count).
- Code reference: present.

slack_dm_nudges
- Controls (per code): In app/jobs/nudge_job.rb, runs SlackDm.send_nudge(user).
- On for: segment:region_na (87).
- Targeting rules: segment:region_na.
- Arithmetic: on-targets = 87 (from company_count).
- Code reference: present.

redeem_flow_redesign
- Controls (per code): In app/controllers/redeem_controller.rb, shows RedeemV2Component when enabled; otherwise RedeemV1Component.
- On for: targeted_list (12). Company names not provided.
- Targeting rules: targeted_list.
- Arithmetic: off by default + targeted_list 12 ⇒ on-targets = 12 (from company_count).
- Code reference: present.

analytics_dashboard_v3
- Controls (per code): In app/controllers/analytics_controller.rb, uses AnalyticsV3 dashboard when enabled.
- On for: segment:tier_three (65).
- Targeting rules: segment:tier_three.
- Arithmetic: on-targets = 65 (from company_count).
- Code reference: present.

ms_teams_app_v2
- Controls (per code): In app/services/teams_installer.rb, runs TeamsAppV2.install(company).
- On for: targeted_list (9). Company names not provided.
- Targeting rules: targeted_list.
- Arithmetic: off by default + targeted_list 9 ⇒ on-targets = 9 (from company_count).
- Code reference: present.

legacy_give_modal
- Controls (per code): No code reference in the excerpt.
- On for: segment:legacy_plan (14).
- Targeting rules: segment:legacy_plan.
- Arithmetic: state off + segment size 14 ⇒ on-targets = 14 (from company_count).
- Notes: no code reference.

survey_boosters_q3
- Controls (per code): No code reference in the excerpt.
- On for: segment:legacy_plan (7).
- Targeting rules: segment:legacy_plan.
- Arithmetic: on-targets = 7 (from company_count).
- Notes: no code reference.

paused_offboard_cleanup
- Controls (per code): No code reference in the excerpt.
- On for: none (0).
- Targeting rules: none specified.
- Arithmetic: state off + no targeting ⇒ on-targets = 0 (from company_count).
- Notes: no code reference; no targets.
nda-triagePASS 1.00

? The Question

Triage each NDA as GREEN (standard approval), YELLOW (counsel review), or RED (full legal review). Cite the clause that drives each classification by quoting it. Catch embedded non-solicits, non-competes, missing carve-outs, and unusual term or governing law. One line of reasoning per NDA.
cost $1.2809 · 228s · in 15,371 / out 8,753 tok
✓ green✓ yellow✓ red✓ non_solicit_caught✓ clause_quoted✓ correct_labels

✓ Correct Answer (ground truth)

classifications: {"NDA-1": {"classification": "GREEN", "driving_reason": "standard mutual NDA: 2-year term, standard carve-outs, Delaware law", "driving_clause_quote": "Carve-outs: information that (a) is or becomes p
non_solicit_in: NDA-2
checks: classification_per_nda, clause_quotes_exist_in_document, non_solicit_caught, carveouts_checked
graded checks: green · yellow · red · non_solicit_caught · clause_quoted · correct_labels

Model's actual answer

show the model's full answer
NDA-1 — GREEN — Mutual NDA with standard carve-outs and Delaware law; no restrictive covenants; max confidentiality window = 2 + 3 = 5 years. Clause: "Carve-outs: information that (a) is or becomes publicly available through no breach, (b) was known prior to disclosure, (c) is received from a third party without duty of confidence, (d) is independently developed, or (e) must be disclosed by law or court order." Term clause: "Term: two (2) years from the Effective Date; obligations survive for three (3) years after termination."

NDA-2 — YELLOW — Embedded non-solicitation; duration = 3 years (term) + 18 months = 36 + 18 = 54 months (4.5 years). 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."

NDA-3 — RED — One-way confidentiality with no carve-outs and a 3-year non-compete, plus exclusive Ireland governing law/jurisdiction; confidentiality term = 5 years. Clauses: "One-way confidentiality in favor of [PARTY C]. Term: five (5) years." | "Non-compete: "For a period of three (3) years following the Effective Date, Recipient shall not, directly or indirectly, engage in or provide services to any business that competes with Discloser's business."" | "This Agreement shall be governed by and construed in accordance with the laws of the Republic of Ireland, and the parties submit to the exclusive jurisdiction of its courts." | "No confidentiality carve-outs are stated in this Agreement."