63 lines
3.0 KiB
YAML
63 lines
3.0 KiB
YAML
# CX AI Advisory Diagnostic — contact-center industry overlay.
|
|
#
|
|
# Value-driver ranges are 🟡 placeholder benchmarks pending citation work
|
|
# (see docs/build_spec_v1.md §12): before running with a real client, back
|
|
# each range with public sources or "based on N engagements" framing.
|
|
# `value_formula` strings are documentation of the math implemented in
|
|
# diaglib/value_math.py (dispatched on `kind`) — they are carried into
|
|
# exports verbatim, not evaluated.
|
|
|
|
extends: base
|
|
industry: contact_center
|
|
display_name: "Contact Center"
|
|
|
|
value_drivers:
|
|
- id: deflection_lift
|
|
name: "Deflection / containment improvement"
|
|
kind: containment_lift
|
|
baseline_field: current_containment_rate
|
|
lift_range_pts_low: 0.15
|
|
lift_range_pts_high: 0.35
|
|
value_formula: "annual_contact_volume * lift_pts * blended_cost_per_contact"
|
|
source: "Public benchmarks; virtual agent maturity studies" # 🟡 placeholder
|
|
|
|
- id: aht_reduction
|
|
name: "Average handle time reduction"
|
|
kind: aht_reduction
|
|
baseline_field: average_handle_time_seconds
|
|
reduction_pct_low: 0.15
|
|
reduction_pct_high: 0.25
|
|
value_formula: "annual_contact_volume * (baseline_seconds * reduction_pct) * (blended_cost_per_contact / baseline_seconds)"
|
|
source: "Agent assist / copilot case data" # 🟡 placeholder
|
|
|
|
- id: attrition_reduction
|
|
name: "Attrition reduction"
|
|
kind: attrition_reduction
|
|
baseline_field: annual_attrition_rate
|
|
reduction_pct_low: 0.10
|
|
reduction_pct_high: 0.20
|
|
cost_per_replacement_default: 15000 # 🟡 industry-tunable per engagement
|
|
value_formula: "agent_headcount * (annual_attrition_rate * reduction_pct) * cost_per_replacement"
|
|
source: "Job quality / copilot studies" # 🟡 placeholder
|
|
|
|
# ── Unlock costs ───────────────────────────────────────────────────────
|
|
# Rough cost/time ranges per one-level lift, per foundational competency.
|
|
# 🟡 estimates — sparse is OK for MVP; a missing lift renders as
|
|
# "cost not configured" in the unlock sequence rather than a guess.
|
|
unlock_costs:
|
|
data_readiness:
|
|
lift_1_to_2: {cost_low: 150000, cost_high: 300000, weeks: 8}
|
|
lift_2_to_3: {cost_low: 300000, cost_high: 600000, weeks: 12}
|
|
lift_3_to_4: {cost_low: 400000, cost_high: 800000, weeks: 16}
|
|
lift_4_to_5: {cost_low: 500000, cost_high: 1000000, weeks: 20}
|
|
process_discovery:
|
|
lift_1_to_2: {cost_low: 80000, cost_high: 160000, weeks: 6}
|
|
lift_2_to_3: {cost_low: 120000, cost_high: 250000, weeks: 8}
|
|
lift_3_to_4: {cost_low: 150000, cost_high: 300000, weeks: 10}
|
|
lift_4_to_5: {cost_low: 200000, cost_high: 400000, weeks: 12}
|
|
technical_architecture:
|
|
lift_1_to_2: {cost_low: 100000, cost_high: 200000, weeks: 8}
|
|
lift_2_to_3: {cost_low: 200000, cost_high: 400000, weeks: 10}
|
|
lift_3_to_4: {cost_low: 250000, cost_high: 500000, weeks: 12}
|
|
lift_4_to_5: {cost_low: 350000, cost_high: 700000, weeks: 16}
|