# 02 — Findings Analysis

**Dataset:** 43 partners · 200 opportunities · 54 deal-regs · 300 touchpoints · mid-cutover state
**Analysis script:** `../analysis/run.py` · **Outputs:** `kpis.json`, `findings.json`

## Headline

- **Total pipeline:** $11.59B
- **Partner-involved:** $7.10B (**61.3%** of total — the channel-led thesis is working)
  - Sourced: $4.67B (40.3%)
  - Influenced: $2.43B (21.0%)
- **Direct:** $5.05B (43.5%)
- **Won pipeline:** $1.16B · **Open:** $10.43B
- **Approved deal-regs:** 28 of 54 submitted (52%)

## Partner-sourced vs partner-influenced

Sourced pipeline is ~1.9x influenced. That's healthy — partners are not just "assisting" deals, they're bringing them. But it also means **attribution disputes will concentrate on the sourced line**, because that's where commission math happens. The governance gate must fire *before* Clari reads the row, not after.

## Top 5 partners (by pipeline $)

| Rank | Partner | Tier | Type | Pipeline |
|---|---|---|---|---|
| 1 | Azure Dynamics | Premier | ISV | $733.7M |
| 2 | Titan Alliance | Registered | Hyperscaler_Alliance | $626.9M |
| 3 | Helix Labs | Registered | Reseller | $471.3M |
| 4 | Apex Labs | Registered | ISV | $439.1M |
| 5 | Quantum AI | Premier | Hyperscaler_Alliance | $322.1M |

**Read:** #2, #3, #4 are *Registered* tier carrying Premier-sized pipeline. Tier-progression automation is broken (see Finding 6). The program is subsidizing deals at the wrong margin.

## Data-quality findings

### 1. Attribution gap — $43M at risk
2 opps flagged `partner_role=sourced` with no `partner_id`. HubSpot legacy mapping dropped during sync. Small count, but each is a blocked commission. **Fix:** required-field validation + bulk backfill from `Hubspot_Legacy_Id__c`.

### 2. Missing deal-reg — $1.58B exposed
**This is the biggest finding in the dataset.** 16 sourced opps with *zero* deal-reg filed. Partners carrying $1.58B of pipeline have no contractual protection and no provable claim to the credit. If any one of these deals closes and the partner asks for commission, we have no defensible record. **Fix:** validation rule blocking Stage=Qualify until Approved deal-reg exists.

### 3. Orphan deal-regs — 8 records
Deal-regs filed against opps not marked sourced. Either opp-role is stale or the deal-reg was filed post-direct. **Fix:** reconciliation workflow that fires on deal-reg insert — if opp.partner_role ≠ sourced, route to Partner Ops queue.

### 4. Duplicate partners — 7 name collisions
Same partner name, different partner_ids. Classic HubSpot-legacy vs SF-native split. Pipeline and tier progress are both fragmented across two records. **Fix:** merge script keyed on `Hubspot_Legacy_Id__c`, external-id deduplication job.

### 5. Ghost attribution — $97.6M unprovable
2 opps marked influenced with zero touchpoints. In Clari these inflate the influenced figure. **Fix:** trigger on Opportunity save — if `Partner_Role__c=influenced` and touchpoint count = 0, block save. (This is prevention, not cleanup.)

### 6. Tier mismatch — 48 cases
Partners carrying pipeline larger than their tier ceiling. Program economics are upside-down — we're giving Registered-tier margins to partners doing Premier-tier work. **Fix:** nightly tier-eligibility job reading TTM roll-up.

### 7. Cutover double-count — 0 accounts (in this sample)
No accounts appear in both systems in this synthetic sample, but the controls are built for it. See `04-governance-memo.md` for the dual-write validator design.

## Bottom risks (where I'd focus Week 1)

1. **$1.58B exposed pipeline with no deal-reg** — one validation rule closes most of it.
2. **48 tier-mismatched partners** — the program is paying the wrong rate on half the partner book.
3. **7 duplicate partners** — every dashboard is wrong until these merge.
