Bilder (N01, N05, N07, N08): gemeinsamer Freigabezustand PressReleaseImage::isPubliclyDeliverable() für Seiten, OG und Medienroute (Bestand bleibt sichtbar, v2 nur mit Bestätigung, Admin-Upload bis zum Kundenklick nicht öffentlich); eigene Ability confirmImageRights nur für den Kontoinhaber, ohne Super-Admin-Kurzschluss, Identität und ausstehende Bestätigung auch im Service; Status-Regel unter der PM-Sperre; Cache-Flush nach dem Commit außerhalb der Dateibereinigung; Snapshot nach Bestätigung an veröffentlichter PM; Bestätigungstexte an die gezeigte Kennung gebunden. Beweisarchiv (N02, N10, N11, N12, N13, 5.1): Tombstone unter Zeilensperre mit erneuter Hold-/Fristprüfung; Dateioperationen ausgewertet, Commands mit FAILURE; record() über .tmp + move; Marker archive_pending_at mit archive:retry-pending und archive:sweep-orphans; Anonymisierung entfernt Bilder über den Remover mit Antragsbezug; Draft-Purge räumt Medien nie veröffentlichter abgelehnter Einreichungen; App-Kopien fallen mit dem Archiv-Tombstone; label_corrected nur für veröffentlichte Bilder; archive_entries.legal_request_id; FileDeletion-Helfer; Systemstatus-Checks. KI und Hintergrund (N03, N04, N14, N20, N21): Ergebnis-UPDATE und Audit in einer Transaktion; erwarteter Hash bis in reject()/holdForManualReview(); Ablaufmail per beanspruchtem Marker in einer Transaktion; strikte Schemaprüfung der Vision-Antwort; Fortschrittsmarke ungecacht. Berichte und Canonical (N15–N19, 5.2): lückenlose Alterskohorten; Feed-Identität mit Portal und Sprache; Sitemap-Rolle in der Kundenansicht; Indexverteilung auf einer Grundgesamtheit; Kopien nach Wegfall der Erstquelle neu bewertet; Kategorie-Admin leert Seiten-Caches; Dry-Run zählt alle Tabellen. Gesamtsuite: 2.122 Tests grün, einer übersprungen; Larastan und Pint sauber. Zwei Migrationen (nullable Spalten, INSTANT). N09 offen. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
235 lines
10 KiB
Markdown
235 lines
10 KiB
Markdown
# Basiswerte Block 0
|
||
|
||
**Erhoben:** 01.09.2026 auf dem Live-System; Kohorten-Basiswert am 21.09.2026 (Abschnitt „✔ Basiswert 0.1")
|
||
**Fenster:** 01.06.2026 bis 01.09.2026 (Kohorten: bis 21.09.2026)
|
||
**Erhoben mit:** `press-releases:view-distribution`, `press-releases:rejection-rate`
|
||
|
||
Diese Werte sind der Vergleichspunkt für alles, was aus Block 1 folgt. Sie
|
||
stehen fest, bevor die erste Maßnahme live geht — genau dafür existiert
|
||
Block 0.
|
||
|
||
---
|
||
|
||
## 0.1 Aufrufzahlen
|
||
|
||
### Gesamtverteilung im Fenster
|
||
|
||
| Portal | PMs | Min | P10 | P25 | **Median** | P75 | P90 | Max | Mittelwert |
|
||
|---|---|---|---|---|---|---|---|---|---|
|
||
| Presseecho | 1436 | 1 | 43 | 72 | **98** | 164 | 212 | 412 | 118,6 |
|
||
| Businessportal24 | 1491 | 7 | 81 | 127 | **200** | 279 | 351 | 1376 | 214,4 |
|
||
|
||
Aufgeteilt nach Bestand:
|
||
|
||
| Portal | Bestand | PMs | Median |
|
||
|---|---|---|---|
|
||
| Presseecho | seit Relaunch | 1172 | 100 |
|
||
| Presseecho | Altbestand | 264 | 58 |
|
||
| Businessportal24 | seit Relaunch | 1210 | 202 |
|
||
| Businessportal24 | Altbestand | 281 | 189 |
|
||
|
||
Häufigkeitsverteilung:
|
||
|
||
| Klasse | Presseecho | Businessportal24 |
|
||
|---|---|---|
|
||
| 0–24 Aufrufe | 2 % | 0 % |
|
||
| 25–49 | 11 % | 4 % |
|
||
| 50–99 | 38 % | 11 % |
|
||
| 100–199 | 37 % | 35 % |
|
||
| 200–499 | 12 % | 48 % |
|
||
| 500–999 | 0 % | 2 % |
|
||
| 1000+ | 0 % | 0 % |
|
||
|
||
### ⚠ Der Gesamtmedian ist NICHT der Basiswert
|
||
|
||
`press_releases.hits` ist ein mitlaufender Gesamtzähler, und die Aufrufe wachsen
|
||
nach der Veröffentlichung über Wochen weiter. Gemessen auf der Dev-Kopie
|
||
(Stand 13.08.), nur Meldungen seit dem Relaunch:
|
||
|
||
| Alter der Meldung | Presseecho ⌀ | Businessportal24 ⌀ |
|
||
|---|---|---|
|
||
| 0–6 Tage | 76 | 81 |
|
||
| 7–13 Tage | 128 | 126 |
|
||
| 14–20 Tage | 169 | 179 |
|
||
| 21–27 Tage | 235 | 231 |
|
||
|
||
Nach drei Wochen ist **kein Plateau erreicht** — die Kurve steigt weiter. Damit
|
||
misst der Median über ein Drei-Monats-Fenster nicht, wie viele Aufrufe eine
|
||
Meldung bekommt, sondern wie viel eine zufällig alte Meldung bisher gesammelt
|
||
hat. Dieser Wert verschiebt sich mit der Altersmischung des Fensters; zwei
|
||
Messungen zu verschiedenen Zeitpunkten wären nicht vergleichbar.
|
||
|
||
**Vergleichbar ist nur die einzelne Alterskohorte.** Der Report gibt sie seit
|
||
dem 01.09. mit aus. Als Basiswert festzuhalten ist die Zeile
|
||
**„28–55 Tage"** je Portal — sie lässt sich in einem halben Jahr identisch
|
||
erheben.
|
||
|
||
> **Offen:** Die Kohortenwerte vom Live-System fehlen noch. Der Report ist
|
||
> nachgerüstet, aber die Zahlen oben stammen aus dem Lauf davor. Vor dem
|
||
> Livegang von Block 1 einmal nachziehen:
|
||
> `php artisan press-releases:view-distribution --json > basiswert-0.1.json`
|
||
>
|
||
> **21.09.2026:** Lauf mit `--from=2026-06-01 --to=2026-09-01 --json` auf
|
||
> dem Live-System, Datei `basiswert-0.1.json` liegt im Ordner. Auswertung
|
||
> im nächsten Abschnitt.
|
||
|
||
### Erhebung 21.09.2026 — dasselbe Fenster, drei Wochen später
|
||
|
||
Gleiches Fenster (01.06.–01.09.), gemessen am 21.09. statt am 01.09.
|
||
(`basiswert-0.1.json`):
|
||
|
||
| Portal | PMs | Median 01.09. | **Median 21.09.** | Mittelwert 21.09. | P10 / P90 |
|
||
|---|---|---|---|---|---|
|
||
| Presseecho | 1413 | 98 | **126** | 141,4 | 65 / 229 |
|
||
| Businessportal24 | 1466 | 200 | **303** | 303,5 | 149 / 409 |
|
||
|
||
Der Gesamtmedian ist in drei Wochen um 29 % (Presseecho) bzw. 52 %
|
||
(Businessportal24) gestiegen, ohne dass sich am Fenster etwas geändert hat
|
||
— genau der Effekt, vor dem der Abschnitt oben warnt. (Die PM-Zahl ist um
|
||
23 bzw. 25 gesunken: seither offline genommene Meldungen.)
|
||
|
||
Kohorten laut Datei (Alter gerechnet ab `--to` = 01.09., Zähler aber
|
||
Stand 21.09. — das **tatsächliche Alter liegt 20 Tage höher**):
|
||
|
||
| Zeile in der Datei | tatsächliches Alter | Presseecho PMs / Median | Businessportal24 PMs / Median |
|
||
|---|---|---|---|
|
||
| 0–6 Tage | 20–26 | 188 / 109 | 187 / 252 |
|
||
| 7–13 Tage | 27–33 | 146 / 108 | 154 / 294 |
|
||
| 14–20 Tage | 34–40 | 171 / 104 | 175 / 336 |
|
||
| 21–27 Tage | 41–47 | 136 / 128 | 142 / 319 |
|
||
| 28–55 Tage | 48–75 (nur ab Go-Live 20.07.) | 351 / 202 | 368 / 338 |
|
||
|
||
Lesbar ist daraus schon einiges: Businessportal24 erreicht ab etwa fünf
|
||
Wochen ein Plateau um 320–340 Aufrufe; Presseecho liegt bei rund 105–130
|
||
und springt nur in der Go-Live-Kohorte (Meldungen vom 20.07.–04.08.) auf
|
||
202 — vermutlich der Erstcrawl nach dem Umzug, kein Dauerzustand.
|
||
|
||
**Als Basiswert taugt diese Kohortenzeile trotzdem nicht:** Der Report
|
||
rechnete das Alter ab `--to`, die Zähler stehen aber immer auf heute. Mit
|
||
einem Enddatum in der Vergangenheit verschieben sich alle Kohorten um die
|
||
Verzögerung des Laufs. Seit dem 21.09.2026 zählt der Report das Alter ab
|
||
dem Stichtag der Erhebung (Feld `stichtag` in der JSON-Ausgabe); ein
|
||
`--to` in der Vergangenheit lässt die jungen Kohorten leer.
|
||
|
||
> ~~**Offen (letzter Schritt für 0.1):** einmal mit Stichtag = heute laufen lassen~~
|
||
> — erledigt, siehe nächster Abschnitt.
|
||
|
||
### ✔ Basiswert 0.1 — Kohorte „28–55 Tage", Stichtag 21.09.2026
|
||
|
||
Lauf `press-releases:view-distribution --from=2026-06-01 --json` auf dem
|
||
Live-System am 21.09.2026 (Enddatum = Stichtag, Alter und Zähler passen
|
||
zusammen; `basiswert-0.1-kohorten.json`). Nur Meldungen seit dem Relaunch.
|
||
|
||
| Portal | PMs in der Kohorte | **Median** | Mittelwert |
|
||
|---|---|---|---|
|
||
| **Presseecho** | 703 | **122** | 133,2 |
|
||
| **Businessportal24** | 727 | **314** | 318,0 |
|
||
|
||
**Das ist der Vergleichspunkt für Block 1–3.** Nächste Erhebung mit
|
||
demselben Befehl (ohne `--to`), Zeile „28–55 Tage", frühestens im
|
||
Frühjahr 2027; die Kohorte enthält dann ausschließlich Meldungen, die
|
||
unter den Maßnahmen von Block 1 veröffentlicht wurden.
|
||
|
||
Die ganze Kurve am Stichtag 21.09.2026:
|
||
|
||
| Alter | Presseecho PMs / Median | Businessportal24 PMs / Median |
|
||
|---|---|---|
|
||
| 0–6 Tage | 176 / 75 | 181 / 115 |
|
||
| 7–13 Tage | 177 / 98 | 179 / 171 |
|
||
| 14–20 Tage | 185 / 111 | 180 / 217 |
|
||
| 21–27 Tage | 191 / 109 | 190 / 253 |
|
||
| **28–55 Tage** | **703 / 122** | **727 / 314** |
|
||
| 56–90 Tage (= Go-Live-Wochen 20.07.–27.07.) | 184 / 230 | 194 / 346 |
|
||
|
||
> **Fußnote (25.09.2026, Umsetzungsaudit N15):** Die Kohorten dieser
|
||
> Erhebung waren je einen Tag schmaler als beschriftet — der Report bildete
|
||
> die Untergrenze mit `Stichtag − (Obergrenze − 1)` und ließ an jeder
|
||
> Kohortengrenze 24 Stunden aus. „28–55 Tage" umfasst hier also 27 statt
|
||
> 28 Tage, die Kohortensumme (1.616 / 1.651) liegt deshalb unter „seit
|
||
> Relaunch" (1.804 / 1.847). Der Report ist seit dem 25.09.2026 korrigiert
|
||
> (halboffene Intervalle, lückenlos). Die Werte 122 / 314 bleiben als
|
||
> Basiswert stehen — eine Neuerhebung heute träfe eine andere
|
||
> Meldungsmenge, nicht denselben Stichtag. Die nächste Erhebung läuft mit
|
||
> dem korrigierten Report; der Unterschied von einem Tag Breite ist für den
|
||
> Vergleich der Mediane unerheblich.
|
||
|
||
Lesart:
|
||
|
||
- **Businessportal24 sammelt stetig** bis etwa Woche 5 und liegt dann bei
|
||
gut 300; Meldungen bekommen dort im ersten Monat rund zweieinhalbmal so
|
||
viele Aufrufe wie auf Presseecho.
|
||
- **Presseecho ist nach zwei Wochen praktisch fertig** (111 → 109 → 122).
|
||
Die 230 der Go-Live-Kohorte sind der Erstcrawl nach dem Umzug, kein
|
||
Dauerzustand — der Ausreißer aus der ersten Datei ist damit erklärt.
|
||
- Die Fensterwerte der ersten Datei (Median 126 / 303 für 01.06.–01.09.)
|
||
lagen genau deshalb höher als der Kohortenwert: sie enthalten die
|
||
Go-Live-Wochen zu einem Drittel.
|
||
- Für E2 ändert sich nichts: keine Bodensatz-Klasse, Mittelwert nahe am
|
||
Median, Portale um den Faktor 2,5 auseinander — Rohzahlen, je Portal.
|
||
|
||
---
|
||
|
||
## 0.2 Ablehnungsquote je Quelle
|
||
|
||
| Quelle | Eingereicht | Veröffentlicht | Abgelehnt | **Quote** |
|
||
|---|---|---|---|---|
|
||
| API: connektar.de Presseverteiler (#13993) | 2428 | 2369 | 59 | **2,4 %** |
|
||
| direkt (Kundenbereich) | 13 | 13 | 0 | 0 % |
|
||
| **gesamt** | **2441** | **2382** | **59** | **2,4 %** |
|
||
|
||
### Nur eine API-Quelle
|
||
|
||
Die Roadmap nannte ursprünglich „connektar, openPR, direkt". Das war ein
|
||
Missverständnis: openPR ist kein zweiter Kanal, sondern der Presse-API-Verteiler
|
||
von connektar — also derselbe Zulauf. Bestätigt am 01.09.2026.
|
||
|
||
In den Daten: genau ein API-Token wurde je benutzt (User 13993). Der Report
|
||
gruppiert trotzdem generisch je API-Client, damit ein späterer zweiter Kunde
|
||
automatisch eine eigene Zeile bekommt.
|
||
|
||
### ⚠ Was diese Zahl für Block 1d bedeutet
|
||
|
||
59 Ablehnungen im Quartal sind eine schmale Grundlage. Grobe Abschätzung bei
|
||
n ≈ 2400 und p = 2,4 %: Der Standardfehler liegt bei rund 0,3 Prozentpunkten,
|
||
der eines Vorher-Nachher-Vergleichs bei rund 0,44.
|
||
|
||
| Angestrebte Wirkung von 1d | Erkennbar nach einem Quartal? |
|
||
|---|---|
|
||
| Quote halbiert (2,4 % → 1,2 %) | ja, rund 2,7 Standardfehler |
|
||
| Quote um 20 % gesenkt (2,4 % → 1,9 %) | nein, rund 1,1 Standardfehler |
|
||
|
||
**Folge für die Abbruchbedingung von Block 1:** „Wiedereinreichung nach
|
||
Ablehnung ist messbar" als Kriterium arbeitet mit rund 59 Fällen je Quartal.
|
||
Ein Schwellwert muss dazu passen, sonst wird Block 1 an einem Rauschen
|
||
gemessen.
|
||
|
||
---
|
||
|
||
## Was daraus für E2 folgt
|
||
|
||
**E2 — Zeigt die Absenderansicht Rohzahlen oder eine Einordnung gegen den
|
||
Portaldurchschnitt?**
|
||
|
||
**Empfehlung: Rohzahlen.** Begründung:
|
||
|
||
1. **Kein Bodensatz, den eine Einordnung kaschieren müsste.** Unter 25 Aufrufen
|
||
liegen 2 % (Presseecho) beziehungsweise 0 % (Businessportal24) der
|
||
Meldungen. Die Befürchtung aus der Roadmap — „fällt die Verteilung schwach
|
||
aus, werden Rohzahlen zum Nachteil" — tritt nicht ein.
|
||
2. **Die Verteilungen sind nahezu symmetrisch.** Mittelwert zu Median: 118,6 zu
|
||
98 und 214,4 zu 200. Es gibt keine Handvoll Ausreißer, die den Schnitt nach
|
||
oben zieht und die Mehrheit darunter zurücklässt.
|
||
3. **Eine Einordnung gegen den Portaldurchschnitt wäre sogar falsch.** Wegen
|
||
der Wachstumskurve oben vergleicht sie eine zwei Tage alte Meldung gegen
|
||
einen Schnitt, der drei Monate alte Meldungen enthält — jede frische
|
||
Veröffentlichung sähe wie ein Misserfolg aus. Eine Einordnung müsste
|
||
zwingend altersgleich sein, und dann ist sie deutlich aufwendiger als der
|
||
Nutzen rechtfertigt.
|
||
4. **Ein portalübergreifender Durchschnitt verbietet sich ohnehin.** Die
|
||
Mediane unterscheiden sich um den Faktor zwei (98 gegenüber 200). Jede
|
||
Einordnung müsste je Portal geführt werden.
|
||
|
||
Wenn später doch eine Einordnung gewünscht ist, dann als **Perzentil-Angabe
|
||
innerhalb der eigenen Alterskohorte** („liegt über 60 % der Meldungen
|
||
vergleichbaren Alters auf diesem Portal") — nicht als Vergleich gegen einen
|
||
Durchschnitt. Die Kohortenlogik dafür steht bereits im Report.
|