164 lines
5.9 KiB
Python
164 lines
5.9 KiB
Python
"""
|
||
Seed dataset for the Amazon Connect TEI (Forrester, Feb 2026).
|
||
|
||
Each row uses the friendly value shape accepted by
|
||
``core.tei_client.TEIClient.update_values`` (see ``_rows_from_value``),
|
||
so it can be passed straight to
|
||
``client.update_values(public_id, BENEFITS + COSTS)``.
|
||
|
||
Numbers are the *nominal* (pre-risk-adjustment) values from the PDF —
|
||
risk adjustment is stored as a factor and applied by Athena's
|
||
calculator (or, locally, by ``core.calculations.risk_adjust_*``).
|
||
|
||
References for the totals (from the PDF):
|
||
|
||
Benefits (3-yr risk-adjusted PV @ 10%): $101,696,791
|
||
Costs (3-yr risk-adjusted PV @ 10%): $ 22,983,076
|
||
NPV $ 78,713,715
|
||
ROI 342%
|
||
Payback <6 months
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
#: 3-year nominal benefit cashflows. Risk adjustment factor is stored
|
||
#: separately; calculator applies it.
|
||
BENEFITS: list[dict] = [
|
||
{
|
||
"field_key": "ai_contact_resolution",
|
||
"table": "benefits",
|
||
"label": "AI-driven contact resolution efficiency",
|
||
"category": "Productivity",
|
||
"year_values": {"1": 13_911_040, "2": 23_932_480, "3": 37_797_760},
|
||
"risk_adjustment": 0.15,
|
||
"notes": (
|
||
"PDF Section At/Atr. Composite: 20M annual contacts, 30% YoY "
|
||
"growth, 75% calls, 10-min AHT with legacy. Connect drops AHT "
|
||
"12% Y1 and shifts traffic to chat/self-service. 80% "
|
||
"productivity recapture. Risk adj 15% (legacy performance, "
|
||
"implementation depth, integration scope, growth)."
|
||
),
|
||
},
|
||
{
|
||
"field_key": "ai_content_sentiment",
|
||
"table": "benefits",
|
||
"label": "AI-powered content and sentiment analysis savings",
|
||
"category": "Productivity",
|
||
"year_values": {"1": 4_586_620, "2": 5_358_412, "3": 6_291_680},
|
||
"risk_adjustment": 0.15,
|
||
"notes": (
|
||
"PDF Section Bt/Btr. Auto post-contact summaries reclaim ~60s "
|
||
"per call; QA scaled from 1–3% to 100%; supervisors freed from "
|
||
"manual review. Risk adj 15%."
|
||
),
|
||
},
|
||
{
|
||
"field_key": "ai_forecasting_supervision",
|
||
"table": "benefits",
|
||
"label": "AI-enabled forecasting, agent scheduling, and supervision",
|
||
"category": "Productivity",
|
||
"year_values": {"1": 6_651_680, "2": 9_133_760, "3": 12_391_712},
|
||
"risk_adjustment": 0.15,
|
||
"notes": (
|
||
"PDF Section Ct/Ctr. ML-WFM yields 5% agent FTE optimization "
|
||
"and supervisors managing 20% more agents (10→12). 80% "
|
||
"productivity recapture. Risk adj 15%."
|
||
),
|
||
},
|
||
{
|
||
"field_key": "data_driven_profit_lift",
|
||
"table": "benefits",
|
||
"label": "Data-driven profit lift with increased conversion",
|
||
"category": "Revenue",
|
||
"year_values": {"1": 1_200_000, "2": 1_560_000, "3": 2_028_000},
|
||
"risk_adjustment": 0.20,
|
||
"notes": (
|
||
"PDF Section Dt/Dtr. Composite revenue $10B Y1 (+30% YoY); "
|
||
"5% from outbound contact-center marketing; conversion lifts "
|
||
"from 10% to 12% (+20% relative); 12% operating margin. "
|
||
"Risk adj 20%."
|
||
),
|
||
},
|
||
{
|
||
"field_key": "legacy_solution_savings",
|
||
"table": "benefits",
|
||
"label": "Legacy solution cost savings",
|
||
"category": "Cost Savings",
|
||
"year_values": {"1": 6_177_600, "2": 8_030_880, "3": 10_440_144},
|
||
"risk_adjustment": 0.20,
|
||
"notes": (
|
||
"PDF Section Et/Etr. Avg legacy license $180/agent-month × "
|
||
"(agents+supervisors) × 12, plus 30% overhead for infra & "
|
||
"third-party tools. Risk adj 20%."
|
||
),
|
||
},
|
||
]
|
||
|
||
|
||
#: Costs include an "initial" (year-0, undiscounted) component for
|
||
#: implementation. Cost risk adjustments are applied *upward*.
|
||
COSTS: list[dict] = [
|
||
{
|
||
"field_key": "amazon_connect_usage",
|
||
"table": "costs",
|
||
"label": "Amazon Connect usage cost",
|
||
"category": "Subscription",
|
||
"initial": 0,
|
||
"year_values": {"1": 6_456_448, "2": 7_951_164, "3": 9_832_961},
|
||
"risk_adjustment": 0.05,
|
||
"notes": (
|
||
"PDF Section Ft/Ftr. Telephony $0.0106/min + Unlimited AI "
|
||
"$0.0380/min on minutes that reach an agent, plus chat at "
|
||
"$0.0100/message (10 messages/chat). Risk adj 5%."
|
||
),
|
||
},
|
||
{
|
||
"field_key": "implementation_migration",
|
||
"table": "costs",
|
||
"label": "Implementation and migration cost",
|
||
"category": "Implementation",
|
||
"initial": 1_087_500,
|
||
"year_values": {"1": 188_333, "2": 188_333, "3": 0},
|
||
"risk_adjustment": 0.10,
|
||
"notes": (
|
||
"PDF Section Gt/Gtr. 6-month initial migration: 5 internal "
|
||
"FTE @ $115k + $800k pro-services. Y1/Y2 M&A integrations: 2 "
|
||
"months × 2 FTE + $150k pro-services. Risk adj 10%."
|
||
),
|
||
},
|
||
{
|
||
"field_key": "ongoing_management",
|
||
"table": "costs",
|
||
"label": "Ongoing management",
|
||
"category": "Operations",
|
||
"initial": 0,
|
||
"year_values": {"1": 256_200, "2": 187_200, "3": 187_200},
|
||
"risk_adjustment": 0.15,
|
||
"notes": (
|
||
"PDF Section Ht/Htr. Y1: 5 IT/PM @ 30% × $115k + 5 business "
|
||
"users @ 30% × $55,800. Y2/Y3: 3 IT/PM @ 30% + 5 business "
|
||
"users @ 30%. Risk adj 15%."
|
||
),
|
||
},
|
||
]
|
||
|
||
|
||
#: Top-line composite assumptions — for the 03_business_case narrative.
|
||
ASSUMPTIONS: dict = {
|
||
"agents_fte": 2_000,
|
||
"supervisors_fte": 200,
|
||
"annual_contacts_y1": 20_000_000,
|
||
"growth_rate": 0.30,
|
||
"call_share": 0.75,
|
||
"aht_legacy_minutes": 10,
|
||
"agent_salary": 45_760,
|
||
"supervisor_salary": 55_800,
|
||
"discount_rate": 0.10,
|
||
"analysis_years": 3,
|
||
}
|
||
|
||
|
||
def all_values() -> list[dict]:
|
||
"""Return BENEFITS + COSTS — handy single-call payload for update_values."""
|
||
return BENEFITS + COSTS
|