> **Stand der Doku**: 11.06.2026 — dieses Konzept beschreibt den Zielzustand > der Plattform. Umgesetzt sind inzwischen die KI-Prüfung (§1, §15.1/15.2) > und Bilder/Lizenzen (§2); offen bleiben externe Meldungen, Magic-Link-Flow, > Korrektur-Hinweise und Trust-Score. Welcher Teil in welchem Zustand ist, > steht jeweils in einer **„IST-Stand"-Box** am Anfang des Abschnitts. > > **Für Tarife/Credits (§8–10) gilt das > [`Decision-Update Preisstruktur & Veröffentlichungs-Flow`](../Decision-Update%20Preisstruktur%20&%20Ver%C3%B6ffentlichungs-Flow.md).** > > Aktueller Code-vs-Konzept-Abgleich: [`docs/STATUS-ABGLEICH-USER-PANEL.md`](../STATUS-ABGLEICH-USER-PANEL.md). --- ## 1. KI-Freigabe-Workflow für Pressemitteilungen > **IST-Stand 11.06.2026**: Der Drei-Stufen-Workflow ist **umgesetzt** > (Detail-Doku: `Entwicklungsplan KI-Pruefung und Veroeffentlichung.md`, > Phasen 0–5): > > - Jede Einreichung (Formular + API) laeuft durch den Blacklist-Hard-Filter > und wird anschliessend asynchron KI-klassifiziert (Rot/Gelb/Gruen, > OpenAI-Treiber mit deterministischem Fallback, Queue `classification`). > - Routing: Rot → `rejected` + Mail mit Begruendung, Gelb → manuelle > Admin-Queue, Gruen → Auto-Publish (sofort oder zum geplanten Termin). > - Jede Entscheidung wird in `ki_audits` protokolliert (Provider, Modell, > Begruendung, Raw-Response); Re-Klassifikation bei Titel-/Text-Aenderung. > - Zusaetzlich umgesetzt: Content-Score 0–100 → Stufe (§15.2). > > Offen: Trust-Score (§15.3), Live-Anzeige des Ergebnisses ohne Reload, > DSGVO-Aufbewahrungsregel fuer `raw_response`. ### Ziel Automatisierte Vorprüfung jeder neu eingereichten Pressemitteilung, um direkte Veröffentlichung problematischer Inhalte zu verhindern. ### Editor > **IST-Stand 21.05.2026**: Der Editor ist `flux:editor` mit Absaetzen, > fett, kursiv, Listen, Zitat, Links und Headings. Das ist bewusst etwas > mehr als das urspruenglich geplante „nur fett + kursiv", weil > Pressemitteilungen in der Praxis Zitate, Aufzaehlungen und gelegentlich > Zwischenueberschriften brauchen. Der Inhalt wird beim Speichern > serverseitig durch HTMLPurifier (`mews/purifier`, gekapselt in > `App\Services\PressRelease\PressReleaseHtmlSanitizer`) bereinigt — alles > ausserhalb der erlaubten Tag-Liste wird entfernt. - Einfacher Texteditor mit Absätzen - Formatierungen: nur **fett** und _kursiv_ - Keine weiteren Formatierungsoptionen ### Klassifikation durch KI KI antwortet strukturiert (JSON) mit Score und Kategorien: - Werbung statt Pressemitteilung - Beleidigend / diskriminierend - Rechtlich heikel - Spam-Muster - Unseriöse Versprechen ### Drei-Stufen-Ergebnis |Status|Behandlung|User sieht| |---|---|---| |**Grün**|Direkte Veröffentlichung (optional 5–10 Min Verzögerung)|Sofort live| |**Gelb**|Manuelle Review-Queue|Status „in Prüfung"| |**Rot**|Zurück an User mit Begründung|Möglichkeit zur Überarbeitung| ### Logging Jede Prüfung wird vollständig geloggt: Prompt, KI-Antwort, Score, Zeitstempel, User-ID. Basis für spätere Prompt-Optimierung und Nachvollziehbarkeit. ### Trust-Score (mittelfristig) Pro User wird ein Vertrauenslevel aufgebaut. Der Score kann im Admin Backend eingesehen und manuell justiert werden, damit Sonderfälle wie Distribution-Partner, Bestandskunden oder auffällige Accounts gezielt gesteuert werden können. Da aktuell Pressemitteilungen ohne Freigabe veröffentlicht werden, sollte die Einführung schrittweise erfolgen: - Startwert pro User aus Historie ableiten: Anzahl PMs, Ablehnungen, Beschwerden, manuelle Eingriffe. - Neue/unbekannte User konservativer behandeln. - Verlässliche User können bei grünem KI-Ergebnis schneller oder automatisch veröffentlicht werden. - Admins können Trust-Score und Auto-Publishing-Status überschreiben. Beispiel: Nach z. B. 50 problemfrei veröffentlichten PMs wird die Grün-Schwelle automatisch gelockert. Reduziert spätere Moderationslast. ### Aufbewahrung und Zugriff KI-Prüfungen müssen nachvollziehbar sein, dürfen aber nicht unbegrenzt und ungeschützt wachsen: - KI-Audits mit Prompt, Antwort, Score und Klassifikation speichern, aber mit definierter Aufbewahrungsfrist. - Personenbezogene Daten und potenziell rechtswidrige Inhalte möglichst minimieren oder redigieren. - Zugriff nur für Admins mit passender Berechtigung. - Fristen im Admin Backend konfigurierbar machen, mindestens getrennt nach normalen Checks, roten Treffern und juristischen Fällen. --- ## 2. Bilder & Lizenzen > **IST-Stand 11.06.2026**: Lizenz-/Rechteerfassung und Titelbild sind > umgesetzt (Phase 8F–8H + Umbau 10./11.06., Detail-Doku: > `Umsetzung Pressemitteilung Bearbeitung Titelbild Veroeffentlichung.md`, > Fachvorgabe: `Lizenztyp Bildupload.md`): > > - Ein **Titelbild pro PM** (Cover-Variante 1280×580, Original wird nach > Verarbeitung geloescht) oder SVG-Platzhalter aus dem zentralen Set > (`App\Enums\PressReleasePlaceholder`, `PressReleaseCoverImage`-Resolver). > - Vollstaendiges Rechteformular: Urheber, 7 Lizenztypen, Lizenzdetails, > Lizenz-/Quell-URL, Personen- und Sachrechte-Status, interne Notizen, > Rechte-Bestaetigung; bedingte Pflichtfelder + Risikohinweise. > - Nur Quelle „Eigenes Bild hochladen". **Stock und KI sind nicht > angebunden** (weiterhin offen, ebenso der KI-Wasserzeichen-Check). ### Upload-Workflow Beim Klick „Bild hinzufügen" wählt der User die Quelle: 1. **Eigenes Bild hochladen** 2. **Aus Bilddatenbank wählen** (Stock (kostenpflichtig?)) 3. **Mit KI generieren** (kostenpflichtig) ### Eigenes Bild – Pflichtfelder Ohne Eingabe kein Speichern, kein Veröffentlichen: - **Urheber/Fotograf** (Freitext) - **Lizenztyp** (Dropdown): - Eigene Aufnahme - CC-Lizenz - Kommerzielle Lizenz erworben - Einwilligung des Urhebers - Sonstiges - **Quelle/Lizenz-URL** (Pflicht bei CC und kommerziellen Lizenzen) - **Bei abgebildeten Personen**: Checkbox „Einwilligung der abgebildeten Personen liegt vor" - **Bestätigungs-Checkbox** (nicht vorausgewählt): > _„Ich bestätige, dass ich die erforderlichen Nutzungsrechte an diesem Bild besitze und stelle [Plattform] von sämtlichen Ansprüchen Dritter frei, die aus einer unberechtigten Nutzung resultieren."_ ### Optionaler KI-Check beim Upload Erkennt Wasserzeichen, bekannte Stock-Muster, Logos. Wirft Warnung an Admin, blockiert nicht automatisch. ### Stock-Integration (Free) - **Unsplash + Pexels API** kostenlos einbinden - Lizenz/Quelle automatisch gespeichert - User muss keine Lizenzdaten manuell eingeben ### Stock-Integration (Premium) - Adobe Stock oder Shutterstock per API - Kosten x € pro Bild, weitergegeben an User mit Aufschlag ### KI-Bildgenerierung - API-Anbindung z. B. Flux, DALL·E 3, Stable Diffusion - User gibt keinen Prompt ein, erhält 1-2 Vorschläge zur Auswahl (Hier wird die Pressemitteilung mehr oder weniger als prompt genommen und es werden Vorschläge gemacht, die der User über Auswahlfelder oder Auswahlmenüs Justieren kann) - **Wichtig:** - Lizenzhinweis transparent - Metadaten/dezenter Hinweis „mit KI erstellt" (wird mit AI Act Pflicht) - Keine Generierung realer Personen/Marken (Prompt-Filter vorschalten) ### Datenmodell `images` (grob) ``` - source_type (own/stock/ai) - author - license_type - license_url - stock_provider - stock_id - ai_provider - ai_prompt - rights_confirmed_at - uploaded_by - persons_consent (bool) ``` ### AGB-relevante Punkte - Freistellungsvereinbarung: User stellt Plattform von Ansprüchen Dritter frei - AGB-Klausel sollte vom Anwalt geprüft werden - Notice-and-Takedown-Prozess (DSA-pflichtig) --- ## 3. Pressemitteilung melden (öffentlich, durch Dritte) > **IST-Stand 21.05.2026**: Noch nicht implementiert. Es gibt weder ein > oeffentliches Melde-Formular noch ein internes Ticketsystem. Das Thema > bleibt fuer Phase 2/3 (DSA-Pflicht). ### Ziel DSA-konformer Notice-and-Action-Mechanismus für Beschwerden Dritter. ### Ticketsystem **Feste Kategorien:** - Urheberrecht - Persönlichkeitsrecht - Falschaussage - Beleidigend - Spam - Sonstiges **Pflichtfelder:** - Kategorie - Begründung (Freitext) - Kontakt-E-Mail des Melders **Auto-Empfangsbestätigung** an Melder. ### Behandlung - KI-Triage bewertet Plausibilität, ordnet Priorität zu - Bei plausibler Meldung (besonders Urheberrecht): PM sofort in **Quarantäne** - Autor wird informiert, bekommt Frist zur Stellungnahme - Finale Entscheidung durch Admin ### Abgrenzung zum Änderungs-Flow Der „Melden"-Button ist für **Dritte** (kein Login nötig). Änderungen an eigenen PMs laufen über den autorisierten Magic-Link-Flow (siehe Abschnitt 6). --- ## 4. Korrektur-Modell für veröffentlichte Pressemitteilungen > **IST-Stand 21.05.2026**: Korrektur- und Update-Hinweise sind noch nicht > umgesetzt. Was es gibt: > > - **Status-Wechsel** ueber `PressReleaseService` (`draft → review → > published | rejected | archived`). > - Eine rudimentaere **Tombstone-Variante** in > `PressReleaseService::deleteFromAdmin()` — beim Loeschen einer > bereits veroeffentlichten PM wird der Inhalt durch einen neutralen > Ersatztext ersetzt und der Status auf `archived` gesetzt, statt die > Zeile zu loeschen. > - Editierbare Korrektur-/Update-/Tombstone-Textvorlagen im Admin Backend > gibt es noch nicht. > > Die hier beschriebenen Drei-Stufen-Sichtbarkeitsregeln sind Phase 2/3. ### Grundprinzip Pressemitteilungen sind historische Dokumente, kein Blog. **Ändern eigentlich nie, ergänzen ja, löschen nur in Ausnahmen.** ### Drei Sichtbarkeits-Stufen **Korrektur-Hinweis** (bei sachlichen Fehlern): > _„Korrektur vom 5.5.2026: Der ursprünglich genannte Umsatz von 5 Mio. € wurde auf 4,2 Mio. € berichtigt."_ Hinweis erscheint oben gut sichtbar, Originaltext wird angepasst, Versionierung dokumentiert alte Fassung. **Update-Hinweis** (bei substanziellen Ergänzungen): > _„Update vom 5.5.2026: Das Produkt ist seit dem 1.5. nicht mehr verfügbar."_ Originaltext bleibt unverändert, Update wird unten angehängt. **Anonymisierung** (bei Kontaktdaten/DSGVO): Persönliche Daten werden ohne sichtbaren Hinweis ersetzt. DSGVO-konform und sogar Pflicht. ### Tombstone statt Hard Delete Bei „Löschung" wird die PM nicht physisch entfernt, sondern die Seite zeigt: > _„Diese Pressemitteilung wurde am 5.5.2026 auf Wunsch des Autors entfernt. Die URL bleibt zu Zitat- und Archivzwecken erhalten."_ Der Text ist nur ein Beispiel. Öffentlich sollte neutral formuliert werden, damit keine unnötigen juristischen oder reputativen Aussagen entstehen. Tombstone-Texte, Korrekturhinweise, Update-Hinweise und Standardbegründungen sollen im Admin Backend als Textvorlagen pflegbar sein. - Aus Übersichten/Suche raus - `noindex`-Tag gesetzt - Backlinks funktionieren weiter - Keine 404-Fehler **Echte physische Löschung** nur bei juristischer Notwendigkeit (Gerichtsurteil, schwere Persönlichkeitsrechtsverletzung). ### SEO-Konsequenzen - **301** nur bei bewusster URL-Änderung - **410 Gone** signalisiert permanent weg, nimmt Linkjuice mit - **Tombstone + noindex**: behält Backlink-Wert, aus Suche raus → meist beste Wahl - **Korrekturhinweise** sind Trust-Signal für Google --- ## 5. DSGVO-Position ### Kernaussage Pressemitteilungen fallen unter **berechtigtes Interesse (Art. 6 Abs. 1 lit. f DSGVO)** im Rahmen von **Meinungs- und Informationsfreiheit (Art. 85 DSGVO, Medienprivileg)**. → **Komplettlöschung einer PM ist kein DSGVO-Anspruch.** ### Was gelöscht/anonymisiert werden muss (auf Wunsch) - Vollständiger Name natürlicher Personen im Kontaktblock - Direktdurchwahl, Mobilnummer, persönliche E-Mail - Privatadresse - Foto identifizierbarer Personen ### Was bleiben darf - Firmenname, Firmenadresse, Hauptrufnummer - Funktions-E-Mails (`presse@firma.de`, `info@firma.de`) - Geschäftsführer im Pressetext mit Tätigkeitsbezug (z. B. Zitate) - Historische Aussagen zur Firma ### Standard-Anonymisierungs-Patterns - Name → entfernt oder „[Name auf Wunsch entfernt]" - Telefon → entfernt - E-Mail → durch Funktions-E-Mail ersetzt (`presse@firma.de`) - Im Versionsverlauf: Grund „DSGVO-Anonymisierung Art. 17" dokumentiert, Inhalt nicht erneut gespeichert ### Sonderfall Persönlichkeitsrecht Persönlichkeitsrechtsverletzungen (§§ 823, 1004 BGB analog) sind **kein** DSGVO-Thema, können aber echte Komplettlöschung rechtfertigen. Eigener Pfad mit manueller Sichtung. --- ## 6. User-Flow: Änderung durch Pressekontakt > **IST-Stand 21.05.2026**: Der Magic-Link-Flow fuer Pressekontakte ist > noch nicht implementiert. Was es gibt: > > - Die Tabelle `magic_links` existiert (gehoert aktuell an `users`). > - Der `MagicLinkGenerator` wird intern fuer Vorschau-Links > („Share-Link") aus dem Admin-Press-Release-Show genutzt. > - Es gibt **keine** separate `press_release_access_requests`- oder > `press_contact_access_tokens`-Tabelle. > - Der Aenderungs-Wizard (Pfade A–G) ist nicht gebaut. > > Das Thema bleibt fuer Phase 2. Dieser Flow ist vom normalen User-Login getrennt. Er soll Firmen und hinterlegten Pressekontakten erlauben, eigene Pressemitteilungen über E-Mail-Verifikation zu bearbeiten oder Änderungen zu beantragen, ohne dass zwingend ein vollwertiger User-Account existiert. Technisch sollte dafür nicht die bestehende `magic_links`-Tabelle am `users`-Model missbraucht werden. Besser ist eine neue Request-/Token-Tabelle für Pressekontakt- und Firmenzugriffe, z. B. `press_release_access_requests` oder `press_contact_access_tokens`. Diese referenziert bestehende Daten (`press_releases`, `companies`, `contacts`) und bleibt getrennt von echten Login-Usern. Wichtig: Tabellenbegriffe bleiben am bestehenden Modell ausgerichtet. Es gibt weiterhin `contacts` und `press_release_contact`; keine parallele Tabelle `press_contacts`. ### Phase 1 – Zugang & Authentifizierung **Schritt 1**: Auf jeder PM dezenter Link „Sie sind als Pressekontakt hinterlegt? Pressemitteilung verwalten →" **Schritt 2**: E-Mail-Eingabe + Captcha **Schritt 3**: System prüft die eingegebene E-Mail gegen die vorhandenen Daten: - `contacts.email` über `press_release_contact` für direkt hinterlegte Pressekontakte. - `companies.email` der Firma, die der PM über `press_releases.company_id` zugeordnet ist. - optional später weitere verifizierte Firmen-E-Mails, falls ein eigenes Modell dafür entsteht. **Identische Antwort** unabhängig vom Match (verhindert User-Enumeration): > _„Falls die angegebene E-Mail-Adresse für diese Pressemitteilung oder Firma berechtigt ist, haben wir Ihnen einen Link zur Verwaltung gesendet."_ **Schritt 4**: Bei Match: Token-Mail mit 30-Min-Token. Klick öffnet eine begrenzte Verwaltungssession für genau die berechtigten Pressemitteilungen/Firmeninhalte, keine normale User-Session. ### Phase 2 – Dashboard Liste aller PMs, für die diese E-Mail berechtigt ist: - direkt als Pressekontakt über `contacts` + `press_release_contact` - über die Firmen-E-Mail der zugeordneten `company` - später optional über weitere verifizierte Firmen-E-Mails Pro Eintrag: - Titel, Datum, Status (veröffentlicht / depubliziert / in Bearbeitung) - Button **„Änderung beantragen"** Optional: _„Permanenten Account anlegen"_ → Passwort vergeben, künftig direkter Login. ### Phase 3 – Änderungs-Wizard Erste Frage: **„Worum geht es?"** ``` A) Tippfehler / Grammatik korrigieren B) Pressekontakt-Daten aktualisieren C) Inhaltliche Korrektur (sachlicher Fehler) D) Update / Ergänzung (neue Information) E) Persönliche Daten entfernen lassen (DSGVO) F) Persönlichkeitsrechtsverletzung melden G) Pressemitteilung depublizieren ``` #### Pfad A – Tippfehler (low friction) - Inline-Editor mit Diff-Anzeige - KI prüft Diff: nur kosmetisch? - Ja → übernommen, kein öffentlicher Hinweis - Nein → automatische Umleitung zu Pfad C - **Kostenfrei** #### Pfad B – Pressekontakt-Daten (low friction) - Formular mit aktuellen Daten - Direkt übernommen, kein öffentlicher Hinweis - Versionierung im Hintergrund - **Kostenfrei** #### Pfad C – Inhaltliche Korrektur (medium friction) - Editor + Pflichtfeld „Was war falsch und was ist korrekt?" - KI prüft: Korrektur (Zahl, Datum, Name) ok / Umschreibung der Aussage blockiert - Vorschau zeigt PM mit Korrektur-Hinweis - **Kostenpflichtig**, nach Zahlung sofort live #### Pfad D – Update / Ergänzung (medium friction) - Textfeld für Ergänzung - Original bleibt vollständig unverändert - Wird unten angehängt mit Datum - KI-Check auf Spam/Werbe-Update - **Kostenpflichtig**, Sofortveröffentlichung #### Pfad E – DSGVO-Anonymisierung (low friction, kostenfrei) Aufklärungs-Schritt zuerst: > _„Pressemitteilungen sind öffentliche journalistische Dokumente und können nicht aufgrund der DSGVO gelöscht werden (Art. 85 DSGVO, Medienprivileg). Auf Wunsch entfernen wir aber kostenfrei personenbezogene Daten."_ Checkbox-Auswahl: - ☐ Name aus Pressekontakt - ☐ Direktdurchwahl/Mobilnummer - ☐ Persönliche E-Mail-Adresse - ☐ Andere personenbezogene Angabe (Freitext mit Quote/Stelle) KI-Check ob plausibel im DSGVO-Sinn (Firmendaten werden rausgefiltert). **Kostenfrei**, sofort umgesetzt. #### Pfad F – Persönlichkeitsrechtsverletzung (manuelle Sichtung) - Pflichtfelder: betroffene Stelle, Art der Verletzung, Begründung, ggf. Belege - Geht in Review-Queue, KI gibt Vorklassifikation - **Kostenfrei** (legitimes Anliegen darf nicht durch Gebühr blockiert werden) - Outcomes: Anonymisierung, Anpassung, Tombstone, Ablehnung mit Begründung #### Pfad G – Depublizieren (high friction) **G.1 Aufklärungsseite:** > _„Pressemitteilungen sind öffentliche, archivierte Dokumente. Eine Depublizierung sollte gut überlegt sein. Die URL bleibt mit einem Hinweis erhalten, der Inhalt wird nicht mehr angezeigt. Diese Aktion ist nicht ohne Weiteres rückgängig zu machen."_ **G.2 Begründungspflicht** (Dropdown + Freitext, KI klassifiziert): - _„Veraltet"_ → Hinweis: „Veraltung ist kein Grund. Update (Pfad D)?" - _„Falsch / peinlich"_ → Hinweis: „Stattdessen Korrektur (Pfad C)?" - _„Firma existiert nicht mehr"_ → ok, weiter - _„Anderer Grund"_ → Freitext, KI prüft **G.3 Kostenpflichtige Bestätigung** (höhere Gebühr als Korrektur) **G.4 Bedenkzeit (24–48 h):** - Nach Zahlung: Status „Depublizierung wird in 24h ausgeführt" - Widerrufslink per E-Mail - Im Dashboard sichtbar mit „Widerrufen"-Button **G.5 Ausführung**: Tombstone-Seite, `noindex`, aus Listen/Suche raus, URL bleibt ### Friction-Übersicht |Pfad|Auth|KI-Check|Kosten|Wartezeit|Public Hint| |---|---|---|---|---|---| |A Tippfehler|Magic-Link|ja|–|–|nein| |B Kontaktdaten|Magic-Link|–|–|–|nein| |C Korrektur|Magic-Link|ja|ja|–|ja| |D Update|Magic-Link|ja|ja|–|ja| |E DSGVO|Magic-Link|leicht|–|–|nein| |F Persönlichkeitsrecht|Magic-Link|Triage|–|manuell|je nach Outcome| |G Depublizieren|Magic-Link|ja|ja|24–48 h|Tombstone| ### Edge Cases - **Keine valide E-Mail im Pressekontakt** (alte connektar-PMs): Fallback „Verifikation per Domain-Inhaberschaft / Impressums-Match", manuelle Prüfung - **E-Mail wurde geändert / Person verlässt Firma**: Manuelle Anfrage mit Bestätigung über `info@`-Adresse - **Massenanträge**: Bulk-Aktion möglich, Friction wird **pro PM** angewendet ### Missbrauchsschutz - Rate-Limit auf Magic-Link-Anfragen pro E-Mail/IP - Cooldown nach Hard-Delete-Anfrage (24 h Wiederherstellung) - Audit-Log mit IP/User-Agent jeder Edit-Aktion ### Standard-Antwort an unautorisierte Lösch-Anfragen per Mail > _„Änderungen an Pressemitteilungen sind ausschließlich über das Selbstbedienungs-Portal möglich. Bitte besuchen Sie [URL der PM] und nutzen Sie den Link ‚Pressemitteilung verwalten'. Die Authentifizierung erfolgt über die in der PM hinterlegte Pressekontakt-E-Mail."_ --- ## 7. Distribution-Partner (connektar.de) ### Status Über 50 % des aktuellen PM-Volumens kommt über connektar via API. Aktuell kein klassischer Vertrag, nur AGB + Rechnung. Wichtig für Traffic während Relaunch-Phase, daher zunächst weiterlaufen lassen. ### Behandlung - Eigene Account-Kategorie: `source: distribution_partner` (nicht öffentlich beworben) - Kein Standard-Tier, sondern Custom-Vertrag (Wholesale-Account) - API-Rate-Limits (z. B. max. 50/Stunde) zum Schutz vor Lastspitzen - Strengere Moderations-Schwelle in der KI-Prüfung ### Tracking Eigene Statistiken trennen: - Volumen, Engagement, Beschwerden, KI-Ablehnungsrate - Datenbasis für Vertragsverlängerungen und Qualitäts-SLA ### Risiko **Klumpenrisiko bei >50 % Anteil.** Beim nächsten Renewal Kündigungsrecht bei Qualitätsproblemen verankern. --- ## 8. Preismodell – Tarife (überarbeitet) > **⚠️ Ueberschrieben (11.06.2026)**: Die Abschnitte 8, 9 und 10 sind durch > das [`Decision-Update Preisstruktur & Veröffentlichungs-Flow`](../Decision-Update%20Preisstruktur%20&%20Ver%C3%B6ffentlichungs-Flow.md) > ersetzt. Wichtigste Aenderungen: Kontingente Pro 25 / Agency 60 (statt > 60/150), Jahrespreis als „2 Monate gratis", Bonus-Credits aus der > Tarif-Tabelle entfernt, Launch-Credits auf Extra-PM / Boost / > PDF-Nachweis reduziert, Slot-Verbrauch erst bei Veroeffentlichung. > Der folgende Text bleibt als urspruengliche Zielvorstellung erhalten. > > **IST-Stand 11.06.2026**: Das Tarif- und Credit-System ist noch nicht > implementiert. Es gibt: > > - Eine Tabelle `user_payment_options` (mit Pivot zu `companies`). > - Eine Tabelle `invoices` (aktuell + Legacy ueber `legacy_invoices`). > - Keine Tarif-Stufen, keine Stripe-Anbindung, kein Auto-Refill. > - Den Phase-8-**Quota-Stub** auf `users` (`press_release_quota`, > `press_release_quota_used_this_month`) samt Kontingent-Anzeige im > Veroeffentlichungs-Modal — zaehlt aktuell beim Einreichen, laut > Decision-Update kuenftig bei Veroeffentlichung. ### Grundlogik Alle Tarife enthalten ein Kontingent an Pressemitteilungen sowie monatlich ausgeschüttete Bonus-Credits für Tools und Add-ons. Bonus-Credits aus Abos verfallen monatlich, gekaufte Credits bleiben 24 Monate gültig. So bleibt das Abo aktivierungsstark, ohne dass der Nutzer eigenes Geld verliert. ### Tier-Struktur |Tier|Preis|PMs|Bonus-Credits/Mo.|Effektiver PM-Preis|Besonderheiten| |---|---|---|---|---|---| |**Einzel**|19 € / Stück|1|4 (verfallend nach 30 T)|19,00 €|Pay-as-you-go| |**Starter**|19 €/Mo. (190 €/Jahr)|3|12|6,30 €|Free-Stock, KI-Quality-Check| |**Business**|49 €/Mo. (490 €/Jahr)|10|30|4,90 €|Erweiterte Statistiken, optionaler Newsroom| |**Pro**|99 €/Mo. (990 €/Jahr)|unbegrenzt (Fair Use)|60|< 2 €|Eigener Newsroom, Priority, volles Statistik-Dashboard| |**Agency**|199 €/Mo. (1.990 €/Jahr)|unbegrenzt für 5 Marken|120|< 1 €|Multi-Redakteur-Workflow, API-Zugang, je weitere Marke 29 €/Mo.| Jahrespreise mit ca. 17 % Rabatt eingebaut. Fair Use im Pro-Tarif: Soft-Cap 50 PMs/Monat. ### Mehrwerte im Vergleich |Feature|Einzel|Starter|Business|Pro|Agency| |---|---|---|---|---|---| |Pressemitteilungen|1|3/Mo.|10/Mo.|unbegr.|unbegr. (5 Marken)| |Bonus-Credits|4 einmalig|12/Mo.|30/Mo.|60/Mo.|120/Mo.| |Free-Stock-Bilder|✓|✓|✓|✓|✓| |KI-Quality-Check|✓|✓|✓|✓|✓| |Erweiterte Statistiken|–|–|✓|✓|✓| |Eigener Newsroom|–|–|optional|inkl.|inkl.| |Priority-Support|–|–|–|✓|✓| |Multi-Redakteur-Workflow|–|–|–|–|✓| |API-Zugang|–|–|–|–|✓| ### Kommunikation Die inkludierten Bonus-Credits sind Teil des Pakets, nicht zusätzliche Kosten. Reicht das Kontingent nicht (z. B. weil mehrere PMs mit aufwändigem Tooling veröffentlicht werden), kauft der Nutzer Credits nach – diese bleiben 24 Monate erhalten und schaffen langfristige Bindung an die Plattform. ### Bestandskunden Aktive Jahresabos behalten Preis bis zum nächsten Verlängerungstermin. Loyalty-Bonus 10–20 % im ersten Verlängerungsjahr. Downgrade-Pfad anbieten. ### Einstiegsstrategie In der Anfangsphase (erste 6–12 Monate nach Relaunch) bewusst günstiger einsteigen, um User-Base aufzubauen. Preise sind kalkuliert mit Spielraum für spätere Anpassung. Wichtig: Bestandskunden behalten ihre Konditionen. --- ## 9. Credit-System (überarbeitet) ### Grundregel **1 Credit = 1 €** als Listenpreis-Anker. Alle Service-Preise werden in ganzen Credits ausgewiesen. Wer größere Pakete kauft, zahlt effektiv weniger pro Credit (Volumenrabatt), aber der Listenpreis bleibt stabil. So entfällt jede Kopfrechen-Übung im UI. ### Credit-Pakete |Paket|Credits|Preis|Effektiv pro Credit|Ersparnis| |---|---|---|---|---| |Test|10|10 €|1,00 €|–| |Standard|50|45 €|0,90 €|10 %| |Plus|150|120 €|0,80 €|20 %| |Pro|500|375 €|0,75 €|25 %| |Business|1.500|1.050 €|0,70 €|30 %| Ganzzahlige Beträge, keine Bruchteile im UI. Intern kann auf Cent-Ebene abgerechnet werden, aber nach außen sieht der Nutzer nur ganze Credits. ### Auto-Refill Standardmäßig nach erstem Kauf aktiviert (mit Opt-Out): - Trigger: bei < 10 Credits Restguthaben - Aufladung: zuletzt gekauftes Paket (Default Standard, 50 Credits) - Eindeutige Bestätigungs-Mail nach jeder automatischen Aufladung ### Gültigkeit - Gekaufte Credits: 24 Monate ab Kauf - Bonus-Credits aus Abos: monatlich verfallend - Willkommens-Bonus (5 Credits einmalig bei Account-Anlage): 90 Tage ### Mini-Checkout (kontextuell) 1. User klickt z. B. „KI-Bild generieren" 2. Modal: _„Kostet 4 Credits. Du hast 2 Credits."_ 3. Optionen: - „Schnell aufladen: Standard-Paket (50 Credits, 45 €)" – 1-Klick mit Saved Payment Method - „Anderes Paket wählen" - „Abbrechen" 4. Nach Aufladung wird Aktion automatisch ausgeführt ### Erstkauf Stripe Checkout mit `setup_future_usage` für Saved Payment Method. Danach 1-Klick-Aufladung. ### Dashboard - Credit-Stand oben rechts immer sichtbar - Trennung sichtbar: Bonus-Credits (verfallend) vs. gekaufte Credits (24 Monate) - Verlauf einsehbar (was wofür verbraucht) - Rechnungs-PDFs für jede Aufladung ### Buchhaltung & Recht - Credits = Vorauszahlung, bilanziell als Verbindlichkeit - MwSt-Behandlung mit Steuerberater abstimmen (Kauf vs. Verbrauch) - Verfall in AGB sauber dokumentieren - Keine Auszahlung in Geld (sonst PSD2-Lizenzthema) - EU-Auslandskunden: Reverse-Charge bei B2B mit USt-ID --- ## 10. Preisliste in Credits (überarbeitet) Alle Preise in ganzen Credits (1 Credit = 1 €). Anker-Werte für die Startphase, iterativ anpassbar. ### Veröffentlichung |Service|Credits| |---|---| |Standard-PM (Pay-as-you-go)|19| |PM-Korrektur (Pfad C)|8| |PM-Update (Pfad D)|4 _(im ersten Jahr ggf. kostenlos)_| |Depublizierung (Pfad G)|19–25| ### Bilder |Service|Credits| |---|---| |Free-Stock (Unsplash, Pexels)|0| |Premium-Stock (Adobe, Shutterstock)|8| |KI-Bild generieren|4| |KI-Bild Re-Generation|2| ### KI-Textservices |Service|Credits| |---|---| |Quality-Check (Stil/Pressestil)|3| |Lektorat|8| |Pressetext-Optimierung (Headlines, SEO)|15| |Headline-Booster (nur Headlines)|5| |PM aus Stichworten generieren|25| |Übersetzung (DE↔EN)|12| ### Platzierungen |Service|Credits| |---|---| |Highlight Kategorie (3 Tage)|15| |Highlight Kategorie (7 Tage)|30| |Startseite-Highlight (24 h)|39| |Startseite-Highlight (3 Tage)|89| |Top-Slot Startseite (24 h)|119| |Newsletter-Erwähnung|59| |Social-Share (offizieller Kanal)|25| Voraussetzung für alle Platzierungen: Mindest-Content-Score erreicht (siehe Abschnitt „Boost-Eligibilität"). ### Distribution |Service|Credits| |---|---| |PDF-Export mit Branding|2| |Social-Snippet-Generierung|3| |Verteiler-Versand (klein, branchenspezifisch)|39| |Verteiler-Versand (mittel)|99| |Verteiler-Versand (groß, branchenübergreifend)|199| ### Account / Profil |Service|Credits| |---|---| |Verifiziertes Firmenprofil (einmalig)|79| |Custom Subdomain (pro Jahr)|49| |Erweiterte Statistiken (pro Monat)|15| ### Goodies (kostenlos, fördern Aktivität) - PM-Updates kostenfrei im ersten Jahr (besseres Archiv) - 3 Free-Stock-Bilder pro PM - Erster KI-Quality-Check pro PM kostenfrei - 5 Credits Willkommens-Bonus bei Account-Anlage (90 Tage gültig) - Headline-Vorschlag (1 Variante) kostenfrei pro PM --- --- --- ## 11. Weitere Monetarisierungs-Ideen Mittelfristig prüfen, nicht im ersten Release: - **Job-Anzeigen / Stellenausschreibungen**: €49–99 pro Anzeige oder Jahres-Pauschale - **Branchen-Verzeichnis (Sponsored Listings)**: prominente Listung in Rubriken, €19–49/Monat - **Whitepaper-/Studien-Hosting**: Landingpage + Lead-Capture, €99–299/Monat - **Event-Ankündigungen**: eigene Rubrik (Webinare, Messen, Launches), €29–79/Event - **API-Zugang für Distribution-Partner**: skaliertes connektar-Modell, €499–999/Monat mit Limits - **SEO-Backlink-Aufwertung**: heikel, nicht offensiv kommunizieren, €99–299 - **White-Label-PM-Verteilung**: B2B-Modell für andere Portale - **Affiliate-Werbung in PMs**: Tracking-Links, Umsatzbeteiligung – experimentell --- ## 12. Build-Reihenfolge (Empfehlung) 1. **Backend-Migration zu Laravel** (in Umsetzung) 2. **Magic-Link-Auth + „Meine Pressemitteilungen"** (Dashboard) 3. **Self-Service-Buttons** für Top-3-Fälle (Kontaktdaten, Depublizieren, Link) 4. **Versionierung** im Datenmodell (`press_release_revisions`) 5. **KI-Freigabe-Workflow** für neue PMs (3-Stufen-Klassifikation) 6. **Bild-Modul** mit Pflichtfeldern + Free-Stock-Integration 7. **Credit-System** als Datenmodell (Konto, Transaktionen, Verfall) 8. **Stripe-Integration** mit Saved Payment Methods + Auto-Refill 9. **Erste Add-ons** anbinden: Highlight, KI-Bild, KI-Lektorat 10. **KI-Triage** für Änderungs-Wizard (Pfad A vs. C, Pfad G) 11. **Melden-Button** mit DSA-konformem Ticketsystem 12. **Premium-Stock + KI-Bildgenerierung** 13. **Tombstone-Logik** + SEO-Setup (`noindex`, 410 nur wo nötig) 14. **Tarif-Integration** mit Bonus-Credits 15. Schrittweise weitere Services anbinden, datengetrieben --- ## 13. Datenmodell-Skizze (relevante Tabellen) ``` press_releases - id, title, body, published_at, status, tombstone_at, ... press_release_revisions - id, press_release_id, type (correction/update/anonymization) - old_content, new_content, reason, created_by, created_at contacts - bestehende Tabelle: id, company_id, name fields, email, phone, ... press_release_contact - bestehender Pivot: press_release_id, contact_id press_release_access_requests - neue Tabelle für Phase 2: id, press_release_id, company_id, contact_id nullable - requester_email, token_hash, purpose, expires_at, consumed_at - scope (single_press_release/company_press_releases) change_requests - neue Tabelle für Phase 2: id, press_release_id, requester_email - path (A-G), status, ki_classification, ki_score - payment_id, scheduled_for, executed_at reports (Melden-Button) - id, press_release_id, reporter_email, category - reason, status, ki_triage, created_at images - id, source_type, author, license_type, license_url - stock_provider, stock_id, ai_provider, ai_prompt - rights_confirmed_at, persons_consent, uploaded_by credit_accounts - id, user_id, balance_cent_credits, auto_refill_enabled - auto_refill_package_id credit_transactions - id, account_id, amount_cent_credits (signed) - type (purchase/spend/bonus/expiry) - reference_type, reference_id (z. B. image_id, press_release_id) - expires_at, created_at ki_audits - id, reference_type, reference_id, prompt, response - score, classification, created_at admin_text_templates - id, key, locale, title, body, is_active - für Tombstone, Korrekturhinweise, Update-Hinweise, Ablehnungen, Standardmails retention_policies - id, key, retention_days, description, is_active - konfigurierbare Aufbewahrungsfristen für KI-Audits, Access-Requests, Change-Requests, API-Logs ``` --- ## 14. Offene Punkte / nächste Entscheidungen - Konkrete Preise für Korrektur (Pfad C), Update (Pfad D), Depublizierung (Pfad G) finalisieren - Stripe-Webhook-Architektur für Credit-Transaktionen - AGB-Anpassung durch Anwalt (Lizenzklausel, Credits, DSA, DSGVO) - KI-Prompt für Diff-Klassifikation und Veröffentlichungs-Triage final ausarbeiten - Migrations-Plan für Bestands-PMs ohne Bilder/Lizenzangaben - Newsletter-Aufbau (Voraussetzung für Newsletter-Add-on) - Trust-Score-Schwellenwerte definieren - Aufbewahrungsfristen für KI-Audits, Token-Requests, Change-Requests und API-Logs definieren - Admin-pflegbare Textvorlagen für Tombstones, Korrekturen, Updates, Ablehnungen und Standardmails konzipieren - Pressekontakt-/Firmen-E-Mail-Zugriff technisch als getrennte Access-Request-Logik modellieren, nicht als normaler User-Login ## Abschnitt 15: Score-Architektur > **IST-Stand 11.06.2026**: §15.1 (Klassifikations-Score Rot/Gelb/Grün) und > §15.2 (Content-Score 0–100 → Stufe) sind **umgesetzt** — siehe > `Entwicklungsplan KI-Pruefung und Veroeffentlichung.md` (Phasen 2–5). > §15.3 (Trust-Score) ist weiterhin offen (Phase 3). Die Plattform arbeitet mit drei voneinander unabhängigen Scores. Sie haben unterschiedliche Funktionen, werden unterschiedlich berechnet und an unterschiedlichen Stellen wirksam. Die Trennung ist zentral, weil sie unterschiedliche Datenmodelle und Update-Logiken betrifft. ### 15.1 Klassifikations-Score (Eintritts-Filter) **Funktion:** Entscheidet, ob eine Pressemitteilung überhaupt veröffentlicht wird. **Bereich:** Grün / Gelb / Rot (kategorial) **Faktoren:** - Werbung statt Pressemitteilung - Beleidigend / diskriminierend - Rechtlich heikel - Spam-Muster - Unseriöse Versprechen **Auswirkung:** - Grün: Direkte Veröffentlichung (optional 5–10 Min Verzögerung) - Gelb: Manuelle Review-Queue - Rot: Zurück an User mit Begründung **Aktualisierung:** Einmalig bei Einreichung. Bei Änderung der PM (Pfad C/D) wird neu klassifiziert. **Speicherung:** `press_releases.classification` plus vollständiges Audit-Log in `ki_audits`. ### 15.2 Content-Score (Qualitäts-Indikator) **Funktion:** Misst die handwerkliche Qualität einer Pressemitteilung. Bestimmt organische Sichtbarkeit und Boost-Berechtigung. **Bereich:** 0–100 Punkte **Faktoren (Vorschlag, iterativ verfeinerbar):** |Kategorie|Gewichtung|Was zählt| |---|---|---| |Pressestil|20 %|Tonalität (informativ vs. werblich), passive vs. aktive Konstruktion, Zitate vorhanden| |Struktur|15 %|Lead-Absatz vorhanden, sinnvolle Absatzstruktur, Pyramidaler Aufbau| |Lesbarkeit|10 %|Flesch-Index für Deutsch, Satzlängen, Fachsprache angemessen| |Vollständigkeit|15 %|Pressekontakt, Unternehmensinfo, Datum, Branche, Region| |Bildmaterial|10 %|Mindestens 1 Bild, Auflösung, Alt-Text, Bildunterschrift| |Quellen / Belege|10 %|Verlinkungen, Studien-Referenzen, Datenquellen| |Headline-Stärke|10 %|Länge, Keyword-Relevanz, Klarheit| |Originalität|10 %|Kein Boilerplate, kein Duplicate-Content, individueller Ton| **Auswirkung:** - **Organische Sichtbarkeit:** Listing-Position, Top-Story-Kandidat, Newsletter-Aufnahme, Trending in Branche - **Boost-Berechtigung:** Schwellenwerte für kostenpflichtige Slots (siehe Abschnitt 16) - **User-Feedback:** Sichtbar im Editor-Dashboard mit konkreten Verbesserungsvorschlägen **Aktualisierung:** Bei Einreichung berechnet, bei jeder Änderung der PM neu berechnet. History pro PM in `content_scores`. **Speicherung:** `press_releases.content_score` (aktueller Wert), `content_scores` (History mit Faktor-Breakdown). ### 15.3 Trust-Score (Reputations-Indikator) **Funktion:** Bewertet die Zuverlässigkeit eines Publishers über Zeit. Reduziert Moderationslast und kann öffentliche Anerkennung bringen. **Bereich:** 0–100 oder Stufen (Bronze / Silber / Gold / Verifiziert) **Faktoren:** - Anzahl problemfrei veröffentlichter PMs - Durchschnittlicher Content-Score über alle PMs - Beschwerderate (Reports, Korrekturen, Depublizierungen) - Account-Alter - Verifikations-Status (verifiziertes Firmenprofil) **Auswirkung:** - **Moderation:** Lockerung der KI-Freigabe-Schwelle (mehr „Grün" automatisch) - **Sichtbarkeit (optional):** öffentliches Verifizierungs-Badge auf Newsroom und PM-Seiten - **Bevorzugung in Branchen-Übersichten** bei gleichem Content-Score - **Bei Trust-Verlust:** Rückfall in strengere Moderation (auch nach Beschwerden, häufigen Korrekturen, Depublizierungen) **Aktualisierung:** Rollierend, z. B. nächtlicher Cron-Job über die letzten 90 Tage Aktivität. **Speicherung:** `accounts.trust_score`, `accounts.trust_tier` (Bronze/Silber/Gold/Verifiziert), History in `trust_score_log`. ### Offene Detail-Entscheidungen - Trust auf User- oder auf Firmen-Ebene? (Empfehlung: Firmen-Ebene, weil Mitarbeiter wechseln) - Trust-Verlust: ab welchen Schwellen? - Verifizierungs-Badge: nur über kostenpflichtigen Verifizierungs-Prozess oder auch durch Trust-Score erreichbar? --- ## NEU – Abschnitt 16: Boost-Eligibilität Die Verbindung zwischen Score-System und kostenpflichtigen Sichtbarkeits-Slots. Grundprinzip: **Schlechter Content kann nicht in den Top-Slot gekauft werden.** Das schützt die redaktionelle Glaubwürdigkeit der Plattform und schafft den Anreiz, in Qualität zu investieren. ### Schwellenwerte je Slot-Typ |Slot|Klassifikation|Min. Content-Score| |---|---|---| |Highlight Kategorie|Grün|50| |Startseite-Highlight (24h / 3 T)|Grün|65| |Top-Slot Startseite|Grün|75| |Newsletter-Erwähnung|Grün|70| |Social-Share (offizieller Kanal)|Grün|70| |Verteiler-Versand (extern)|Grün|80| PMs mit Klassifikation Gelb können nicht boostbar werden, auch nicht nach manueller Freigabe – sie bleiben in regulärer Sichtbarkeit. PMs mit Klassifikation Rot werden nicht veröffentlicht und sind damit irrelevant. ### UI-Logik Wenn ein User einen Boost-Slot bucht, dessen Schwelle seine PM nicht erreicht, sieht er statt des Buchungsformulars: > _„Diese Pressemitteilung erreicht aktuell einen Content-Score von 60/100. Für den Top-Slot Startseite empfehlen wir mindestens 75 Punkte. So kannst du deinen Score verbessern:"_ > > _[Pressetext-Optimierung – 15 Credits → +15–20 Punkte]_ _[Headline-Booster – 5 Credits → +3–7 Punkte]_ _[Bild hinzufügen – 4 Credits → +5–10 Punkte]_ Nach Tool-Anwendung wird der Score neu berechnet, der Slot kann dann gebucht werden. ### Effekt Drei gewollte Konsequenzen: 1. **Plattform-Qualität bleibt hoch:** Premium-Slots zeigen nur qualitativ hochwertige Inhalte. 2. **Tools werden indirekt verkauft:** Wer den Slot will, muss in Qualität investieren – entweder selbst oder über kostenpflichtige Tools. 3. **Glaubwürdigkeit für Leser bleibt erhalten:** Leser und Journalisten erkennen schnell, dass sichtbar platzierte Inhalte tatsächlich relevant sind. ### Sonderfall: Editorial-Pick Unabhängig vom Boost-System kann die Redaktion (intern) PMs als „Empfehlung der Redaktion" hervorheben. Das ist ein redaktionelles Instrument, kein kommerzielles, und nicht buchbar. Wirkt als Vertrauensanker auf der Startseite. --- ## NEU – Abschnitt 17: Tool-zu-Algorithmus-Loop Der strategische Kern der Monetarisierungslogik. Der Loop verbindet drei Plattform-Ziele in einem geschlossenen System: ### Die drei Ziele 1. **Plattform-Qualität:** Hohe durchschnittliche Inhaltsqualität, damit Leser, Journalisten und Mediaplaner die Plattform als seriös wahrnehmen. 2. **Monetarisierung:** Umsatz aus Tools, Tarifen und Boost-Slots. 3. **Anreiz für Publisher:** Sichtbar gute Platzierungen für gute Inhalte als motivierender Faktor. ### Der Loop Publisher schreibt PM   ↓ Content-Score wird berechnet (z. B. 55/100)   ↓ Publisher will Top-Slot buchen (Schwelle 75)   ↓ System empfiehlt: Pressetext-Optimierung (15 Credits)   ↓ Tool wird angewendet, Score steigt auf 78   ↓ Top-Slot wird gebucht (119 Credits)   ↓ PM erscheint prominent auf Startseite   ↓ Hohe Reichweite, gute Statistiken   ↓ Publisher sieht Wert, kommt wieder   ↓ Plattform-Durchschnittsqualität steigt   ↓ Mehr Leser, mehr Wert für nächsten Boost-Käufer ### Voraussetzungen für Funktionieren - **Tools müssen tatsächlich gut sein.** Wenn das KI-Lektorat schlechter ist als das, was der Publisher selbst zustande bringt, kollabiert der Loop. → Tool-Qualität ist Wettbewerbsvorteil, hier wird investiert. - **Score-Verbesserung muss spürbar und nachvollziehbar sein.** Der Publisher muss verstehen, was sein Tool-Einsatz konkret gebracht hat. → Score-Breakdown sichtbar, Vorher-Nachher-Vergleich. - **Reichweite muss real sein.** Ein gekaufter Top-Slot muss tatsächlich Reichweite bringen. → Leser-Seite (Newsletter, SEO, Social) muss aktiv aufgebaut werden. - **Boost-Schwellen dürfen nicht zu hoch sein.** Sonst wird der Loop frustrierend statt motivierend. → Schwellen iterativ kalibrieren auf Basis realer Score-Verteilung. ### Was das für den Build bedeutet - **Tools haben strategische Priorität.** KI-Lektorat, Pressetext-Optimierung, Headline-Booster sind nicht nur Add-ons, sondern das Herzstück der Wertschöpfung. - **Score-Anzeige muss früh implementiert werden.** Ohne sichtbaren Score kein Loop. - **Statistik-Dashboard ist Pflicht für mittlere Tarife.** Ohne sichtbare Reichweiten-Daten erkennen Publisher den Wert ihres Investments nicht. --- ## 18. Datenmodell-Skizze – Ergänzungen Zusätzlich zu den bestehenden Tabellen aus dem Hauptkonzept: content_scores - id, press_release_id - score (0-100), version (bei Neuberechnung) - factors (JSON: pressestil, struktur, lesbarkeit, vollstaendigkeit,             bildmaterial, quellen, headline, originalitaet) - calculated_at, calculation_reason (initial/edit/tool_applied) ​ placements - id, press_release_id, account_id - slot_type (kategorie_highlight, startseite_highlight, top_slot,               newsletter, social_share, verteiler_klein/mittel/gross) - starts_at, ends_at - credits_spent - status (scheduled, active, completed, cancelled) - eligibility_check_passed (bool, snapshot bei Buchung) - eligibility_score_snapshot (Content-Score zum Zeitpunkt der Buchung) - created_at ​ placement_inventory - id, slot_type - max_concurrent (z.B. 1 für Top-Slot, 3 für Startseite-Highlight) - duration_options (JSON: [24h, 72h]) - min_content_score (75) - min_classification ('green') ​ trust_score_log - id, account_id - score (0-100), tier (bronze/silber/gold/verifiziert) - factors (JSON: pm_count, avg_content_score, complaints,             account_age_days) - calculated_at ​ accounts (Ergänzungen) - + trust_score (int, 0-100) - + trust_tier (enum) - + verified_business_profile (bool) - + verified_at Wichtige Logiken: - **placement_inventory** definiert, wie viele Slots welcher Art parallel verfügbar sind. Bei Buchung wird geprüft: ist ein Slot für das gewünschte Zeitfenster frei? Wenn nicht: nächstmöglicher Termin anbieten oder ablehnen. - **eligibility_score_snapshot** auf Placement-Ebene: damit nachvollziehbar bleibt, mit welchem Score eine PM zum Buchungszeitpunkt qualifiziert war. Wenn der Score später sinkt (etwa durch Korrektur), bleibt der gebuchte Slot bestehen, aber bei Verlängerung wird neu geprüft. - **content_scores** mit Versionierung erlaubt nachträglich Auswertung: Welche Tools haben welchen Score-Effekt gehabt? Daten für Tool-Optimierung. --- ## Offene Punkte / nächste Entscheidungen (Update) Zusätzlich zu den bereits dokumentierten Punkten: - **Content-Score-Faktoren feinjustieren:** Welche Gewichtung passt für deutsche Pressemitteilungen? Iterativ kalibrieren mit echten Daten. - **Boost-Schwellen kalibrieren:** Erst nach 100–200 echten PMs sehen, wo die Score-Verteilung liegt. Schwellen ggf. anpassen. - **Trust-Score: User vs. Firma:** Empfehlung Firma, aber Detail-Logik bei Mitarbeiterwechsel klären. - **Tool-Qualität:** KI-Prompts für Lektorat und Pressetext-Optimierung müssen sehr sauber gebaut werden. Eigene Test-Suite mit Vorher/Nachher-PMs. - **Slot-Inventory:** Wie viele Top-Slots parallel? Empfehlung 1 (sonst verliert er an Wert), Startseite-Highlight 3, Kategorie-Highlight 5–10 je Branche. - **Editorial-Picks:** Wer wählt aus? Anfangs du selbst, später ggf. Redaktions-Account mit Frontend-Tool.