# GreenLeaf Reporting-Datenwörterbuch — v1 Semantikvertrag

**Verfasst:** 2026-10-29 · **Status:** eingefrorene Quellspezifikation vor der Fixture-Generierung; englische redaktionelle Eingabe. Die CSV ist eine neue synthetische Rekonstruktion, keine wiederhergestellten Kursdaten. Der [Brief](brief-v1.md) legt den Entscheidungsrahmen fest; die [Quellkarte](course-source-map.json) dokumentiert die Herkunft. Keine echten Kund:innen, Gesundheitsinformationen oder Kundenkonten sind enthalten.

Für die wiedergegebenen Belege gilt die Zahlenkonvention der englischen Originalbelege: Kommas trennen Tausender, Punkte kennzeichnen Dezimalstellen; Geldbeträge sind in USD angegeben.

## Granularität, Fenster und Attribution

Eine kanonische Zeile ist ein UTC-Paid-Click-Datum × Kanal × Gerät × Zielgruppe × Creative, in Großbritannien. Vierzehn Tage × drei Kanäle × zwei Geräte × zwei Zielgruppen × zwei Creatives = **336 Zeilen**. Der Rohexport hat **337 Zeilen**, einschließlich eines exakten Duplikats. Kampagne gehört zum Kanal und fügt keine Dimension hinzu.

Woche 1: `2026-09-01`–`2026-09-07` inklusive. Woche 2: `2026-09-08`–`2026-09-14` inklusive. Snapshot: **`2026-09-22T23:59:59Z`**. Tage sind UTC und `date` bedeutet immer Paid-Click-Kohortendatum, niemals Kauf-/Ereignisdatum. Funnel-Ereignisse und Erstkäufe werden während der sieben Tage nach dem berechtigten Paid Click beobachtet. Exakte Ereignis-Zeitstempel werden nicht exportiert; das Sieben-Tage-Attributions-/Beobachtungsfenster ist eine Generator-Konstruktionsannahme. Beide vollständigen Zeiträume sind zum Snapshot ausgereift. Alle veröffentlichten Primärzeilen haben `is_provisional=false`.

Spend, Impressions und Klicks beschreiben die der Kohorte zugewiesene Akquisitionsaktivität dieses Datums. Landing-, Quiz- und Kaufzahlen folgen ihrem quellmarkierten Paid-Click-Kohorten- und Geräte-/Zielgruppen-/Creative-Bucket. Jede synthetische Erstkaufkund:in und jeder Umsatzbetrag wird einmal zugewiesen, dem letzten berechtigten Paid Click innerhalb von sieben Tagen; alle Ereignisstufen folgen derselben exklusiven Zuweisung. Geräteübergreifende Identitätsabstimmung wird nicht gemessen. Exklusivität ist konstruktionsbedingt garantiert, nicht unabhängig durch diese aggregierte Datei festgestellt.

## Felder

| Feld | Typ / Einheit | Bedeutung und Validierung |
|---|---|---|
| `row_id` | nichtleerer String | Stabile eindeutige kanonische Zeilen-ID. Das exakte Rohduplikat wiederholt sie; widersprüchliche Zeilen mit derselben ID sind ein Fehler. |
| `date` | ISO `YYYY-MM-DD` | UTC-Quell-Paid-Click-Kohortendatum, zwischen dem 1. und 14. September. |
| `market` | Enum | Nur `UK`; Umfang sind Paid-Kohorten im fiktiven UK-Start. |
| `channel` | Enum | `google-search`, `linkedin`, `reddit-paid`. Organische Reddit-Aktivität ist ausgeschlossen. |
| `campaign_id` | Enum nach Normalisierung | Eine Kampagne pro Kanal; Lookup unten. |
| `device` | Enum | `mobile` oder `desktop`, Gerät des zugewiesenen Quell-Paid-Clicks. |
| `audience_id` | Enum | `skeptical` oder `exploring`; einander ausschließende konstruierte Buckets innerhalb des Kanals, keine validierten Kundenmerkmale. |
| `creative_id` | Enum | `traceability` oder `value`; Botschaftshypothesen mit kanalspezifischem Format, Lookup unten. |
| `spend_cents` | nichtnegative Ganzzahl USD-Cents | Nur Mediakosten. Keine Agentur-, Creative-, Tooling-, Gehalts- oder sonstigen Akquisitionskosten. |
| `impressions` | nichtnegative Ganzzahl | Akquisitions-Anzeigenimpressions im Bucket; keine eindeutigen Personen oder Frequency. |
| `clicks` | nichtnegative Ganzzahl | Diesem Bucket zugewiesene Paid Clicks; keine eindeutigen Besucher:innen. |
| `landing_sessions` | nichtnegative Ganzzahl | Quellmarkierte Landing-Sessions, beobachtet innerhalb von sieben Tagen nach dem berechtigten Paid Click. Höchstens eine beibehaltene Session pro synthetischer Funnel-Journey. |
| `quiz_starts` | nichtnegative Ganzzahl | Unterschiedliche beibehaltene quellmarkierte Quiz-Journeys, die im selben Sieben-Tage-Fenster starten; ein beibehaltener Start pro Journey. Nenner der Abschlussrate. |
| `quiz_completions` | nichtnegative Ganzzahl | Diese beibehaltenen Quiz-Journeys, die im selben Sieben-Tage-Fenster abgeschlossen wurden; keine wiederholte Abschlusszählung. |
| `attributed_new_customers` | nichtnegative Ganzzahl | Erstkaufkund:innen, die diesen konstruierten quizgeführten Funnel innerhalb von sieben Tagen abschließen, einmal zugewiesen nach der deklarierten Last-Paid-Click-Regel. Keine All-Site-Neukund:innen. |
| `attributed_first_purchase_revenue_cents` | nichtnegative Ganzzahl USD-Cents | Erstkaufumsatz dieser Kund:innen, nach Rabatten, ohne Steuern und Versand. Keine Rückerstattungen in diesem Fixture; kein Verlängerungsumsatz. Der Generator weist USD $80 (8,000 Cents) pro Erstkaufkund:in zu, aus arithmetischer Klarheit; dies ist eine Rekonstruktionsannahme, keine Kurspreisgestaltung oder LTV. |
| `is_provisional` | Boolean | `false` bedeutet, dass das Sieben-Tage-Beobachtungsfenster dieser Zeile zum deklarierten Snapshot ausgereift ist. Nicht unterstützte String-/Boolean-Koerzition ablehnen. |

Ungleichungen pro Zeile: `impressions >= clicks >= landing_sessions >= quiz_starts >= quiz_completions >= attributed_new_customers`. Dies ist eine explizite vereinfachte quizgeführte Funnel-Konstruktion, keine universelle Eigenschaft von Werbe-Exports. Eine Zeile mit null Kund:innen muss null Erstkaufumsatz haben; eine positive Kundenzahl muss positiven Umsatz haben. Diese Einschränkungen liefern keine Evidenz auf Personenebene.

## Kanonische Lookups und Rohbereinigung

| Kanal | Kanonische Kampagnen-ID | Anzeigename | Erlaubter Roh-Kampagnen-ID-Alias |
|---|---|---|---|
| `google-search` | `gl-uk-google-search` | GreenLeaf UK Search | `gl_uk_search` → `gl-uk-google-search` |
| `linkedin` | `gl-uk-linkedin` | GreenLeaf UK LinkedIn | Keiner |
| `reddit-paid` | `gl-uk-reddit-paid` | GreenLeaf UK Reddit paid | Keiner |

Zielgruppe `skeptical`: konstruierter Bucket für Käufer:innen, die Nachweise zur Herkunft und Dosierung vergleichen; inspiriert von Olivers unvalidierter Persona. Zielgruppe `exploring`: konstruierter Bucket für Käufer:innen, die die Kategorie erkunden und den Wert abwägen. Sie sind weder echte Targeting-Spezifikationen noch randomisierte Treatment-Zuweisungen; keine Identität, kein Beruf und kein Gesundheitszustand wird abgeleitet.

Creative `traceability`: illustrative “Know what is in every serving” (Wissen, was in jeder Portion steckt)-Botschaft. Creative `value`: illustrative “Compare the value of a clearly dosed serving” (Den Gegenwert einer Portion mit klar ausgewiesener Dosierung vergleichen)-Botschaft. Für Google Search sind dies Textanzeigen-Botschaftshypothesen; für LinkedIn, gesponserte Feed-Copy-Hypothesen; für Reddit Paid, Promoted-Post-Copy-Hypothesen. Creative-IDs sind gemeinsame Botschaftskategorien innerhalb jedes Kanals, keine identischen fertigen Anzeigen-Assets oder genehmigten Aussagen. Kein Wirksamkeitsnachweis und keine tatsächliche Produktzertifizierung werden geliefert.

Entfernen Sie nur ein byte-für-byte/feldgleiches exaktes Duplikat und erfassen Sie dessen Quellzeilen-ID. Normalisieren Sie nur den deklarierten Alias und erfassen Sie die Anzahl. Eine unbekannte ID, ein unerwarteter Markt, ein fehlendes Feld, ein fehlerhaftes Datum, nichtganzzahlige Cents/Zählwerte, ein negativer Wert, ein widersprüchliches Duplikat oder ein unmöglicher Funnel müssen die Validierung fehlschlagen lassen statt stillschweigend repariert zu werden. Bewahren Sie eine dokumentierte Null-Nenner-Zeile, um die Behandlung nicht verfügbarer Verhältnisse zu verifizieren. Gleichen Sie Roh-/Kanonisch-Zahlen und alle Dimensionssummen ab. Der Fixture-Generierungsdatensatz muss das exakte Duplikat, die Alias-Zeile und die Null-Nenner-Zeile identifizieren; dieses Wörterbuch gibt nicht vor, dass diese Zeilen bereits existieren.

## Metriken und Vergleichsregeln

Verwenden Sie Summen innerhalb der gewählten Kohorte/Dimension und dividieren Sie dann; mitteln Sie niemals Raten auf Zeilenebene. Behalten Sie volle Zwischenpräzision bei. Zeigen Sie USD an, indem Sie Cents erst bei der Darstellung durch 100 teilen. Ein Null-Nenner ergibt **nicht verfügbar**, niemals null/unendlich; prozentuale Veränderung gegenüber einem Null-Vorwert ist nicht verfügbar.

| Metrik | Definition | Interpretation |
|---|---|---|
| Quiz-Abschlussrate | `sum(quiz_completions) / sum(quiz_starts)` | Primärer Funnel-KPI; Paid-Mobile Woche 1/2 muss auf 45%/28% kalibriert werden. |
| Click-to-Start-Rate | `sum(quiz_starts) / sum(clicks)` | Diagnostisch; verschieden vom Quiz-Abschluss. |
| Click-to-Landing-Rate | `sum(landing_sessions) / sum(clicks)` | Diagnostisch, keine verifizierte Bounce Rate. |
| Completion-to-Purchase-Rate | `sum(attributed_new_customers) / sum(quiz_completions)` | Konstruierte quizgeführte Funnel-Diagnose. |
| CTR | `sum(clicks) / sum(impressions)` | Optimierungsmetrik; keine Awareness. |
| CPC (USD) | `sum(spend_cents) / sum(clicks) / 100` | Mediakosten pro Klick. |
| CPM (USD) | `sum(spend_cents) / sum(impressions) * 1000 / 100` | Mediakosten pro 1,000 Impressions. |
| Media-CPA (USD) | `sum(spend_cents) / sum(attributed_new_customers) / 100` | Nur-Media-Proxy; kein voller CAC. |
| Zugerechneter Erstbestell-ROAS | `sum(attributed_first_purchase_revenue_cents) / sum(spend_cents)` | Umsatz-/Spend-Verhältnis; kein Gewinn, keine Inkrementalität, kein LTV. |
| Erstkaufumsatz (USD) | `sum(attributed_first_purchase_revenue_cents) / 100` | Nur Paid-Kohorten-Attribution; kein Urteil gegen das 60K-Monatsziel. |

Die Prozentpunktveränderung einer Rate ist `(Week 2 rate - Week 1 rate) * 100`. Die relative Veränderung ist `(Week 2 rate / Week 1 rate - 1) * 100`, wenn Woche 1 positiv ist. Der verfasste 45% → 28% entspricht −17 Prozentpunkten und etwa −37.8% relativ; kein anderes Ergebnis wird durch diesen Quellvertrag vorbestimmt.

Schichten Sie Mobile vor der Diagnose der aggregierten Mobile-Entwicklung nach Kanal × Zielgruppe × Creative. Für Schicht `s` gilt festes Gewicht `w_s = Week 1 starts_s / Week 1 total starts`. Vergleichen Sie `sum(w_s * Week 1 completion_rate_s)` mit `sum(w_s * Week 2 completion_rate_s)` und vergleichen Sie beide mit beobachteten Raten. Veröffentlichen Sie Gewichte und Zählwerte. Eine Schicht mit positivem Gewicht ohne definierte Woche-2-Rate macht den vollständigen Fixed-Mix-Vergleich nicht verfügbar; jeder explizit eingeschränkte Vergleich gemeinsamer Schichten muss ausgeschlossene Zählwerte/Gewichte offenlegen und kann nicht stillschweigend für das Ganze stehen. Eine Schicht mit Null-Gewicht trägt null bei und erfordert keine Rate. Sich ändernder Mix und gruppeninterne Bewegung können koexistieren. Keines von beiden beweist eine Ursache; die Kohorten sind nicht randomisiert.

Ein unvollständiger Snapshot oder eine vorläufige Primärzeile macht die beiden vollständigen Zeiträume ungeklärt/nicht vergleichbar. Behandeln Sie unbeobachtete Ergebnisse nicht als null. Ein separat gewählter Vergleich mit identischer ausgereifter Abdeckung muss die gewählten Daten, Ausschlüsse und die geänderte Frage angeben.

## Nicht verfügbare Evidenz und Quellenkonflikte

Nicht verfügbar: voller CAC, Gewinn, Retention, realisierter 12-Monats-LTV, Awareness, Inkrementalität, echter All-Channel-/Monatsumsatz, Frequency, Impression Share, Bounce Rate, Ereignis-/Release-Protokolle, Kundeninterviews und kausale Erklärungen. Die separate 4.2% “quiz CVR” des Quell-Assets hat hier keine angemessene gemeinsame Nennerdefinition; importieren Sie sie nicht. Keine Verlustschätzung, kein Segment-Multiple, keine Budgetanweisung und keine organisch-zu-paid-kausale Geschichte eines Screenshots ist ein abgeleitetes Fixture-Ergebnis. Siehe Quellkarte für Kursfakten versus neu verfasste Annahmen.
