Migrate Amazon Connect TEI study to the Mercury Notebook Pattern
studies/202602_AmazonConnect -> studies/202602_TEI_Amazon_Connect, rebuilt as pattern Variant 4 (TEI composite reproduction): - teicalc/ self-contained engine (stdlib-only): Forrester's tables as the never-edited verbatim anchor, NPV/ROI/payback + risk adjustment transplanted from core/calculations, ClientDrivers overlay (contacts/ agents/fixed driver map, growth re-base, identity at composite scale), scenario stress with core-identical semantics - one deliverable notebook (business_case.ipynb): widget-pair sidebar drivers, published-vs-overlay KPI columns, cash-flow/waterfall/scenario charts, verification gate, backstage JSON data appendix - gate + tests reproduce the published totals within PDF rounding: NPV $78.7M / ROI 342% / payback <6 months (engine $78,713,492 / 342.48% / 0.7 months); 27 study tests, headless nbconvert green, stage simulation leak-free, exports carry the appendix - old Athena workflow (00_provision..04_export, config.py, seed_data.py) deleted; git history preserves it; root test fixture repointed to teicalc.anchor - docs: study README rewritten; root README points new studies at template/MercuryNotebook; pattern doc stale ctm-token-calculator paths now cite studies/202607_CTM_GenesysCX; Variant 4 cites this study as its realized reference Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -22,11 +22,16 @@ def _env(monkeypatch):
|
||||
|
||||
@pytest.fixture
|
||||
def amazon_connect_seed():
|
||||
"""Load the Amazon Connect study's seed data."""
|
||||
sys.path.insert(0, str(ROOT / "studies" / "202602_AmazonConnect"))
|
||||
"""Load the Amazon Connect study's verbatim anchor (post-migration the
|
||||
study is self-contained; teicalc is stdlib-only, so importing it here
|
||||
needs no study venv — the row shape matches the old seed_data)."""
|
||||
from types import SimpleNamespace
|
||||
|
||||
sys.path.insert(0, str(ROOT / "studies" / "202602_TEI_Amazon_Connect"))
|
||||
try:
|
||||
import seed_data # type: ignore[import-not-found]
|
||||
return seed_data
|
||||
from teicalc import anchor # type: ignore[import-not-found]
|
||||
return SimpleNamespace(BENEFITS=anchor.BENEFITS_VERBATIM,
|
||||
COSTS=anchor.COSTS_VERBATIM)
|
||||
finally:
|
||||
# Leave the path alone — many tests will use the seed
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user