/* ============================================================
   FACTS — the single source of truth for every number on this site.

   Rule from the briefing (0/1-Regel): no outward claim without an
   artifact behind it. A number that cannot name its source cannot be
   added here, and therefore cannot appear on a page.

   The artifact register is NOT in this file any more: this file is
   served to every visitor, and internal references never reach the
   outside (Mo, 17.09.). The register lives next to this folder in
   _notes/ (kept out of the deployment) and names, for every claim
   below, the run output or report it rests on.

   `checks` carries the five-question verdict per case, with the
   REASON for every amber. Ambers are not softened: they are the part
   of the page that makes the greens believable.
   ============================================================ */

const CORPUS = {
  reviews: 'more than 7.5 million',
  sites: 'more than 14,000',
  brands: 7,
  markets: 14,
};

/* The four demonstrated cases. `effect` is always an effect size with a
   unit, never a correlation. `n` is the scope of the claim — a finding
   without a scope is not a finding. `k` of 400 random draws reached the
   observed size (0 = the effect never occurred by chance in 400 tries). */
const PROVEN = [
  {
    key: 'outage',
    kicker: 'External IT outage · June 2024 · dated by the press',
    title: 'Two weeks without the workshop system',
    effect: '+117%',
    effectLabel: 'complaints about phone reachability',
    n: '190 affected sites',
    control: '57 sites documented as unaffected',
    base: 'base rate 5.2% → +6.1 points',
    k: 0,
    checks: {
      effect: ['green', '+6.1 points on a base of 5.2% — more than a doubling, and the 1–2 star share rose by 7.5 points at the same time.'],
      chance: ['green', 'Zero of 400 random cohorts reached this size. The same calendar weeks in 2023 and 2025 show nothing.'],
      confusion: ['amber', 'One theme that should have stayed still moved as well (vehicle technology, +2.6 points) — plausible, because cars sat in the workshop for days, but it means the effect is not perfectly theme-sharp.'],
      replication: ['amber', 'A single event. The same signature appears in the second, diluted control group at half the size — which is exactly what should happen when half of that control was affected too.'],
      mechanism: ['green', 'Two weeks of manual appointments, invoicing and financing → the phone goes unanswered → complaints about reachability. Fades within 3–6 weeks.'],
    },
    limit: 'Dated from the outside, so we could not have measured our own story into it. This is the strongest class of evidence we have.',
    grade: 'demonstrated',
  },
  {
    key: 'recall',
    kicker: 'Recall wave · official vehicle-safety register',
    title: 'A brand recalls roughly 1.4 million vehicles',
    effect: '+26%',
    effectLabel: 'complaints on the three pre-registered themes',
    n: '470 sites of that brand',
    control: 'other brands, matched on segment and quarter',
    base: 'bundle +1.21 points, z +4.0',
    k: 0,
    checks: {
      effect: ['green', 'The pre-registered bundle (appointment, capacity, reachability) rose by 1.21 points; the 1–2 star share rose by 0.70.'],
      chance: ['green', 'p 0.000 against 400 random draws, and the time placebo one year earlier is silent.'],
      confusion: ['green', 'The event is dated by an outside register, not by the reviews — self-measurement is impossible by construction.'],
      replication: ['amber', 'The dose relation replicated: an independent calculation across all brands predicted +1.0 points before we measured, and we measured +1.2. But a second recall at a different brand produced only an indication — its pre-period was not quiet.'],
      mechanism: ['green', 'Recalled owners must come in on top of normal demand → appointment and capacity strain → reachability complaints rise while praise for reachability falls.'],
    },
    limit: 'Predicted first, measured second — the one case where a forward-looking calculation and a backward-looking measurement met. We keep the two apart everywhere else.',
    grade: 'demonstrated',
  },
  {
    key: 'video',
    kicker: 'Own measure · service workshop · United States',
    title: 'Video evidence before the customer approves the work',
    effect: '+63%',
    effectLabel: 'praise for "evidence before authorisation"',
    n: '386 sites',
    control: '1,451 comparable sites',
    base: 'base 0.54 → +0.34 mentions per review',
    k: 0,
    checks: {
      effect: ['green', '+63% on the named theme, z +4.3, and the effect holds across all four quarters after introduction.'],
      chance: ['green', 'Zero of 400 random draws reached this size (p 0.000); theme placebos 0 of 6.'],
      confusion: ['amber', 'Demonstrated for the customers actually reached by a video. Recomputed without the reviews that mention the video itself, the reach beyond those customers is open — so we claim the narrow version.'],
      replication: ['amber', 'Same direction in all seven brands and in three separate US cohorts. It did NOT replicate in the United Kingdom: +45% there, weak (p 0.09), and under a different dating rule it disappears. The demonstrated effect is the US one.'],
      mechanism: ['green', 'The customer sees the worn part before paying for it → the approval stops being a matter of trust → praise moves to exactly the theme "evidence before authorisation".'],
    },
    limit: 'Two limits stated up front: it holds for the customers who receive a video, and it holds in the US. The UK run is not evidence for it.',
    grade: 'demonstrated',
  },
  {
    key: 'rebuild',
    kicker: 'Own measure · two countries independently',
    title: 'Rebuilding or replacing the premises',
    effect: '+62% / +105%',
    effectLabel: 'praise for the premises — US / France',
    n: '50 sites US · 36 sites France',
    control: '1,601 US · 694 French comparable sites',
    base: 'US +1.70, France +3.29 mentions per 100 reviews',
    k: 6,
    checks: {
      effect: ['green', 'US +62% (z +2.7), France +105% (z +3.3) on the same named theme, with the effect still growing four quarters later in the US.'],
      chance: ['green', 'US: 6 of 400 random draws reached this size (p 0.015). France: zero of 400 (p 0.000). Time placebos quiet in both.'],
      confusion: ['amber', 'In France two themes that should have stayed still moved as well — so the French effect is not perfectly theme-sharp, even though it is the larger one.'],
      replication: ['green', 'Two countries, different brands, different years, same theme, same direction. This is the only case in the set with an independent country-level replication.'],
      mechanism: ['green', 'New premises change exactly what customers can see and sit in → praise for the premises rises, while unrelated service themes stay put.'],
    },
    limit: 'The most robust case we have — because it replicated, not because the single number is large. Small cohorts (50 and 36 sites) keep the confidence interval wide.',
    grade: 'demonstrated',
  },
];

/* The honest nulls. They are part of the product, not an embarrassment:
   a measurement system that only ever finds effects is a brochure. */
const NULLS = [
  {
    key: 'sms',
    title: 'SMS status updates during the service visit',
    n: '57 sites',
    finding: 'No detectable effect on any of the six pre-registered themes — not on reachability, not on promised-versus-actual time, not on questions answered.',
    grade: 'no effect detectable',
  },
  {
    key: 'staff',
    title: 'A change of service management',
    n: '21 sites',
    finding: 'No detectable effect. One theme did move, but its time placebo moved with it — so by our own rule it does not count as a finding.',
    grade: 'no effect detectable',
  },
];

/* The scoreboard. We lead with it — including the parts that did not work. */
const BALANCE = [
  { n: 4, label: 'demonstrated', tone: 'green' },
  { n: 3, label: 'indications', tone: 'amber' },
  { n: 2, label: 'honest nulls', tone: 'grey' },
  { n: 1, label: 'not measurable', tone: 'grey' },
];

/* The five questions every finding has to survive. Wording mirrors
   docs/reference/WORDING_KAUSAL.md — the German original is normative;
   these are its English equivalents. */
const FIVE = [
  {
    id: 'effect',
    q: 'EFFECT',
    ask: 'Is there a difference that counts?',
    detail: 'An effect size with a unit — "+6.1 points on a base of 5.2%" — never a correlation coefficient. If it is too small to act on, it does not pass, however clean it looks.',
    example: '+117% complaints about phone reachability, on a base rate of 5.2%.',
  },
  {
    id: 'chance',
    q: 'CHANCE',
    ask: 'Could this have been luck?',
    detail: 'We cannot randomise the treatment — real dealerships are not a laboratory. So we randomise the test instead: the same computation runs on 400 random cohorts where nothing happened, and again one year before the event.',
    example: 'In 400 random draws, an effect this large came up zero times.',
  },
  {
    id: 'confusion',
    q: 'CONFUSION',
    ask: 'Are we measuring something else — or ourselves?',
    detail: 'Two traps. A broad wave that lifts everything (checked against themes that must not move) and self-measurement (recomputed without the reviews that mention the measure itself).',
    example: 'Theme placebos 0 of 6 — only the theme we named in advance moved.',
  },
  {
    id: 'replication',
    q: 'REPLICATION',
    ask: 'Does it show up more than once?',
    detail: 'Another country, another brand, another year. A result that exists exactly once stays an indication — and when a replication fails, that goes on the page too.',
    example: '+62% in the US, independently replicated in France at +105%.',
  },
  {
    id: 'mechanism',
    q: 'MECHANISM',
    ask: 'Do we understand why — and what is it worth?',
    detail: 'A plausible path from cause to effect, and a number attached to it. Without a mechanism, a result is a coincidence with good manners.',
    example: 'Two weeks of manual invoicing → the phone goes unanswered → complaints about reachability.',
  },
];

/* The ladder. Every result sits on exactly one rung — never a rung
   higher than it earned. */
const LADDER = [
  { rung: 'demonstrated effect', when: 'survives the strict multiple-test threshold, time placebo silent', say: '"+62% more praise, demonstrated at 50 sites"', tone: 'green' },
  { rung: 'indication', when: 'above the noise, below the strict threshold', say: '"a trace, not yet evidence"', tone: 'amber' },
  { rung: 'no effect detectable', when: 'enough sites, nothing moves — the honest null', say: '"cleanly tested at 57 sites — nothing moves"', tone: 'grey' },
  { rung: 'not measurable', when: 'too few sites (under 10)', say: '"below the detection limit, no statement"', tone: 'grey' },
];

/* The four parts of the loop, and who else has them. The comparison is
   about scope, not quality: sentiment and BI tools do their part well.
   They just stop after it. */
const LOOP = [
  {
    key: 'sensor',
    n: '01',
    t: 'Sensor',
    role: 'Measure what customers experience',
    b: 'Continuously, per site and per theme, from the feedback customers write anyway — plus your own operational data where it exists.',
    has: { sentiment: 'full', bi: 'full', gd: 'full' },
  },
  {
    key: 'setpoint',
    n: '02',
    t: 'Setpoint',
    role: 'Price what the gap costs',
    b: 'Every unit against the level that is demonstrably reachable — measured on comparable units, not a target somebody set in a workshop.',
    has: { sentiment: 'none', bi: 'partial', gd: 'full' },
  },
  {
    key: 'lever',
    n: '03',
    t: 'Lever',
    role: 'Name the action that works',
    b: 'A catalogue of tested paths: which measure moves which theme, by how much, with its scope written next to it — including the ones that moved nothing.',
    has: { sentiment: 'none', bi: 'none', gd: 'full' },
  },
  {
    key: 'feedback',
    n: '04',
    t: 'Feedback',
    role: 'Re-measure after the action',
    b: 'The customer acts and records what was done, where and by whom. We measure again against comparable units — and every recorded action becomes a new tested path.',
    has: { sentiment: 'none', bi: 'none', gd: 'full' },
  },
];

/* The medicine analogy — five links, each with an honest status. The gaps
   belong on the page: they are what makes the rest credible. */
const ANALOGY = [
  {
    med: 'Measure blood pressure',
    us: 'Complaint and praise themes per site, in the customer’s own words',
    status: 'measured',
  },
  {
    med: 'Heart attack',
    us: 'Churn and trust signals in what customers write',
    status: 'measured',
  },
  {
    med: 'Mortality',
    us: 'The hard business figure — repeat business, revenue',
    status: 'partial',
    note: 'One external validation exists. The figure itself needs a customer’s own operational data; we do not have it from public feedback.',
  },
  {
    med: 'Medication',
    us: 'What the company actually does',
    status: 'partial',
    note: 'Effects are demonstrable, but we only see the few measures that leave a trace in feedback. There is probably medication we cannot see — that is the bottleneck this product is built to close.',
  },
  {
    med: 'Flu season',
    us: 'Outside events — recalls, IT outages, storms',
    status: 'measured',
  },
];

/* What we cannot do. This page is an argument, not a confession. */
const LIMITS = [
  {
    t: 'We do not have a model of human behaviour',
    b: 'A holistic causal model of why people do what they do is not something anyone can honestly build. We do not claim one. What we have is rarer: thousands of near-identical units living through the same events at different times, so the same mechanism gets tested again and again.',
  },
  {
    t: 'Most of what moves feedback is not a named measure',
    b: 'We can state how much of the movement is explainable at all, and how much of that we explain. The share attributable to measures we can name today is small — and we would rather publish that number than imply it is large. Closing that gap is what the feedback part of the loop is for.',
  },
  {
    t: 'Below roughly ten units, we say nothing',
    b: 'Small cohorts do not get a softened statement, they get no statement: "below the detection limit". A measure taken at four sites cannot be assessed, and we will not dress that up as a trend.',
  },
  {
    t: 'It is not a laboratory, and we do not pretend it is',
    b: 'In a laboratory you randomise the treatment. We cannot — real dealerships are not randomised into rebuilding their premises. So we randomise the test: hundreds of random cohorts, a year-earlier placebo, themes that must not move, computations without the reviews that mention the measure, and other countries. A false finding fails one of those. Two of our own cases did.',
  },
  {
    t: 'A replication that fails stays on the page',
    b: 'The video case is demonstrated in the United States and did not replicate in the United Kingdom. We report both, because a catalogue that quietly drops its failures is worth nothing to the person who has to decide.',
  },
  {
    t: 'Unknown confounders are bounded, not denied',
    b: 'Anything that hits every site at once — the economy, the season — falls out of the comparison by construction. For the rest we do not claim it is absent: we state how strong an unknown factor would have to be to overturn the finding.',
  },
];

/* How much of what happens can be explained at all — and how much we
   explain. These are the numbers the briefing deliberately keeps out of a
   social post: they are honest but meaningless without the noise ceiling
   next to them. Here they have room for it. */
const EXPLAIN = {
  intro: 'Before asking what a model explains, you have to know how much is explainable at all. A quarter with 15 reviews and a 2% rate moves on counting alone — no model should explain that, and none can.',
  rows: [
    ['Churn signal', '58%', 'Half of the remaining quarter-to-quarter movement is counting noise, not events.'],
    ['Dissatisfaction signal', '50%', 'The rarer the signal, the more of its movement is sampling noise.'],
    ['Share of 1–2 star reviews', '77%', 'Stars are the most explainable outcome we measure.'],
    ['Average rating', '76%', 'Same picture: most of the systematic part sits between sites, not within one.'],
  ],
  claims: [
    ['70–90%', 'of the difference between sites — which site is persistently better or worse, and on which themes — is explained, cross-validated.'],
    ['20–50%', 'is the upper bound for the movement within a single site over time. We explain a part of that, not the whole.'],
    ['under 1%', 'of that movement can be traced to specific, named measures today. Not because the demonstrated measures do not work — they do — but because most of what happens is driven by medication we never see.'],
    ['under 1%', 'is what everything hitting all sites at once explains — the economy, the season, platform changes. That is why the breadth of the panel works as a control group.'],
  ],
};

/* ============================================================
   THE STORY — this is what has to land first: what we do and why.
   Normative German version: product/docs/STORY_MEDIZIN_ANALOGIE.md
   ============================================================ */

const STORY = {
  h1a: 'Fifty years ago, nobody could say what caused a heart attack.',
  h1b: 'Today we can say what makes customers leave.',
  lead: 'Once medicine knew the cause, it could look for the drug on purpose. We analysed millions of customer voices, so the causes are on the table — each with its own grade, cause by cause. That we bring with us. What we find out together with you is which measures demonstrably help.',
  close: 'That is the next step in business steering.',
};

/* Where we are, told as the arc both fields go through. The marker sits on
   stage 4 of the customer lane — that is the whole point of the section. */
const ARC = [
  {
    stage: 'Nobody could say why',
    med: 'Heart attacks were fate. Risk factors were opinions, and everybody had a different one.',
    us: 'Churn was explained by gut feeling, single anecdotes and a satisfaction score with no cause attached.',
  },
  {
    stage: 'The population is observed',
    med: 'Decades of following large populations to see what actually came before the event.',
    us: 'More than 7.5 million customer voices across more than 14,000 sites, read for what happened and what it led to.',
  },
  {
    stage: 'The chain is established',
    med: 'Smoking and blood pressure lead to heart attacks. Not opinion any more — measured, replicated, quantified.',
    us: 'These experiences lead customers to leave, to stay, or to recommend you — with direction and size.',
  },
  {
    stage: 'The search for the treatment',
    med: 'Once the cause is known, you can look for the drug on purpose instead of by accident.',
    us: 'Together with you: which measures demonstrably relieve the symptoms in your organisation.',
    here: true,
  },
  {
    stage: 'Steering by evidence',
    med: 'Treatment guidelines. Outcomes measured, not assumed.',
    us: 'Business steering on measured effects — the next step, and the reason for all of the above.',
  },
];

/* The one picture on the page: four links, four icons. Three of them we
   measure today; the pill is the one we look for together. Icon language
   is the demo's own (💊 = a measure someone chose). */
const PICTURE = [
  {
    icon: 'pill',
    med: 'Treatments',
    us: 'The measures you take',
    b: 'Every deliberate change: a new process, a training, a rebuilt location, a service added or dropped.',
    ours: true,
  },
  {
    icon: 'pulse',
    med: 'Blood pressure, smoking',
    us: 'What your customers experience',
    b: 'Nobody calls back. A promise is not kept. The bill does not match the quote. Measured continuously, per location and per theme.',
  },
  {
    icon: 'break',
    med: 'The heart attack',
    us: 'Whether they leave or stay',
    b: 'Two faces of the same thing: the customer writes "I am never coming back", and the real number sits in your systems. We read the first and calibrate it against the second.',
  },
];

/* Every "get in touch" lands on our own form (#/contact) — the same
   endpoint as before; only the page around it is this site's. */
const CONTACT = '#/contact';

/* The three industries. One is worked through; the other two are named
   as what they are — not yet. */
const CASES = [
  {
    key: 'automotive',
    t: 'Automotive',
    state: 'live',
    href: '#/case/automotive',
    b: 'Retail and aftersales across several markets: which experiences move customers, and which measures moved those experiences. The interactive demo runs on this case.',
  },
  { key: 'retail', t: 'Retail', state: 'soon',
    b: 'Store networks with the same shape: many comparable locations, the same events at different times.' },
  { key: 'hospitality', t: 'Hospitality', state: 'soon',
    b: 'Hotels and travel, where the experience is the product and the feedback is written the same day.' },
];

/* ============================================================
   THE FRAMEWORK — simplified public version of the Heftchen picture
   (Kap. 32, 14.09.2026). Rules carried over from the booklet:
   - two strands, not a chain; interventions act on both
   - public wording is REPORTED / RECORDED, never subjective / objective
   - the medicine analogy stays out of the picture (text only)
   - explainability on top is prediction, not the why (Kap. 21)
   - outcomes are real KPIs only: customers return, revenue, profit
   - no numbers on the landing page (Mo, 14.09.)
   ============================================================ */
const FRAMEWORK = {
  layer: {
    label: 'THE NEW LAYER',
    sub: 'free text becomes data',
    steps: ['Extraction', 'Embedding', 'Clustering', 'Causal AI'],
    input: 'Customer feedback',
    result: 'quantified · comparable · joinable',
  },
  intervention: {
    k: 'INTERVENTION',
    t: 'Intervention',
    b: 'what you do',
    items: ['New build', 'Training · staffing', 'Pricing', 'Processes · IT systems'],
    foot: 'centrally or on site',
  },
  perception: {
    label: 'PERCEPTION',
    sub: 'reported · in the customer’s own words · where we steer',
    cause:   { k: 'CAUSE · PERCEIVED',   note: 'lever to steer',          t: 'Cause signal',   b: 'how customers experience it', foot: 'complaints and praise, per theme' },
    outcome: { k: 'OUTCOME · ANNOUNCED', note: 'early, with the reason',  t: 'Outcome signal', b: 'what customers announce',     foot: 'never again · recommend · warn · trust' },
    expl:    { level: 'High', note: 'measured · cross-validated', b: 'much of the difference between locations can be predicted here' },
  },
  performance: {
    label: 'PERFORMANCE',
    sub: 'recorded · operations and books · connected from your data',
    cause:   { k: 'CAUSE · RECORDED',    note: 'supports the explanation', t: 'Cause',   b: 'what happens in operations', foot: 'turnaround · wait time · price · availability' },
    outcome: { k: 'OUTCOME · REALISED',  note: 'validates the signals',    t: 'Outcome', b: 'what actually happens',      foot: 'customers return · revenue · profit', euro: true },
    expl:    { level: 'Low', note: 'expected · not yet measured', b: 'an open system: market, competitors, economy' },
  },
  loop: 'Steering loop — every cause has an owner, an intervention and a date',
};

/* The three things the framework is meant to say, one line each. */
const TAKEAWAYS = [
  { t: 'Perception, quantified', b: 'What customers experience and announce becomes data — per location, per theme, comparable over time.' },
  { t: 'Explainable where it counts', b: 'Where customers report cause and consequence, much of the difference between locations can be predicted. Never all of it — and we say how much.' },
  { t: 'Built with you', b: 'We bring the foundation and the logic. You connect your interventions and your numbers — and see where steering pays off.' },
];

/* The light second visual: five dots, one marker. Nothing else. */
const PATH = [
  'Nobody could say why',
  'Observe at scale',
  'The causes are known',
  'Find the treatments',
  'Steer by evidence',
];
const PATH_HERE = 3; /* zero-based: "find the treatment" */

/* The questions people actually ask — from the board, from the data team,
   from IT. Short answers, no hedging, and a "no" where the answer is no. */
/* Five questions, no more (Mo, 14.09.): the one a data scientist asks,
   the one a sceptic asks, the one a manager asks, the one an operator
   asks, and the one IT asks. Plain words — a reader who has never heard
   of causal analysis has to get through them. All five come from the
   Heftchen (Kap. 2, 4, 5, 10, 18, 19, 21, 32). The longer catalogue
   lives on the deep pages. */
const QA = [
  {
    who: 'DATA',
    q: 'How do you know it was the measure — and not something else?',
    a: 'Four things have to line up. The change starts after the measure, not before. Sites that got it move, comparable sites without it do not. More of the measure means more movement. And we write down beforehand which theme should move — if a different one moves, the finding is dead. Where another explanation stays possible, we say so.',
  },
  {
    who: 'DATA',
    q: 'Only a few customers write reviews — mostly the angry ones. Does that not skew everything?',
    a: 'It does skew it. It still works. Germany reads its flu wave from about 700 doctors’ practices and its Corona waves from wastewater. Skewed sensors, used for years — because the skew stays the same. Then comparisons between locations hold. We also check against recorded events: a registered recall shows up at the size we predicted beforehand.',
  },
  {
    who: 'BOARD',
    q: 'How much of customer behaviour can you actually explain?',
    a: 'Never all of it — and we say how much. Differences between locations: most of them, checked on data the model has never seen. One location over time: less. Revenue: least, because the market moves it too. And predicting is not the same as knowing why. That we test step by step.',
  },
  {
    who: 'BOARD',
    q: 'What do you need from us — and how do we steer with it?',
    a: 'Your data, and three roles: someone who connects the sources once, a team that works with it through the year, and a management that wants to steer. Then it is simple. Every theme has a cause, an owner and a measure with a date. Week to week you look at the causes. Quarter to quarter at the priorities.',
  },
  {
    who: 'IT',
    q: 'Who works with it, and where does our data go?',
    a: 'Two groups. A cross-functional team — data, digital or internal consulting — runs it day to day. Management steers with it. Your data stays with you: on your infrastructure, names pseudonymised before any processing, GDPR, EU.',
  },
];

/* Our principles — the reassurance block (Mo, 14.09., after alloqis).
   Three of them are answers the page owed a reader: who works with it,
   where the data runs, and who decides. The other three are the house
   rules from the Heftchen (Kap. 2, 5, 19). */
const PRINCIPLES = [
  ['We build it together.', 'Your business units are in it from the first cause to the last measure.'],
  ['Your data stays with you.', 'It runs on your infrastructure. GDPR, EU.'],
  ['Built for your team.', 'A cross-functional team runs it. Management steers with it.'],
  ['No guess sold as proof.', 'Every finding carries its grade — and we say which.'],
]

/* The automotive case, condensed to one screen (Mo, 15.09.): the size
   of the base, what came out, and the honest scoreboard. Every number
   carries its artifact — DATENSTAND.md is the canonical source for the
   catalogue and the relationship counts. */
const CASE_AUTO = {
  kpis: [
    { v: '> 7.5 m', k: 'customer reviews', b: 'read in full' },
    { v: '> 14,000', k: 'dealerships', b: '7 brands, 14 markets' },
    { v: '> 60', k: 'causes you can steer', b: 'named, not clustered' },
    { v: '~ 75 %', k: 'of relationships hold', b: 'under the strict control' },
  ],
  results: [
    { t: 'two weeks without the workshop system', s: '190 dealerships, dated by the press',
      v: '+117%', b: 'more complaints about phone reachability', w: 100 },
    { t: 'video evidence before the customer approves the work', s: '386 dealerships, United States',
      v: '+63%', b: 'more praise for showing the defect first', w: 62 },
    { t: 'rebuilding or replacing the premises', s: '50 US · 36 French dealerships',
      v: '+62% / +105%', b: 'more praise for the premises', w: 70 },
  ],

  /* The closing frame: what a measure like this is worth once the chain
     is closed. Modelled, and it says so — but it does not apologise
     (Mo, 17.09.): the shape is the one we measured, the size is an
     assumption. The measured results themselves sit beside the film. */
  sample: {
    head: 'MODELLED RESULT',
    lead: 'If video inspection is introduced',
    steps: [
      { dir: 'up', v: '+60 %', t: 'praise for showing the defect first' },
      { dir: 'down', v: '−8 %', t: 'customers who announce they will leave' },
      { dir: 'up', v: '€12 m', t: 'financial potential a year', money: true },
    ],
    foot: [
      'Modelled on the relationships we measured · 240 customers kept a year · customer lifetime value €50,000.',
    ],
  },

  /* Kept for the record, deliberately NOT shown (Mo, 17.09.): the figure
     runs straight from the measure to the money and skips the evidence
     step, and it is a self-reported survey association — exactly what we
     argue cannot carry a claim. Useful as context for why the measure is
     believed to pay, never as our proof. */
  industry: 'Cox Automotive 2026 Fixed Operations and Ownership Study (9 Apr 2026; 500 fixed-ops decision makers, 2,500 consumers): customers who reported receiving photos or videos during a service visit also reported about $230 more repair-order spend than those who did not; 49 % say photos or videos make them more likely to approve recommended work. Cross-sectional consumer survey, self-reported spend, no control group — an association, not a measured effect.',

  contrast: {
    t: 'Why we measure at the cause, not at the till',
    a: 'At the cause, the same measure is visible: +63%, and zero of 400 random draws reached it.',
    b: 'At the outcome, the expected imprint is 0.011 points against a detection limit of 0.34 points — 33 times too small to see.',
  },
  balanceSrc: 'gen-data-app/public/causal/ereignis_nachweise.json (01.09.) — 10 dated measures: 4 demonstrated · 3 indications · 2 honest nulls · 1 not measurable',
};

/* The closing. Marked as a belief where it is a belief — "we think this is
   where steering is going" is a position, not a measurement, and it is
   allowed to be one as long as it says so. */
const CLOSING = {
  belief: 'We believe this is what business steering will look like — and that we are at the front of it.',
  needs: 'It takes three things, and no two of them are enough:',
  triad: [
    ['The data', 'Millions of customer voices — and what your own systems already record about what happened next.'],
    ['The people', 'Your experts. They know what was decided, when, where and by whom. No model replaces that.'],
    ['The technology', 'Our software, and what we have already learned about causes in your industry.'],
  ],
  frame: 'You bring the data and the people. We bring the technology and the industry insights. Let us get started.',
};

/* Exported: only what the loaded pages use. The first draft's data —
   CHAIN, STEPS, SPLIT, EVIDENCE_LANES — went out with the components that
   read them; they are in _notes/unused/_attic.jsx if a piece is ever wanted back. */
window.GD = { CORPUS, PROVEN, NULLS, BALANCE, FIVE, LADDER, LIMITS, EXPLAIN,
              STORY, ARC, CLOSING, CASES, CONTACT,
              PICTURE, PATH, PATH_HERE, QA, FRAMEWORK, TAKEAWAYS, PRINCIPLES, CASE_AUTO };
