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>
82 lines
3.4 KiB
TOML
82 lines
3.4 KiB
TOML
# Mercury app-shell theme — NTT DATA brand (light), modern surfaces.
|
|
# See docs/brand.md for the source palette.
|
|
#
|
|
# Loaded from the directory where you launch `mercury` (this project root);
|
|
# restart the server to apply changes. Only keys in mercury/config.py
|
|
# CSS_VARIABLE_MAP emit a CSS variable — anything else in DEFAULT_THEME is
|
|
# either derived or component-baked (e.g. success/warning/danger, slider
|
|
# track, widget bg) and silently no-ops here. Omitted keys are derived
|
|
# from the ones below.
|
|
|
|
[main]
|
|
title = "Genesys CX Cloud TEI — Business Case"
|
|
favicon_emoji = "📊"
|
|
footer = "Genesys CX Cloud TEI study (Forrester, Dec 2025)"
|
|
notebooks_button_label = "Analyses"
|
|
|
|
[welcome]
|
|
header = "Genesys CX Cloud TEI"
|
|
message = """
|
|
Interactive reproduction of Forrester's *Total Economic Impact™ Of CX
|
|
Cloud* composite ($10.8M NPV · 266% ROI). The published study is the
|
|
verbatim anchor — including the AI-token line it models at $0; tune the
|
|
🟡 client drivers live (and price the tokens), then export the
|
|
personalized report source with `python scripts/export_report.py`.
|
|
"""
|
|
|
|
[theme]
|
|
# ── Type — Georgia headings, Arial body. Both web-safe system fonts,
|
|
# so no font_url / network fetch. Georgia ships only normal+bold, so
|
|
# heading weight is 700 (the default 800 would render as faux-bold). ──
|
|
font_family = "Arial, 'Helvetica Neue', Helvetica, sans-serif"
|
|
heading_font_family = "Georgia, 'Times New Roman', Times, serif"
|
|
font_size = "15px"
|
|
font_weight = "normal"
|
|
heading_font_weight = "700"
|
|
|
|
# ── Text — NTT ink scale ──
|
|
text_color = "#2e404d" # body
|
|
muted_text_color = "#586671" # captions / secondary
|
|
|
|
# ── Surfaces — white content floating on a soft neutral canvas (depth).
|
|
# For a strictly-white page instead, set background_color = "#ffffff". ──
|
|
background_color = "#f4f5f6" # outer page
|
|
content_background_color = "#ffffff" # notebook column
|
|
surface_color = "#ffffff"
|
|
card_background_color = "#f8f8f8" # brand card
|
|
border_color = "#d5d9db" # brand border
|
|
border_radius = "10px" # modern rounding
|
|
|
|
# ── Accents — Future Blue. primary_color also drives the Run button + focus. ──
|
|
primary_color = "#0072bc"
|
|
accent_color = "#0072bc"
|
|
focus_border_color = "#0072bc"
|
|
hover_background_color = "#eef5fb" # light blue tint
|
|
selected_background_color = "#dcecfa"
|
|
|
|
# ── Sidebar — clean white, hairline divider ──
|
|
sidebar_background_color = "#ffffff"
|
|
sidebar_text_color = "#2e404d"
|
|
sidebar_title_color = "#151d2c"
|
|
sidebar_shadow = "1px 0 0 #d5d9db"
|
|
|
|
# ── Top bar — deep NTT navy (brand heading-primary) ──
|
|
topbar_background_color = "#151d2c"
|
|
topbar_text_color = "#ffffff"
|
|
topbar_border_color = "rgba(255,255,255,0.08)"
|
|
|
|
# ── Footer ──
|
|
footer_background_color = "#ffffff"
|
|
footer_text_color = "#586671"
|
|
footer_border_color = "#d5d9db"
|
|
|
|
# ── Run button — subtle brand-blue gradient (else derives from primary) ──
|
|
run_button_background = "linear-gradient(180deg, #0087dc 0%, #0072bc 100%)"
|
|
run_button_background_hover = "linear-gradient(180deg, #1a93e6 0%, #0079c8 100%)"
|
|
run_button_text_color = "#ffffff"
|
|
|
|
# ── Depth — soft, navy-tinted shadows (modern) ──
|
|
shadow_sm = "0 1px 2px rgba(21,29,44,0.05)"
|
|
shadow_md = "0 6px 18px rgba(21,29,44,0.08)"
|
|
shadow_lg = "0 16px 40px rgba(21,29,44,0.10)"
|