Chineur ← revenir au tableau de bord
Audit du 25 août 2026 · moteur et interface

Ce que Chineur mesure vraiment

L'outil sort 88 opportunités. J'ai vérifié ce qu'elles valent, une par une, contre les données brutes. Voici ce que j'ai trouvé, et pourquoi il faut reprendre le moteur avant l'interface.

Le verdict. Chineur ne mesure pas un écart de prix. Il mesure l'écart entre un prix Vinted et un chiffre de référence qui, dans la majorité des cas, ne décrit pas le même objet. Les 88 fiches ne sont pas des occasions manquées : ce sont les endroits où la référence s'est trompée.

Le test le plus simple le montre : une annonce à −70 % reste en ligne aussi longtemps qu'une annonce à −30 %. Si la décote était réelle, elle partirait en heures.

Moteur · défaut 1La référence Pokémon est la mauvaise colonne

Le moteur compare le prix Vinted à cm_avg30, la moyenne des ventes Cardmarket sur 30 jours. Cette moyenne agrège tous les tirages d'une même carte : 1st Edition, Shadowless, Unlimited, éditions étrangères. Elle décrit un panier, pas un objet.

Mesuré sur le catalogue entier, 4 486 cartes cotées au-dessus de 5 €
3,11 ×rapport médian entre la moyenne 30 j et l'offre la moins chère réelle
52 %des cartes où la moyenne dépasse 3 fois l'offre réelle
28 %des cartes où elle la dépasse 5 fois

Conséquence directe sur la sortie du jour. J'ai recalculé les 29 opportunités Pokémon en remplaçant la moyenne par l'offre la moins chère réellement disponible, à état identique et frais identiques :

Les 29 opportunités Pokémon, recalculées
CarteMoyenne 30 jOffre réelleRapportMarge recalculée
Umbreon 13/75627,67 €65,00 €9,7 ×−171 €
Ho-Oh 9/95175,50 €1,90 €92,4 ×−23 €
Lugia ex 105/115291,75 €18,00 €16,2 ×−137 €
M Charizard-EX 107/106197,18 €19,95 €9,9 ×−41 €
Charizard ex 199/165272,73 €170,00 €1,6 ×+52 €

1 opportunité sur 29 survit. Les 28 autres n'existaient que dans l'écart entre deux définitions du mot « cote ».

Moteur · défaut 2Rien dans la sortie ne prédit quoi que ce soit

Un signal utile doit se vérifier dans le monde. Si une annonce est vraiment 70 % sous son prix, elle disparaît vite. J'ai croisé la décote annoncée avec l'âge réel des annonces.

Marché photo, 41 annonces, âge relevé à la seconde depuis l'API
Décote annoncée par le moteurAnnoncesÂge médian en ligne
plus de 70 %162,7 jours
moins de 70 %253,0 jours

Aucune différence. Et sur les 88 fiches du relevé, 54 étaient encore en ligne au moment de la vérification, une seule était partie. Un marché où l'on peut acheter à 30 % du prix et où personne ne le fait pendant trois jours n'est pas un marché inefficient : c'est une mesure fausse.

Moteur · défaut 3Le marché photo compare par mots-clés, pas par identité

Le cœur du rapprochement tient en une ligne de scan_reference.py : une annonce entre dans la population de comparaison si tous les jetons de la référence apparaissent quelque part dans le titre. Pas d'égalité de modèle, pas de contrôle de monture, pas de contrôle d'ouverture.

Les 8 meilleures « opportunités » photo, examinées une par une
AnnonceRapprochée deCe que c'est réellement
Canon TV Lens V6x16 16-100mmcanon 100mmzoom de vidéosurveillance, pas un 100 mm macro
Soligor AF Macro 100mm für Canon EFcanon 100mmmarque Soligor, « Canon » est la monture
Sigma UC Zoom 28-105mmsigma 105mmzoom 28-105, pas un 105 mm fixe
Casio QV-4000 · objectif Canon zoom 3xcanon 4000appareil Casio ; « Canon » vient de l'objectif
Fast charge hub Insta360 X2insta360 360un chargeur, pas une caméra
Nikon F65 + Sigma 28-105mmnikon 28-105un lot boîtier + objectif contre un objectif seul
Sony Handcam 30x optical zoomsony 30x« 30x » est un rapport de zoom, pas un modèle
Sony 16-50 f/3.5-5.6 OSSsony 16-50objectif de kit à ~90 €, référence à 550 €

Zéro sur huit. Et le plus frustrant : la fonction comparable() qui vérifie monture, focale et ouverture existe dans photo.py. Elle n'est simplement jamais appelée sur ce chemin, parce que veille.py passe la comparaison sans titre de référence.

Moteur · défaut 4Quand le marché local est dense, c'est lui qui a raison

Cinq annonces de la même carte One Piece, le même jour, sur le même site :

Loki OP17-119, cinq annonces vivantes
AnnoncePrix demandéRéférence calculée par le moteur
Loki OP17-11925 €43 €
Loki (OP17-119) (V.1)25 €48 €
Carte ENG Loki SEC OP17-11928 €142 €
Loki sec op17-11930 €131 €
Loki – OP17-119 – SEC v2 Eng65 €142 €

Le moteur déclare quatre opportunités. Mais quand cinq vendeurs indépendants convergent entre 25 et 30 €, ce prix est le prix. Personne ne vend à 25 € ce qu'il peut vendre à 140 € sur le même site. La référence externe décrit soit une autre version, soit un autre pays — dans les deux cas elle ne dit pas ce que vous encaisserez.

Moteur · défaut 5Aucune fiche ne dit où l'on revend

Une marge sans lieu de revente n'est pas une marge. Les trois sorties possibles n'ont ni les mêmes frais, ni les mêmes délais, ni le même prix atteignable, et le moteur n'en modélise aucune.

Ce que coûte réellement chaque sortie
SortieCommissionPrix atteignableDélaiCe que le moteur suppose
Vinted0 % vendeurle prix des 5 annonces concurrentesselon liquiditéla cote externe
Cardmarket5 %la cote, si compte vendeur et volumesemainesaucun frais de place
eBay~13 %le prix réalisé relevéenvoi internationalaucun frais, aucun port

Le calcul actuel retranche 10 % forfaitaires « pour ne pas vendre au plus haut » et s'arrête là. Sur une revente eBay depuis la France, la commission seule mange déjà davantage, avant le port et les douanes.

Moteur · défaut 6Un trou de serrure, et aucune boucle de retour

210références de cartes balayées, sur 20 479 au catalogue
60modèles de matériel suivis, liste figée
76décisions consignées au journal
0verdicts : aucune croyance n'a jamais été confrontée au réel

Le collecteur de prix suit 1 113 annonces et en a vu partir 86. Mais la colonne closing_action n'est jamais renseignée : on sait qu'une annonce a disparu, pas si elle a été vendue ou retirée. C'est exactement la donnée qui permettrait de calibrer le prix réellement encaissé sur Vinted, et c'est celle qui manque.

Interface · le fond du problèmeUne liste ne fait pas décider

L'interface actuelle est propre, et c'est son problème : elle présente proprement des chiffres faux, et elle les présente tous de la même façon.

ReconstructionL'ordre dans lequel reprendre

Le principe directeur

Ne jamais produire un nombre qu'on ne peut pas montrer. Chaque marge doit s'accompagner de la population qui la fonde, du lieu où elle se réalise, et de ce qu'elle devient si l'hypothèse la plus fragile est fausse. Un outil d'information se juge à sa capacité d'être contredit.

1

L'identité avant le prix

Remplacer le rapprochement par présence de jetons par une égalité de clé canonique : marque réelle (pas la monture), focale complète, ouverture, génération, langue, tirage, état. Quand l'identité n'est pas certaine, écarter et le dire, plutôt que deviner. Brancher enfin comparable(), qui existe déjà et fait ce travail.

2

La référence devient une fourchette, avec sa population

Plus de nombre unique. Pour chaque objet : la distribution des ventes réalisées, par état et par langue, avec son effectif. Une référence assise sur trois ventes ne pèse pas comme une référence assise sur quarante, et l'interface doit le montrer.

3

Le marché local plafonne la référence

Dès qu'il existe assez d'annonces vivantes et comparables, leur médiane devient le plafond de ce qu'on peut espérer encaisser localement. La référence externe ne sert plus qu'à ouvrir une sortie ailleurs, explicitement.

4

Chaque opportunité nomme sa sortie

Vinted, Cardmarket ou eBay, avec la commission réelle, le port réel, le délai réel et le prix atteignable sur cette place précise. Trois sorties possibles donnent trois marges différentes : il faut les afficher toutes les trois, pas en choisir une en silence.

5

Fermer la boucle

Enregistrer l'issue réelle de chaque annonce suivie, vendue ou retirée, pour enfin mesurer le coefficient entre prix demandé et prix encaissé sur Vinted. Enregistrer aussi vos décisions et leurs suites. Sans cela, aucun réglage de seuil n'est autre chose qu'une opinion.

6

Ouvrir le champ

Sortir du trou de serrure à 210 références. Balayer les catégories en continu et rapprocher après coup, au lieu d'interroger une liste figée écrite à la main.

7

Refaire l'interface autour de la décision, pas de la liste

Une sélection courte plutôt qu'un catalogue. Pour chaque candidat : la preuve visible (annonces comparables, distribution, photos côte à côte), le temps depuis la mise en ligne, et deux gestes possibles, garder ou écarter, dont la raison nourrit le moteur. Plus une vue de votre position : capital engagé, en attente de revente, encaissé.