Migrate Genesys CX Cloud TEI study to the pattern; retire Streamlit app
studies/202512_GenesysCX -> studies/202512_TEI_Genesys_CX_Cloud, rebuilt as pattern Variant 4 (TEI composite reproduction): - teicalc/ self-contained engine: Forrester's tables as the never-edited verbatim anchor (incl. the p.14 typo note and the $0 AI-token line), generic model/scenarios/staging carried over from the Amazon Connect study, ClientDrivers overlay (agents / weekly interactions / revenue, flat composite so no growth re-base) with ai_tokens_annual as a direct input for the token line the published study models at $0 - one deliverable notebook (business_case.ipynb): widget-pair sidebar drivers incl. the AI-token price, published-vs-overlay KPI columns, cash-flow/waterfall/scenario charts, verification gate, backstage JSON data appendix - gate + tests reproduce the published totals within $2: NPV $10.8M / ROI 266% (engine $10,783,466 / 265.79%; payback 3.3 months, not headlined in the PDF); 29 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, PALLADIUM_GENESYSCX_* keys, ATHENA_EXPECTED reconciliation) deleted; git history preserves it With the last legacy study migrated, the retirement lands too: - app/ (Streamlit UI) and core/notebook_helpers deleted; nothing else imported them - streamlit stripped from pyproject extras, requirements.txt, Makefile; .env.example reduced to the Athena keys; 00_setup.ipynb and core/bootstrap.py repointed at the pattern studies - root README reworked: self-contained studies + slim core/ Athena toolkit (tei_client, calculations, export, cli) All suites green: Genesys 29, Amazon Connect 27, CTM 55, template 7, root 58. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,10 +7,11 @@ From *any* notebook in the repo (root, ``studies/<slug>/notebooks/``, …)::
|
||||
pal = init() # loads .env, builds client, tests it
|
||||
pal.client.list_reports()
|
||||
|
||||
or, for a study notebook::
|
||||
|
||||
pal = init(study="202602_AmazonConnect")
|
||||
pal.config.STUDY_SLUG, pal.seed_data.BENEFITS
|
||||
(Pattern studies under ``studies/`` are self-contained — they carry their
|
||||
own engine and venv and never import ``core``. The legacy ``study=``
|
||||
parameter loaded a study's ``config.py``/``seed_data.py``; those modules
|
||||
were retired with the study migrations, so ``init()`` is now purely the
|
||||
Athena connection bootstrap.)
|
||||
|
||||
If ``core`` itself can't be imported (fresh kernel, notebook cwd deep in the
|
||||
tree), put this two-liner first — it is the only path juggling left anywhere::
|
||||
|
||||
Reference in New Issue
Block a user