Pourquoi deux phases (et pas un seul gros matching)
Sur un marché P2P, le problème central est simple : il faut deux personnes qui veulent miser sur les deux camps opposés au même moment, à un montant compatible. Sur les events populaires (Real Madrid vs Barça, BTC > 100K), c'est facile. Sur les events de niche ou aux paliers rares, c'est plus tendu.
Plutôt que de te coller dans un pool dès le placement (et te bloquer dans une cote indicative qui peut bouger), Ktkarena fait deux passes :
- Phase 1 - Matching live : pendant toute la durée d'ouverture de l'event, on cherche activement à te matcher en P2P (personne contre personne, mise contre mise). C'est la voie noble : cote fixe, pas de partage, pas d'incertitude.
- Phase 2 - Pool phase : juste avant la fermeture de l'event, on regarde ce qui reste sans contrepartie. On rassemble tous les résidus dans un pool mutualisé et on calcule une cote pool équitable. Si elle te convient (selon ta préférence), tu rentres dans le pool ; sinon tu es remboursé.
L'avantage : tu n'es jamais forcé d'accepter un pool aux conditions défavorables. Tu sais exactement ce qui se passe à chaque étape.
Phase 1 - Matching live (pendant tout l'event)
Cette phase démarre dès que tu places ton pari et continue tant que l'event est ouvert. Elle se décompose en deux temps :
1. La cascade de placement (instantanée). Au moment où tu cliques « parier », un algorithme tente trois étapes en cascade en l'espace de quelques secondes :
- Match direct intra-palier : on cherche un joueur qui parie l'inverse, exactement à ton palier. Détails.
- Cascade inter-paliers : si rien, on élargit aux paliers voisins. Détails.
- Agrégation multi-bets : si toujours rien, on assemble plusieurs petites mises adverses pour faire le compte. Détails.
Si la cascade trouve une contrepartie complète, ton pari est matché. Sinon, le résidu reste en attente d'un adversaire (statut en attente) - mais on ne s'arrête pas là.
2. La matching loop (continue pendant tout l'event). Tant que l'event reste ouvert, un job tourne en arrière-plan et re-tente la cascade sur ton résidu chaque fois qu'un nouveau parieur arrive sur le camp opposé, et au minimum une fois par minute. Aucune action de ta part nécessaire ; tu reçois une notification dès qu'un match est trouvé. Détails de la matching loop.
Phase 2 - Pool phase (en fin d'event)
Quelques minutes avant la fermeture de l'event (durée adaptative selon la longueur de l'event - typiquement 15 à 60 minutes), le placement de nouveaux paris se ferme et l'event entre dans la pool phase.
Pendant la pool phase :
- Plus aucune nouvelle mise ne peut être placée.
- Les bets en cours sont verrouillés (annulation impossible côté user).
- Le système liste tous les résidus restants (paris sans contrepartie complète).
- Il calcule une cote pool indicative en faisant le ratio entre les masses des deux camps.
- Pour chaque participant, on vérifie si la cote calculée respecte sa préférence personnelle de cote minimale pool.
- Si oui : le participant rentre dans le pool, sa mise reste engagée, sa cote finale est figée.
- Si non : il est remboursé intégralement, sans pénalité ni commission.
Le tout se fait en une seule transaction atomique. Tu reçois une notification claire : « Ton pari est passé en pool à la cote 1.45 » ou « Ton pari a été remboursé (cote pool 1.10 sous ton seuil 1.20) ».
Détails complets sur la pool phase.
Tes préférences influencent la phase 2
Deux réglages personnels te donnent la main sur la pool phase, accessibles dans tes paramètres de pari :
Acceptation du pool (3 valeurs) :
- Toujours : tu acceptes systématiquement le pool si ta cote min est respectée.
- Si nécessaire (défaut) : tu acceptes le pool uniquement si ton pari n'a pas été matché en P2P en phase 1.
- Jamais : tu refuses systématiquement le pool. Si rien n'a matché en phase 1, tu es remboursé.
Cote minimale pool (de 1.00 à 5.00, par pas de 0.10) : la cote la plus basse que tu acceptes en pool. En dessous, refund automatique. La valeur par défaut est 1.20.
Tes préférences sont capturées au moment du placement : si tu changes tes paramètres après avoir parié, ton pari en cours garde les valeurs initiales. Comme ça, pas de mauvaise surprise.
Pourquoi ce modèle est plus juste qu'avant
Dans l'ancien modèle, dès qu'un pari n'avait pas de match direct, il pouvait être absorbé immédiatement dans un pool à une cote indicative. Problème : cette cote pouvait bouger pendant tout l'event (selon qui rejoint le pool), et tu n'avais aucun contrôle.
Le nouveau modèle inverse la logique :
- On t'offre toujours le temps maximum pour un match P2P propre.
- On ne te met dans un pool qu'en dernier recours, et seulement avec ton consentement (préférences personnelles).
- Si le pool calculé ne te convient pas, tu pars sans frais.
Résultat : tu sais à l'avance le pire scénario, et tu n'es jamais piégé dans une cote qui se dégrade.