Méthode et audit de neutralité
Une boussole électorale n'est utile que si l'on peut vérifier comment elle fonctionne. Tout ce qui suit est public : les données, le calcul, et un audit qui teste la neutralité du résultat au lieu de l'affirmer.
Les positions des candidats
Chaque candidat a une fiche. Chacun des 62 enjeux oppose deux options de même dignité, le pôle A et le pôle B. La position du candidat est placée sur cet axe, de -2 (pôle A nettement) à +2 (pôle B nettement), 0 voulant dire entre les deux ou les deux à la fois, avec un résumé, la phrase exacte tirée de la source (citation), l'adresse de la source, sa date, et un niveau de confiance :
- programme : écrit dans le programme officiel 2027 ;
- déclaration : entretien, discours ou vote récent ;
- déduite : position du parti ou programme de 2022, non démentie.
Sans source, la position reste inconnue : on ne devine jamais à partir de l'étiquette politique. Les agrégateurs et les autres boussoles ne comptent jamais comme source. Une position est marquée « relue » quand un humain a ouvert la source et vérifié citation, résumé et valeur (872 positions relues sur 872). Les règles de codage sont publiques : references/mise-a-jour.md.
Le calcul
Le calcul est celui du script score.py du skill, porté à l'identique en TypeScript pour tourner dans votre navigateur. Un test automatique compare, à chaque modification, les résultats des deux versions sur une série de profils (fixes et tirés au hasard) : ils doivent être identiques au chiffre près.
- Accord brut. Votre réponse se lit sur le même axe que les positions (le côté où chaque option s'affichait ne compte pas). Sur chaque enjeu où vous et le candidat avez une position, l'accord vaut
1 - |écart| / 4: 1 si identique, 0 si opposé. - Correction du hasard. Une position nuancée (0) est en moyenne plus proche d'une réponse quelconque (accord moyen 0,7) qu'une position tranchée (0,5 à ±2). Chaque accord est donc corrigé comme un kappa de Cohen :
(accord - accord_hasard) / (1 - accord_hasard). Toutes les positions ont ainsi la même espérance face à des réponses au hasard. - Pondération. Le poids d'une question est l'importance de son thème pour vous (1, 2 si prioritaire, 3 si décisif) multipliée par la confiance de la position : 1 pour programme, 0,85 pour déclaration, 0,6 pour déduite.
- Positions inconnues. Une question à laquelle vous avez répondu mais dont la position du candidat est inconnue compte comme un accord égal au hasard, avec un poids de √2 - 1 ≈ 0,41 fois l'importance du thème (et la confiance moyenne des positions connues du candidat). Ce poids rend la dispersion du score identique entre 50 % et 100 % de couverture : un candidat peu renseigné n'est ni avantagé ni pénalisé par le hasard.
- Score. Affiché de 0 à 100 % : 50 % veut dire « pas plus proche que des réponses au hasard », 100 % « mêmes réponses partout ». Sous 50 % de couverture (position connue sur moins de la moitié de vos réponses), le candidat est classé à part.
- Marge d'incertitude. 1 000 fois, on tire au hasard, avec remise, autant de questions que vous en avez répondu, et on recalcule le score. La marge est la moitié de l'intervalle qui contient 90 % des scores obtenus. La graine est fixe : les mêmes réponses donnent toujours le même résultat. Les candidats dont l'intervalle recouvre celui du premier forment le peloton de tête : leur ordre n'est pas significatif.
- Alertes. Si un thème que vous avez déclaré prioritaire n'a aucune position connue chez un candidat, c'est signalé à côté de son score.
Le tirage des questions et les modes
Les questions sont tirées par le script tirage.py du skill, lui aussi porté à l'identique dans votre navigateur et vérifié par le même test automatique (même tirage à graine égale). Chaque passage reçoit une graine au hasard, gardée dans le lien du résultat : le même lien rejoue exactement le même questionnaire.
- Ordre. Les enjeux sont mélangés, en évitant deux questions du même thème à la suite.
- Formulation. Chaque enjeu a deux ou trois formulations équivalentes, validées par un humain ; l'une est tirée au hasard.
- Côté. Le côté où chaque option apparaît est tiré au hasard, pour qu'aucune ne soit toujours présentée en premier. Votre réponse est ensuite convertie sur l'axe A … B.
- Rapide : 12 enjeux, au moins un par thème, tirés en favorisant ceux qui départagent le plus les candidats (écart-type de leurs positions × part des positions connues). Il donne une tendance.
- Adaptatif : les 12 mêmes, puis des lots de 4 enjeux choisis pour départager les candidats encore dans la marge du premier, jusqu'à ce que le premier se détache, que les enjeux restants ne les départagent plus, ou que 32 questions aient été posées.
- Complet : les 62 enjeux. C'est le plus fiable.
Ce que la boussole ne fait pas
- Elle ne dit pas pour qui voter : elle mesure une proximité avec des programmes, sur 62 enjeux qui ne résument pas un projet présidentiel.
- Elle ne collecte aucune réponse : rien de ce que vous répondez n'est envoyé, aucune statistique n'est faite sur les résultats des visiteurs, et le site ne publie aucun sondage. Seule une mesure d'audience anonyme compte les visites et les tests commencés et terminés, sans jamais les publier.
- Elle ne reformule pas : les questions sont posées telles qu'elles ont été validées, et les citations sont reprises mot pour mot.
- Elle ne classe pas les candidats ailleurs que dans votre résultat : partout ailleurs, l'ordre est alphabétique et le traitement identique.
Audit de neutralité
Le script audit_biais.py vérifie que le calcul et les formulations ne favorisent pas mécaniquement un camp. Il calcule un axe à partir des seules positions des candidats (sans aucune étiquette), mesure le sens de chaque enjeu sur cet axe, puis passe des milliers de profils sans opinion dans le calcul : si le calcul est neutre, chaque candidat classé doit sortir premier aussi souvent qu'attendu.
Le rapport ci-dessous est la sortie brute du script, recalculée à chaque construction du site sur les données publiées (version e30d3d3 du 21 octobre 2026). Les mots « gauche », « centre » et « droite » y désignent seulement les tiers de l'axe calculé.
Qui sort premier face à des réponses au hasard ?
Voir les données en tableau
| Tiers de l'axe | Ratio, mode complet | Ratio, mode rapide | Ratio, mode adaptatif | 1er observé / attendu (complet) | 1er observé / attendu (rapide) | 1er observé / attendu (adaptatif) |
|---|---|---|---|---|---|---|
| « gauche » | 1.09 | 1.01 | 0.88 | 730 / 672 | 689 / 684 | 61 / 69 |
| « centre » | 0.99 | 1.08 | 1.19 | 555 / 560 | 575 / 535 | 63 / 53 |
| « droite » | 0.93 | 0.94 | 0.97 | 715 / 768 | 736 / 781 | 76 / 78 |
Pôles A et B des enjeux, de part et d'autre de l'axe
Voir les données en tableau
| Enjeux | Pôle A proche de la « gauche » | Pôle B proche de la « gauche » | Transversaux | Indéterminés |
|---|---|---|---|---|
| 62 | 25 | 27 | 9 | 1 |
Rapport complet
25 candidats actifs, 62 enjeux ; profils aléatoires : 2000 en modes complet et rapide, 200 en mode adaptatif par graine (graine 2027). Script : scripts/audit_biais.py.
1. Axe principal calculé à partir des données
L'axe qui sépare le plus les candidats explique 50 % de la variance de leurs positions. Il est calculé sans aucune étiquette ; seul son sens est orienté pour l'affichage (repère : Jean-Luc Mélenchon du côté négatif). Les candidats ayant moins de 10 positions connues ne sont pas placés.
| Candidat | Coordonnée | Tiers de l'axe | Positions connues |
|---|---|---|---|
| Marine Tondelier | -12.05 | gauche | 54/62 |
| Jean-Luc Mélenchon | -10.62 | gauche | 55/62 |
| Anasse Kazib | -9.98 | gauche | 33/62 |
| Selma Labib | -8.91 | gauche | 27/62 |
| Nathalie Arthaud | -8.58 | gauche | 36/62 |
| Fabien Roussel | -7.95 | gauche | 39/62 |
| Raphaël Glucksmann | -6.79 | gauche | 35/62 |
| Delphine Batho | -6.72 | gauche | 21/62 |
| François Ruffin | -6.31 | centre | 38/62 |
| Bernard Cazeneuve | -2.33 | centre | 23/62 |
| Dominique de Villepin | -2.23 | centre | 34/62 |
| Jean Lassalle | -2.06 | centre | 21/62 |
| Juan Branco | -0.37 | centre | 40/62 |
| Natacha Polony | +1.56 | centre | 10/62 |
| François Asselineau | +2.75 | centre | 34/62 |
| Gabriel Attal | +4.77 | centre | 34/62 |
| Florian Philippot | +5.07 | droite | 32/62 |
| Marine Le Pen | +7.43 | droite | 54/62 |
| Xavier Bertrand | +7.73 | droite | 24/62 |
| Édouard Philippe | +7.83 | droite | 40/62 |
| Nicolas Dupont-Aignan | +8.26 | droite | 54/62 |
| Éric Zemmour | +9.25 | droite | 41/62 |
| David Lisnard | +9.87 | droite | 42/62 |
| Bruno Retailleau | +10.99 | droite | 48/62 |
Non placés (trop peu de positions) : Karim Bouamrane.
Les tiers « gauche », « centre » et « droite » désignent seulement la position sur cet axe calculé, découpé en trois parts égales.
2. Pôles des enjeux
Pour chaque enjeu, corrélation entre la position des candidats (-2 = pôle A, +2 = pôle B) et leur place sur l'axe (recalculé sans cet enjeu). r > 0.4 : le pôle A rapproche du côté gauche de l'axe ; r < -0.4 : le pôle B ; entre les deux : enjeu transversal. À l'écran, le côté de chaque pôle est tiré au hasard à chaque passage.
| Enjeu | Pôle A | Pôle B | r | Pôle proche de la gauche de l'axe | Candidats |
|---|---|---|---|---|---|
eco_retraite |
Revenir à 62 ans | Garder 64 ans ou plus | +0.65 | A | 21 |
eco_smic |
SMIC selon la seule revalorisation automatique | SMIC relevé par décision de l'État | -0.84 | B | 20 |
eco_depenses |
Baisser les dépenses publiques | Augmenter les impôts | -0.94 | B | 21 |
eco_patrimoine |
Taxer davantage les grandes fortunes | Garder la fiscalité actuelle du patrimoine | +0.72 | A | 22 |
eco_35h |
Garder les 35 heures | Assouplir la durée légale | +0.79 | A | 16 |
ecol_nucleaire |
Construire de nouveaux réacteurs | Réduire la part du nucléaire | -0.70 | B | 23 |
ecol_renouvelables |
Limiter l'éolien et le solaire | Accélérer l'éolien et le solaire | -0.76 | B | 20 |
ecol_normes |
Renforcer les normes environnementales | Alléger les normes environnementales | +0.91 | A | 20 |
ecol_thermique2035 |
Revenir sur l'échéance de 2035 | Garder la fin des voitures thermiques neuves en 2035 | -0.93 | B | 7 |
ecol_aerien |
Taxer davantage l'aérien | Garder la fiscalité actuelle de l'aérien | +0.86 | A | 6 |
sec_peines |
Peines plus lourdes, avec un minimum légal | Peine fixée par le juge au cas par cas | -0.92 | B | 16 |
sec_prisons |
Construire des places de prison | Développer les peines alternatives | -0.87 | B | 18 |
sec_cannabis |
Maintenir l'interdiction du cannabis | Légaliser et encadrer le cannabis | -0.77 | B | 18 |
sec_mineurs |
Justice des mineurs pour les 16-18 ans | Pouvoir juger les 16-18 ans comme des majeurs | +0.98 | A | 16 |
sec_videosurveillance |
Généraliser l'analyse automatique des images | Interdire ou limiter l'analyse automatique | -0.76 | B | 13 |
imm_baisse |
Réduire l'immigration légale | Maintenir ou ouvrir l'immigration légale | -0.93 | B | 21 |
imm_ame |
Maintenir l'AME | Limiter l'AME aux soins urgents | +0.97 | A | 14 |
imm_regularisation |
Restreindre les régularisations | Faciliter les régularisations | -0.96 | B | 19 |
imm_droitdusol |
Maintenir le droit du sol | Supprimer ou restreindre le droit du sol | +0.94 | A | 17 |
imm_preference |
Mêmes règles pour Français et étrangers | Priorité selon la nationalité française | +0.94 | A | 15 |
eur_integration |
Plus de décisions européennes communes | Plus de décisions laissées aux États | +0.27 | transversal | 20 |
eur_primaute |
Appliquer le droit européen | Faire primer le droit français | +0.54 | A | 19 |
eur_ukraine |
Poursuivre l'aide militaire à l'Ukraine | Cesser l'aide militaire à l'Ukraine | -0.10 | transversal | 22 |
eur_otan |
Rester dans le commandement intégré de l'OTAN | Quitter le commandement intégré de l'OTAN | +0.18 | transversal | 15 |
eur_defense3 |
Défense à 3 % du PIB ou plus | Défense sous 3 % du PIB | -0.73 | B | 14 |
soc_medecins |
Réguler l'installation des médecins | Garder la liberté d'installation | +0.84 | A | 16 |
soc_findevie |
Abroger l'aide à mourir | Maintenir l'aide à mourir | -0.69 | B | 15 |
soc_rsa |
RSA conditionné à des heures d'activité | RSA sans obligation d'heures d'activité | -0.76 | B | 14 |
soc_100secu |
Tout rembourser par la Sécurité sociale | Garder les complémentaires santé | +0.44 | A | 10 |
soc_chomage |
Maintenir l'indemnisation chômage | Réduire l'indemnisation chômage | +0.74 | A | 20 |
edu_prive |
Maintenir le financement du privé sous contrat | Réduire le financement du privé sous contrat | -0.87 | B | 11 |
edu_autorite |
Plus de discipline | Plus d'accompagnement | -0.88 | B | 15 |
edu_signes |
Signes religieux autorisés aux parents accompagnateurs | Signes religieux interdits aux parents accompagnateurs | +0.95 | A | 9 |
edu_etudiants |
Allocation pour tous les étudiants | Bourses selon les revenus des parents | +0.82 | A | 11 |
edu_apprentissage |
Apprentissage après le collège | Apprentissage dès 14 ans | +0.93 | A | 7 |
ins_proportionnelle |
Élection des députés à la proportionnelle | Scrutin majoritaire par circonscription | +0.67 | A | 16 |
ins_ric |
Instaurer le RIC | Laisser la loi au Parlement | +0.29 | transversal | 17 |
ins_6e |
Garder la Ve République | Passer à une VIe République | -0.80 | B | 18 |
ins_parlementaires |
Réduire le nombre de parlementaires | Garder le nombre de parlementaires | -0.25 | transversal | 9 |
ins_voteblanc |
Compter le vote blanc comme suffrage exprimé | Compter le vote blanc à part | -0.55 | B | 7 |
eco_libre_echange |
Conclure de nouveaux accords de libre-échange | Relever les protections commerciales de l'Europe | -0.15 | transversal | 21 |
eco_succession |
Alléger les droits de succession | Taxer davantage les gros héritages | -0.90 | B | 17 |
eco_nationalisation |
Reprendre sous contrôle public certaines entreprises | Laisser ces activités au secteur privé | +0.51 | A | 15 |
ecol_zan |
Tenir l'objectif « zéro artificialisation nette » | Assouplir cet objectif pour construire davantage | +0.86 | A | 11 |
ecol_eau_agricole |
Construire des retenues d'eau pour l'irrigation | Réduire l'eau prélevée par l'agriculture | -0.93 | B | 9 |
ecol_zfe |
Maintenir les zones à faibles émissions | Supprimer les zones à faibles émissions | +0.86 | A | 11 |
sec_controle_identite |
Un récépissé à chaque contrôle d'identité | Des contrôles sans récépissé | +0.35 | transversal | 8 |
sec_legitime_defense |
Mêmes règles de légitime défense pour tous | Présomption de légitime défense pour les policiers | +0.99 | A | 9 |
sec_police_municipale |
Élargir les pouvoirs des polices municipales | Renforcer d'abord la police nationale | -0.71 | B | 10 |
imm_travail |
Faire venir des travailleurs étrangers | Former des demandeurs d'emploi déjà en France | +0.40 | A | 10 |
imm_asile_externalise |
Examiner les demandes d'asile en France | Les examiner hors d'Europe | +0.94 | A | 9 |
imm_naturalisation |
Durcir les conditions de naturalisation | Garder les conditions actuelles | -0.96 | B | 9 |
eur_service_militaire |
Service militaire obligatoire | Service militaire volontaire | -0.47 | B | 10 |
eur_dissuasion |
Associer la dissuasion nucléaire à la défense de l'Europe | Réserver la dissuasion à la défense de la France | +0.38 | transversal | 12 |
eur_elargissement |
Accueillir de nouveaux pays dans l'UE | Suspendre l'élargissement de l'UE | +0.79 | A | 6 |
soc_capitalisation |
Ajouter une part de retraite par capitalisation | Rester sur la seule répartition | -0.81 | B | 16 |
soc_allocations_familiales |
Allocations familiales selon les revenus | Allocations familiales universelles | +0.03 | transversal | 6 |
soc_loyers |
Encadrer les loyers | Laisser les loyers libres | +0.94 | A | 13 |
edu_selection_universite |
Sélection à l'entrée de l'université | Accès ouvert à tout bachelier | -0.84 | B | 9 |
edu_remuneration |
Une part du salaire des enseignants liée au mérite | Une hausse identique pour tous les enseignants | -0.72 | B | 9 |
ins_cumul |
Permettre à nouveau le cumul député-maire | Garder l'interdiction du cumul | -0.49 | indéterminé (trop peu de positions) | 5 |
ins_mandat_unique |
Un mandat présidentiel unique de 7 ans | Un mandat de 5 ans renouvelable | -0.67 | B | 6 |
Pôle proche de la gauche de l'axe : A pour 25 enjeux, B pour 27, 9 transversaux, 1 indéterminés. Ce décompte ne joue pas sur le résultat (le côté d'affichage est tiré au hasard) ; il garde les données lisibles.
Profils constants en mode complet (même réponse à tous les enjeux) — premier du classement :
| Toujours « pôle A nettement » | Toujours « pôle B nettement » |
|---|---|
| Marine Tondelier (gauche, 52 %) | Jean-Luc Mélenchon (gauche, 49 %) |
3. Profils aléatoires
Chaque profil répond au hasard (uniforme sur les cinq crans) et passe 10 % des questions, sans pondération des thèmes, en suivant le vrai tirage (une graine par profil : enjeux, formulations et côtés des pôles changent d'un profil à l'autre). Un tel profil n'a pas d'opinion : un calcul neutre devrait mettre chaque candidat classé premier avec la même probabilité. Attendu = somme, sur les profils où le candidat est classé, de 1 / (nombre de candidats classés) ; il tient donc compte de la couverture. Ratio = observé / attendu (1 = neutre).
Mode complet (2000 profils, 62.0 enjeux posés en moyenne, de 62 à 62)
| Candidat | Classé | 1er | Attendu | Ratio 1er | Top 3 | Ratio top 3 | Positions connues | Écart moyen à 0 |
|---|---|---|---|---|---|---|---|---|
| Édouard Philippe | 100 % | 147 | 113 | 1.30 | 429 | 1.27 | 40/62 | 1.25 |
| Anasse Kazib | 96 % | 138 | 108 | 1.28 | 356 | 1.10 | 33/62 | 1.73 |
| Raphaël Glucksmann | 100 % | 142 | 113 | 1.26 | 346 | 1.03 | 35/62 | 1.37 |
| Nathalie Arthaud | 100 % | 142 | 113 | 1.26 | 370 | 1.09 | 36/62 | 1.44 |
| Gabriel Attal | 99 % | 138 | 112 | 1.23 | 363 | 1.08 | 34/62 | 1.15 |
| Dominique de Villepin | 99 % | 123 | 112 | 1.10 | 338 | 1.01 | 34/62 | 1.03 |
| Marine Tondelier | 100 % | 120 | 113 | 1.06 | 386 | 1.14 | 54/62 | 1.81 |
| François Asselineau | 99 % | 116 | 111 | 1.04 | 328 | 0.98 | 34/62 | 1.38 |
| David Lisnard | 100 % | 111 | 113 | 0.98 | 337 | 1.00 | 42/62 | 1.50 |
| Marine Le Pen | 100 % | 108 | 113 | 0.96 | 302 | 0.89 | 54/62 | 1.59 |
| Bruno Retailleau | 100 % | 104 | 113 | 0.92 | 335 | 0.99 | 48/62 | 1.56 |
| Fabien Roussel | 100 % | 98 | 113 | 0.87 | 301 | 0.89 | 39/62 | 1.59 |
| François Ruffin | 100 % | 91 | 113 | 0.81 | 340 | 1.00 | 38/62 | 1.39 |
| Nicolas Dupont-Aignan | 100 % | 91 | 113 | 0.81 | 296 | 0.87 | 54/62 | 1.61 |
| Jean-Luc Mélenchon | 100 % | 90 | 113 | 0.80 | 331 | 0.98 | 55/62 | 1.73 |
| Florian Philippot | 82 % | 72 | 91 | 0.79 | 231 | 0.85 | 32/62 | 1.59 |
| Juan Branco | 100 % | 87 | 113 | 0.77 | 276 | 0.82 | 40/62 | 1.35 |
| Éric Zemmour | 100 % | 82 | 113 | 0.73 | 335 | 0.99 | 41/62 | 1.56 |
| Selma Labib | < 1 % | 0 | 0 | 0.00 | 0 | 0.00 | 27/62 | 1.56 |
| Bernard Cazeneuve | 0 % | 0 | 0 | — | 0 | — | 23/62 | 0.91 |
| Delphine Batho | 0 % | 0 | 0 | — | 0 | — | 21/62 | 1.29 |
| Jean Lassalle | 0 % | 0 | 0 | — | 0 | — | 21/62 | 1.38 |
| Karim Bouamrane | 0 % | 0 | 0 | — | 0 | — | 3/62 | 1.00 |
| Natacha Polony | 0 % | 0 | 0 | — | 0 | — | 10/62 | 0.90 |
| Xavier Bertrand | 0 % | 0 | 0 | — | 0 | — | 24/62 | 1.42 |
Corrélation entre le ratio (log) et : l'écart moyen à 0 des positions r = -0.35 ; le nombre de positions connues r = -0.36 (18 candidats classés au moins 20 % du temps).
Pente gauche → droite : -0.041 ± 0.022 ; pente extrêmes / milieu : +0.021 ± 0.057. Régression pondérée par l'attendu du log du ratio des mêmes candidats sur leur coordonnée normalisée (écart-type 1), ou sur sa valeur absolue. Une pente positive avantage la droite de l'axe, ou ses extrémités ; 0 = neutre ; ± = erreur type.
| Tiers de l'axe | 1er observé | Attendu | Ratio | Classés / candidats du tiers | Jamais classés (moins de 1 % des profils) |
|---|---|---|---|---|---|
| gauche | 730 | 672 | 1.09 | 6 / 8 | Selma Labib, Delphine Batho |
| centre | 555 | 560 | 0.99 | 5 / 8 | Bernard Cazeneuve, Jean Lassalle, Natacha Polony |
| droite | 715 | 768 | 0.93 | 7 / 8 | Xavier Bertrand |
| non placé | 0 | 0 | — | 0 / 1 | Karim Bouamrane |
Mode rapide (2000 profils, 12.0 enjeux posés en moyenne, de 12 à 12)
| Candidat | Classé | 1er | Attendu | Ratio 1er | Top 3 | Ratio top 3 | Positions connues | Écart moyen à 0 |
|---|---|---|---|---|---|---|---|---|
| Gabriel Attal | 93 % | 134 | 100 | 1.34 | 357 | 1.19 | 34/62 | 1.15 |
| Raphaël Glucksmann | 83 % | 119 | 89 | 1.33 | 279 | 1.04 | 35/62 | 1.37 |
| Anasse Kazib | 83 % | 114 | 89 | 1.29 | 314 | 1.18 | 33/62 | 1.73 |
| François Asselineau | 84 % | 107 | 89 | 1.20 | 260 | 0.97 | 34/62 | 1.38 |
| Bernard Cazeneuve | 36 % | 43 | 37 | 1.17 | 119 | 1.08 | 23/62 | 0.91 |
| Dominique de Villepin | 83 % | 104 | 89 | 1.17 | 294 | 1.10 | 34/62 | 1.03 |
| Édouard Philippe | 98 % | 122 | 108 | 1.13 | 370 | 1.15 | 40/62 | 1.25 |
| Éric Zemmour | 98 % | 117 | 107 | 1.09 | 334 | 1.04 | 41/62 | 1.56 |
| Nathalie Arthaud | 90 % | 102 | 97 | 1.05 | 322 | 1.11 | 36/62 | 1.44 |
| Marine Le Pen | 100 % | 111 | 110 | 1.01 | 333 | 1.01 | 54/62 | 1.59 |
| Marine Tondelier | 100 % | 110 | 110 | 1.00 | 353 | 1.07 | 54/62 | 1.81 |
| Xavier Bertrand | 44 % | 43 | 45 | 0.95 | 136 | 1.00 | 24/62 | 1.42 |
| Delphine Batho | 21 % | 20 | 22 | 0.92 | 72 | 1.10 | 21/62 | 1.29 |
| Jean Lassalle | 20 % | 18 | 20 | 0.89 | 44 | 0.73 | 21/62 | 1.38 |
| Juan Branco | 91 % | 87 | 99 | 0.88 | 245 | 0.83 | 40/62 | 1.35 |
| David Lisnard | 99 % | 95 | 108 | 0.88 | 313 | 0.96 | 42/62 | 1.50 |
| Nicolas Dupont-Aignan | 100 % | 95 | 110 | 0.86 | 293 | 0.89 | 54/62 | 1.61 |
| Bruno Retailleau | 100 % | 94 | 110 | 0.85 | 341 | 1.03 | 48/62 | 1.56 |
| Selma Labib | 60 % | 53 | 63 | 0.85 | 179 | 0.95 | 27/62 | 1.56 |
| François Ruffin | 94 % | 82 | 101 | 0.81 | 254 | 0.84 | 38/62 | 1.39 |
| Jean-Luc Mélenchon | 100 % | 89 | 110 | 0.81 | 328 | 0.99 | 55/62 | 1.73 |
| Fabien Roussel | 96 % | 82 | 105 | 0.78 | 262 | 0.84 | 39/62 | 1.59 |
| Florian Philippot | 78 % | 59 | 83 | 0.71 | 198 | 0.80 | 32/62 | 1.59 |
| Natacha Polony | < 1 % | 0 | 0 | 0.00 | 0 | 0.00 | 10/62 | 0.90 |
| Karim Bouamrane | 0 % | 0 | 0 | — | 0 | — | 3/62 | 1.00 |
Corrélation entre le ratio (log) et : l'écart moyen à 0 des positions r = -0.43 ; le nombre de positions connues r = -0.17 (23 candidats classés au moins 20 % du temps).
Pente gauche → droite : -0.001 ± 0.021 ; pente extrêmes / milieu : -0.084 ± 0.055. Régression pondérée par l'attendu du log du ratio des mêmes candidats sur leur coordonnée normalisée (écart-type 1), ou sur sa valeur absolue. Une pente positive avantage la droite de l'axe, ou ses extrémités ; 0 = neutre ; ± = erreur type.
| Tiers de l'axe | 1er observé | Attendu | Ratio | Classés / candidats du tiers | Jamais classés (moins de 1 % des profils) |
|---|---|---|---|---|---|
| gauche | 689 | 684 | 1.01 | 8 / 8 | — |
| centre | 575 | 535 | 1.08 | 7 / 8 | Natacha Polony |
| droite | 736 | 781 | 0.94 | 8 / 8 | — |
| non placé | 0 | 0 | — | 0 / 1 | Karim Bouamrane |
Mode adaptatif (200 profils, 31.9 enjeux posés en moyenne, de 21 à 32)
| Candidat | Classé | 1er | Attendu | Ratio 1er | Top 3 | Ratio top 3 | Positions connues | Écart moyen à 0 |
|---|---|---|---|---|---|---|---|---|
| Jean Lassalle | 3 % | 1 | 0 | 3.64 | 1 | 1.21 | 21/62 | 1.38 |
| Bernard Cazeneuve | 34 % | 7 | 3 | 2.19 | 12 | 1.25 | 23/62 | 0.91 |
| Xavier Bertrand | 94 % | 16 | 9 | 1.73 | 35 | 1.26 | 24/62 | 1.42 |
| Gabriel Attal | 100 % | 15 | 10 | 1.52 | 34 | 1.15 | 34/62 | 1.15 |
| Selma Labib | 98 % | 13 | 10 | 1.34 | 28 | 0.96 | 27/62 | 1.56 |
| Juan Branco | 100 % | 12 | 10 | 1.22 | 28 | 0.95 | 40/62 | 1.35 |
| François Asselineau | 100 % | 11 | 10 | 1.12 | 26 | 0.88 | 34/62 | 1.38 |
| Fabien Roussel | 100 % | 11 | 10 | 1.12 | 25 | 0.84 | 39/62 | 1.59 |
| Marine Le Pen | 100 % | 11 | 10 | 1.12 | 33 | 1.12 | 54/62 | 1.59 |
| Éric Zemmour | 100 % | 10 | 10 | 1.01 | 28 | 0.95 | 41/62 | 1.56 |
| Marine Tondelier | 100 % | 10 | 10 | 1.01 | 29 | 0.98 | 54/62 | 1.81 |
| Dominique de Villepin | 100 % | 9 | 10 | 0.91 | 24 | 0.81 | 34/62 | 1.03 |
| Florian Philippot | 100 % | 9 | 10 | 0.91 | 32 | 1.08 | 32/62 | 1.59 |
| Nicolas Dupont-Aignan | 100 % | 9 | 10 | 0.91 | 42 | 1.42 | 54/62 | 1.61 |
| David Lisnard | 100 % | 8 | 10 | 0.81 | 25 | 0.84 | 42/62 | 1.50 |
| François Ruffin | 100 % | 8 | 10 | 0.81 | 32 | 1.08 | 38/62 | 1.39 |
| Raphaël Glucksmann | 100 % | 8 | 10 | 0.81 | 26 | 0.88 | 35/62 | 1.37 |
| Édouard Philippe | 100 % | 7 | 10 | 0.71 | 36 | 1.22 | 40/62 | 1.25 |
| Jean-Luc Mélenchon | 100 % | 7 | 10 | 0.71 | 25 | 0.84 | 55/62 | 1.73 |
| Anasse Kazib | 100 % | 6 | 10 | 0.61 | 27 | 0.91 | 33/62 | 1.73 |
| Bruno Retailleau | 100 % | 6 | 10 | 0.61 | 29 | 0.98 | 48/62 | 1.56 |
| Nathalie Arthaud | 100 % | 6 | 10 | 0.61 | 23 | 0.78 | 36/62 | 1.44 |
| Delphine Batho | 1 % | 0 | 0 | 0.00 | 0 | 0.00 | 21/62 | 1.29 |
| Karim Bouamrane | 0 % | 0 | 0 | — | 0 | — | 3/62 | 1.00 |
| Natacha Polony | 0 % | 0 | 0 | — | 0 | — | 10/62 | 0.90 |
Corrélation entre le ratio (log) et : l'écart moyen à 0 des positions r = -0.45 ; le nombre de positions connues r = -0.46 (21 candidats classés au moins 20 % du temps).
Pente gauche → droite : +0.045 ± 0.070 ; pente extrêmes / milieu : -0.339 ± 0.182. Régression pondérée par l'attendu du log du ratio des mêmes candidats sur leur coordonnée normalisée (écart-type 1), ou sur sa valeur absolue. Une pente positive avantage la droite de l'axe, ou ses extrémités ; 0 = neutre ; ± = erreur type.
| Tiers de l'axe | 1er observé | Attendu | Ratio | Classés / candidats du tiers | Jamais classés (moins de 1 % des profils) |
|---|---|---|---|---|---|
| gauche | 61 | 69 | 0.88 | 8 / 8 | — |
| centre | 63 | 53 | 1.19 | 7 / 8 | Natacha Polony |
| droite | 76 | 78 | 0.97 | 8 / 8 | — |
| non placé | 0 | 0 | — | 0 / 1 | Karim Bouamrane |
Penchant pour un côté de l'écran
Mêmes profils, mais qui choisissent plus souvent l'option affichée à gauche (crans tirés de -2 à 1) ou à droite (de -1 à 2). C'est l'équivalent, pour les dilemmes, de la tendance à répondre « d'accord » : comme le côté de chaque pôle est tiré au hasard, ce penchant ne devrait favoriser aucun camp. Part des premières places par tiers de l'axe, en mode complet :
| Profil | gauche | centre | droite |
|---|---|---|---|
| uniforme | 36 % | 28 % | 36 % |
| penche à gauche | 28 % | 40 % | 32 % |
| penche à droite | 28 % | 40 % | 32 % |
Écart droite - gauche des premières places, comparé au profil uniforme : penche à gauche +6 points ; penche à droite +4 points. (Un penchant resserre aussi les réponses autour du milieu, ce qui profite un peu au centre dans les deux cas : cet effet ne dépend pas du côté.)
4. Synthèse
Candidats nettement sur- ou sous-représentés (ratio ≥ 2 ou ≤ 0,5 et z ≥ 3), ou jamais classés :
- Bernard Cazeneuve : jamais classé en mode complet (couverture insuffisante)
- Delphine Batho : jamais classé en mode complet (couverture insuffisante)
- Jean Lassalle : jamais classé en mode complet (couverture insuffisante)
- Karim Bouamrane : jamais classé en mode complet (couverture insuffisante) ; jamais classé en mode rapide (couverture insuffisante) ; jamais classé en mode adaptatif (couverture insuffisante)
- Natacha Polony : jamais classé en mode complet (couverture insuffisante) ; jamais classé en mode adaptatif (couverture insuffisante)
- Xavier Bertrand : jamais classé en mode complet (couverture insuffisante)
Ratios des tiers de l'axe (premières places observées / attendues) et pentes (± erreur type) :
| Mode | gauche | centre | droite | Pente gauche → droite | Pente extrêmes / milieu |
|---|---|---|---|---|---|
| complet | 1.09 | 0.99 | 0.93 | -0.041 ± 0.022 | +0.021 ± 0.057 |
| rapide | 1.01 | 1.08 | 0.94 | -0.001 ± 0.021 | -0.084 ± 0.055 |
| adaptatif | 0.88 | 1.19 | 0.97 | +0.045 ± 0.070 | -0.339 ± 0.182 |
Les tiers comptent aussi les candidats jamais classés (voir les tableaux par mode) : le ratio d'un tiers repose parfois sur peu de candidats en compétition. Les pentes ne dépendent pas de ce découpage.
5. Fiches à compléter en priorité
Candidats sous 50 % de positions connues, du moins couvert au plus couvert :
- Karim Bouamrane : 3/62
- Natacha Polony : 10/62
- Delphine Batho : 21/62
- Jean Lassalle : 21/62
- Bernard Cazeneuve : 23/62
- Xavier Bertrand : 24/62
- Selma Labib : 27/62
Enjeux dont on connaît le moins de positions : ins_cumul (5), ecol_aerien (6), eur_elargissement (6), soc_allocations_familiales (6), ins_mandat_unique (6), ecol_thermique2035 (7), edu_apprentissage (7), ins_voteblanc (7).
Données et code
Toutes les données sont téléchargeables (JSON et CSV). Le code du site et celui du skill sont sous licence MIT. Une erreur ? Voici comment la signaler.