Initial commit
This commit is contained in:
307
features/monetisation/sources-revenus.feature
Normal file
307
features/monetisation/sources-revenus.feature
Normal file
@@ -0,0 +1,307 @@
|
||||
# language: fr
|
||||
Fonctionnalité: Sources de revenus créateurs
|
||||
En tant que créateur monétisé
|
||||
Je veux générer des revenus via publicités et abonnés Premium
|
||||
Afin d'être rémunéré pour mon travail
|
||||
|
||||
Contexte:
|
||||
Étant donné que je suis un créateur avec la monétisation activée
|
||||
Et que mon KYC est validé
|
||||
|
||||
# ===== PUBLICITÉS (UTILISATEURS GRATUITS) =====
|
||||
|
||||
Scénario: CPM créateur de 3€ / 1000 écoutes complètes
|
||||
Étant donné que mes contenus ont généré 1000 écoutes complètes par des utilisateurs gratuits
|
||||
Quand le calcul des revenus du mois est effectué
|
||||
Alors je touche 3.00€ pour ces 1000 écoutes
|
||||
Et ce montant est ajouté à mon solde disponible
|
||||
|
||||
Scénario: 10 000 écoutes gratuits → 30€ de revenus pub
|
||||
Étant donné que mes contenus ont généré 10 000 écoutes complètes (utilisateurs gratuits)
|
||||
Quand le mois se termine
|
||||
Alors je touche 30.00€ de revenus publicitaires
|
||||
Et ces revenus sont visibles en temps réel dans mon tableau de bord
|
||||
|
||||
Scénario: 50 000 écoutes gratuits → 150€ de revenus pub
|
||||
Étant donné que mes contenus ont généré 50 000 écoutes complètes (utilisateurs gratuits)
|
||||
Quand le mois se termine
|
||||
Alors je touche 150.00€ de revenus publicitaires
|
||||
|
||||
Scénario: 100 000 écoutes gratuits → 300€ de revenus pub
|
||||
Étant donné que mes contenus ont généré 100 000 écoutes complètes (utilisateurs gratuits)
|
||||
Quand le mois se termine
|
||||
Alors je touche 300.00€ de revenus publicitaires
|
||||
|
||||
Scénario: Répartition économique - Plateforme garde 94%
|
||||
Étant donné qu'une publicité facturée 0.05€/écoute génère 50€ CPM
|
||||
Quand la plateforme calcule la répartition
|
||||
Alors le créateur touche 3€ (6% du CA pub)
|
||||
Et la plateforme garde 47€ (94%) pour:
|
||||
| poste budgétaire | coût estimé |
|
||||
| CDN + infrastructure | 10-15€ |
|
||||
| Modération + support | 5-10€ |
|
||||
| Développement + R&D | 10-15€ |
|
||||
| Marge opérationnelle | 10-15€ |
|
||||
|
||||
Scénario: Écoute complète = ≥80% du contenu écouté
|
||||
Étant donné qu'un utilisateur gratuit écoute mon contenu de 10 minutes
|
||||
Quand il écoute 8 minutes (80%)
|
||||
Alors l'écoute compte comme "complète"
|
||||
Et je génère 0.003€ de revenus pub (3€/1000)
|
||||
|
||||
Scénario: Écoute incomplète <80% ne compte pas
|
||||
Étant donné qu'un utilisateur gratuit écoute mon contenu de 10 minutes
|
||||
Mais il skip après 5 minutes (50%)
|
||||
Quand le calcul des revenus est effectué
|
||||
Alors cette écoute ne compte pas comme "complète"
|
||||
Et je ne génère aucun revenu publicitaire pour cette écoute
|
||||
|
||||
Scénario: Écoutes Premium ne comptent pas pour les revenus pub
|
||||
Étant donné qu'un utilisateur Premium écoute 100% de mon contenu
|
||||
Quand le calcul des revenus publicitaires est effectué
|
||||
Alors cette écoute ne compte pas dans les revenus pub
|
||||
Car les utilisateurs Premium ne voient pas de publicités
|
||||
Mais elle compte dans les revenus Premium (système séparé)
|
||||
|
||||
Scénario: Détection bots - Écoutes exclues
|
||||
Étant donné qu'un bot génère 10 000 écoutes artificielles sur mes contenus
|
||||
Quand le système détecte le pattern suspect (rate limiting, IP unique, etc.)
|
||||
Alors ces écoutes sont marquées comme frauduleuses
|
||||
Et elles sont exclues du calcul des revenus publicitaires
|
||||
|
||||
Scénario: Comparaison avec YouTube (3-5€/1000 vues)
|
||||
Étant donné que YouTube paie 3-5€/1000 vues
|
||||
Quand RoadWave fixe le CPM créateur à 3€/1000 écoutes
|
||||
Alors le tarif est aligné sur le bas de la fourchette YouTube
|
||||
Et cela est compétitif pour un MVP sans marché publicitaire mature
|
||||
|
||||
Scénario: Comparaison avec Spotify (3-4€/1000 écoutes)
|
||||
Étant donné que Spotify paie ~3-4€/1000 écoutes
|
||||
Quand RoadWave fixe le CPM créateur à 3€/1000 écoutes
|
||||
Alors le tarif est aligné sur l'industrie musicale
|
||||
Et les créateurs audio peuvent anticiper des revenus similaires
|
||||
|
||||
Scénario: Tableau de bord - Revenus pub temps réel
|
||||
Étant donné que j'accède à mon tableau de bord créateur
|
||||
Quand je consulte mes revenus publicitaires
|
||||
Alors je vois:
|
||||
| métrique | valeur exemple |
|
||||
| Écoutes complètes ce mois (gratuit)| 23 456 |
|
||||
| Revenus pub ce mois | 70.37€ |
|
||||
| CPM effectif | 3.00€ |
|
||||
Et ces valeurs sont mises à jour toutes les 10 minutes
|
||||
|
||||
# ===== ABONNÉS PREMIUM =====
|
||||
|
||||
Scénario: Répartition 70/30 - Créateur touche 70%
|
||||
Étant donné qu'un utilisateur Premium paie 4.99€/mois
|
||||
Quand la répartition est calculée
|
||||
Alors 3.49€ sont reversés aux créateurs écoutés (70%)
|
||||
Et 1.50€ sont gardés par la plateforme (30%)
|
||||
|
||||
Scénario: Utilisateur écoute 3 créateurs - Répartition proportionnelle
|
||||
Étant donné qu'un utilisateur Premium paie 4.99€/mois
|
||||
Et qu'il écoute 3 créateurs ce mois:
|
||||
| créateur | temps écoute | ratio |
|
||||
| Créateur A | 10h | 50% |
|
||||
| Créateur B | 6h | 30% |
|
||||
| Créateur C | 4h | 20% |
|
||||
Quand le calcul des revenus Premium est effectué
|
||||
Alors la répartition est:
|
||||
| créateur | revenus |
|
||||
| Créateur A | 1.75€ |
|
||||
| Créateur B | 1.05€ |
|
||||
| Créateur C | 0.70€ |
|
||||
Et la somme totale versée aux créateurs est 3.50€ (70% de 4.99€)
|
||||
|
||||
Scénario: Calcul SQL proportionnel au temps d'écoute
|
||||
Étant donné qu'un utilisateur Premium a écouté plusieurs créateurs
|
||||
Quand le système calcule les revenus du mois
|
||||
Alors la requête SQL suivante est exécutée:
|
||||
```sql
|
||||
SELECT
|
||||
creator_id,
|
||||
SUM(listen_duration_seconds) AS total_seconds,
|
||||
(SUM(listen_duration_seconds) / (SELECT SUM(listen_duration_seconds) FROM premium_listens WHERE user_id = :user_id AND month = :current_month)) AS ratio,
|
||||
(4.99 * 0.70 * ratio) AS revenue_euros
|
||||
FROM premium_listens
|
||||
WHERE user_id = :user_id
|
||||
AND month = :current_month
|
||||
GROUP BY creator_id;
|
||||
```
|
||||
|
||||
Scénario: Utilisateur écoute un seul créateur - 100% à ce créateur
|
||||
Étant donné qu'un utilisateur Premium paie 4.99€/mois
|
||||
Et qu'il n'écoute qu'un seul créateur (moi)
|
||||
Quand le mois se termine
|
||||
Alors je touche 3.49€ (70% de 4.99€)
|
||||
Et je reçois 100% de la part créateurs
|
||||
|
||||
Scénario: Utilisateur Premium inactif - Aucun revenu généré
|
||||
Étant donné qu'un utilisateur Premium paie 4.99€/mois
|
||||
Mais qu'il n'écoute aucun contenu ce mois
|
||||
Quand le calcul des revenus Premium est effectué
|
||||
Alors aucun créateur ne reçoit de revenus de cet utilisateur
|
||||
Et les 3.49€ de la part créateurs restent à la plateforme
|
||||
Et cela couvre les coûts d'infrastructure
|
||||
|
||||
Scénario: Comparaison avec YouTube Premium (70/30)
|
||||
Étant donné que YouTube Premium reverse 70% aux créateurs
|
||||
Quand RoadWave fixe également 70/30
|
||||
Alors le modèle est aligné sur le standard industrie
|
||||
Et les créateurs ont confiance dans l'équité du système
|
||||
|
||||
Scénario: Comparaison avec Spotify (70/30)
|
||||
Étant donné que Spotify reverse 70% aux artistes
|
||||
Quand RoadWave fixe également 70/30
|
||||
Alors le modèle est identique à Spotify
|
||||
Et les créateurs audio comprennent facilement le système
|
||||
|
||||
Scénario: Apple Music moins avantageux (52/48)
|
||||
Étant donné qu'Apple Music ne reverse que 52% aux artistes
|
||||
Quand RoadWave offre 70% aux créateurs
|
||||
Alors RoadWave est plus avantageux de 18 points
|
||||
Et cela devient un argument marketing fort
|
||||
|
||||
Scénario: Justification équité - Créateurs les plus écoutés gagnent plus
|
||||
Étant donné que 2 créateurs ont le même nombre d'abonnés Premium
|
||||
Mais que le Créateur A est écouté 20h/mois et le Créateur B seulement 2h/mois
|
||||
Quand les revenus Premium sont calculés
|
||||
Alors le Créateur A gagne 10× plus que le Créateur B
|
||||
Et cela récompense la qualité et l'engagement (pas juste l'abonnement)
|
||||
|
||||
Scénario: Pas de "winner takes all" - Équité totale
|
||||
Étant donné qu'un utilisateur Premium écoute 10 créateurs différents
|
||||
Quand les revenus sont calculés
|
||||
Alors chacun des 10 créateurs reçoit sa part proportionnelle
|
||||
Et il n'y a pas de système où un seul créateur prend tout
|
||||
|
||||
Scénario: Marge plateforme 30% couvre absence revenus pub Premium
|
||||
Étant donné qu'un utilisateur Premium ne voit aucune publicité
|
||||
Quand la plateforme calcule ses revenus
|
||||
Alors elle ne touche que les 30% de l'abonnement Premium (1.50€)
|
||||
Et cette marge compense la perte des revenus publicitaires (qui auraient été ~47€/1000 écoutes)
|
||||
|
||||
Scénario: Tableau de bord - Revenus Premium temps réel
|
||||
Étant donné que j'accède à mon tableau de bord créateur
|
||||
Quand je consulte mes revenus Premium
|
||||
Alors je vois:
|
||||
| métrique | valeur exemple |
|
||||
| Abonnés Premium actifs ayant écouté | 47 |
|
||||
| Heures d'écoute Premium ce mois | 234h |
|
||||
| Revenus Premium ce mois | 89.23€ |
|
||||
Et ces valeurs sont mises à jour toutes les 10 minutes
|
||||
|
||||
# ===== CUMUL REVENUS PUB + PREMIUM =====
|
||||
|
||||
Scénario: Revenus cumulés pub + premium
|
||||
Étant donné que j'ai généré ce mois:
|
||||
| source | montant |
|
||||
| Revenus pub | 150.00€ |
|
||||
| Revenus Premium | 89.23€ |
|
||||
Quand je consulte mon solde disponible
|
||||
Alors le total est 239.23€
|
||||
Et ce solde sera versé le 15 du mois prochain (si ≥50€)
|
||||
|
||||
Scénario: Dashboard créateur - Vue d'ensemble
|
||||
Étant donné que j'accède à mon tableau de bord créateur
|
||||
Quand je consulte la page revenus
|
||||
Alors je vois:
|
||||
```
|
||||
===== REVENUS DU MOIS EN COURS =====
|
||||
|
||||
📊 Publicités (utilisateurs gratuits)
|
||||
- Écoutes complètes: 50,234
|
||||
- Revenus pub: 150.70€
|
||||
|
||||
👑 Abonnés Premium
|
||||
- Abonnés actifs: 47
|
||||
- Heures d'écoute: 234h
|
||||
- Revenus Premium: 89.23€
|
||||
|
||||
💰 TOTAL CE MOIS: 239.93€
|
||||
|
||||
===== HISTORIQUE =====
|
||||
Mois dernier: 178.45€ (versé le 15/01)
|
||||
Il y a 2 mois: 156.78€ (versé le 15/12)
|
||||
```
|
||||
|
||||
Scénario: Export comptable CSV pour expert-comptable
|
||||
Étant donné que je clique sur "Exporter pour comptable"
|
||||
Quand l'export est généré
|
||||
Alors je télécharge un fichier CSV:
|
||||
```csv
|
||||
Mois,Revenus Pub,Revenus Premium,Total,Statut
|
||||
2025-01,150.70,89.23,239.93,En attente versement
|
||||
2024-12,123.45,55.00,178.45,Versé le 15/01/2025
|
||||
2024-11,100.30,56.48,156.78,Versé le 15/12/2024
|
||||
```
|
||||
Et je peux transmettre ce fichier à mon expert-comptable
|
||||
|
||||
Scénario: Notification hebdomadaire progression revenus
|
||||
Étant donné que je suis créateur monétisé
|
||||
Quand chaque lundi matin arrive
|
||||
Alors je reçois un email récapitulatif:
|
||||
"""
|
||||
📊 Vos revenus de la semaine dernière:
|
||||
- Revenus pub: +23.45€ (3,456 écoutes)
|
||||
- Revenus Premium: +12.78€ (12 abonnés actifs)
|
||||
- Total semaine: 36.23€
|
||||
- Projection mois: ~150€
|
||||
"""
|
||||
|
||||
Scénario: Graphique évolution revenus sur 12 mois
|
||||
Étant donné que je suis monétisé depuis 12 mois
|
||||
Quand j'accède à mes statistiques
|
||||
Alors je vois un graphique en courbes montrant:
|
||||
| mois | revenus pub | revenus premium | total |
|
||||
| Jan 25 | 150€ | 89€ | 239€ |
|
||||
| Déc 24 | 123€ | 55€ | 178€ |
|
||||
| Nov 24 | 100€ | 56€ | 156€ |
|
||||
| ... | ... | ... | ... |
|
||||
Et cela m'aide à suivre ma progression
|
||||
|
||||
Scénario: Top 3 contenus les plus rentables du mois
|
||||
Étant donné que j'ai publié 20 contenus ce mois
|
||||
Quand je consulte mes statistiques détaillées
|
||||
Alors je vois mon top 3 contenus:
|
||||
| titre | écoutes | revenus pub | revenus premium | total |
|
||||
| Mon meilleur épisode | 12,345 | 37.04€ | 23.45€ | 60.49€ |
|
||||
| Discussion tech | 8,901 | 26.70€ | 15.67€ | 42.37€ |
|
||||
| Road trip Bretagne | 7,234 | 21.70€ | 12.34€ | 34.04€ |
|
||||
Et cela m'aide à comprendre quel type de contenu plaît le plus
|
||||
|
||||
Scénario: Alertes seuils de revenus
|
||||
Étant donné que j'ai activé les notifications de seuils
|
||||
Quand mes revenus du mois dépassent 100€ pour la première fois
|
||||
Alors je reçois une notification:
|
||||
"""
|
||||
🎉 Félicitations ! Vous venez de dépasser 100€ de revenus ce mois !
|
||||
Continuez comme ça !
|
||||
"""
|
||||
|
||||
Scénario: Performance calcul avec 100 000 créateurs
|
||||
Étant donné que RoadWave a 100 000 créateurs monétisés
|
||||
Quand le calcul des revenus mensuels est lancé le dernier jour du mois
|
||||
Alors un job asynchrone traite tous les créateurs
|
||||
Et le calcul prend environ 2-4 heures pour tous les créateurs
|
||||
Et les résultats sont stockés dans la table monthly_revenues
|
||||
|
||||
Scénario: Cache Redis pour métriques temps réel
|
||||
Étant donné que je consulte mon dashboard plusieurs fois par jour
|
||||
Quand la page se charge
|
||||
Alors les compteurs sont récupérés depuis Redis:
|
||||
| clé Redis | valeur exemple |
|
||||
| creator:[id]:complete_listens:202501 | 50234 |
|
||||
| creator:[id]:premium_hours:202501 | 234 |
|
||||
| creator:[id]:revenue_ads:202501 | 150.70 |
|
||||
| creator:[id]:revenue_premium:202501 | 89.23 |
|
||||
Et le temps de réponse est <30ms
|
||||
|
||||
Scénario: Prévision revenus fin de mois
|
||||
Étant donné que nous sommes le 20 du mois
|
||||
Et que mes revenus actuels sont 160€
|
||||
Quand le système calcule la projection
|
||||
Alors il estime les revenus fin de mois à ~240€ (extrapolation linéaire)
|
||||
Et affiche "Projection fin de mois: ~240€"
|
||||
Et cela m'aide à anticiper mes revenus
|
||||
Reference in New Issue
Block a user