# CX AI Advisory Diagnostic — Build Spec v1.0

> Source record for this study (received 2026-07-19, owner Robert
> Helewka). Kept verbatim in intent; §2 layout was adapted to the Mercury
> Notebook Pattern (study package `diaglib/`, generated notebook,
> `pyproject.toml` instead of requirements.txt) — see README for the
> deviations log.

**Purpose:** Facilitator's cockpit for the CX AI Advisory diagnostic
workshop. Captures capability scores across 12 competencies, ingests
client operational baseline, computes value-at-stake bounded by
capability gaps, exports structured data.

**Users:** Single facilitator (Robert) running a live half-day workshop
with 4–8 client participants.

**NOT for:** Client self-service, unattended use, public deployment, SaaS.

## 1. Stack

Python 3.11+, Jupyter Notebook, Mercury (mljar-mercury), pandas, plotly
(matplotlib fallback), pydantic, PyYAML. Runs locally. No server, no
auth, no database.

## 2. Structure

Study package (`diaglib/`) with models / scoring / value_math / visuals /
export; `configs/` (base + industry overlays); one deliverable notebook;
gitignored `exports/`.

## 3. Data model

`Engagement` (id `client_slug_YYYY-MM-DD`, client, industry config,
facilitator, date, participants, baseline, scores, computed value,
notes) · `Participant` (name, role, function cx|it|ops|finance|other) ·
`OperationalBaseline` (annual_contact_volume, blended_cost_per_contact,
agent_headcount, annual_attrition_rate, current_containment_rate,
average_handle_time_seconds; optional csat_baseline, revenue_at_risk;
per-field confidence known|estimated|unknown) · `CompetencyScore`
(competency, dimension, score 1–5, evidence line, scorer role,
timestamp) · `ValueAtStake` (theoretical annual low/high, realizable
18-mo low/high, trapped low/high, binding constraints, unlock sequence)
· `UnlockMove` (competencies, level lift, cost range, weeks, value
unlocked range).

## 4. Configs

**base.yaml** — 12 competencies across 4 dimensions, each with
description, failure vignette, level descriptors 1–5; capping heuristic
(weakest foundational score → realization band): 1: 0.00–0.15,
2: 0.25–0.40, 3: 0.50–0.65, 4: 0.65–0.85, 5: 0.80–1.00; foundational
competencies: process_discovery, data_readiness, technical_architecture.

**contact_center.yaml** — value drivers: deflection/containment lift
(+15–35 pts × volume × cost/contact), AHT reduction (15–25%), attrition
reduction (10–20%, $15K/replacement default); unlock costs per
level-lift per foundational competency (sparse OK).

**financial_services.yaml** — stub for MVP.

## 5. Notebook sections

0 Setup (hidden) · 1 Engagement form · 2 Operational baseline with
confidence flags · 3 Capability scoring, one screen per competency
(name, description, vignette, level descriptors; score + evidence) ·
4 Live analysis · 5 Visuals (heatmap, value bands, trapped/realizable
split, unlock chart) · 6 Export button → JSON + CSV.

## 6. Value math

theoretical = Σ driver ranges → realization band from weakest
foundational score → realizable_18mo = theoretical × factor × 1.5 →
trapped = theoretical − realizable run-rate → binding constraints = all
foundational competencies at the weakest score → unlock sequence: lift
binding constraints one level, recompute factor, up to 3 moves.

Guard rails: all outputs are ranges; explicit warnings on 🔴-unknown
inputs; money display ≤ 2 significant figures.

## 7–8. Visuals & exports

Room-facing interactive plotly. Heatmap 4×3 with scores + evidence
hover; horizontal value bands (theoretical light / realizable dark,
trapped labeled); split chart; unlock cost-vs-value chart.
`exports/{engagement_id}.json` (full Engagement — source of truth) +
`.csv` (one row per competency: engagement_id, client_name, industry,
workshop_date, competency_id, dimension, score, evidence,
is_foundational, is_binding_constraint).

## 9. Non-goals (MVP)

No auth · no multi-stakeholder independent scoring (v1.1) · no LLM
recommendations · no PDF · no history dashboard · no cloud · no SaaS ·
no client-facing scoring.

## 10. Acceptance

Launch Mercury → contact_center → new engagement; enter client info +
4–8 participants; six baseline numbers with confidence flags; score all
12 competencies with evidence; four visuals render live; Export writes
valid JSON + CSV; (nice-to-have) reload saved JSON; edit YAML ranges →
recomputed outputs. Done = end-to-end in under 90 minutes with mock
inputs and sensible output.

## 12. Open questions (Robert)

- Benchmark citations for §4 ranges before first real client (Alan's
  research subagent offer pending go-ahead).
- $15K cost-per-replacement default — config-driven, tune per engagement.
- Multi-stakeholder scoring — v1.1 if workshops routinely score
  independently; don't build now.
