Doku: Challenge-Regeln 25.09. und Dry-Run-Befund user:cleanup

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin 2026-09-25 10:44:49 +00:00
parent c4edbf97e4
commit 4f62ad1850
2 changed files with 15 additions and 11 deletions

View file

@ -1,6 +1,6 @@
# Recruiting Challenge Oktober 2026 bis Januar 2027: Inhalte und Abstimmung
**Stand:** 25.09.2026 · **Live seit 23.09.** (nur VIP sichtbar). Start verschoben auf den **9. Oktober** (Kundenentscheid 25.09.), Texte entsprechend angepasst, EN/ES/FR-Übersetzungen im Seeder. Gleichstandsregel und Zählung nach Zahlungsdatum sind live, Abos zählen nicht (Schalter „Abos berücksichtigen“ aus). Offen: Seeder mit neuem Datum auf Produktion einspielen, Freigabe für alle Berater, die Regelfragen 2 bis 7 in Abschnitt 9.
**Stand:** 25.09.2026 · **Live seit 23.09.** (nur VIP sichtbar). Start verschoben auf den **9. Oktober** (Kundenentscheid 25.09.), Texte entsprechend angepasst, EN/ES/FR-Übersetzungen im Seeder. Gleichstandsregel und Zählung nach Zahlungsdatum sind live, Abos zählen nicht (Schalter „Abos berücksichtigen“ aus). Storno-Regel und „nur bestätigte Teilnehmer in Rangliste und Auszahlung“ umgesetzt 25.09. (Deploy offen). Offen: nach dem Deploy Seeder einspielen (Datum, Übersetzungen, Bedingungen Punkt 2 und 7), Freigabe für alle Berater nach der Verkündung im Call, Regelfragen 4 bis 7 in Abschnitt 9.
**Bezug:** [Entwicklungsplan E1](entwicklungsplan-protokoll-september-2026.md#e1--recruiting-challenge-oktoberjanuar--live-seit-2309-nur-vip-start-0910)
---
@ -69,7 +69,7 @@ So im Seeder hinterlegt. Die Punkte 2 (Bestätigung als Voraussetzung), 6 (Gleic
>
> **1. Worum es geht.** mivita veranstaltet die Recruiting Challenge 2026/27. Für jeden neuen Partner, den ein Berater im Aktionszeitraum gewinnt, zahlt mivita eine Prämie. Die drei Berater mit den meisten neuen Partnern erhalten zusätzlich einen Bonus.
>
> **2. Wer mitmachen kann.** Alle Berater mit aktivem Beraterkonto. Die Teilnahme wird einmal im Backoffice bestätigt. Neue Partner werden ab dem 9. Oktober 2026 gezählt, egal wann die Bestätigung erfolgt. Ohne Bestätigung erscheint der Berater in der Rangliste anonym und erhält keine Auszahlung.
> **2. Wer mitmachen kann.** Alle Berater mit aktivem Beraterkonto. Die Teilnahme wird einmal im Backoffice bestätigt. Neue Partner werden ab dem 9. Oktober 2026 gezählt, egal wann die Bestätigung erfolgt. Ohne Bestätigung erscheint der Berater nicht in der Rangliste und erhält keine Auszahlung.
>
> **3. Aktionszeitraum.** 9. Oktober 2026 bis 31. Januar 2027. Es zählt das Datum der bezahlten Registrierungsbestellung des neuen Partners.
>
@ -79,7 +79,7 @@ So im Seeder hinterlegt. Die Punkte 2 (Bestätigung als Voraussetzung), 6 (Gleic
>
> **6. Gleichstand.** Haben mehrere Berater die gleiche Anzahl neuer Partner, liegt vorn, wer diese Anzahl zuerst erreicht hat.
>
> **7. Widerruf und Storno.** Widerruft ein neuer Partner seine Registrierung oder wird die Bestellung storniert, entfällt die Wertung für diesen Partner. Stichtag ist die Auszahlung im Februar 2027, danach wird nicht mehr zurückgerechnet.
> **7. Widerruf und Storno.** Widerruft ein neuer Partner seine Registrierung oder wird die Bestellung storniert, entfällt die Wertung für diesen Partner. In der eigenen Berechnung steht er dann als storniert. Stichtag ist die Auszahlung im Februar 2027, danach wird nicht mehr zurückgerechnet.
>
> **8. Auszahlung.** Die Prämien werden nach Ende der Challenge im Februar 2027 gesammelt ausgezahlt. Die Prämie ist eine Einnahme aus der Beratertätigkeit. Für die Versteuerung ist der Berater selbst verantwortlich.
>
@ -117,8 +117,8 @@ Bonushöhe ist entschieden (500 / 300 / 200 €). Übrig bleiben die Regelfragen
| # | Frage | Vorschlag in den Bedingungen | Technische Folge |
|---|---|---|---|
| **1** | Gleichstand in den Top 3: wer gewinnt? Historisch liegen regelmäßig fünf bis sechs Berater gleichauf. | Wer die Anzahl zuerst erreicht hat | **Erledigt, live 25.09.** |
| **2** | Widerruf oder Storno einer Registrierung: zählt der Neupartner weiter? | Nein, Wertung entfällt. Stichtag Auszahlung, danach keine Rückrechnung | Automatik (Storno entfernt Tracking): 1 PT. Alternativ manuelle Prüfung des Exports vor Auszahlung |
| **3** | Muss die Teilnahme bestätigt sein, um die Prämie zu bekommen? | Ja | Export filtert auf bestätigte Teilnehmer: 0,25 PT. Erinnerung an Unbestätigte im Januar |
| **2** | Widerruf oder Storno einer Registrierung: zählt der Neupartner weiter? | Nein, Wertung entfällt. Stichtag Auszahlung, danach keine Rückrechnung | **Entschieden 25.09., umgesetzt:** Automatik, in „Meine Berechnung“ als storniert sichtbar |
| **3** | Muss die Teilnahme bestätigt sein, um die Prämie zu bekommen? | Ja | **Entschieden 25.09., umgesetzt:** gezählt wird für alle, Rang und Auszahlung nur mit Bestätigung; Unbestätigte sieht in der Rangliste nur VIP (Datenschutz). Erinnerung an Unbestätigte im Januar offen |
| **4** | Auszahlungsweg: Gutschrift auf der Februar-Abrechnung, Überweisung, oder Gutschrift-PDF? | Gutschrift auf der Februar-Abrechnung, Liste aus dem Export | Automatische Gutschrift-Erzeugung: 1 bis 2 PT, sonst manuell in der Buchhaltung |
| **5** | Zählt jedes Starterpaket gleich, oder erst ab einer Paketgröße? | Jedes Paket zählt (so gebaut) | Paketgrenze: 0,5 PT |
| **6** | Zählen Kunden, die mit Starterpaket zum Berater werden? | Ja (so gebaut, wie Montenegro) | Ausschluss: 0,5 PT |
@ -132,8 +132,8 @@ Bonushöhe ist entschieden (500 / 300 / 200 €). Übrig bleiben die Regelfragen
| Punkt | Aufwand | Wann |
|---|---|---|
| ~~Gleichstandsregel "zuerst erreicht" (Frage 1)~~ | 0,5 PT | **live 25.09.** |
| Storno entfernt Neupartner-Wertung (Frage 2), falls Automatik gewünscht | 1 PT | vor der Auszahlung |
| Export nur bestätigte Teilnehmer (Frage 3) | 0,25 PT | vor der Auszahlung |
| ~~Storno entfernt Neupartner-Wertung (Frage 2)~~ | 1 PT | **umgesetzt 25.09.** |
| ~~Export nur bestätigte Teilnehmer (Frage 3)~~ | 0,25 PT | **umgesetzt 25.09.** |
| Gutschrift-Erzeugung aus dem Export (Frage 4), falls gewünscht | 1 bis 2 PT | Januar |
## 11. Anlegen auf Produktion
@ -150,7 +150,7 @@ Beim Deploy den Ordner `public/img/incentive/montenegro-incentive-2026/` mit hoc
## 12. Checkliste bis zum Start
- [ ] Fragen 2 bis 7 mit Dani/Alois entschieden (1, 8, 9, 10 erledigt)
- [ ] Fragen 4 bis 7 mit Dani/Alois entschieden (1, 2, 3, 8, 9, 10 erledigt)
- [ ] Texte freigegeben (Name, Untertitel, Beschreibung, Bedingungen) inkl. Übersetzungen EN/ES/FR
- [x] Titelbild geliefert und abgelegt
- [x] Gleichstandsregel deployt (25.09.)
@ -159,4 +159,4 @@ Beim Deploy den Ordner `public/img/incentive/montenegro-incentive-2026/` mit hoc
- [ ] Challenge im Admin geprüft (Qualifikationsbeginn 09.10.2026), Teaser und Rangliste angesehen, auch auf EN/ES/FR
- [ ] Ankündigungsmail raus ("Ab 9. Oktober")
- [x] Status "Aktiv"
- [ ] Haken "Nur für VIP sichtbar" entfernen
- [ ] Haken "Nur für VIP sichtbar" entfernen, erst nach der Verkündung im Call (voraussichtlich KW 40)

View file

@ -1,6 +1,6 @@
# Entwicklungsplan – Protokoll Zoom-Meeting 08.09.2026
**Stand:** 25.09.2026 · **Alles bis Commit `792d553` ist live.** A1–A4 und E1 seit dem Deploy vom 23.09., B2, A07, Warnung für überfällige Abos (`abo:check-overdue`), E1-Nachträge (Gleichstand, Zählung nach Zahlungsdatum, Schalter „Abos berücksichtigen“) und die Kundenrückmeldungen vom 24.09. (Punkte-Legende entfernt, Prognose-Titel „Stand Monatsende“) seit 25.09.; Migrationen, Cache-Befehle und die Sperrfrist-Settings (0) sind ausgeführt. Montenegro ist beendet und ausgewertet. **Offen:** erster Lauf von `user:cleanup` (B2, Liste an Alois), Start der Recruiting Challenge am **09.10.** (Seeder mit neuem Datum und EN/ES/FR-Texten noch einspielen), dann A5, B1, D1, D2. Kundenübersicht B2: [2026-09-23-mitgliedschaft-ablauf-uebersicht.md](2026-09-23-mitgliedschaft-ablauf-uebersicht.md). Audit vom 18.09.: [2026-09-18-audit-commits-16-09-2026.md](2026-09-18-audit-commits-16-09-2026.md).
**Stand:** 25.09.2026 · **Alles bis Commit `792d553` ist live.** A1–A4 und E1 seit dem Deploy vom 23.09., B2, A07, Warnung für überfällige Abos (`abo:check-overdue`), E1-Nachträge (Gleichstand, Zählung nach Zahlungsdatum, Schalter „Abos berücksichtigen“) und die Kundenrückmeldungen vom 24.09. (Punkte-Legende entfernt, Prognose-Titel „Stand Monatsende“) seit 25.09.; Migrationen, Cache-Befehle und die Sperrfrist-Settings (0) sind ausgeführt. Montenegro ist beendet und ausgewertet. **Nach dem 25.09. umgesetzt, Deploy offen:** B2 Berater ohne Sponsor → Firmenkonto; E1 Storno nimmt Neupartner aus der Wertung, Rang/Auszahlung nur mit bestätigter Teilnahme, Unbestätigte nur für VIP sichtbar. **Offen:** erster Lauf von `user:cleanup` (B2, Dry-Run vom 25.09. liegt vor), Start der Recruiting Challenge am **09.10.** (nach dem Deploy Seeder einspielen, Freigabe nach Verkündung im Call), dann A5, B1, D1, D2. Kundenübersicht B2: [2026-09-23-mitgliedschaft-ablauf-uebersicht.md](2026-09-23-mitgliedschaft-ablauf-uebersicht.md). Audit vom 18.09.: [2026-09-18-audit-commits-16-09-2026.md](2026-09-18-audit-commits-16-09-2026.md).
**Quellen:** `2026 09 Protokoll September-komprimiert.pdf` (Protokoll), `2026-09-14.md` (Ticket-Entwurf Abos #1–#3)
**Verwandte Pläne:** `dev/2026-07-22/entwicklungsplan-2026-09-07.md` (K11–K14 behandeln dieselben Themen aus dem Kundenbrief; die dortigen Rückfragen F4–F7 sind weiterhin offen), `dev/2026-09-10-business-plan/` (Ledger-Plan, löst A07/K11 langfristig)
@ -312,6 +312,8 @@ Dazu gibt es einen dritten, abweichenden Pfad: setzt ein Admin das Datum in die
**Messung an der Live-Kopie (23.09.):** Der erste Lauf würde 6 Berater pausieren (64 Kundendatensätze, 2 Teampartner) und 20 Berater endgültig entfernen (150 Kundendatensätze, 1 Portal-Login). Keine aktiven Kundenabos betroffen. Heute liegen bei 24 inaktiven Beratern 162 Kundendatensätze, deren Umsätze bei niemandem ankommen.
**Dry-Run auf Produktion (25.09.):** 19 Berater für den harten Cut (alle ohne Team, zusammen 141 Kundendatensätze, 2 Portal-Logins), 8 zum Pausieren (5 Teampartner, 112 Kundendatensätze, 2 Portal-Logins). Keine aktiven Kundenabos und keine eigenen Abos betroffen. Befund: ein Berater wurde 2025 ohne Sponsor registriert (`m_sponsor` und `pre_sponsor` leer) und wäre jede Nacht übersprungen worden. Behoben am 25.09.: ohne Sponsor geht alles an das Firmenkonto (ohne Mail). Drei Sponsoren bekommen im ersten Lauf mehrere Mails (einmal 3, zweimal 2).
**Deploy (erledigt 25.09.):**
```bash
@ -508,7 +510,9 @@ Das Incentive-Modul trägt jetzt optional eine Geldprämie; Montenegro bleibt un
- **Neupartner zählen ab der Zahlung (23.09.):** wie in der Statistik (Kundenentscheid 16.09.) zählt `users.partner_paid_at`, nicht das Bestelldatum — im Live-Tracking, in der nächtlichen Reparatur und im Neuaufbau (`IncentiveTracker::newPartnerCountedAt()`). Wer am 07.10. bestellt und am 09.10. zahlt, zählt in der Challenge. Montenegro ist beendet und ausgewertet (Status „Beendet“ seit 25.09.) und bleibt unberührt.
- **Schalter „Abos berücksichtigen“ (24.09., live 25.09.):** Die Challenge erfasste Eigen- und Kundenabos mit 0 Punkten (Live-Kopie: 175 Eigenabos); sie standen in „Meine Berechnung“ und im Admin und hätten Berater ohne Neupartner in die Rangliste gebracht. Neues Feld `incentives.include_abos` (Migration `2026_09_24_133443`, für die Challenge aus). Aus = kein Abo-Tracking in Tracker, Neuaufbau und Reparatur, `incentive:calculate` räumt vorhandene Abo-Zeilen ab, Abo-Punkte und Mindestabos werden auf 0 gesetzt, Abo-Spalten und -Bereiche entfallen. Tests: `IncentiveIncludeAbosToggleTest`.
- **Start 9. Oktober und Übersetzungen (25.09.):** Qualifikationsbeginn 09.10.2026 statt 01.10. (Kundenentscheid 25.09.); Beschreibung und Teilnahmebedingungen nennen den 9. Oktober. Name, Untertitel, Beschreibung und Bedingungen liegen jetzt auch auf Englisch, Spanisch und Französisch vor (`trans_*`). Der Seeder gleicht Texte, Übersetzungen und den Beginn ab, alle anderen Admin-Werte bleiben unberührt. Einspielen: `php artisan db:seed --class=RecruitingChallenge2026Seeder --force`, danach im Admin Datum und Texte prüfen. Wer vom 01.10. bis 08.10. bezahlt, zählt nicht.
- **Stornos/Rücktritte:** Ein einmal getrackter Neupartner bleibt gezählt, auch wenn die Registrierung später storniert wird (Verhalten wie Montenegro). Vor der Auszahlung die Liste gegen stornierte Registrierungsbestellungen prüfen oder Regel mit Dani/Alois klären.
- ~~**Stornos/Rücktritte:** Ein einmal getrackter Neupartner bleibt gezählt~~ — **umgesetzt 25.09. (Kundenentscheid 25.09.):** Ist jede bezahlte Starterpaket-Bestellung eines Neupartners storniert (Stornorechnung setzt `txaction = cancelled`, `paid` bleibt 1), bekommt die Tracking-Zeile `incentive_new_partners.cancelled_at` (Migration `2026_09_25_124017`), eine Storno-Logzeile nimmt die Einmalpunkte zurück. Der Partner zählt nicht mehr, steht in „Meine Berechnung“ aber durchgestrichen mit „Storniert am …, zählt nicht“. Läuft im Nachtlauf (`IncentivePointsLogRepairService::markCancelledPartners()`) und im Neuaufbau. Stichtag bleibt die Auszahlung: ein beendetes Incentive wird nicht mehr neu gerechnet.
- **Nur bestätigte Teilnehmer in Rangliste und Auszahlung (Kundenentscheid 25.09.):** Gezählt wird für alle Berater. Einen Rang (und damit einen Gewinnerplatz) bekommen nur Teilnehmer mit bestätigter Teilnahme; ausgezahlt (Export, Summen) wird nur an sie. Aus Datenschutzgründen sehen andere Berater Unbestätigte in der Rangliste gar nicht mehr, auch nicht anonym; VIP-Konten sehen sie (mit Kennzeichen), der Berater sieht seinen eigenen Eintrag. Unbestätigte sehen ihre Prämie als „Deine Prämie nach Bestätigung“, im Admin steht „Teilnahme nicht bestätigt, keine Auszahlung“. Teilnahmebedingungen Punkt 2 und 7 in allen vier Sprachen angepasst (Seeder).
- **Freigabe:** bleibt auf „Nur für VIP sichtbar“, bis die Challenge im Call (voraussichtlich KW 40) verkündet ist.
- Gutschrift-Erzeugung aus dem Export (siehe oben).
- Firmenweite Rangliste (D2) unverändert offen; die Challenge-Rangliste ist wie Montenegro für alle aktiven Berater sichtbar.