{"id":1947,"date":"2026-08-23T20:43:53","date_gmt":"2026-08-23T20:43:53","guid":{"rendered":"https:\/\/lean-app.com\/?p=1947"},"modified":"2026-09-05T10:39:09","modified_gmt":"2026-09-05T10:39:09","slug":"etude-base-donnees-calories","status":"publish","type":"post","link":"https:\/\/lean-app.com\/es\/etude-base-donnees-calories\/","title":{"rendered":"Hemos analizado 857 655 productos vendidos en Francia: lo que tu esc\u00e1ner de calor\u00edas no te dice"},"content":{"rendered":"<script data-wpmeteor-nooptimize=\"true\" type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Dataset\",\n  \"name\": \"Coh\u00e9rence calorique des produits alimentaires vendus en France (OpenFoodFacts, ao\u00fbt 2026)\",\n  \"description\": \"Agr\u00e9gats issus de l'analyse de 857 655 produits vendus en France depuis le dump public OpenFoodFacts du 23 ao\u00fbt 2026 : compl\u00e9tude des fiches et coh\u00e9rence entre calories d\u00e9clar\u00e9es et calories recalcul\u00e9es depuis les macronutriments (facteurs Atwater, r\u00e8glement INCO 1169\/2011).\",\n  \"url\": \"https:\/\/lean-app.com\/etude-base-donnees-calories\/\",\n  \"creator\": {\"@type\": \"Organization\", \"name\": \"L'\u00e9quipe Lean\", \"url\": \"https:\/\/lean-app.com\/\"},\n  \"identifier\": [\"https:\/\/doi.org\/10.5281\/zenodo.22284416\", \"https:\/\/doi.org\/10.6084\/m9.figshare.33432244\"],\n  \"sameAs\": [\"https:\/\/zenodo.org\/records\/22284416\", \"https:\/\/figshare.com\/articles\/preprint\/33432244\", \"https:\/\/osf.io\/tczvj\/\", \"https:\/\/www.wikidata.org\/wiki\/Q141267884\"],\n  \"isBasedOn\": \"https:\/\/world.openfoodfacts.org\/data\",\n  \"license\": \"https:\/\/opendatacommons.org\/licenses\/odbl\/1-0\/\",\n  \"temporalCoverage\": \"2026-08-23\",\n  \"spatialCoverage\": \"France\",\n  \"variableMeasured\": [\"energy-kcal_100g\", \"proteins_100g\", \"carbohydrates_100g\", \"fat_100g\", \"fiber_100g\", \"alcohol_100g\", \"polyols_100g\"]\n}\n<\/script>\n<script data-wpmeteor-nooptimize=\"true\" type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\"@type\": \"Question\", \"name\": \"Pourquoi analyser OpenFoodFacts et pas USDA ?\",\n     \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Pour les produits \u00e0 code-barres vendus en France, la source de r\u00e9f\u00e9rence des trackers est OpenFoodFacts. USDA couvre les aliments bruts et le march\u00e9 am\u00e9ricain. L'\u00e9tude porte sur ce que renvoie r\u00e9ellement un scan en France.\"}},\n    {\"@type\": \"Question\", \"name\": \"Faut-il arr\u00eater de scanner ses aliments ?\",\n     \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Non. Le scan reste le moyen le plus rapide de logger. La bonne pratique : v\u00e9rifier que les macros affich\u00e9es sont coh\u00e9rentes avec les calories. Si prot\u00e9ines, glucides et lipides ne collent pas aux kcal, la fiche est fausse.\"}},\n    {\"@type\": \"Question\", \"name\": \"Les applications corrigent-elles ces erreurs ?\",\n     \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"La base OpenFoodFacts est collaborative et vit en continu : 4 des 6 pires fiches identifi\u00e9es dans le dump avaient d\u00e9j\u00e0 \u00e9t\u00e9 corrig\u00e9es en ligne au moment de l'\u00e9tude. Mais une application qui a synchronis\u00e9 une fiche fausse peut la garder en cache longtemps apr\u00e8s la correction.\"}},\n    {\"@type\": \"Question\", \"name\": \"La base de Lean est-elle diff\u00e9rente ?\",\n     \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Lean croise la base USDA pour les aliments bruts et OpenFoodFacts pour les produits \u00e0 code-barres, et propose le scan photo IA qui estime l'assiette sans d\u00e9pendre d'une fiche. Surtout, Lean concentre la pr\u00e9cision l\u00e0 o\u00f9 l'erreur est invisible : le calcul de la d\u00e9pense (TDEE = BMR + NEAT + EAT + TEF).\"}}\n  ]\n}\n<\/script>\n<style id=\"lvm-shell-styles\">#lvm-shell{\n  --bg:#FFFFFF; --paper:#F7F6F2; --paper-2:#F1EFE7;\n  --ink:#0E0E10; --ink-2:#1D1D1F; --muted:#6E6E73; --dim:#86868B;\n  --rule:#E8E6DF; --rule-soft:#EFEDE5;\n  --pink:#FF2D6E; --pink-soft:rgba(255,45,110,0.06);\n  --mfp:#6ABF6C;\n  --green:#0F8F5C; --red:#D02E2E; --amber:#C8A019;\n  --font-display:-apple-system,\"SF Pro Display\",system-ui,\"Helvetica Neue\",sans-serif;\n  --font-text:-apple-system,\"SF Pro Text\",system-ui,sans-serif;\n  --font-mono:ui-monospace,\"SF Mono\",Menlo,Consolas,monospace;\n}\n#lvm-shell *{box-sizing:border-box;-webkit-text-size-adjust:100%}\n#lvm-shell, #lvm-shell{margin:0;padding:0;background:var(--bg);color:var(--ink-2);font-family:var(--font-text);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}\n#lvm-shell ::selection{background:rgba(255,45,110,0.18);color:var(--ink)}\n#lvm-shell img{max-width:100%;display:block}\n#lvm-shell a{color:inherit}\n\n#lvm-shell .progress{position:fixed;top:0;left:0;right:0;height:2px;background:transparent;z-index:1000}\n#lvm-shell .progress > i{display:block;height:100%;width:100%;background:var(--pink);transform-origin:0 50%;transform:scaleX(0);transition:transform .05s linear}\n\n#lvm-shell .nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--rule)}\n#lvm-shell .nav-row{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:10px 22px}\n#lvm-shell .nav-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink)}\n#lvm-shell .nav-brand img{width:28px;height:28px;border-radius:7px;object-fit:cover}\n#lvm-shell .nav-brand span{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:-.01em}\n#lvm-shell .nav-spacer{flex:1}\n#lvm-shell .nav-link{color:var(--muted);text-decoration:none;font-size:14px}\n#lvm-shell .nav-link:hover{color:var(--ink)}\n#lvm-shell .nav-stores{display:flex;gap:6px;align-items:center}\n#lvm-shell .nav-stores a{display:block;line-height:0}\n#lvm-shell .nav-stores img{height:28px;width:auto;border-radius:5px;transition:transform .15s}\n#lvm-shell .nav-stores a:hover img{transform:translateY(-1px)}\n\n#lvm-shell .wrap{max-width:760px;margin:0 auto;padding:0 28px}\n\n#lvm-shell .hero{padding:54px 0 0}\n#lvm-shell .crumb{font-size:13px;color:var(--muted);margin-bottom:18px}\n#lvm-shell .crumb a{text-decoration:none;color:var(--muted)}\n#lvm-shell .crumb a:hover{color:var(--ink)}\n#lvm-shell .eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--pink);margin-bottom:18px}\n#lvm-shell h1{font-family:var(--font-display);font-weight:600;font-size:72px;line-height:1.0;letter-spacing:-.04em;color:var(--ink);margin:0 0 22px}\n#lvm-shell h1 .alt{display:block;font-weight:500;color:var(--muted);font-size:.66em;line-height:1.15;margin-top:14px;letter-spacing:-.03em}\n#lvm-shell .dek{font-family:var(--font-display);font-size:24px;line-height:1.4;font-weight:400;color:var(--ink-2);letter-spacing:-.015em;margin:0 0 22px;max-width:680px}\n\n#lvm-shell .byline{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);margin-bottom:14px}\n#lvm-shell .byline .by-logo{width:26px;height:26px;border-radius:6px;object-fit:cover;flex-shrink:0;background:transparent;border:0}\n#lvm-shell .byline strong{color:var(--ink);font-weight:600;font-family:var(--font-display)}\n\n#lvm-shell .hero-stores{display:flex;gap:10px;margin:22px 0 18px;flex-wrap:wrap;align-items:center}\n#lvm-shell .hero-stores a{display:block;line-height:0;transition:transform .15s}\n#lvm-shell .hero-stores a:hover{transform:translateY(-2px)}\n#lvm-shell .hero-stores img{height:46px;width:auto;border-radius:9px}\n#lvm-shell .hero-stores .or{font-size:13px;color:var(--muted)}\n\n#lvm-shell .hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center;margin:38px 0 60px;padding-top:28px;border-top:1px solid var(--rule-soft)}\n#lvm-shell .hero-lead{font-family:var(--font-display);font-size:21px;line-height:1.5;color:var(--ink-2);font-weight:400}\n\n#lvm-shell .phone-wrap{display:flex;justify-content:center}\n#lvm-shell .phone{\n  position:relative;\n  width:280px;\n  background:linear-gradient(145deg,#2a2a2a,#0e0e0e);\n  border-radius:42px;\n  padding:5px;\n  border:1.5px solid rgba(255,255,255,.07);\n  box-shadow:0 30px 60px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.08);\n}\n#lvm-shell .phone .notch{\n  position:absolute;top:0;left:50%;transform:translateX(-50%);\n  width:96px;height:24px;background:#0a0a0a;border-radius:0 0 16px 16px;z-index:10;\n}\n#lvm-shell .phone-screen{\n  position:relative;\n  border-radius:34px;overflow:hidden;\n  background:#FAF0E6;\n  aspect-ratio:9\/19.5;\n}\n#lvm-shell .phone-bg{position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:center top;background-repeat:no-repeat;transition:opacity .28s ease;background-color:#FAF0E6}\n#lvm-shell .phone-bg.tab-depense{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_depense.webp\")}\n#lvm-shell .phone-bg.tab-bilan{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_bilan.webp\")}\n#lvm-shell .phone-bg.tab-kcal{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_kcal.webp\")}\n#lvm-shell .phone-bg.tab-strategie{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_strategie.webp\")}\n#lvm-shell .phone-bg.sub-BMR{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_BMR.webp\")}\n#lvm-shell .phone-bg.sub-NEAT{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_NEAT.webp\")}\n#lvm-shell .phone-bg.sub-EAT{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_EAT.webp\")}\n#lvm-shell .phone-bg.sub-TEF{background-image:url(\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-screen_TEF.webp\")}\n#lvm-shell .phone-zones{position:absolute;inset:0;z-index:15;pointer-events:none}\n#lvm-shell .phone-zones .z{position:absolute;left:4%;right:4%;cursor:pointer;background:transparent;border:0;padding:0;pointer-events:auto}\n#lvm-shell .phone-zones .z:focus-visible{outline:2px solid var(--pink);outline-offset:-4px;border-radius:6px}\n#lvm-shell .phone-navbar{position:absolute;left:0;right:0;bottom:0;height:9%;z-index:16;display:grid;grid-template-columns:repeat(4,1fr)}\n#lvm-shell .phone-navbar button{background:transparent;border:0;padding:0;cursor:pointer}\n#lvm-shell .phone-navbar button:focus-visible{outline:2px solid var(--pink);outline-offset:-3px;border-radius:6px}\n#lvm-shell .phone-back{\n  position:absolute;top:10px;left:10px;z-index:20;\n  width:30px;height:30px;border-radius:50%;\n  border:0;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);\n  color:var(--ink);font-size:18px;font-weight:600;line-height:1;cursor:pointer;\n  display:none;align-items:center;justify-content:center;\n  box-shadow:0 2px 6px rgba(0,0,0,.12);\n}\n#lvm-shell .phone-back.on{display:flex}\n\n#lvm-shell .phone-cap{margin-top:14px;text-align:center;font-size:12px;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}\n#lvm-shell .phone-stage{position:relative}\n#lvm-shell .tap-hint{position:absolute;z-index:30;pointer-events:none;animation:hintFloat 2.6s ease-in-out infinite}\n#lvm-shell .tap-hint .th-pill{display:inline-block;font-family:var(--font-display);font-size:15px;font-weight:600;color:#fff;line-height:1.25;letter-spacing:-.005em;background:var(--pink);padding:10px 16px;border-radius:14px;box-shadow:0 14px 32px rgba(255,45,110,.32);white-space:nowrap}\n#lvm-shell .tap-hint .th-pill small{display:block;font-size:11px;font-weight:500;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}\n#lvm-shell .tap-hint .th-arrow{position:absolute;color:var(--pink)}\n#lvm-shell .tap-hint.desktop{left:-204px;top:4px;text-align:right}\n#lvm-shell .tap-hint.desktop .th-arrow{right:-86px;top:58px;width:104px;height:34px;transform:none}\n#lvm-shell .tap-hint.mobile{display:none}\n#lvm-shell .tap-hint.hidden{opacity:0;transform:translateY(-6px);transition:opacity .35s ease, transform .35s ease;animation:none}\n@keyframes hintFloat{\n  0%, 100%{transform:translateY(0)}\n  50%{transform:translateY(-7px)}\n}\n@media (prefers-reduced-motion:reduce){#lvm-shell .tap-hint{animation:none}}\n#lvm-shell .phone-tabs{display:flex;justify-content:center;gap:8px;margin-top:10px;flex-wrap:nowrap}\n#lvm-shell .phone-tabs button{\n  background:transparent;border:1px solid var(--rule);color:var(--muted);\n  padding:6px 11px;border-radius:999px;font-size:11px;cursor:pointer;\n  font-family:var(--font-text);transition:all .15s;white-space:nowrap;\n}\n#lvm-shell .phone-tabs button:hover{color:var(--ink);border-color:var(--ink)}\n#lvm-shell .phone-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}\n\n#lvm-shell .snippet{background:var(--paper);border-radius:18px;padding:30px 32px;margin:48px 0 0;border:1px solid var(--rule-soft)}\n#lvm-shell .snippet .lbl{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:14px}\n#lvm-shell .snippet p{margin:0;font-family:var(--font-display);font-size:21px;line-height:1.45;color:var(--ink);font-weight:500;letter-spacing:-.012em}\n\n#lvm-shell section{padding:64px 0;border-bottom:1px solid var(--rule-soft)}\n#lvm-shell section:last-of-type{border-bottom:0}\n#lvm-shell .section-label{display:flex;align-items:center;gap:14px;margin-bottom:30px}\n#lvm-shell .section-label .bar{width:24px;height:1px;background:var(--pink)}\n#lvm-shell .section-label .num{font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--pink)}\n#lvm-shell h2{font-family:var(--font-display);font-weight:600;font-size:48px;line-height:1.05;letter-spacing:-.035em;color:var(--ink);margin:0 0 24px}\n#lvm-shell h3{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1.15;letter-spacing:-.025em;color:var(--ink);margin:36px 0 16px}\n#lvm-shell h4{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:1.3;letter-spacing:-.015em;color:var(--ink);margin:24px 0 10px}\n#lvm-shell p{margin:0 0 22px;color:var(--ink-2)}\n#lvm-shell strong{color:var(--ink);font-weight:600}\n#lvm-shell ul, #lvm-shell ol{margin:0 0 22px;padding-left:22px;color:var(--ink-2)}\n#lvm-shell li{margin-bottom:8px}\n#lvm-shell a.inline{color:var(--pink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}\n#lvm-shell a.inline:hover{text-decoration-thickness:2px}\n\n#lvm-shell .statement{margin:48px 0;padding:32px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);text-align:left}\n#lvm-shell .statement .num{font-family:var(--font-display);font-size:60px;font-weight:600;line-height:1;letter-spacing:-.04em;color:var(--pink);margin-bottom:14px}\n#lvm-shell .statement .lbl{font-family:var(--font-display);font-size:23px;line-height:1.35;font-weight:500;color:var(--ink);letter-spacing:-.012em}\n\n#lvm-shell .fig{margin:32px 0 18px;background:#fff;border:1px solid var(--rule);border-radius:20px;padding:28px 22px 20px;position:relative;overflow:hidden}\n#lvm-shell .fig-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}\n#lvm-shell .fig-head .l{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}\n#lvm-shell .fig-head .r{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.08em}\n#lvm-shell .fig-body{position:relative}\n#lvm-shell .fig-cap{margin:18px 4px 0;font-size:14px;color:var(--muted);line-height:1.5}\n#lvm-shell .fig-cap strong{color:var(--ink);font-weight:600}\n#lvm-shell .cv-wrap{position:relative;height:360px}\n\n#lvm-shell [data-term]{position:relative;cursor:help;border-bottom:1px dotted var(--dim)}\n#lvm-shell [data-term]:hover{color:var(--ink)}\n#lvm-shell .tt{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);min-width:200px;max-width:300px;background:#0c0c0c;color:#fff;font-size:13px;line-height:1.45;padding:11px 14px;border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.32);opacity:0;visibility:hidden;transition:opacity .15s, visibility .15s;z-index:120;pointer-events:none;font-weight:400;font-family:var(--font-text)}\n#lvm-shell .tt::after{content:\"\";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#0c0c0c}\n#lvm-shell [data-term]:hover .tt, #lvm-shell [data-term]:focus .tt{opacity:1;visibility:visible}\n\n#lvm-shell .table{margin:24px 0;border:1px solid var(--rule);border-radius:16px;overflow:hidden;background:#fff}\n#lvm-shell .table-row{display:grid;grid-template-columns:1.55fr 1fr 1fr;border-bottom:1px solid var(--rule-soft);min-height:60px}\n#lvm-shell .table-row:last-child{border-bottom:0}\n#lvm-shell .table-row.head{background:var(--ink);color:#fff;border-bottom:0}\n#lvm-shell .table-row.head > div{padding:18px 18px;display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.07em}\n#lvm-shell .table-row.head .brand-cell{justify-content:flex-start}\n#lvm-shell .table-row.head .brand-cell img{width:24px;height:24px;border-radius:6px;background:#fff;object-fit:cover}\n#lvm-shell .table-row.head .brand-cell.lean{color:#FFB8CE}\n#lvm-shell .table-row > .crit{padding:16px 18px;font-size:14px;color:var(--ink);font-weight:500;display:flex;align-items:center;border-right:1px solid var(--rule-soft)}\n#lvm-shell .table-row > .cell{padding:16px 14px;font-size:13px;line-height:1.45;color:var(--ink-2);display:flex;align-items:center;gap:10px;border-right:1px solid var(--rule-soft)}\n#lvm-shell .table-row > .cell:last-child{border-right:0}\n#lvm-shell .table-row > .cell.lean{background:var(--pink-soft);position:relative}\n#lvm-shell .table-row > .cell.lean::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--pink)}\n#lvm-shell .icn{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:600;color:#fff}\n#lvm-shell .icn.ok{background:var(--green)}\n#lvm-shell .icn.no{background:var(--red)}\n#lvm-shell .icn.mid{background:var(--amber)}\n#lvm-shell .icn svg{width:11px;height:11px}\n\n#lvm-shell .mini-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:28px 0}\n#lvm-shell .mini-phone{position:relative;background:linear-gradient(145deg,#2a2a2a,#0e0e0e);border-radius:22px;padding:3px;border:1px solid rgba(255,255,255,.05);box-shadow:0 14px 32px rgba(0,0,0,.16);max-width:160px;margin:0 auto;width:100%}\n#lvm-shell .mini-phone .notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:11px;background:#0a0a0a;border-radius:0 0 7px 7px;z-index:5}\n#lvm-shell .mini-phone .scr{border-radius:18px;overflow:hidden;background:#FAF0E6;aspect-ratio:9\/19.5}\n#lvm-shell .mini-phone .scr img{width:100%;height:100%;object-fit:cover}\n#lvm-shell .mini-phone.tiny{max-width:148px;padding:2px;border-radius:20px;border-width:1px}\n#lvm-shell .mini-phone.tiny .notch{width:30px;height:8px;border-radius:0 0 5px 5px}\n#lvm-shell .mini-phone.tiny .scr{border-radius:17px}\n#lvm-shell .mini-cap{text-align:center;margin-top:12px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}\n#lvm-shell .mini-cap strong{display:block;color:var(--ink);margin-top:4px;font-family:var(--font-display);font-size:14px;font-weight:500;letter-spacing:-.01em;text-transform:none}\n\n#lvm-shell .duo-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:18px 0 0}\n#lvm-shell .duo-row .mini-phone{max-width:180px}\n\n#lvm-shell .method{display:grid;grid-template-columns:1fr 1.4fr;gap:36px;align-items:center;margin:42px 0}\n#lvm-shell .method.flip{grid-template-columns:1.4fr 1fr}\n#lvm-shell .method.flip .m-phone{order:2}\n#lvm-shell .method .m-tag{font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--pink);margin-bottom:8px}\n#lvm-shell .method h3{margin-top:0}\n#lvm-shell .method p{font-size:16px;color:var(--muted);line-height:1.7}\n\n#lvm-shell .cta-band{margin:40px 0;padding:26px 28px;background:var(--paper);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border:1px solid var(--rule-soft)}\n#lvm-shell .cta-band .l{font-family:var(--font-display);font-size:18px;line-height:1.35;font-weight:500;color:var(--ink);flex:1;min-width:240px;letter-spacing:-.01em}\n#lvm-shell .cta-band .stores{display:flex;gap:10px;align-items:center}\n#lvm-shell .cta-band .stores a{line-height:0;transition:transform .15s}\n#lvm-shell .cta-band .stores a:hover{transform:translateY(-2px)}\n#lvm-shell .cta-band .stores img{height:42px;width:auto;border-radius:9px}\n\n#lvm-shell .pyramid{margin:30px auto;max-width:440px}\n#lvm-shell .pyramid .level{margin:6px auto;padding:13px 18px;border-radius:14px;color:#fff;font-family:var(--font-display);font-weight:500;font-size:15px;letter-spacing:-.01em;display:flex;justify-content:space-between;align-items:center;box-shadow:0 6px 18px rgba(0,0,0,.06)}\n#lvm-shell .pyramid .level .k{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.75}\n#lvm-shell .pyramid .l1{background:#0E0E10;width:100%}\n#lvm-shell .pyramid .l2{background:#1D1D1F;width:84%}\n#lvm-shell .pyramid .l3{background:#3a3a3c;width:68%}\n#lvm-shell .pyramid .l4{background:var(--pink);width:52%}\n#lvm-shell .pyramid-cap{text-align:center;font-size:13px;color:var(--muted);margin-top:14px}\n\n\/* Section 7 honnetete : scorecard horizontal bars *\/\n#lvm-shell .scorecard{margin:30px 0 10px;border:1px solid var(--rule);border-radius:20px;padding:28px 26px;background:#fff}\n#lvm-shell .scorecard-head{display:grid;grid-template-columns:1.4fr 1fr 1fr;column-gap:28px;align-items:center;padding-bottom:18px;margin-bottom:8px;border-bottom:1px solid var(--rule-soft)}\n#lvm-shell .scorecard-head .h-crit{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}\n#lvm-shell .scorecard-head .h-brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--ink)}\n#lvm-shell .scorecard-head .h-brand img{width:22px;height:22px;border-radius:5px;object-fit:cover}\n#lvm-shell .scorecard-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;column-gap:28px;align-items:center;padding:14px 0;border-bottom:1px solid var(--rule-soft)}\n#lvm-shell .scorecard-row:last-child{border-bottom:0}\n#lvm-shell .scorecard-row .crit{font-size:14px;color:var(--ink);font-weight:500;padding-right:14px}\n#lvm-shell .scorecard-row .bar{display:flex;flex-direction:row-reverse;align-items:center;gap:10px}\n#lvm-shell .scorecard-row .bar .b{flex:1;height:8px;border-radius:99px;background:var(--rule-soft);overflow:hidden;position:relative}\n#lvm-shell .scorecard-row .bar .b > i{display:block;height:100%;border-radius:99px;transition:width 1s cubic-bezier(.22,.61,.36,1)}\n#lvm-shell .scorecard-row .bar.lean .b > i{background:var(--pink)}\n#lvm-shell .scorecard-row .bar.mfp .b > i{background:var(--mfp)}\n#lvm-shell .scorecard-row .bar .v{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink);min-width:32px;text-align:left}\n\n\/* Section 8 pour qui : persona checklist *\/\n#lvm-shell .persona{margin:28px 0 10px;display:grid;grid-template-columns:1fr;gap:14px}\n#lvm-shell .persona-it{display:grid;grid-template-columns:54px 1fr;gap:16px;padding:22px 24px;background:#fff;border:1px solid var(--rule);border-radius:18px;align-items:center}\n#lvm-shell .persona-it.match{background:var(--pink-soft);border-color:rgba(255,45,110,.25)}\n#lvm-shell .persona-it .pic{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--rule-soft);position:relative;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink)}\n#lvm-shell .persona-it.match .pic{background:var(--pink);color:#fff}\n#lvm-shell .persona-it .pic svg{width:24px;height:24px}\n#lvm-shell .persona-it h4{margin:0 0 4px;font-size:17px;letter-spacing:-.01em}\n#lvm-shell .persona-it p{margin:0;font-size:14px;color:var(--muted);line-height:1.55}\n#lvm-shell .persona-it.match h4{color:var(--ink)}\n\n\/* Section 9 migration : timeline steps *\/\n#lvm-shell .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:28px 0;position:relative}\n#lvm-shell .steps::before{content:\"\";position:absolute;top:14px;left:7px;right:calc(20% - 18px);height:1px;background:linear-gradient(90deg,var(--pink) 0%,var(--rule-soft) 100%);z-index:0}\n#lvm-shell .step{position:relative;padding-top:24px;z-index:1}\n#lvm-shell .step::before{content:\"\";position:absolute;top:8px;left:0;width:14px;height:14px;border-radius:50%;background:var(--pink);border:3px solid #fff;box-shadow:0 0 0 1px var(--rule)}\n#lvm-shell .step .sn{font-family:var(--font-mono);font-size:11px;color:var(--pink);font-weight:600;letter-spacing:.08em}\n#lvm-shell .step h4{margin:6px 0 6px;font-size:15px;letter-spacing:-.01em}\n#lvm-shell .step p{font-size:13px;color:var(--muted);line-height:1.5;margin:0}\n\n\/* Section 10 debloque : feature stack numbered XL *\/\n#lvm-shell .feat-stack{margin:30px 0 10px;border-top:1px solid var(--rule)}\n#lvm-shell .feat-it{display:grid;grid-template-columns:auto 1fr auto;gap:24px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:center}\n#lvm-shell .feat-it .fn{font-family:var(--font-display);font-size:48px;font-weight:600;color:var(--pink);line-height:1;letter-spacing:-.04em;width:74px}\n#lvm-shell .feat-it .ft{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.015em;line-height:1.25;margin-bottom:6px}\n#lvm-shell .feat-it .fd{font-size:15px;color:var(--muted);line-height:1.55;margin:0}\n#lvm-shell .feat-it .fc{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:500}\n#lvm-shell .feat-it:last-child{border-bottom:0}\n\n#lvm-shell .faq{margin:22px 0}\n#lvm-shell .faq details{border-bottom:1px solid var(--rule);padding:20px 0}\n#lvm-shell .faq details:first-of-type{border-top:1px solid var(--rule)}\n#lvm-shell .faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.015em;color:var(--ink)}\n#lvm-shell .faq summary::-webkit-details-marker{display:none}\n#lvm-shell .faq summary::after{content:\"+\";font-size:24px;color:var(--muted);font-weight:300;line-height:1;transition:transform .25s, color .25s}\n#lvm-shell .faq details[open] summary::after{transform:rotate(45deg);color:var(--pink)}\n#lvm-shell .faq details[open] summary{color:var(--pink)}\n#lvm-shell .faq .ans{margin-top:14px;font-size:16px;color:var(--muted);line-height:1.65}\n\n#lvm-shell .get-band{background:var(--paper-2);border-radius:24px;padding:48px 36px;margin:60px 0 40px;text-align:center}\n#lvm-shell .get-band .kicker{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--pink);font-weight:600;letter-spacing:.1em;margin-bottom:14px}\n#lvm-shell .get-band h3{font-size:36px;margin:0 0 14px;letter-spacing:-.025em}\n#lvm-shell .get-band p{font-size:16px;color:var(--muted);max-width:480px;margin:0 auto 26px}\n#lvm-shell .get-band .stores{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}\n#lvm-shell .get-band .stores a{line-height:0;transition:transform .15s}\n#lvm-shell .get-band .stores a:hover{transform:translateY(-3px)}\n#lvm-shell .get-band .stores img{height:60px;width:auto;border-radius:11px}\n\n#lvm-shell .sources{font-size:14px;color:var(--muted);line-height:1.7}\n#lvm-shell .sources ol{padding-left:22px}\n#lvm-shell .sources li{margin-bottom:8px}\n\n#lvm-shell footer{padding:50px 0 60px;border-top:1px solid var(--rule);margin-top:40px}\n#lvm-shell footer .row{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}\n#lvm-shell footer .kicker{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--pink);font-weight:600}\n#lvm-shell footer p{font-size:13px;color:var(--muted);margin:8px 0 0}\n#lvm-shell footer .stores{display:flex;gap:8px}\n#lvm-shell footer .stores img{height:34px;width:auto;border-radius:6px}\n\n#lvm-shell .rev{opacity:0;transform:translateY(12px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}\n#lvm-shell .rev.on{opacity:1;transform:translateY(0)}\n@media (prefers-reduced-motion:reduce){#lvm-shell .rev{transition:none;opacity:1;transform:none}}\n\n@media (max-width:760px){\n  #lvm-shell .nav-row{padding:8px 18px;gap:8px}\n  #lvm-shell .nav-link{display:none}\n  #lvm-shell .nav-stores img{height:24px}\n  #lvm-shell .wrap{padding:0 22px}\n  #lvm-shell .hero{padding:34px 0 0}\n  #lvm-shell h1{font-size:46px;letter-spacing:-.035em}\n  #lvm-shell h1 .alt{font-size:.55em;margin-top:10px}\n  #lvm-shell .dek{font-size:20px}\n  #lvm-shell .hero-stores img{height:42px}\n  #lvm-shell .hero-bottom{grid-template-columns:1fr;gap:28px;margin:30px 0 40px;padding-top:24px;align-items:stretch}\n  #lvm-shell .phone-wrap{order:-1}\n  #lvm-shell .phone{width:240px}\n  #lvm-shell .tap-hint.desktop{display:none}\n  #lvm-shell .tap-hint.mobile{display:block;position:relative;left:auto;top:auto;text-align:center;margin:0 auto 10px;width:100%}\n  #lvm-shell .tap-hint.mobile .th-arrow{position:relative;display:block;margin:6px auto 0;width:34px;height:34px;transform:none;color:var(--pink)}\n  #lvm-shell .snippet{padding:24px 22px}\n  #lvm-shell .snippet p{font-size:18px}\n  #lvm-shell section{padding:48px 0}\n  #lvm-shell h2{font-size:34px;letter-spacing:-.03em}\n  #lvm-shell h3{font-size:24px}\n  #lvm-shell .section-label{margin-bottom:22px}\n  #lvm-shell .statement{padding:24px 0;margin:32px 0}\n  #lvm-shell .statement .num{font-size:44px}\n  #lvm-shell .statement .lbl{font-size:19px}\n  #lvm-shell .fig{padding:20px 14px 14px;border-radius:16px}\n  #lvm-shell .cv-wrap{height:310px}\n  #lvm-shell .method{grid-template-columns:1fr;gap:20px}\n  #lvm-shell .method.flip{grid-template-columns:1fr}\n  #lvm-shell .method.flip .m-phone{order:0}\n  #lvm-shell .mini-row{grid-template-columns:repeat(3,1fr);gap:10px}\n  #lvm-shell .mini-phone{padding:3px;border-radius:18px;border-width:1px;max-width:110px}\n  #lvm-shell .mini-phone .notch{width:42px;height:11px;border-radius:0 0 8px 8px}\n  #lvm-shell .mini-phone .scr{border-radius:15px}\n  #lvm-shell .mini-cap{font-size:10px}\n  #lvm-shell .mini-cap strong{font-size:13px}\n  #lvm-shell .duo-row{grid-template-columns:repeat(2,1fr);gap:12px}\n  #lvm-shell .duo-row .mini-phone{max-width:130px}\n  #lvm-shell .steps{grid-template-columns:1fr;gap:18px}\n  #lvm-shell .steps::before{display:none}\n  #lvm-shell .step{padding-top:0;padding-left:24px}\n  #lvm-shell .step::before{top:6px;left:0}\n  #lvm-shell .table-row{grid-template-columns:1.4fr .9fr .9fr}\n  #lvm-shell .table-row > .crit{padding:13px 12px;font-size:13px}\n  #lvm-shell .table-row > .cell{padding:13px 10px;font-size:12px;gap:8px}\n  #lvm-shell .table-row.head > div{padding:14px 12px;font-size:10px;gap:7px}\n  #lvm-shell .table-row.head .brand-cell img{width:20px;height:20px}\n  #lvm-shell .get-band{padding:36px 22px;border-radius:18px;margin:40px 0 30px}\n  #lvm-shell .get-band h3{font-size:28px}\n  #lvm-shell .get-band .stores img{height:50px}\n  #lvm-shell .cta-band{padding:22px;gap:14px}\n  #lvm-shell .cta-band .l{font-size:16px;min-width:0}\n  #lvm-shell .cta-band .stores img{height:38px}\n  #lvm-shell .faq summary{font-size:18px;gap:14px}\n  #lvm-shell .pyramid{max-width:100%}\n  #lvm-shell .pyramid .level{padding:11px 14px;font-size:14px}\n  #lvm-shell .scorecard{padding:20px 16px;border-radius:16px}\n  #lvm-shell .scorecard-head{grid-template-columns:1.2fr 1fr 1fr;column-gap:14px}\n  #lvm-shell .scorecard-head .h-brand{font-size:12px;gap:5px}\n  #lvm-shell .scorecard-head .h-brand img{width:18px;height:18px}\n  #lvm-shell .scorecard-row{grid-template-columns:1.2fr 1fr 1fr;column-gap:14px;padding:12px 0}\n  #lvm-shell .scorecard-row .crit{font-size:13px;padding-right:8px}\n  #lvm-shell .scorecard-row .bar{gap:6px}\n  #lvm-shell .scorecard-row .bar .v{font-size:11px;min-width:26px}\n  #lvm-shell .persona-it{grid-template-columns:44px 1fr;gap:12px;padding:16px 16px;border-radius:14px}\n  #lvm-shell .persona-it .pic{width:44px;height:44px;font-size:12px}\n  #lvm-shell .persona-it h4{font-size:15px}\n  #lvm-shell .persona-it p{font-size:13px}\n  #lvm-shell .feat-it{grid-template-columns:auto 1fr;gap:14px;padding:20px 0}\n  #lvm-shell .feat-it .fn{font-size:36px;width:54px}\n  #lvm-shell .feat-it .ft{font-size:18px}\n  #lvm-shell .feat-it .fd{font-size:13px}\n  #lvm-shell .feat-it .fc{display:none}\n}\n@media (max-width:480px){\n  #lvm-shell .phone-tabs{gap:5px}\n  #lvm-shell .phone-tabs button{padding:5px 8px;font-size:10px}\n  #lvm-shell .nav-stores{gap:4px}\n  #lvm-shell .nav-stores img{height:22px}\n  #lvm-shell .hero-stores img{height:40px}\n  #lvm-shell .crumb{font-size:12px}\n  #lvm-shell .table-row{grid-template-columns:1.3fr .85fr .85fr}\n  #lvm-shell .table-row > .crit{padding:11px 9px;font-size:12px}\n  #lvm-shell .table-row > .cell{padding:11px 8px;font-size:11px;gap:6px}\n  #lvm-shell .table-row.head > div{padding:11px 9px;font-size:9px;gap:5px}\n}\n\/* === Etude OFF === *\/\n#lvm-shell .bignum{font-family:var(--font-display);font-weight:600;font-size:88px;letter-spacing:-.045em;line-height:1;color:var(--pink);margin:8px 0 4px;font-variant-numeric:tabular-nums}\n#lvm-shell .bignum small{display:block;font-size:20px;color:var(--muted);font-weight:500;letter-spacing:-.01em;margin-top:10px;line-height:1.4}\n#lvm-shell .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0}\n#lvm-shell .stat-card{background:var(--paper);border:1px solid var(--rule-soft);border-radius:16px;padding:22px 20px}\n#lvm-shell .stat-card .n{font-family:var(--font-display);font-weight:600;font-size:34px;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}\n#lvm-shell .stat-card .n.pink{color:var(--pink)}\n#lvm-shell .stat-card .t{font-size:13.5px;color:var(--muted);margin-top:6px;line-height:1.5}\n#lvm-shell .metho{background:var(--paper);border:1px solid var(--rule-soft);border-left:4px solid var(--pink);border-radius:0 16px 16px 0;padding:24px 26px;margin:30px 0}\n#lvm-shell .metho h3{font-family:var(--font-display);font-size:17px;font-weight:600;margin:0 0 12px;letter-spacing:-.01em}\n#lvm-shell .metho ul{margin:0;padding-left:20px;font-size:15px;color:var(--muted);line-height:1.7}\n#lvm-shell .metho li{margin:4px 0}\n#lvm-shell .metho code{font-family:var(--font-mono);font-size:13.5px;background:var(--paper-2);padding:1px 6px;border-radius:5px;color:var(--ink-2)}\n#lvm-shell .prod-cards{display:grid;gap:14px;margin:28px 0}\n#lvm-shell .prod-card{display:flex;align-items:center;gap:18px;background:var(--paper);border:1px solid var(--rule-soft);border-radius:16px;padding:18px 22px;flex-wrap:wrap}\n#lvm-shell .prod-card .who{flex:1;min-width:200px}\n#lvm-shell .prod-card .who b{font-family:var(--font-display);font-size:16.5px;letter-spacing:-.01em;color:var(--ink);display:block}\n#lvm-shell .prod-card .who span{font-size:13px;color:var(--muted)}\n#lvm-shell .prod-card .vals{display:flex;align-items:center;gap:14px;font-variant-numeric:tabular-nums}\n#lvm-shell .prod-card .fiche{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--ink);letter-spacing:-.02em}\n#lvm-shell .prod-card .fleche{color:var(--dim);font-size:17px}\n#lvm-shell .prod-card .reel{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--pink);letter-spacing:-.02em}\n#lvm-shell .prod-card .unit{font-size:11.5px;color:var(--dim);display:block;text-align:center;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}\n@media (max-width:640px){\n  #lvm-shell .bignum{font-size:56px}\n  #lvm-shell .bignum small{font-size:16px}\n  #lvm-shell .stat-grid{grid-template-columns:1fr}\n  #lvm-shell .prod-card .fiche, #lvm-shell .prod-card .reel{font-size:20px}\n  #lvm-shell .cta-band{flex-direction:column;align-items:flex-start}\n  #lvm-shell .cta-band .l{min-width:100%;flex:none}\n}\n<\/style>\n\n<style id=\"lvm-collision-reset\">\nbody.postid-1947 #lvm-shell .hero{display:block!important;align-items:initial!important;justify-content:initial!important;text-align:left!important;flex-direction:initial!important;padding:54px 0 0!important}\nbody.postid-1947 #lvm-shell .wrap,\nbody.postid-1947 #lvm-shell main.wrap{display:block!important;max-width:760px!important;margin-left:auto!important;margin-right:auto!important;padding-left:28px!important;padding-right:28px!important}\n@media (max-width:820px){\n  body.postid-1947 #lvm-shell .wrap,\n  body.postid-1947 #lvm-shell main.wrap{padding-left:18px!important;padding-right:18px!important}\n}\nhtml, body{overflow-x:hidden!important}\nbody.postid-1947 #lvm-shell{overflow-x:hidden;max-width:100vw}\nbody.postid-1947 #lvm-shell *{max-width:100%}\nbody.postid-1947 #lvm-shell .nav-row{max-width:100vw;box-sizing:border-box}\nbody.postid-1947 #lvm-shell.force-show .rev{opacity:1!important;transform:none!important}\n@media (max-width:760px){\n  body.postid-1947 #lvm-shell .cta-band{flex-direction:column!important;align-items:center!important;text-align:center!important;padding:26px 22px!important;gap:20px!important}\n  body.postid-1947 #lvm-shell .cta-band .l{min-width:0!important;width:100%!important;font-size:16px!important;line-height:1.5!important;text-align:center!important}\n  body.postid-1947 #lvm-shell .cta-band .stores{width:100%!important;justify-content:center!important;flex-wrap:nowrap!important;gap:10px!important}\n  body.postid-1947 #lvm-shell .cta-band .stores a{flex:1!important;max-width:170px!important;display:flex!important;justify-content:center!important}\n  body.postid-1947 #lvm-shell .cta-band .stores img{height:56px!important;width:100%!important;max-width:170px!important;object-fit:contain!important;object-position:center!important;border-radius:10px!important}\n}\n<\/style>\n<div id=\"lvm-shell\">\n<div class=\"progress\" aria-hidden=\"true\"><i id=\"progBar\"><\/i><\/div>\n\n<header class=\"nav\">\n  <div class=\"nav-row\">\n    <a class=\"nav-brand\" href=\"https:\/\/lean-app.com\/es\/\" aria-label=\"Inicio Lean\">\n      <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\" alt=\"\" width=\"512\" height=\"512\" loading=\"lazy\" decoding=\"async\" \/>\n      <span>Lean<\/span>\n    <\/a>\n    <span class=\"nav-spacer\"><\/span>\n    <a class=\"nav-link\" href=\"https:\/\/lean-app.com\/es\/tdee-calculator\/\">Calculadora TDEE<\/a>\n    <div class=\"nav-stores\">\n      <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\" aria-label=\"Descargar en el App Store\">\n        <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\" \/>\n      <\/a>\n      <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\" aria-label=\"Disponible en Google Play\">\n        <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\" \/>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/header>\n\n<main class=\"wrap\">\n\n<section class=\"hero\" aria-labelledby=\"title\">\n  <div class=\"crumb\"><a href=\"https:\/\/lean-app.com\/es\/\">Inicio<\/a> &nbsp;\/&nbsp; Estudio base de datos de calor\u00edas<\/div>\n  <div class=\"eyebrow\">Estudio original &middot; Datos p\u00fablicos<\/div>\n  <h1 id=\"title\">857&#8239;655 productos analizados.\n    <span class=\"alt\">Lo que tu esc\u00e1ner de calor\u00edas no te dice.<\/span>\n  <\/h1>\n  <p class=\"dek\">Cada escaneo de c\u00f3digo de barras en Francia consulta la misma base de datos. La analizamos entera. M\u00e1s de un escaneo de cada tres devuelve datos ausentes, incompletos o incoherentes.<\/p>\n  <div class=\"byline\">\n    <img class=\"by-logo\" src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\" alt=\"\" width=\"26\" height=\"26\" loading=\"lazy\" decoding=\"async\" \/>\n    <span>Por <strong>El equipo Lean<\/strong> &middot; publicado el 24 de agosto de 2026 &middot; 7 min de lectura<\/span>\n  <\/div>\n  <div class=\"hero-stores\">\n    <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\" aria-label=\"Descargar Lean en la App Store\">\n      <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"T\u00e9l\u00e9charger sur l'App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\" \/>\n    <\/a>\n    <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\" aria-label=\"Descargar Lean en Google Play\">\n      <img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Disponible sur Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\" \/>\n    <\/a>\n  <\/div>\n<\/section>\n\n<section aria-labelledby=\"s1\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">01<\/span><\/div>\n  <h2 id=\"s1\">Por qu\u00e9 este estudio<\/h2>\n  <p>Cuando escaneas un c\u00f3digo de barras en un tracker de calor\u00edas en Francia, sea MyFitnessPal, Yazio, Lifesum o Lean, los datos vienen m\u00e1s o menos de la misma fuente: <a href=\"https:\/\/world.openfoodfacts.org\/\" target=\"_blank\" rel=\"noopener\">OpenFoodFacts<\/a>, una notable base de datos colaborativa francesa bajo licencia abierta ODbL. Millones de fichas de productos, rellenadas por contribuidores voluntarios.<\/p>\n  <p>Una base colaborativa es a la vez su fuerza y su l\u00edmite: cualquiera puede crear o editar una ficha, y nadie verifica sistem\u00e1ticamente. Nadie hab\u00eda cuantificado nunca la fiabilidad real de lo que devuelve tu escaneo. As\u00ed que descargamos el dump p\u00fablico completo del 23 de agosto de 2026 y probamos cada producto vendido en Francia.<\/p>\n  <div class=\"stat-grid\">\n    <div class=\"stat-card\"><div class=\"n\">4 535 553<\/div><div class=\"t\">productos en la base mundial a 23 de agosto de 2026<\/div><\/div>\n    <div class=\"stat-card\"><div class=\"n\">1 265 726<\/div><div class=\"t\">productos listados como vendidos en Francia<\/div><\/div>\n    <div class=\"stat-card\"><div class=\"n pink\">857 655<\/div><div class=\"t\">productos analizables: calor\u00edas y los 3 macros rellenados<\/div><\/div>\n  <\/div>\n<\/section>\n\n<section aria-labelledby=\"s2\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">02<\/span><\/div>\n  <h2 id=\"s2\">El m\u00e9todo: cada ficha probada contra s\u00ed misma<\/h2>\n  <p>No hace falta laboratorio para detectar una ficha falsa: basta confrontarla consigo misma. Las calor\u00edas de un alimento pueden deducirse de sus macronutrientes con los factores de Atwater, los mismos que el reglamento europeo INCO impone a los fabricantes: 4&nbsp;kcal por gramo de prote\u00edna, 4 por gramo de carbohidratos, 9 por gramo de grasa.<\/p>\n  <p>Si una ficha muestra 100&nbsp;kcal pero sus propios macros suman 250, una de las dos l\u00edneas es falsa. Y tu app te muestra una de las dos sin pesta\u00f1ear.<\/p>\n  <div class=\"metho\">\n    <h3>Metodolog\u00eda completa<\/h3>\n    <ul>\n      <li>Dump oficial de OpenFoodFacts del 23 de agosto de 2026 (licencia ODbL), \u00e1mbito Francia<\/li>\n      <li>Rec\u00e1lculo: <code>4&times;prote\u00ednas + 4&times;carbohidratos + 9&times;grasas<\/code>, m\u00e1s 7&nbsp;kcal\/g de alcohol, 2&nbsp;kcal\/g de fibra y 2,4&nbsp;kcal\/g de polioles (eritritol: 0), conforme al reglamento INCO 1169\/2011<\/li>\n      <li>Una ficha solo cuenta como incoherente si la diferencia supera a la vez el 10&nbsp;% y las 30&nbsp;kcal\/100g: el ruido de aguas y t\u00e9s a 2&nbsp;kcal queda excluido<\/li>\n      <li>16&#8239;364 fichas aberrantes descartadas (calor\u00edas fuera de 1-950&nbsp;kcal\/100g, macros imposibles)<\/li>\n      <li>Cada ejemplo citado en esta p\u00e1gina fue verificado de nuevo contra la ficha online el d\u00eda de publicaci\u00f3n<\/li>\n    <\/ul>\n  <\/div>\n<\/section>\n\n<section aria-labelledby=\"s3\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">03<\/span><\/div>\n  <h2 id=\"s3\">Resultado 1: casi 1 ficha de cada 3 est\u00e1 incompleta<\/h2>\n  <div class=\"bignum\">31 %<small>de los productos franceses carecen de datos completos<\/small><\/div>\n  <p>391&#8239;707 productos vendidos en Francia no tienen calor\u00edas rellenadas, o les faltan los tres macronutrientes. En concreto: escaneas, y la app muestra 0&nbsp;kcal, o calor\u00edas sin prote\u00ednas ni carbohidratos. Crees que trackeas; registras vac\u00edo.<\/p>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:400px;min-height:360px\"><canvas id=\"chartDonut\" aria-label=\"Distribuci\u00f3n de los 1 265 726 productos franceses por fiabilidad de la ficha\" role=\"img\"><\/canvas><\/div>\n    <figcaption>El destino de un escaneo en Francia, sobre 1&#8239;265&#8239;726 productos.<\/figcaption>\n  <\/figure>\n  <p>Es el error m\u00e1s traicionero, porque no parece un error: la ficha se muestra, el producto tiene nombre, foto. Solo falta lo esencial.<\/p>\n<\/section>\n\n<section aria-labelledby=\"s4\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">04<\/span><\/div>\n  <h2 id=\"s4\">Resultado 2: 46&#8239;757 productos con calor\u00edas incoherentes<\/h2>\n  <p>De las 857&#8239;655 fichas completas, 46&#8239;757 muestran calor\u00edas incompatibles con sus propios macros, en al menos un 10&nbsp;% y 30&nbsp;kcal por 100&nbsp;g. Cada punto del gr\u00e1fico de abajo es un producto real: en el eje x lo que su ficha declara, en el eje y lo que dan sus macros. Una ficha honesta cae en la diagonal.<\/p>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:460px;min-height:420px\"><canvas id=\"chartScatter\" aria-label=\"Calor\u00edas declaradas frente a calor\u00edas recalculadas, muestra de 1 370 productos\" role=\"img\"><\/canvas><\/div>\n    <figcaption>1&#8239;370 productos reales: declarado vs recalculado desde los macros.<\/figcaption>\n  <\/figure>\n  <p>La distribuci\u00f3n de las diferencias muestra que la base es masivamente correcta, y luego se alarga en una cola larga: las fichas falsas no est\u00e1n un poco mal, est\u00e1n muy mal.<\/p>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:360px;min-height:320px\"><canvas id=\"chartHisto\" aria-label=\"Distribuci\u00f3n de las diferencias relativas entre calor\u00edas declaradas y recalculadas\" role=\"img\"><\/canvas><\/div>\n    <figcaption>Distribuci\u00f3n de las diferencias, escala logar\u00edtmica.<\/figcaption>\n  <\/figure>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:360px;min-height:320px\"><canvas id=\"chartSeuils\" aria-label=\"Productos incoherentes por umbral de diferencia\" role=\"img\"><\/canvas><\/div>\n    <figcaption>Productos incoherentes por umbral de diferencia, de 857&#8239;655 fichas.<\/figcaption>\n  <\/figure>\n  <p>18&#8239;251 productos, dos incoherencias materiales de cada cinco, se desv\u00edan <em>por un factor de dos o m\u00e1s<\/em>. A ese nivel, ya no es una imprecisi\u00f3n, es un dato que voltea tu balance cal\u00f3rico diario.<\/p>\n  <p>Sumando fichas incompletas e incoherentes: <strong>m\u00e1s de un escaneo de cada tres en Francia devuelve datos ausentes, incompletos o incoherentes<\/strong>.<\/p>\n<\/section>\n\n<section aria-labelledby=\"s5\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">05<\/span><\/div>\n  <h2 id=\"s5\">Productos que tienes en tu despensa<\/h2>\n  <p>Cada ficha de abajo fue verificada online el d\u00eda de publicaci\u00f3n. A la izquierda lo que muestra la ficha de OpenFoodFacts, a la derecha lo que dan sus propios macros:<\/p>\n  <div class=\"prod-cards\">\n    <div class=\"prod-card\"><div class=\"who\"><b>Le Beurre Tendre<\/b><span>Ficha Elle&amp;Vire &middot; 535 escaneos<\/span><\/div><div class=\"vals\"><span><span class=\"fiche\">375<\/span><span class=\"unit\">ficha<\/span><\/span><span class=\"fleche\">&rarr;<\/span><span><span class=\"reel\">744<\/span><span class=\"unit\">macros<\/span><\/span><\/div><\/div>\n    <div class=\"prod-card\"><div class=\"who\"><b>Yogur estilo griego Yaos<\/b><span>Ficha Nestl\u00e9 &middot; 271 escaneos<\/span><\/div><div class=\"vals\"><span><span class=\"fiche\">50<\/span><span class=\"unit\">ficha<\/span><\/span><span class=\"fleche\">&rarr;<\/span><span><span class=\"reel\">98<\/span><span class=\"unit\">macros<\/span><\/span><\/div><\/div>\n    <div class=\"prod-card\"><div class=\"who\"><b>Chocolate Sweet &amp; Salty Nut<\/b><span>Ficha Nature Valley &middot; 338 escaneos<\/span><\/div><div class=\"vals\"><span><span class=\"fiche\">647<\/span><span class=\"unit\">ficha<\/span><\/span><span class=\"fleche\">&rarr;<\/span><span><span class=\"reel\">140<\/span><span class=\"unit\">macros<\/span><\/span><\/div><\/div>\n    <div class=\"prod-card\"><div class=\"who\"><b>Ratatouille \u00e0 la Proven\u00e7ale<\/b><span>Ficha Cassegrain &middot; 298 escaneos<\/span><\/div><div class=\"vals\"><span><span class=\"fiche\">38<\/span><span class=\"unit\">ficha<\/span><\/span><span class=\"fleche\">&rarr;<\/span><span><span class=\"reel\">72<\/span><span class=\"unit\">macros<\/span><\/span><\/div><\/div>\n  <\/div>\n  <p>El caso de manual: las lentejas a la auvernesa de Raynal &amp; Roquelaure existen bajo <strong>dos fichas distintas<\/strong>. Una muestra 48&nbsp;kcal\/100g, la otra 207. El valor real ronda los 99. Seg\u00fan qu\u00e9 c\u00f3digo de barras capte tu app, crees comer la mitad o el doble de la realidad.<\/p>\n  <p>Quien unta 30&nbsp;g de la mantequilla de arriba cuenta 110&nbsp;kcal de menos. Cada d\u00eda. Creyendo hacerlo bien.<\/p>\n  <div class=\"cta-band rev\">\n    <div class=\"l\">Lean verifica la coherencia de las fichas y tambi\u00e9n puede escanear tu plato desde una foto, sin depender de un c\u00f3digo de barras.<\/div>\n    <div class=\"stores\">\n      <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\" \/><\/a>\n      <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\" \/><\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section aria-labelledby=\"s6\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">06<\/span><\/div>\n  <h2 id=\"s6\">Las categor\u00edas m\u00e1s afectadas<\/h2>\n  <p>La incoherencia no se distribuye al azar, y la iron\u00eda del ranking es cruel: la categor\u00eda m\u00e1s afectada de toda la base es la que m\u00e1s trackean los deportistas. <strong>M\u00e1s de una barrita de prote\u00edna de cada cinco (20,8&nbsp;%) tiene una ficha incoherente.<\/strong><\/p>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:460px;min-height:420px\"><canvas id=\"chartBubble\" aria-label=\"Categor\u00edas: volumen de productos, tasa y n\u00famero de fichas incoherentes\" role=\"img\"><\/canvas><\/div>\n    <figcaption>Cada burbuja es una categor\u00eda; su tama\u00f1o, sus fichas incoherentes.<\/figcaption>\n  <\/figure>\n  <p>Las recetas complejas y los productos enriquecidos concentran los errores: barritas de prote\u00edna, dulces, caramelos, quesos. Los productos simples salen mejor parados.<\/p>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:380px;min-height:340px\"><canvas id=\"chartCats\" aria-label=\"Tasa de incoherencia por categor\u00eda\" role=\"img\"><\/canvas><\/div>\n    <figcaption>Parte de fichas incoherentes por categor\u00eda (m\u00edn. 1&#8239;000 productos).<\/figcaption>\n  <\/figure>\n  <p>Una nota de honestidad: caramelos, dulces y barritas se explican en parte por los edulcorantes. Cuando una ficha no declara sus polioles, el rec\u00e1lculo sobreestima la diferencia. Corregimos todo lo declarado; el resto refleja tambi\u00e9n esa laguna de declaraci\u00f3n, que enga\u00f1a a tu app exactamente de la misma manera.<\/p>\n<\/section>\n\n<section aria-labelledby=\"s7\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">07<\/span><\/div>\n  <h2 id=\"s7\">Lo que esto cambia para tu tracking<\/h2>\n  <p>Primero, lo que esto no significa: no deber\u00edas dejar de escanear, y OpenFoodFacts sigue siendo un proyecto notable que vive y se corrige en continuo. La curva de abajo lo muestra: las fichas creadas en 2020-2021 son las menos fiables (hasta un 7,5&nbsp;% de incoherencia), y la calidad se ha recuperado claramente desde 2023.<\/p>\n  <figure class=\"fig rev\">\n    <div class=\"cv-wrap\" style=\"position:relative;width:100%;height:340px;min-height:300px\"><canvas id=\"chartYears\" aria-label=\"Tasa de fichas incoherentes seg\u00fan el a\u00f1o de creaci\u00f3n de la ficha\" role=\"img\"><\/canvas><\/div>\n    <figcaption>Tasa de incoherencia seg\u00fan el a\u00f1o de creaci\u00f3n de la ficha.<\/figcaption>\n  <\/figure>\n  <p>Cuatro de las seis peores fichas del dump ya hab\u00edan sido corregidas online cuando las verificamos. Pero tu app puede haber sincronizado la versi\u00f3n falsa, y los cientos de miles de fichas creadas en los peores a\u00f1os siguen en la base.<\/p>\n  <p>Dos reflejos para recordar:<\/p>\n  <p><strong>1. Escanear es una herramienta de velocidad, no de verdad.<\/strong> Tras un escaneo, basta un vistazo a los macros: si prote\u00ednas, carbohidratos y grasas no cuadran con las calor\u00edas mostradas, la ficha es falsa. Es exactamente el test de este estudio, y toma dos segundos.<\/p>\n  <p><strong>2. El error invisible no est\u00e1 en tu plato, est\u00e1 en tu gasto.<\/strong> Una ficha falsa desviada 110&nbsp;kcal se corrige en diez segundos una vez detectada. Un gasto diario equivocado en 300&nbsp;kcal nunca es visible: est\u00e1 enterrado en el &laquo;multiplicador de actividad&raquo; que tu app te hizo elegir al registrarte. Ah\u00ed es donde Lean concentra su precisi\u00f3n: <a href=\"https:\/\/lean-app.com\/es\/depense-energetique-totale-v2\/\">TDEE = BMR + NEAT + EAT + TEF<\/a>, con un BMR calculado sobre tu <a href=\"https:\/\/lean-app.com\/es\/calcul-metabolisme-de-base\/\">grasa corporal real<\/a> y un <a href=\"https:\/\/lean-app.com\/es\/calculateur-neat\/\">NEAT basado en tus pasos reales<\/a>, no en una casilla marcada.<\/p>\n  <div class=\"cta-band rev\">\n    <div class=\"l\">Vu\u00e9lvete Lean, qu\u00e9date Lean: la \u00fanica app que calcula tu gasto desde medidas, no desde casillas.<\/div>\n    <div class=\"stores\">\n      <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\" \/><\/a>\n      <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\" \/><\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section aria-labelledby=\"s9\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">08<\/span><\/div>\n  <h2 id=\"s9\">Repositorios cient\u00edficos y cita<\/h2>\n  <p>Este estudio est\u00e1 depositado en archivos abiertos independientes, con un identificador persistente (DOI) y los PDF completos en franc\u00e9s e ingl\u00e9s. Cada dep\u00f3sito se puede verificar sin pasar por este sitio:<\/p>\n  <div class=\"prod-cards\">\n    <div class=\"prod-card\"><div class=\"who\"><b>Zenodo (CERN)<\/b><span>DOI 10.5281\/zenodo.22284416 \u00b7 dep\u00f3sito de referencia, PDF FR + EN<\/span><\/div><div class=\"vals\"><a href=\"https:\/\/doi.org\/10.5281\/zenodo.22284416\" target=\"_blank\" rel=\"noopener\">Abrir el dep\u00f3sito \u2192<\/a><\/div><\/div>\n    <div class=\"prod-card\"><div class=\"who\"><b>Figshare<\/b><span>DOI 10.6084\/m9.figshare.33432244 \u00b7 preprint, PDF FR + EN<\/span><\/div><div class=\"vals\"><a href=\"https:\/\/doi.org\/10.6084\/m9.figshare.33432244\" target=\"_blank\" rel=\"noopener\">Abrir el dep\u00f3sito \u2192<\/a><\/div><\/div>\n    <div class=\"prod-card\"><div class=\"who\"><b>OSF (Center for Open Science)<\/b><span>proyecto p\u00fablico tczvj \u00b7 metodolog\u00eda y archivos<\/span><\/div><div class=\"vals\"><a href=\"https:\/\/osf.io\/tczvj\/\" target=\"_blank\" rel=\"noopener\">Abrir el proyecto \u2192<\/a><\/div><\/div>\n    <div class=\"prod-card\"><div class=\"who\"><b>data.gouv.fr<\/b><span>reutilizaci\u00f3n declarada del conjunto de datos Open Food Facts<\/span><\/div><div class=\"vals\"><a href=\"https:\/\/www.data.gouv.fr\/fr\/reuses\/etude-coherence-interne-des-donnees-caloriques-dopen-food-facts\/\" target=\"_blank\" rel=\"noopener\">Ver la reutilizaci\u00f3n \u2192<\/a><\/div><\/div>\n  <\/div>\n  <p><strong>Para citar este estudio:<\/strong> El equipo Lean (2026). 857 655 productos analizados: coherencia interna de los datos cal\u00f3ricos de Open Food Facts. Zenodo. https:\/\/doi.org\/10.5281\/zenodo.22284416<\/p>\n<\/section>\n\n<section aria-labelledby=\"s8\" class=\"rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">FAQ<\/span><\/div>\n  <h2 id=\"s8\">Preguntas frecuentes<\/h2>\n  <div class=\"faq\">\n    <details><summary>\u00bfPor qu\u00e9 OpenFoodFacts y no USDA?<\/summary><div class=\"ans\">Para los productos con c\u00f3digo de barras vendidos en Francia, la fuente de referencia de los trackers es OpenFoodFacts. USDA cubre alimentos b\u00e1sicos y el mercado americano. Este estudio trata de lo que un escaneo en Francia devuelve realmente.<\/div><\/details>\n    <details><summary>\u00bfDeber\u00edas dejar de escanear tu comida?<\/summary><div class=\"ans\">No. Escanear sigue siendo la forma m\u00e1s r\u00e1pida de registrar. La buena pr\u00e1ctica: verificar que los macros mostrados son coherentes con las calor\u00edas. Dos segundos que evitan las peores fichas.<\/div><\/details>\n    <details><summary>\u00bfLas apps corrigen estos errores?<\/summary><div class=\"ans\">La base vive y se corrige en continuo, es la fuerza de la colaboraci\u00f3n. Pero una app que sincroniz\u00f3 una ficha falsa puede mantenerla en cach\u00e9 mucho despu\u00e9s de la correcci\u00f3n online.<\/div><\/details>\n    <details><summary>\u00bfSe pueden reutilizar las cifras de este estudio?<\/summary><div class=\"ans\">S\u00ed, libremente, citando &laquo;Estudio Lean, agosto 2026&raquo; con un enlace a esta p\u00e1gina. Los datos fuente pertenecen a OpenFoodFacts (licencia ODbL) y nuestra metodolog\u00eda est\u00e1 descrita \u00edntegramente arriba.<\/div><\/details>\n  <\/div>\n<\/section>\n\n<section aria-labelledby=\"src\" class=\"sources rev\">\n  <div class=\"section-label\"><span class=\"bar\"><\/span><span class=\"num\">Fuentes<\/span><\/div>\n  <ol>\n    <li>OpenFoodFacts, dump oficial del 23 de agosto de 2026, <a href=\"https:\/\/world.openfoodfacts.org\/data\" target=\"_blank\" rel=\"noopener\">world.openfoodfacts.org\/data<\/a>, licencia ODbL.<\/li>\n    <li>Reglamento (UE) n.\u00ba 1169\/2011 (INCO), anexo XIV: factores de conversi\u00f3n energ\u00e9tica.<\/li>\n    <li>Atwater W.O. &amp; Bryant A.P. (1900). The availability and fuel value of food materials.<\/li>\n    <li>Merrill A.L. &amp; Watt B.K. (1973). Energy value of foods, USDA Agriculture Handbook No. 74.<\/li>\n  <\/ol>\n<\/section>\n\n<\/main>\n\n<footer>\n  <div class=\"wrap\">\n    <div class=\"row\">\n      <div>\n        <div class=\"kicker\">Lean &middot; lean-app.com<\/div>\n        <p>Estudio publicado el 24 de agosto de 2026. Actualizado con regularidad a medida que se analizan nuevos dumps de OpenFoodFacts. Lean est\u00e1 disponible en iOS y Android.<\/p>\n      <\/div>\n      <div class=\"stores\">\n        <a href=\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646?utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-appstore-official.webp\" alt=\"App Store\" width=\"413\" height=\"122\" loading=\"lazy\" decoding=\"async\" \/><\/a>\n        <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite&#038;utm_source=seo&#038;utm_medium=blog&#038;utm_campaign=etude-off\" target=\"_blank\" rel=\"noopener\"><img src=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-googleplay-official.webp\" alt=\"Google Play\" width=\"315\" height=\"95\" loading=\"lazy\" decoding=\"async\" \/><\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/footer>\n<script data-wpmeteor-nooptimize=\"true\">\n(function(){\n  var bar = document.getElementById('progBar');\n  function up(){\n    var h = document.documentElement;\n    var sc = (h.scrollTop)\/Math.max(1,(h.scrollHeight - h.clientHeight));\n    bar.style.transform = 'scaleX(' + Math.max(0,Math.min(1,sc)) + ')';\n  }\n  document.addEventListener('scroll', up, {passive:true});\n  up();\n})();\n\n(function(){\n  if (!('IntersectionObserver' in window)) {\n    document.querySelectorAll('.rev').forEach(function(n){n.classList.add('on')});\n    return;\n  }\n  var obs = new IntersectionObserver(function(entries){\n    entries.forEach(function(e){\n      if (e.isIntersecting) { e.target.classList.add('on'); obs.unobserve(e.target); }\n    });\n  }, {threshold:0.12});\n  document.querySelectorAll('.rev').forEach(function(n){ obs.observe(n); });\n})();\n<\/script>\n\n<script data-wpmeteor-nooptimize=\"true\">\n\/\/ === Charts etude OFF ===\n(function chartInit(){\n  if (typeof Chart === 'undefined') { return setTimeout(chartInit, 60); }\n  var LEAN_LANG = document.documentElement.lang || 'fr';\n  function T(fr, en){ return LEAN_LANG.indexOf('en') === 0 ? en : fr; }\n  var PINK = '#FF2D6E', INK = '#0E0E10', MUTED = '#6E6E73', RULE = '#E8E6DF';\n  var PINKS = ['rgba(255,45,110,1)','rgba(255,45,110,0.82)','rgba(255,45,110,0.66)','rgba(255,45,110,0.52)','rgba(255,45,110,0.4)','rgba(255,45,110,0.3)','rgba(255,45,110,0.24)','rgba(255,45,110,0.18)'];\n  Chart.defaults.font.family = '-apple-system, \"SF Pro Text\", system-ui, sans-serif';\n  var DPR = Math.max(2, window.devicePixelRatio || 2);\n  function nf(v){ return v.toLocaleString('fr-FR'); }\n  function pinkGrad(ctx, alphaTop){\n    var g = ctx.createLinearGradient(0, 0, 0, ctx.canvas.clientHeight || 360);\n    g.addColorStop(0, 'rgba(255,45,110,' + alphaTop + ')');\n    g.addColorStop(1, 'rgba(255,45,110,0.02)');\n    return g;\n  }\n\n  \/\/ 1. Donut : le sort d'un scan\n  var elD = document.getElementById('chartDonut');\n  if (elD) new Chart(elD, {\n    type: 'doughnut',\n    data: {\n      labels: [T('Fiche compl\u00e8te et coh\u00e9rente', 'Complete and consistent'), T('Fiche incompl\u00e8te', 'Incomplete entry'), T('Calories incoh\u00e9rentes', 'Inconsistent calories'), T('Donn\u00e9es aberrantes', 'Invalid data')],\n      datasets: [{ data: [807650, 391707, 46757, 19612],\n        backgroundColor: ['#E8E6DF', PINK, 'rgba(255,45,110,0.55)', 'rgba(110,110,115,0.45)'],\n        borderWidth: 3, borderColor: '#FFFFFF', borderRadius: 6, spacing: 1, hoverOffset: 6 }]\n    },\n    options: { responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR, cutout: '66%',\n      plugins: { legend: { position: 'bottom', labels: { color: INK, boxWidth: 12, boxHeight: 12, borderRadius: 3, useBorderRadius: true, padding: 14, font: { size: 12.5 } } },\n        tooltip: { callbacks: { label: function(c){ return ' ' + nf(c.parsed) + T(' produits (', ' products (') + (100 * c.parsed \/ 1265726).toFixed(1) + ' %)'; } } } }\n    },\n    plugins: [{ id: 'centerText', afterDraw: function(chart){\n      var a = chart.ctx, area = chart.chartArea;\n      a.save(); a.textAlign = 'center';\n      a.fillStyle = PINK; a.font = '600 30px -apple-system, \"SF Pro Display\", system-ui, sans-serif';\n      a.fillText(T('1 sur 3', '1 in 3'), (area.left + area.right) \/ 2, (area.top + area.bottom) \/ 2 - 4);\n      a.fillStyle = MUTED; a.font = '500 12px -apple-system, system-ui, sans-serif';\n      a.fillText(T('scans non fiables', 'unreliable scans'), (area.left + area.right) \/ 2, (area.top + area.bottom) \/ 2 + 18);\n      a.restore();\n    } }]\n  });\n\n  \/\/ 2. Scatter : declare vs recalcule + diagonale de verite\n  var elSc = document.getElementById('chartScatter');\n  if (elSc) new Chart(elSc, {\n    type: 'scatter',\n    data: { datasets: [\n      { label: T('Fiches coh\u00e9rentes', 'Consistent entries'), data: [{\"x\": 457, \"y\": 457}, {\"x\": 299, \"y\": 294}, {\"x\": 391, \"y\": 386}, {\"x\": 129, \"y\": 129}, {\"x\": 476, \"y\": 483}, {\"x\": 535, \"y\": 531}, {\"x\": 21, \"y\": 21}, {\"x\": 529, \"y\": 536}, {\"x\": 36, \"y\": 36}, {\"x\": 566, \"y\": 547}, {\"x\": 429, \"y\": 458}, {\"x\": 483, \"y\": 488}, {\"x\": 594, \"y\": 636}, {\"x\": 149, \"y\": 146}, {\"x\": 80, \"y\": 81}, {\"x\": 350, \"y\": 353}, {\"x\": 33, \"y\": 37}, {\"x\": 93, \"y\": 93}, {\"x\": 27, \"y\": 27}, {\"x\": 190, \"y\": 204}, {\"x\": 50, \"y\": 50}, {\"x\": 30, \"y\": 29}, {\"x\": 475, \"y\": 498}, {\"x\": 319, \"y\": 319}, {\"x\": 382, \"y\": 385}, {\"x\": 412, \"y\": 416}, {\"x\": 404, \"y\": 399}, {\"x\": 171, \"y\": 171}, {\"x\": 158, \"y\": 154}, {\"x\": 418, \"y\": 421}, {\"x\": 341, \"y\": 336}, {\"x\": 494, \"y\": 470}, {\"x\": 238, \"y\": 219}, {\"x\": 141, \"y\": 141}, {\"x\": 276, \"y\": 270}, {\"x\": 213, \"y\": 213}, {\"x\": 309, \"y\": 309}, {\"x\": 134, \"y\": 130}, {\"x\": 388, \"y\": 387}, {\"x\": 223, \"y\": 221}, {\"x\": 78, \"y\": 78}, {\"x\": 256, \"y\": 250}, {\"x\": 327, \"y\": 324}, {\"x\": 106, \"y\": 106}, {\"x\": 268, \"y\": 262}, {\"x\": 373, \"y\": 373}, {\"x\": 78, \"y\": 78}, {\"x\": 291, \"y\": 291}, {\"x\": 362, \"y\": 360}, {\"x\": 311, \"y\": 311}, {\"x\": 385, \"y\": 385}, {\"x\": 333, \"y\": 333}, {\"x\": 399, \"y\": 397}, {\"x\": 110, \"y\": 112}, {\"x\": 104, \"y\": 104}, {\"x\": 448, \"y\": 447}, {\"x\": 105, \"y\": 105}, {\"x\": 108, \"y\": 108}, {\"x\": 128, \"y\": 126}, {\"x\": 168, \"y\": 166}, {\"x\": 369, \"y\": 370}, {\"x\": 147, \"y\": 146}, {\"x\": 398, \"y\": 390}, {\"x\": 309, \"y\": 309}, {\"x\": 98, \"y\": 98}, {\"x\": 106, \"y\": 106}, {\"x\": 245, \"y\": 241}, {\"x\": 104, \"y\": 104}, {\"x\": 353, \"y\": 359}, {\"x\": 124, \"y\": 124}, {\"x\": 373, \"y\": 369}, {\"x\": 362, \"y\": 368}, {\"x\": 133, \"y\": 132}, {\"x\": 157, \"y\": 157}, {\"x\": 51, \"y\": 51}, {\"x\": 391, \"y\": 391}, {\"x\": 365, \"y\": 344}, {\"x\": 113, \"y\": 113}, {\"x\": 366, \"y\": 366}, {\"x\": 142, \"y\": 138}, {\"x\": 101, \"y\": 101}, {\"x\": 285, \"y\": 285}, {\"x\": 60, \"y\": 59}, {\"x\": 45, \"y\": 50}, {\"x\": 494, \"y\": 496}, {\"x\": 565, \"y\": 561}, {\"x\": 480, \"y\": 481}, {\"x\": 366, \"y\": 360}, {\"x\": 333, \"y\": 333}, {\"x\": 304, \"y\": 307}, {\"x\": 1, \"y\": 1}, {\"x\": 564, \"y\": 564}, {\"x\": 406, \"y\": 394}, {\"x\": 336, \"y\": 338}, {\"x\": 101, \"y\": 100}, {\"x\": 217, \"y\": 217}, {\"x\": 9, \"y\": 8}, {\"x\": 110, \"y\": 118}, {\"x\": 335, \"y\": 332}, {\"x\": 92, \"y\": 110}, {\"x\": 1, \"y\": 1}, {\"x\": 335, \"y\": 331}, {\"x\": 495, \"y\": 505}, {\"x\": 136, \"y\": 136}, {\"x\": 72, \"y\": 72}, {\"x\": 359, \"y\": 361}, {\"x\": 39, \"y\": 38}, {\"x\": 19, \"y\": 18}, {\"x\": 465, \"y\": 461}, {\"x\": 276, \"y\": 276}, {\"x\": 358, \"y\": 352}, {\"x\": 156, \"y\": 156}, {\"x\": 449, \"y\": 445}, {\"x\": 182, \"y\": 176}, {\"x\": 240, \"y\": 240}, {\"x\": 284, \"y\": 283}, {\"x\": 221, \"y\": 222}, {\"x\": 331, \"y\": 331}, {\"x\": 254, \"y\": 251}, {\"x\": 299, \"y\": 299}, {\"x\": 619, \"y\": 616}, {\"x\": 54, \"y\": 52}, {\"x\": 176, \"y\": 160}, {\"x\": 150, \"y\": 145}, {\"x\": 410, \"y\": 409}, {\"x\": 216, \"y\": 213}, {\"x\": 390, \"y\": 423}, {\"x\": 485, \"y\": 491}, {\"x\": 498, \"y\": 498}, {\"x\": 42, \"y\": 44}, {\"x\": 295, \"y\": 292}, {\"x\": 376, \"y\": 375}, {\"x\": 65, \"y\": 65}, {\"x\": 29, \"y\": 28}, {\"x\": 228, \"y\": 224}, {\"x\": 386, \"y\": 386}, {\"x\": 628, \"y\": 628}, {\"x\": 336, \"y\": 336}, {\"x\": 336, \"y\": 306}, {\"x\": 38, \"y\": 36}, {\"x\": 507, \"y\": 483}, {\"x\": 50, \"y\": 50}, {\"x\": 117, \"y\": 119}, {\"x\": 332, \"y\": 332}, {\"x\": 250, \"y\": 248}, {\"x\": 1, \"y\": 1}, {\"x\": 237, \"y\": 245}, {\"x\": 213, \"y\": 209}, {\"x\": 168, \"y\": 195}, {\"x\": 368, \"y\": 372}, {\"x\": 369, \"y\": 369}, {\"x\": 366, \"y\": 363}, {\"x\": 197, \"y\": 197}, {\"x\": 176, \"y\": 176}, {\"x\": 401, \"y\": 397}, {\"x\": 167, \"y\": 165}, {\"x\": 381, \"y\": 380}, {\"x\": 271, \"y\": 271}, {\"x\": 181, \"y\": 184}, {\"x\": 139, \"y\": 139}, {\"x\": 364, \"y\": 364}, {\"x\": 385, \"y\": 387}, {\"x\": 385, \"y\": 388}, {\"x\": 239, \"y\": 249}, {\"x\": 314, \"y\": 316}, {\"x\": 185, \"y\": 185}, {\"x\": 418, \"y\": 423}, {\"x\": 161, \"y\": 161}, {\"x\": 217, \"y\": 217}, {\"x\": 236, \"y\": 236}, {\"x\": 166, \"y\": 166}, {\"x\": 117, \"y\": 113}, {\"x\": 199, \"y\": 200}, {\"x\": 150, \"y\": 148}, {\"x\": 122, \"y\": 124}, {\"x\": 289, \"y\": 288}, {\"x\": 361, \"y\": 363}, {\"x\": 173, \"y\": 177}, {\"x\": 165, \"y\": 164}, {\"x\": 106, \"y\": 109}, {\"x\": 172, \"y\": 169}, {\"x\": 95, \"y\": 94}, {\"x\": 305, \"y\": 306}, {\"x\": 97, \"y\": 96}, {\"x\": 348, \"y\": 348}, {\"x\": 136, \"y\": 135}, {\"x\": 156, \"y\": 158}, {\"x\": 124, \"y\": 124}, {\"x\": 225, \"y\": 225}, {\"x\": 153, \"y\": 153}, {\"x\": 139, \"y\": 138}, {\"x\": 255, \"y\": 260}, {\"x\": 398, \"y\": 410}, {\"x\": 392, \"y\": 388}, {\"x\": 327, \"y\": 325}, {\"x\": 272, \"y\": 270}, {\"x\": 283, \"y\": 283}, {\"x\": 144, \"y\": 142}, {\"x\": 283, \"y\": 283}, {\"x\": 338, \"y\": 332}, {\"x\": 251, \"y\": 228}, {\"x\": 48, \"y\": 48}, {\"x\": 450, \"y\": 437}, {\"x\": 328, \"y\": 310}, {\"x\": 339, \"y\": 369}, {\"x\": 404, \"y\": 405}, {\"x\": 551, \"y\": 559}, {\"x\": 221, \"y\": 219}, {\"x\": 123, \"y\": 122}, {\"x\": 356, \"y\": 354}, {\"x\": 248, \"y\": 248}, {\"x\": 250, \"y\": 250}, {\"x\": 163, \"y\": 156}, {\"x\": 317, \"y\": 292}, {\"x\": 245, \"y\": 246}, {\"x\": 229, \"y\": 229}, {\"x\": 725, \"y\": 717}, {\"x\": 159, \"y\": 161}, {\"x\": 361, \"y\": 357}, {\"x\": 111, \"y\": 109}, {\"x\": 418, \"y\": 423}, {\"x\": 220, \"y\": 214}, {\"x\": 228, \"y\": 229}, {\"x\": 139, \"y\": 141}, {\"x\": 155, \"y\": 126}, {\"x\": 162, \"y\": 163}, {\"x\": 403, \"y\": 397}, {\"x\": 364, \"y\": 360}, {\"x\": 402, \"y\": 406}, {\"x\": 55, \"y\": 55}, {\"x\": 257, \"y\": 260}, {\"x\": 105, \"y\": 105}, {\"x\": 110, \"y\": 110}, {\"x\": 42, \"y\": 43}, {\"x\": 365, \"y\": 370}, {\"x\": 235, \"y\": 235}, {\"x\": 404, \"y\": 401}, {\"x\": 111, \"y\": 108}, {\"x\": 413, \"y\": 413}, {\"x\": 70, \"y\": 72}, {\"x\": 206, \"y\": 206}, {\"x\": 390, \"y\": 390}, {\"x\": 524, \"y\": 529}, {\"x\": 285, \"y\": 288}, {\"x\": 177, \"y\": 177}, {\"x\": 107, \"y\": 105}, {\"x\": 52, \"y\": 53}, {\"x\": 361, \"y\": 361}, {\"x\": 125, \"y\": 123}, {\"x\": 343, \"y\": 337}, {\"x\": 227, \"y\": 228}, {\"x\": 124, \"y\": 124}, {\"x\": 74, \"y\": 70}, {\"x\": 325, \"y\": 325}, {\"x\": 87, \"y\": 86}, {\"x\": 41, \"y\": 41}, {\"x\": 365, \"y\": 365}, {\"x\": 177, \"y\": 176}, {\"x\": 333, \"y\": 332}, {\"x\": 82, \"y\": 82}, {\"x\": 328, \"y\": 328}, {\"x\": 562, \"y\": 557}, {\"x\": 530, \"y\": 520}, {\"x\": 290, \"y\": 284}, {\"x\": 335, \"y\": 335}, {\"x\": 367, \"y\": 367}, {\"x\": 198, \"y\": 198}, {\"x\": 308, \"y\": 294}, {\"x\": 368, \"y\": 370}, {\"x\": 71, \"y\": 71}, {\"x\": 60, \"y\": 59}, {\"x\": 19, \"y\": 16}, {\"x\": 320, \"y\": 324}, {\"x\": 183, \"y\": 172}, {\"x\": 124, \"y\": 124}, {\"x\": 465, \"y\": 450}, {\"x\": 363, \"y\": 367}, {\"x\": 111, \"y\": 109}, {\"x\": 116, \"y\": 116}, {\"x\": 565, \"y\": 558}, {\"x\": 136, \"y\": 146}, {\"x\": 458, \"y\": 497}, {\"x\": 512, \"y\": 504}, {\"x\": 545, \"y\": 540}, {\"x\": 382, \"y\": 384}, {\"x\": 547, \"y\": 520}, {\"x\": 8, \"y\": 2}, {\"x\": 109, \"y\": 109}, {\"x\": 167, \"y\": 176}, {\"x\": 338, \"y\": 336}, {\"x\": 140, \"y\": 142}, {\"x\": 615, \"y\": 612}, {\"x\": 503, \"y\": 498}, {\"x\": 546, \"y\": 542}, {\"x\": 313, \"y\": 318}, {\"x\": 424, \"y\": 425}, {\"x\": 544, \"y\": 534}, {\"x\": 370, \"y\": 370}, {\"x\": 12, \"y\": 14}, {\"x\": 433, \"y\": 460}, {\"x\": 770, \"y\": 771}, {\"x\": 303, \"y\": 274}, {\"x\": 127, \"y\": 123}, {\"x\": 410, \"y\": 399}, {\"x\": 371, \"y\": 364}, {\"x\": 62, \"y\": 62}, {\"x\": 239, \"y\": 239}, {\"x\": 238, \"y\": 238}, {\"x\": 361, \"y\": 360}, {\"x\": 253, \"y\": 250}, {\"x\": 140, \"y\": 140}, {\"x\": 23, \"y\": 23}, {\"x\": 46, \"y\": 46}, {\"x\": 101, \"y\": 101}, {\"x\": 487, \"y\": 486}, {\"x\": 223, \"y\": 223}, {\"x\": 247, \"y\": 247}, {\"x\": 47, \"y\": 47}, {\"x\": 81, \"y\": 81}, {\"x\": 336, \"y\": 332}, {\"x\": 51, \"y\": 44}, {\"x\": 522, \"y\": 503}, {\"x\": 157, \"y\": 157}, {\"x\": 113, \"y\": 113}, {\"x\": 619, \"y\": 620}, {\"x\": 316, \"y\": 316}, {\"x\": 270, \"y\": 270}, {\"x\": 337, \"y\": 333}, {\"x\": 351, \"y\": 351}, {\"x\": 197, \"y\": 198}, {\"x\": 249, \"y\": 243}, {\"x\": 49, \"y\": 50}, {\"x\": 171, \"y\": 171}, {\"x\": 46, \"y\": 58}, {\"x\": 132, \"y\": 134}, {\"x\": 243, \"y\": 249}, {\"x\": 247, \"y\": 247}, {\"x\": 49, \"y\": 44}, {\"x\": 129, \"y\": 129}, {\"x\": 462, \"y\": 462}, {\"x\": 105, \"y\": 104}, {\"x\": 57, \"y\": 54}, {\"x\": 347, \"y\": 347}, {\"x\": 152, \"y\": 152}, {\"x\": 136, \"y\": 136}, {\"x\": 32, \"y\": 38}, {\"x\": 696, \"y\": 692}, {\"x\": 360, \"y\": 360}, {\"x\": 510, \"y\": 510}, {\"x\": 183, \"y\": 179}, {\"x\": 248, \"y\": 248}, {\"x\": 232, \"y\": 232}, {\"x\": 681, \"y\": 685}, {\"x\": 81, \"y\": 81}, {\"x\": 62, \"y\": 68}, {\"x\": 436, \"y\": 441}, {\"x\": 561, \"y\": 562}, {\"x\": 204, \"y\": 208}, {\"x\": 83, \"y\": 84}, {\"x\": 289, \"y\": 302}, {\"x\": 461, \"y\": 462}, {\"x\": 683, \"y\": 681}, {\"x\": 161, \"y\": 160}, {\"x\": 28, \"y\": 32}, {\"x\": 363, \"y\": 363}, {\"x\": 498, \"y\": 498}, {\"x\": 452, \"y\": 466}, {\"x\": 186, \"y\": 186}, {\"x\": 14, \"y\": 14}, {\"x\": 159, \"y\": 160}, {\"x\": 49, \"y\": 53}, {\"x\": 544, \"y\": 544}, {\"x\": 487, \"y\": 480}, {\"x\": 405, \"y\": 401}, {\"x\": 26, \"y\": 54}, {\"x\": 35, \"y\": 34}, {\"x\": 238, \"y\": 238}, {\"x\": 139, \"y\": 138}, {\"x\": 900, \"y\": 900}, {\"x\": 87, \"y\": 87}, {\"x\": 348, \"y\": 348}, {\"x\": 134, \"y\": 134}, {\"x\": 204, \"y\": 204}, {\"x\": 110, \"y\": 108}, {\"x\": 380, \"y\": 380}, {\"x\": 40, \"y\": 40}, {\"x\": 391, \"y\": 392}, {\"x\": 68, \"y\": 69}, {\"x\": 248, \"y\": 248}, {\"x\": 155, \"y\": 150}, {\"x\": 129, \"y\": 129}, {\"x\": 269, \"y\": 257}, {\"x\": 314, \"y\": 310}, {\"x\": 355, \"y\": 355}, {\"x\": 90, \"y\": 88}, {\"x\": 417, \"y\": 427}, {\"x\": 201, \"y\": 204}, {\"x\": 487, \"y\": 487}, {\"x\": 81, \"y\": 77}, {\"x\": 573, \"y\": 579}, {\"x\": 268, \"y\": 273}, {\"x\": 99, \"y\": 99}, {\"x\": 222, \"y\": 222}, {\"x\": 234, \"y\": 233}, {\"x\": 420, \"y\": 420}, {\"x\": 115, \"y\": 115}, {\"x\": 38, \"y\": 38}, {\"x\": 120, \"y\": 120}, {\"x\": 106, \"y\": 106}, {\"x\": 225, \"y\": 221}, {\"x\": 232, \"y\": 234}, {\"x\": 305, \"y\": 305}, {\"x\": 242, \"y\": 246}, {\"x\": 196, \"y\": 196}, {\"x\": 242, \"y\": 242}, {\"x\": 320, \"y\": 324}, {\"x\": 74, \"y\": 74}, {\"x\": 357, \"y\": 354}, {\"x\": 1, \"y\": 1}, {\"x\": 210, \"y\": 205}, {\"x\": 544, \"y\": 536}, {\"x\": 90, \"y\": 96}, {\"x\": 232, \"y\": 232}, {\"x\": 85, \"y\": 85}, {\"x\": 231, \"y\": 234}, {\"x\": 102, \"y\": 102}, {\"x\": 144, \"y\": 144}, {\"x\": 368, \"y\": 361}, {\"x\": 21, \"y\": 21}, {\"x\": 417, \"y\": 412}, {\"x\": 411, \"y\": 411}, {\"x\": 374, \"y\": 373}, {\"x\": 395, \"y\": 391}, {\"x\": 216, \"y\": 216}, {\"x\": 58, \"y\": 58}, {\"x\": 17, \"y\": 17}, {\"x\": 231, \"y\": 228}, {\"x\": 82, \"y\": 78}, {\"x\": 324, \"y\": 320}, {\"x\": 444, \"y\": 441}, {\"x\": 230, \"y\": 230}, {\"x\": 177, \"y\": 176}, {\"x\": 100, \"y\": 100}, {\"x\": 205, \"y\": 205}, {\"x\": 95, \"y\": 91}, {\"x\": 534, \"y\": 534}, {\"x\": 34, \"y\": 32}, {\"x\": 107, \"y\": 104}, {\"x\": 115, \"y\": 115}, {\"x\": 144, \"y\": 144}, {\"x\": 143, \"y\": 141}, {\"x\": 27, \"y\": 21}, {\"x\": 374, \"y\": 374}, {\"x\": 470, \"y\": 443}, {\"x\": 101, \"y\": 101}, {\"x\": 210, \"y\": 210}, {\"x\": 234, \"y\": 234}, {\"x\": 523, \"y\": 538}, {\"x\": 208, \"y\": 208}, {\"x\": 347, \"y\": 347}, {\"x\": 120, \"y\": 119}, {\"x\": 91, \"y\": 87}, {\"x\": 93, \"y\": 93}, {\"x\": 50, \"y\": 47}, {\"x\": 33, \"y\": 34}, {\"x\": 91, \"y\": 90}, {\"x\": 326, \"y\": 326}, {\"x\": 165, \"y\": 167}, {\"x\": 515, \"y\": 513}, {\"x\": 77, \"y\": 73}, {\"x\": 133, \"y\": 124}, {\"x\": 330, \"y\": 344}, {\"x\": 39, \"y\": 47}, {\"x\": 593, \"y\": 628}, {\"x\": 190, \"y\": 191}, {\"x\": 340, \"y\": 340}, {\"x\": 43, \"y\": 44}, {\"x\": 95, \"y\": 95}, {\"x\": 88, \"y\": 88}, {\"x\": 220, \"y\": 220}, {\"x\": 361, \"y\": 361}, {\"x\": 361, \"y\": 361}, {\"x\": 187, \"y\": 187}, {\"x\": 698, \"y\": 690}, {\"x\": 351, \"y\": 349}, {\"x\": 485, \"y\": 485}, {\"x\": 242, \"y\": 239}, {\"x\": 170, \"y\": 171}, {\"x\": 409, \"y\": 411}, {\"x\": 392, \"y\": 392}, {\"x\": 493, \"y\": 490}, {\"x\": 69, \"y\": 69}, {\"x\": 168, \"y\": 169}, {\"x\": 223, \"y\": 218}, {\"x\": 217, \"y\": 214}, {\"x\": 450, \"y\": 416}, {\"x\": 157, \"y\": 158}, {\"x\": 286, \"y\": 261}, {\"x\": 427, \"y\": 426}, {\"x\": 355, \"y\": 351}, {\"x\": 332, \"y\": 332}, {\"x\": 337, \"y\": 337}, {\"x\": 161, \"y\": 162}, {\"x\": 290, \"y\": 291}, {\"x\": 398, \"y\": 398}, {\"x\": 43, \"y\": 41}, {\"x\": 154, \"y\": 153}, {\"x\": 119, \"y\": 119}, {\"x\": 577, \"y\": 549}, {\"x\": 508, \"y\": 508}, {\"x\": 189, \"y\": 193}, {\"x\": 39, \"y\": 36}, {\"x\": 470, \"y\": 464}, {\"x\": 391, \"y\": 371}, {\"x\": 580, \"y\": 576}, {\"x\": 273, \"y\": 273}, {\"x\": 68, \"y\": 69}, {\"x\": 338, \"y\": 345}, {\"x\": 485, \"y\": 477}, {\"x\": 427, \"y\": 427}, {\"x\": 46, \"y\": 48}, {\"x\": 167, \"y\": 170}, {\"x\": 69, \"y\": 69}, {\"x\": 300, \"y\": 301}, {\"x\": 1, \"y\": 9}, {\"x\": 318, \"y\": 329}, {\"x\": 113, \"y\": 109}, {\"x\": 72, \"y\": 72}, {\"x\": 565, \"y\": 535}, {\"x\": 900, \"y\": 900}, {\"x\": 49, \"y\": 54}, {\"x\": 256, \"y\": 254}, {\"x\": 225, \"y\": 226}, {\"x\": 325, \"y\": 314}, {\"x\": 255, \"y\": 252}, {\"x\": 17, \"y\": 16}, {\"x\": 290, \"y\": 290}, {\"x\": 529, \"y\": 529}, {\"x\": 468, \"y\": 469}, {\"x\": 163, \"y\": 167}, {\"x\": 501, \"y\": 500}, {\"x\": 42, \"y\": 42}, {\"x\": 164, \"y\": 164}, {\"x\": 485, \"y\": 476}, {\"x\": 89, \"y\": 88}, {\"x\": 201, \"y\": 200}, {\"x\": 66, \"y\": 65}, {\"x\": 71, \"y\": 71}, {\"x\": 578, \"y\": 563}, {\"x\": 563, \"y\": 556}, {\"x\": 600, \"y\": 590}, {\"x\": 340, \"y\": 331}, {\"x\": 575, \"y\": 616}, {\"x\": 261, \"y\": 261}, {\"x\": 262, \"y\": 262}, {\"x\": 451, \"y\": 450}, {\"x\": 327, \"y\": 323}, {\"x\": 179, \"y\": 182}, {\"x\": 132, \"y\": 132}, {\"x\": 530, \"y\": 530}, {\"x\": 324, \"y\": 312}, {\"x\": 439, \"y\": 432}, {\"x\": 14, \"y\": 18}, {\"x\": 195, \"y\": 185}, {\"x\": 389, \"y\": 378}, {\"x\": 358, \"y\": 333}, {\"x\": 260, \"y\": 258}, {\"x\": 271, \"y\": 273}, {\"x\": 275, \"y\": 276}, {\"x\": 179, \"y\": 180}, {\"x\": 326, \"y\": 326}, {\"x\": 73, \"y\": 74}, {\"x\": 154, \"y\": 154}, {\"x\": 168, \"y\": 167}, {\"x\": 470, \"y\": 470}, {\"x\": 298, \"y\": 298}, {\"x\": 67, \"y\": 67}, {\"x\": 265, \"y\": 261}, {\"x\": 336, \"y\": 340}, {\"x\": 265, \"y\": 261}, {\"x\": 900, \"y\": 898}, {\"x\": 387, \"y\": 395}, {\"x\": 32, \"y\": 33}, {\"x\": 500, \"y\": 495}, {\"x\": 13, \"y\": 17}, {\"x\": 231, \"y\": 225}, {\"x\": 350, \"y\": 351}, {\"x\": 148, \"y\": 151}, {\"x\": 88, \"y\": 87}, {\"x\": 147, \"y\": 147}, {\"x\": 318, \"y\": 316}, {\"x\": 108, \"y\": 108}, {\"x\": 628, \"y\": 624}, {\"x\": 150, \"y\": 152}, {\"x\": 25, \"y\": 28}, {\"x\": 98, \"y\": 99}, {\"x\": 523, \"y\": 512}, {\"x\": 358, \"y\": 344}, {\"x\": 654, \"y\": 696}, {\"x\": 284, \"y\": 285}, {\"x\": 105, \"y\": 122}, {\"x\": 248, \"y\": 249}, {\"x\": 364, \"y\": 364}, {\"x\": 373, \"y\": 373}, {\"x\": 95, \"y\": 95}, {\"x\": 108, \"y\": 108}, {\"x\": 329, \"y\": 327}, {\"x\": 155, \"y\": 152}, {\"x\": 108, \"y\": 108}, {\"x\": 73, \"y\": 69}, {\"x\": 341, \"y\": 340}, {\"x\": 23, \"y\": 26}, {\"x\": 48, \"y\": 48}, {\"x\": 584, \"y\": 560}, {\"x\": 189, \"y\": 189}, {\"x\": 130, \"y\": 129}, {\"x\": 638, \"y\": 630}, {\"x\": 54, \"y\": 54}, {\"x\": 38, \"y\": 38}, {\"x\": 350, \"y\": 340}, {\"x\": 93, \"y\": 94}, {\"x\": 247, \"y\": 248}, {\"x\": 42, \"y\": 40}, {\"x\": 232, \"y\": 222}, {\"x\": 218, \"y\": 219}, {\"x\": 47, \"y\": 49}, {\"x\": 363, \"y\": 363}, {\"x\": 162, \"y\": 162}, {\"x\": 83, \"y\": 83}, {\"x\": 89, \"y\": 90}, {\"x\": 123, \"y\": 124}, {\"x\": 237, \"y\": 236}, {\"x\": 60, \"y\": 64}, {\"x\": 544, \"y\": 544}, {\"x\": 744, \"y\": 744}, {\"x\": 47, \"y\": 48}, {\"x\": 357, \"y\": 386}, {\"x\": 27, \"y\": 27}, {\"x\": 49, \"y\": 50}, {\"x\": 44, \"y\": 41}, {\"x\": 345, \"y\": 345}, {\"x\": 303, \"y\": 303}, {\"x\": 347, \"y\": 348}, {\"x\": 477, \"y\": 477}, {\"x\": 170, \"y\": 170}, {\"x\": 69, \"y\": 69}, {\"x\": 119, \"y\": 119}, {\"x\": 350, \"y\": 350}, {\"x\": 386, \"y\": 386}, {\"x\": 39, \"y\": 46}, {\"x\": 398, \"y\": 398}, {\"x\": 124, \"y\": 124}, {\"x\": 95, \"y\": 94}, {\"x\": 355, \"y\": 354}, {\"x\": 202, \"y\": 212}, {\"x\": 386, \"y\": 380}, {\"x\": 145, \"y\": 145}, {\"x\": 238, \"y\": 235}, {\"x\": 49, \"y\": 53}, {\"x\": 374, \"y\": 377}, {\"x\": 268, \"y\": 262}, {\"x\": 344, \"y\": 328}, {\"x\": 159, \"y\": 158}, {\"x\": 101, \"y\": 102}, {\"x\": 285, \"y\": 256}, {\"x\": 313, \"y\": 303}, {\"x\": 28, \"y\": 28}, {\"x\": 212, \"y\": 212}, {\"x\": 132, \"y\": 118}, {\"x\": 198, \"y\": 198}, {\"x\": 596, \"y\": 591}, {\"x\": 48, \"y\": 48}, {\"x\": 41, \"y\": 40}, {\"x\": 424, \"y\": 424}, {\"x\": 257, \"y\": 257}, {\"x\": 232, \"y\": 224}, {\"x\": 556, \"y\": 552}, {\"x\": 487, \"y\": 488}, {\"x\": 447, \"y\": 451}, {\"x\": 577, \"y\": 576}, {\"x\": 300, \"y\": 300}, {\"x\": 567, \"y\": 565}, {\"x\": 485, \"y\": 484}, {\"x\": 142, \"y\": 136}, {\"x\": 304, \"y\": 304}, {\"x\": 329, \"y\": 342}, {\"x\": 95, \"y\": 95}, {\"x\": 481, \"y\": 465}, {\"x\": 127, \"y\": 127}, {\"x\": 367, \"y\": 368}, {\"x\": 76, \"y\": 76}, {\"x\": 476, \"y\": 476}, {\"x\": 292, \"y\": 296}, {\"x\": 172, \"y\": 171}, {\"x\": 32, \"y\": 36}, {\"x\": 46, \"y\": 46}, {\"x\": 509, \"y\": 506}, {\"x\": 30, \"y\": 28}, {\"x\": 459, \"y\": 435}, {\"x\": 314, \"y\": 315}, {\"x\": 331, \"y\": 331}, {\"x\": 96, \"y\": 91}, {\"x\": 130, \"y\": 126}, {\"x\": 215, \"y\": 218}, {\"x\": 269, \"y\": 247}, {\"x\": 309, \"y\": 302}, {\"x\": 30, \"y\": 26}, {\"x\": 571, \"y\": 564}, {\"x\": 170, \"y\": 172}, {\"x\": 45, \"y\": 45}, {\"x\": 256, \"y\": 252}, {\"x\": 126, \"y\": 124}, {\"x\": 76, \"y\": 77}, {\"x\": 577, \"y\": 577}, {\"x\": 900, \"y\": 900}, {\"x\": 343, \"y\": 332}, {\"x\": 618, \"y\": 647}, {\"x\": 365, \"y\": 357}, {\"x\": 253, \"y\": 260}, {\"x\": 418, \"y\": 434}, {\"x\": 192, \"y\": 192}, {\"x\": 428, \"y\": 424}, {\"x\": 478, \"y\": 478}, {\"x\": 464, \"y\": 463}, {\"x\": 295, \"y\": 295}, {\"x\": 568, \"y\": 536}, {\"x\": 49, \"y\": 56}, {\"x\": 36, \"y\": 34}, {\"x\": 498, \"y\": 492}, {\"x\": 48, \"y\": 66}, {\"x\": 312, \"y\": 317}, {\"x\": 217, \"y\": 217}, {\"x\": 206, \"y\": 190}, {\"x\": 475, \"y\": 464}, {\"x\": 537, \"y\": 536}, {\"x\": 900, \"y\": 902}, {\"x\": 233, \"y\": 224}, {\"x\": 473, \"y\": 474}, {\"x\": 271, \"y\": 294}, {\"x\": 485, \"y\": 476}, {\"x\": 368, \"y\": 366}, {\"x\": 76, \"y\": 76}, {\"x\": 275, \"y\": 277}, {\"x\": 202, \"y\": 205}, {\"x\": 294, \"y\": 291}, {\"x\": 246, \"y\": 251}, {\"x\": 407, \"y\": 408}, {\"x\": 619, \"y\": 618}, {\"x\": 149, \"y\": 148}, {\"x\": 73, \"y\": 71}, {\"x\": 535, \"y\": 534}, {\"x\": 56, \"y\": 63}, {\"x\": 462, \"y\": 457}, {\"x\": 66, \"y\": 66}, {\"x\": 482, \"y\": 485}, {\"x\": 396, \"y\": 401}, {\"x\": 317, \"y\": 319}, {\"x\": 172, \"y\": 181}, {\"x\": 171, \"y\": 171}, {\"x\": 395, \"y\": 394}, {\"x\": 174, \"y\": 196}, {\"x\": 527, \"y\": 525}, {\"x\": 582, \"y\": 534}, {\"x\": 46, \"y\": 61}, {\"x\": 351, \"y\": 341}, {\"x\": 192, \"y\": 190}, {\"x\": 338, \"y\": 338}, {\"x\": 304, \"y\": 306}, {\"x\": 381, \"y\": 382}, {\"x\": 494, \"y\": 494}, {\"x\": 87, \"y\": 88}, {\"x\": 291, \"y\": 272}, {\"x\": 409, \"y\": 403}, {\"x\": 301, \"y\": 307}, {\"x\": 900, \"y\": 924}, {\"x\": 113, \"y\": 113}, {\"x\": 252, \"y\": 249}, {\"x\": 278, \"y\": 283}, {\"x\": 120, \"y\": 120}, {\"x\": 484, \"y\": 470}, {\"x\": 236, \"y\": 250}, {\"x\": 423, \"y\": 414}, {\"x\": 50, \"y\": 49}, {\"x\": 24, \"y\": 24}, {\"x\": 10, \"y\": 9}, {\"x\": 467, \"y\": 464}, {\"x\": 24, \"y\": 24}, {\"x\": 1, \"y\": 1}, {\"x\": 376, \"y\": 379}, {\"x\": 428, \"y\": 420}, {\"x\": 139, \"y\": 140}, {\"x\": 117, \"y\": 115}, {\"x\": 6, \"y\": 6}, {\"x\": 11, \"y\": 11}, {\"x\": 560, \"y\": 541}, {\"x\": 45, \"y\": 54}, {\"x\": 12, \"y\": 12}, {\"x\": 643, \"y\": 642}, {\"x\": 12, \"y\": 12}, {\"x\": 500, \"y\": 521}, {\"x\": 573, \"y\": 596}, {\"x\": 116, \"y\": 116}, {\"x\": 392, \"y\": 392}, {\"x\": 453, \"y\": 466}, {\"x\": 168, \"y\": 180}, {\"x\": 26, \"y\": 26}, {\"x\": 493, \"y\": 485}, {\"x\": 334, \"y\": 328}, {\"x\": 402, \"y\": 398}, {\"x\": 236, \"y\": 232}, {\"x\": 260, \"y\": 262}, {\"x\": 573, \"y\": 558}, {\"x\": 290, \"y\": 290}, {\"x\": 343, \"y\": 340}, {\"x\": 352, \"y\": 347}, {\"x\": 566, \"y\": 564}, {\"x\": 372, \"y\": 373}, {\"x\": 443, \"y\": 432}, {\"x\": 24, \"y\": 42}, {\"x\": 539, \"y\": 514}, {\"x\": 479, \"y\": 476}, {\"x\": 358, \"y\": 351}, {\"x\": 480, \"y\": 477}, {\"x\": 157, \"y\": 157}, {\"x\": 2, \"y\": 3}, {\"x\": 305, \"y\": 300}, {\"x\": 275, \"y\": 276}, {\"x\": 151, \"y\": 150}, {\"x\": 125, \"y\": 125}, {\"x\": 280, \"y\": 280}, {\"x\": 267, \"y\": 267}, {\"x\": 107, \"y\": 107}, {\"x\": 214, \"y\": 214}, {\"x\": 372, \"y\": 367}, {\"x\": 131, \"y\": 131}, {\"x\": 464, \"y\": 464}, {\"x\": 439, \"y\": 398}, {\"x\": 77, \"y\": 77}, {\"x\": 56, \"y\": 58}, {\"x\": 310, \"y\": 308}, {\"x\": 492, \"y\": 495}, {\"x\": 344, \"y\": 344}, {\"x\": 19, \"y\": 20}, {\"x\": 486, \"y\": 487}, {\"x\": 254, \"y\": 254}, {\"x\": 528, \"y\": 570}, {\"x\": 439, \"y\": 439}, {\"x\": 107, \"y\": 99}, {\"x\": 375, \"y\": 346}, {\"x\": 899, \"y\": 891}, {\"x\": 352, \"y\": 344}, {\"x\": 40, \"y\": 37}, {\"x\": 4, \"y\": 4}, {\"x\": 208, \"y\": 208}, {\"x\": 64, \"y\": 64}, {\"x\": 24, \"y\": 30}, {\"x\": 164, \"y\": 188}, {\"x\": 143, \"y\": 143}, {\"x\": 375, \"y\": 367}, {\"x\": 197, \"y\": 198}, {\"x\": 380, \"y\": 381}, {\"x\": 310, \"y\": 309}, {\"x\": 250, \"y\": 249}, {\"x\": 178, \"y\": 178}, {\"x\": 130, \"y\": 124}, {\"x\": 241, \"y\": 241}, {\"x\": 42, \"y\": 42}, {\"x\": 456, \"y\": 455}, {\"x\": 492, \"y\": 494}, {\"x\": 166, \"y\": 168}, {\"x\": 442, \"y\": 442}, {\"x\": 372, \"y\": 367}, {\"x\": 432, \"y\": 433}, {\"x\": 515, \"y\": 507}, {\"x\": 42, \"y\": 42}, {\"x\": 23, \"y\": 21}, {\"x\": 275, \"y\": 266}, {\"x\": 43, \"y\": 39}, {\"x\": 396, \"y\": 374}, {\"x\": 22, \"y\": 21}, {\"x\": 199, \"y\": 229}, {\"x\": 392, \"y\": 372}, {\"x\": 399, \"y\": 390}, {\"x\": 536, \"y\": 536}, {\"x\": 391, \"y\": 387}, {\"x\": 378, \"y\": 378}, {\"x\": 509, \"y\": 501}, {\"x\": 398, \"y\": 398}, {\"x\": 367, \"y\": 366}, {\"x\": 357, \"y\": 360}, {\"x\": 1, \"y\": 0}, {\"x\": 552, \"y\": 527}, {\"x\": 360, \"y\": 379}, {\"x\": 303, \"y\": 312}, {\"x\": 16, \"y\": 16}, {\"x\": 153, \"y\": 153}, {\"x\": 166, \"y\": 158}, {\"x\": 555, \"y\": 539}, {\"x\": 60, \"y\": 58}, {\"x\": 481, \"y\": 484}, {\"x\": 824, \"y\": 841}, {\"x\": 520, \"y\": 520}, {\"x\": 320, \"y\": 319}, {\"x\": 445, \"y\": 435}, {\"x\": 235, \"y\": 233}, {\"x\": 207, \"y\": 212}, {\"x\": 414, \"y\": 414}, {\"x\": 241, \"y\": 239}, {\"x\": 190, \"y\": 186}, {\"x\": 104, \"y\": 105}, {\"x\": 34, \"y\": 33}, {\"x\": 565, \"y\": 566}, {\"x\": 379, \"y\": 379}, {\"x\": 369, \"y\": 367}, {\"x\": 105, \"y\": 105}, {\"x\": 102, \"y\": 102}, {\"x\": 284, \"y\": 281}, {\"x\": 500, \"y\": 497}, {\"x\": 163, \"y\": 157}, {\"x\": 257, \"y\": 255}, {\"x\": 180, \"y\": 175}, {\"x\": 343, \"y\": 343}, {\"x\": 422, \"y\": 422}, {\"x\": 439, \"y\": 439}, {\"x\": 519, \"y\": 546}, {\"x\": 152, \"y\": 150}, {\"x\": 667, \"y\": 665}, {\"x\": 580, \"y\": 565}, {\"x\": 191, \"y\": 191}, {\"x\": 308, \"y\": 303}, {\"x\": 44, \"y\": 44}, {\"x\": 43, \"y\": 42}, {\"x\": 43, \"y\": 43}, {\"x\": 457, \"y\": 457}, {\"x\": 171, \"y\": 159}, {\"x\": 2, \"y\": 2}, {\"x\": 282, \"y\": 282}, {\"x\": 391, \"y\": 391}, {\"x\": 146, \"y\": 139}, {\"x\": 483, \"y\": 513}, {\"x\": 184, \"y\": 184}, {\"x\": 51, \"y\": 50}, {\"x\": 73, \"y\": 73}, {\"x\": 177, \"y\": 178}, {\"x\": 361, \"y\": 382}, {\"x\": 378, \"y\": 378}, {\"x\": 397, \"y\": 396}, {\"x\": 45, \"y\": 45}, {\"x\": 501, \"y\": 492}, {\"x\": 139, \"y\": 141}],\n        backgroundColor: 'rgba(110,110,115,0.28)', pointRadius: 2.4, pointHoverRadius: 4 },\n      { label: T('Fiches incoh\u00e9rentes', 'Inconsistent entries'), data: [{\"x\": 120, \"y\": 72}, {\"x\": 149, \"y\": 248}, {\"x\": 516, \"y\": 580}, {\"x\": 268, \"y\": 321}, {\"x\": 334, \"y\": 295}, {\"x\": 46, \"y\": 12}, {\"x\": 348, \"y\": 260}, {\"x\": 475, \"y\": 545}, {\"x\": 24, \"y\": 253}, {\"x\": 142, \"y\": 236}, {\"x\": 500, \"y\": 400}, {\"x\": 557, \"y\": 476}, {\"x\": 393, \"y\": 35}, {\"x\": 529, \"y\": 232}, {\"x\": 30, \"y\": 444}, {\"x\": 467, \"y\": 532}, {\"x\": 300, \"y\": 240}, {\"x\": 712, \"y\": 376}, {\"x\": 441, \"y\": 491}, {\"x\": 7, \"y\": 400}, {\"x\": 200, \"y\": 170}, {\"x\": 1, \"y\": 109}, {\"x\": 562, \"y\": 644}, {\"x\": 342, \"y\": 416}, {\"x\": 179, \"y\": 286}, {\"x\": 20, \"y\": 53}, {\"x\": 280, \"y\": 147}, {\"x\": 460, \"y\": 408}, {\"x\": 533, \"y\": 600}, {\"x\": 571, \"y\": 643}, {\"x\": 100, \"y\": 260}, {\"x\": 165, \"y\": 329}, {\"x\": 390, \"y\": 336}, {\"x\": 151, \"y\": 197}, {\"x\": 105, \"y\": 22}, {\"x\": 376, \"y\": 293}, {\"x\": 423, \"y\": 475}, {\"x\": 340, \"y\": 414}, {\"x\": 600, \"y\": 533}, {\"x\": 163, \"y\": 194}, {\"x\": 114, \"y\": 269}, {\"x\": 362, \"y\": 317}, {\"x\": 382, \"y\": 439}, {\"x\": 179, \"y\": 296}, {\"x\": 510, \"y\": 333}, {\"x\": 346, \"y\": 274}, {\"x\": 208, \"y\": 4}, {\"x\": 10, \"y\": 550}, {\"x\": 701, \"y\": 163}, {\"x\": 350, \"y\": 157}, {\"x\": 383, \"y\": 337}, {\"x\": 162, \"y\": 266}, {\"x\": 10, \"y\": 255}, {\"x\": 421, \"y\": 378}, {\"x\": 6, \"y\": 92}, {\"x\": 292, \"y\": 96}, {\"x\": 1, \"y\": 253}, {\"x\": 232, \"y\": 200}, {\"x\": 372, \"y\": 154}, {\"x\": 369, \"y\": 435}, {\"x\": 434, \"y\": 552}, {\"x\": 51, \"y\": 138}, {\"x\": 364, \"y\": 302}, {\"x\": 369, \"y\": 449}, {\"x\": 374, \"y\": 232}, {\"x\": 686, \"y\": 611}, {\"x\": 3, \"y\": 178}, {\"x\": 195, \"y\": 735}, {\"x\": 503, \"y\": 39}, {\"x\": 221, \"y\": 313}, {\"x\": 893, \"y\": 211}, {\"x\": 407, \"y\": 71}, {\"x\": 290, \"y\": 52}, {\"x\": 24, \"y\": 88}, {\"x\": 306, \"y\": 262}, {\"x\": 492, \"y\": 429}, {\"x\": 115, \"y\": 351}, {\"x\": 424, \"y\": 324}, {\"x\": 482, \"y\": 114}, {\"x\": 375, \"y\": 260}, {\"x\": 555, \"y\": 160}, {\"x\": 444, \"y\": 384}, {\"x\": 137, \"y\": 213}, {\"x\": 276, \"y\": 202}, {\"x\": 219, \"y\": 362}, {\"x\": 269, \"y\": 525}, {\"x\": 100, \"y\": 247}, {\"x\": 81, \"y\": 28}, {\"x\": 412, \"y\": 499}, {\"x\": 275, \"y\": 310}, {\"x\": 247, \"y\": 286}, {\"x\": 171, \"y\": 101}, {\"x\": 563, \"y\": 134}, {\"x\": 151, \"y\": 371}, {\"x\": 170, \"y\": 268}, {\"x\": 15, \"y\": 404}, {\"x\": 281, \"y\": 321}, {\"x\": 556, \"y\": 133}, {\"x\": 376, \"y\": 332}, {\"x\": 193, \"y\": 139}, {\"x\": 170, \"y\": 122}, {\"x\": 13, \"y\": 320}, {\"x\": 402, \"y\": 310}, {\"x\": 286, \"y\": 238}, {\"x\": 476, \"y\": 113}, {\"x\": 289, \"y\": 476}, {\"x\": 89, \"y\": 121}, {\"x\": 68, \"y\": 150}, {\"x\": 202, \"y\": 119}, {\"x\": 50, \"y\": 4}, {\"x\": 339, \"y\": 282}, {\"x\": 333, \"y\": 272}, {\"x\": 24, \"y\": 223}, {\"x\": 239, \"y\": 185}, {\"x\": 475, \"y\": 592}, {\"x\": 178, \"y\": 257}, {\"x\": 233, \"y\": 287}, {\"x\": 191, \"y\": 158}, {\"x\": 353, \"y\": 422}, {\"x\": 32, \"y\": 100}, {\"x\": 385, \"y\": 518}, {\"x\": 361, \"y\": 462}, {\"x\": 144, \"y\": 38}, {\"x\": 350, \"y\": 472}, {\"x\": 395, \"y\": 445}, {\"x\": 388, \"y\": 466}, {\"x\": 480, \"y\": 592}, {\"x\": 328, \"y\": 288}, {\"x\": 353, \"y\": 465}, {\"x\": 640, \"y\": 362}, {\"x\": 150, \"y\": 187}, {\"x\": 333, \"y\": 40}, {\"x\": 255, \"y\": 175}, {\"x\": 96, \"y\": 192}, {\"x\": 2, \"y\": 398}, {\"x\": 200, \"y\": 241}, {\"x\": 8, \"y\": 57}, {\"x\": 144, \"y\": 112}, {\"x\": 115, \"y\": 75}, {\"x\": 400, \"y\": 480}, {\"x\": 236, \"y\": 392}, {\"x\": 400, \"y\": 326}, {\"x\": 360, \"y\": 102}, {\"x\": 333, \"y\": 400}, {\"x\": 274, \"y\": 162}, {\"x\": 5, \"y\": 133}, {\"x\": 541, \"y\": 465}, {\"x\": 400, \"y\": 534}, {\"x\": 350, \"y\": 102}, {\"x\": 200, \"y\": 80}, {\"x\": 110, \"y\": 216}, {\"x\": 283, \"y\": 427}, {\"x\": 25, \"y\": 92}, {\"x\": 344, \"y\": 82}, {\"x\": 207, \"y\": 281}, {\"x\": 367, \"y\": 320}, {\"x\": 447, \"y\": 533}, {\"x\": 262, \"y\": 297}, {\"x\": 482, \"y\": 399}, {\"x\": 238, \"y\": 292}, {\"x\": 130, \"y\": 224}, {\"x\": 510, \"y\": 293}, {\"x\": 63, \"y\": 118}, {\"x\": 367, \"y\": 437}, {\"x\": 400, \"y\": 353}, {\"x\": 34, \"y\": 151}, {\"x\": 110, \"y\": 269}, {\"x\": 200, \"y\": 29}, {\"x\": 2, \"y\": 126}, {\"x\": 477, \"y\": 358}, {\"x\": 502, \"y\": 268}, {\"x\": 419, \"y\": 589}, {\"x\": 556, \"y\": 489}, {\"x\": 720, \"y\": 363}, {\"x\": 660, \"y\": 223}, {\"x\": 221, \"y\": 257}, {\"x\": 7, \"y\": 210}, {\"x\": 250, \"y\": 442}, {\"x\": 133, \"y\": 99}, {\"x\": 2, \"y\": 435}, {\"x\": 100, \"y\": 416}, {\"x\": 292, \"y\": 260}, {\"x\": 164, \"y\": 220}, {\"x\": 132, \"y\": 200}, {\"x\": 366, \"y\": 528}, {\"x\": 155, \"y\": 34}, {\"x\": 316, \"y\": 391}, {\"x\": 316, \"y\": 399}, {\"x\": 348, \"y\": 276}, {\"x\": 431, \"y\": 384}, {\"x\": 185, \"y\": 51}, {\"x\": 907, \"y\": 215}, {\"x\": 169, \"y\": 390}, {\"x\": 190, \"y\": 136}, {\"x\": 170, \"y\": 122}, {\"x\": 159, \"y\": 289}, {\"x\": 563, \"y\": 129}, {\"x\": 514, \"y\": 401}, {\"x\": 485, \"y\": 115}, {\"x\": 11, \"y\": 100}, {\"x\": 176, \"y\": 92}, {\"x\": 416, \"y\": 372}, {\"x\": 247, \"y\": 170}, {\"x\": 122, \"y\": 171}, {\"x\": 125, \"y\": 29}, {\"x\": 20, \"y\": 57}, {\"x\": 102, \"y\": 22}, {\"x\": 108, \"y\": 149}, {\"x\": 780, \"y\": 187}, {\"x\": 93, \"y\": 215}, {\"x\": 154, \"y\": 200}, {\"x\": 297, \"y\": 336}, {\"x\": 547, \"y\": 128}, {\"x\": 161, \"y\": 193}, {\"x\": 673, \"y\": 161}, {\"x\": 205, \"y\": 150}, {\"x\": 403, \"y\": 94}, {\"x\": 513, \"y\": 121}, {\"x\": 185, \"y\": 229}, {\"x\": 228, \"y\": 186}, {\"x\": 426, \"y\": 141}, {\"x\": 359, \"y\": 321}, {\"x\": 121, \"y\": 417}, {\"x\": 462, \"y\": 97}, {\"x\": 288, \"y\": 242}, {\"x\": 20, \"y\": 364}, {\"x\": 765, \"y\": 176}, {\"x\": 346, \"y\": 86}, {\"x\": 3, \"y\": 51}, {\"x\": 185, \"y\": 154}, {\"x\": 281, \"y\": 321}, {\"x\": 45, \"y\": 101}, {\"x\": 95, \"y\": 18}, {\"x\": 156, \"y\": 554}, {\"x\": 141, \"y\": 252}, {\"x\": 470, \"y\": 112}, {\"x\": 220, \"y\": 454}, {\"x\": 654, \"y\": 158}, {\"x\": 342, \"y\": 569}, {\"x\": 228, \"y\": 260}, {\"x\": 708, \"y\": 169}, {\"x\": 327, \"y\": 401}, {\"x\": 296, \"y\": 239}, {\"x\": 225, \"y\": 297}, {\"x\": 381, \"y\": 287}, {\"x\": 403, \"y\": 187}, {\"x\": 108, \"y\": 200}, {\"x\": 313, \"y\": 363}, {\"x\": 263, \"y\": 301}, {\"x\": 498, \"y\": 445}, {\"x\": 600, \"y\": 408}, {\"x\": 498, \"y\": 556}, {\"x\": 37, \"y\": 106}, {\"x\": 282, \"y\": 249}, {\"x\": 16, \"y\": 431}, {\"x\": 100, \"y\": 298}, {\"x\": 462, \"y\": 402}, {\"x\": 463, \"y\": 383}, {\"x\": 140, \"y\": 408}, {\"x\": 404, \"y\": 358}, {\"x\": 645, \"y\": 572}, {\"x\": 120, \"y\": 190}, {\"x\": 232, \"y\": 264}, {\"x\": 244, \"y\": 311}, {\"x\": 475, \"y\": 419}, {\"x\": 501, \"y\": 120}, {\"x\": 135, \"y\": 239}, {\"x\": 112, \"y\": 399}, {\"x\": 171, \"y\": 344}, {\"x\": 30, \"y\": 232}, {\"x\": 422, \"y\": 96}, {\"x\": 62, \"y\": 511}, {\"x\": 100, \"y\": 58}, {\"x\": 131, \"y\": 31}, {\"x\": 398, \"y\": 94}, {\"x\": 4, \"y\": 259}, {\"x\": 251, \"y\": 217}, {\"x\": 169, \"y\": 224}, {\"x\": 245, \"y\": 152}, {\"x\": 465, \"y\": 110}, {\"x\": 351, \"y\": 309}, {\"x\": 361, \"y\": 315}, {\"x\": 147, \"y\": 24}, {\"x\": 42, \"y\": 83}, {\"x\": 401, \"y\": 94}, {\"x\": 177, \"y\": 142}, {\"x\": 32, \"y\": 362}, {\"x\": 281, \"y\": 453}, {\"x\": 11, \"y\": 461}, {\"x\": 28, \"y\": 428}, {\"x\": 239, \"y\": 272}, {\"x\": 144, \"y\": 386}, {\"x\": 100, \"y\": 400}, {\"x\": 529, \"y\": 126}, {\"x\": 493, \"y\": 114}, {\"x\": 238, \"y\": 55}, {\"x\": 274, \"y\": 328}, {\"x\": 251, \"y\": 161}, {\"x\": 325, \"y\": 383}, {\"x\": 74, \"y\": 514}, {\"x\": 26, \"y\": 104}, {\"x\": 245, \"y\": 285}, {\"x\": 24, \"y\": 242}, {\"x\": 163, \"y\": 272}, {\"x\": 283, \"y\": 229}, {\"x\": 492, \"y\": 566}, {\"x\": 544, \"y\": 622}, {\"x\": 67, \"y\": 116}, {\"x\": 900, \"y\": 268}, {\"x\": 54, \"y\": 220}, {\"x\": 32, \"y\": 324}, {\"x\": 245, \"y\": 311}, {\"x\": 444, \"y\": 360}, {\"x\": 2, \"y\": 137}, {\"x\": 220, \"y\": 0}, {\"x\": 285, \"y\": 236}, {\"x\": 189, \"y\": 391}, {\"x\": 108, \"y\": 20}, {\"x\": 3, \"y\": 145}, {\"x\": 417, \"y\": 498}, {\"x\": 199, \"y\": 253}, {\"x\": 65, \"y\": 130}, {\"x\": 298, \"y\": 256}, {\"x\": 306, \"y\": 249}, {\"x\": 295, \"y\": 236}, {\"x\": 297, \"y\": 209}, {\"x\": 5, \"y\": 45}, {\"x\": 275, \"y\": 243}, {\"x\": 242, \"y\": 301}, {\"x\": 404, \"y\": 307}, {\"x\": 240, \"y\": 392}, {\"x\": 372, \"y\": 418}, {\"x\": 234, \"y\": 420}, {\"x\": 225, \"y\": 256}, {\"x\": 278, \"y\": 223}, {\"x\": 204, \"y\": 153}, {\"x\": 235, \"y\": 176}, {\"x\": 559, \"y\": 498}, {\"x\": 239, \"y\": 269}, {\"x\": 229, \"y\": 5}, {\"x\": 193, \"y\": 231}, {\"x\": 331, \"y\": 572}, {\"x\": 2, \"y\": 320}, {\"x\": 617, \"y\": 537}, {\"x\": 303, \"y\": 265}, {\"x\": 336, \"y\": 401}, {\"x\": 43, \"y\": 104}, {\"x\": 279, \"y\": 198}, {\"x\": 306, \"y\": 265}, {\"x\": 249, \"y\": 327}, {\"x\": 720, \"y\": 540}, {\"x\": 1, \"y\": 42}, {\"x\": 330, \"y\": 288}, {\"x\": 6, \"y\": 666}, {\"x\": 285, \"y\": 236}, {\"x\": 193, \"y\": 5}, {\"x\": 233, \"y\": 388}, {\"x\": 258, \"y\": 185}, {\"x\": 352, \"y\": 278}, {\"x\": 47, \"y\": 295}, {\"x\": 315, \"y\": 239}, {\"x\": 361, \"y\": 310}, {\"x\": 170, \"y\": 230}, {\"x\": 394, \"y\": 349}, {\"x\": 268, \"y\": 315}, {\"x\": 45, \"y\": 88}, {\"x\": 170, \"y\": 137}, {\"x\": 355, \"y\": 297}, {\"x\": 193, \"y\": 430}, {\"x\": 415, \"y\": 324}, {\"x\": 20, \"y\": 60}, {\"x\": 297, \"y\": 355}, {\"x\": 655, \"y\": 579}, {\"x\": 69, \"y\": 105}, {\"x\": 87, \"y\": 49}, {\"x\": 371, \"y\": 223}, {\"x\": 301, \"y\": 373}, {\"x\": 213, \"y\": 245}, {\"x\": 400, \"y\": 612}, {\"x\": 101, \"y\": 26}, {\"x\": 500, \"y\": 660}, {\"x\": 291, \"y\": 252}, {\"x\": 372, \"y\": 416}, {\"x\": 734, \"y\": 177}, {\"x\": 188, \"y\": 153}, {\"x\": 308, \"y\": 396}, {\"x\": 430, \"y\": 101}, {\"x\": 502, \"y\": 233}, {\"x\": 660, \"y\": 40}, {\"x\": 418, \"y\": 152}, {\"x\": 275, \"y\": 309}, {\"x\": 410, \"y\": 357}, {\"x\": 310, \"y\": 268}, {\"x\": 370, \"y\": 415}, {\"x\": 301, \"y\": 338}, {\"x\": 211, \"y\": 117}, {\"x\": 325, \"y\": 364}, {\"x\": 308, \"y\": 277}, {\"x\": 341, \"y\": 382}, {\"x\": 180, \"y\": 36}, {\"x\": 565, \"y\": 133}, {\"x\": 340, \"y\": 267}, {\"x\": 408, \"y\": 97}, {\"x\": 1, \"y\": 42}, {\"x\": 39, \"y\": 165}, {\"x\": 241, \"y\": 285}, {\"x\": 131, \"y\": 32}, {\"x\": 249, \"y\": 193}, {\"x\": 374, \"y\": 170}, {\"x\": 299, \"y\": 256}, {\"x\": 549, \"y\": 484}, {\"x\": 5, \"y\": 60}, {\"x\": 97, \"y\": 137}, {\"x\": 219, \"y\": 123}, {\"x\": 199, \"y\": 295}, {\"x\": 3, \"y\": 120}, {\"x\": 755, \"y\": 180}, {\"x\": 451, \"y\": 368}, {\"x\": 337, \"y\": 295}, {\"x\": 51, \"y\": 151}],\n        backgroundColor: 'rgba(255,45,110,0.75)', pointRadius: 3.2, pointHoverRadius: 5 },\n      { label: T('Fiche parfaite (d\u00e9clar\u00e9 = recalcul\u00e9)', 'Perfect entry (declared = recomputed)'), type: 'line',\n        data: [{x: 0, y: 0}, {x: 950, y: 950}], borderColor: INK, borderWidth: 1.2, borderDash: [6, 5],\n        pointRadius: 0, fill: false }\n    ] },\n    options: { responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR,\n      plugins: { legend: { position: 'bottom', labels: { color: INK, boxWidth: 12, boxHeight: 12, padding: 14, font: { size: 12 }, filter: function(i){ return true; } } },\n        tooltip: { callbacks: { label: function(c){ return T(' fiche ', ' entry ') + c.parsed.x + T(' kcal, macros ', ' kcal, macros ') + c.parsed.y + ' kcal'; } } } },\n      scales: {\n        x: { min: 0, max: 950, grid: { color: RULE }, ticks: { color: MUTED, font: { size: 11 } },\n          title: { display: true, text: T('Calories d\u00e9clar\u00e9es (kcal\/100g)', 'Declared calories (kcal\/100g)'), color: MUTED, font: { size: 12 } } },\n        y: { min: 0, max: 950, grid: { color: RULE }, ticks: { color: MUTED, font: { size: 11 } },\n          title: { display: true, text: T('Calories recalcul\u00e9es depuis les macros', 'Recomputed from macros'), color: MUTED, font: { size: 12 } } }\n      } }\n  });\n\n  \/\/ 3. Courbe de distribution des ecarts (aire, echelle log)\n  var elH = document.getElementById('chartHisto');\n  if (elH) new Chart(elH, {\n    type: 'line',\n    data: {\n      labels: [T('0-2 %', '0-2%'), T('2-5 %', '2-5%'), T('5-10 %', '5-10%'), T('10-20 %', '10-20%'), T('20-35 %', '20-35%'), T('35-50 %', '35-50%'), T('50-75 %', '50-75%'), T('75-100 %', '75-100%')],\n      datasets: [{ data: [568136, 132669, 63751, 40547, 15887, 7617, 11270, 14530], borderColor: PINK, borderWidth: 2.5, tension: 0.35,\n        pointRadius: 4, pointBackgroundColor: '#FFFFFF', pointBorderColor: PINK, pointBorderWidth: 2,\n        fill: true, backgroundColor: function(c){ return pinkGrad(c.chart.ctx, 0.28); } }]\n    },\n    options: { responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR,\n      plugins: { legend: { display: false },\n        tooltip: { callbacks: { label: function(c){ return ' ' + nf(c.parsed.y) + T(' produits', ' products'); } } } },\n      scales: {\n        y: { type: 'logarithmic', min: 1000, grid: { color: RULE },\n          ticks: { color: MUTED, font: { size: 11 }, callback: function(v){ return [1000, 10000, 100000, 1000000].indexOf(v) >= 0 ? nf(v) : null; } } },\n        x: { grid: { display: false }, ticks: { color: INK, font: { size: 11 } },\n          title: { display: true, text: T('\u00c9cart entre calories d\u00e9clar\u00e9es et recalcul\u00e9es', 'Gap between declared and recomputed calories'), color: MUTED, font: { size: 12 } } }\n      } }\n  });\n\n  \/\/ 4. Barres : seuils\n  var elS = document.getElementById('chartSeuils');\n  if (elS) new Chart(elS, {\n    type: 'bar',\n    data: {\n      labels: [T('\u00e9cart > 10 %', 'gap > 10%'), T('\u00e9cart > 20 %', 'gap > 20%'), T('\u00e9cart > 50 %', 'gap > 50%'), T('du simple au double', 'off by 2x or more')],\n      datasets: [{ data: [46757, 31867, 18215, 18251],\n        backgroundColor: ['rgba(255,45,110,0.35)', 'rgba(255,45,110,0.55)', 'rgba(255,45,110,0.8)', PINK],\n        borderRadius: 8, maxBarThickness: 84 }]\n    },\n    options: { responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR,\n      plugins: { legend: { display: false },\n        tooltip: { callbacks: { label: function(c){ return ' ' + nf(c.parsed.y) + T(' produits', ' products'); } } } },\n      scales: {\n        y: { beginAtZero: true, grid: { color: RULE }, ticks: { color: MUTED, callback: function(v){ return (v \/ 1000) + ' k'; } } },\n        x: { grid: { display: false }, ticks: { color: INK, font: { size: 12 } } }\n      } }\n  });\n\n  \/\/ 5. Bulles : categories dispatchees (x volume log, y taux, r fiches incoherentes)\n  var BUB = [{\"x\": 15828, \"y\": 6.05, \"r\": 19, \"fr\": \"\u00c9picerie\", \"en\": \"Groceries\", \"inc\": 958}, {\"x\": 4147, \"y\": 8.2, \"r\": 12, \"fr\": \"Bonbons\", \"en\": \"Candies\", \"inc\": 340}, {\"x\": 1328, \"y\": 20.78, \"r\": 10, \"fr\": \"Barres prot\u00e9in\u00e9es\", \"en\": \"Protein bars\", \"inc\": 276}, {\"x\": 2973, \"y\": 5.95, \"r\": 8, \"fr\": \"Fromages\", \"en\": \"Cheeses\", \"inc\": 177}, {\"x\": 3107, \"y\": 4.38, \"r\": 7, \"fr\": \"Boissons\", \"en\": \"Beverages\", \"inc\": 136}, {\"x\": 4132, \"y\": 3.12, \"r\": 7, \"fr\": \"Biscuits\", \"en\": \"Biscuits\", \"inc\": 129}, {\"x\": 1416, \"y\": 8.83, \"r\": 7, \"fr\": \"Confiseries\", \"en\": \"Confectioneries\", \"inc\": 125}, {\"x\": 6271, \"y\": 1.91, \"r\": 7, \"fr\": \"Boissons sucr\u00e9es\", \"en\": \"Sweetened beverages\", \"inc\": 120}, {\"x\": 2619, \"y\": 4.54, \"r\": 7, \"fr\": \"Chocolats noirs\", \"en\": \"Dark chocolates\", \"inc\": 119}, {\"x\": 3123, \"y\": 3.46, \"r\": 6, \"fr\": \"Jambons blancs\", \"en\": \"White hams\", \"inc\": 108}];\n  var elB = document.getElementById('chartBubble');\n  if (elB) new Chart(elB, {\n    type: 'bubble',\n    data: { datasets: BUB.map(function(b, i){\n      return { label: T(b.fr, b.en), data: [{x: b.x, y: b.y, r: b.r}],\n        backgroundColor: b.y >= 15 ? 'rgba(255,45,110,0.85)' : (b.y >= 6 ? 'rgba(255,45,110,0.55)' : 'rgba(255,45,110,0.3)'),\n        borderColor: PINK, borderWidth: 1 };\n    }) },\n    options: { responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR,\n      plugins: { legend: { position: 'bottom', labels: { color: INK, boxWidth: 10, boxHeight: 10, padding: 10, font: { size: 11 } } },\n        tooltip: { callbacks: { label: function(c){ var b = BUB[c.datasetIndex];\n          return ' ' + T(b.fr, b.en) + ' : ' + b.y + T(' % incoh\u00e9rentes (', '% inconsistent (') + nf(b.inc) + T(' fiches sur ', ' of ') + nf(b.x) + ')'; } } } },\n      scales: {\n        x: { type: 'logarithmic', min: 900, max: 20000, grid: { color: RULE },\n          ticks: { color: MUTED, font: { size: 11 }, callback: function(v){ return [1000, 2000, 5000, 10000, 20000].indexOf(v) >= 0 ? nf(v) : null; } },\n          title: { display: true, text: T('Produits dans la cat\u00e9gorie (\u00e9chelle log)', 'Products in category (log scale)'), color: MUTED, font: { size: 12 } } },\n        y: { min: 0, max: 24, grid: { color: RULE }, ticks: { color: MUTED, callback: function(v){ return v + ' %'; } },\n          title: { display: true, text: T('Part de fiches incoh\u00e9rentes', 'Share of inconsistent entries'), color: MUTED, font: { size: 12 } } }\n      } }\n  });\n\n  \/\/ 6. Barres horizontales : categories\n  var elC = document.getElementById('chartCats');\n  if (elC) new Chart(elC, {\n    type: 'bar',\n    data: {\n      labels: [[\"Barres prot\u00e9in\u00e9es\", \"Protein bars\"], [\"Confiseries\", \"Confectioneries\"], [\"Bonbons\", \"Candies\"], [\"\u00c9picerie\", \"Groceries\"], [\"Fromages\", \"Cheeses\"], [\"Chocolats noirs\", \"Dark chocolates\"], [\"Boissons\", \"Beverages\"], [\"Jambons blancs\", \"White hams\"]].map(function(p){ return T(p[0], p[1]); }),\n      datasets: [{ data: [20.78, 8.83, 8.2, 6.05, 5.95, 4.54, 4.38, 3.46], backgroundColor: PINKS, borderRadius: 7, maxBarThickness: 30 }]\n    },\n    options: { indexAxis: 'y', responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR,\n      plugins: { legend: { display: false },\n        tooltip: { callbacks: { label: function(c){ return ' ' + c.parsed.x.toLocaleString('fr-FR') + T(' % de fiches incoh\u00e9rentes', '% inconsistent entries'); } } } },\n      scales: {\n        x: { beginAtZero: true, grid: { color: RULE }, ticks: { color: MUTED, callback: function(v){ return v + ' %'; } } },\n        y: { grid: { display: false }, ticks: { color: INK, font: { size: 12.5 } } }\n      } }\n  });\n\n  \/\/ 7. Courbe temporelle : qualite par annee de creation de la fiche\n  var elY = document.getElementById('chartYears');\n  if (elY) new Chart(elY, {\n    type: 'line',\n    data: { labels: [\"2012\", \"2013\", \"2014\", \"2015\", \"2016\", \"2017\", \"2018\", \"2019\", \"2020\", \"2021\", \"2022\", \"2023\", \"2024\", \"2025\", \"2026\"],\n      datasets: [{ data: [2.5, 3.09, 2.55, 2.73, 2.62, 3.68, 5.88, 6.01, 7.34, 7.5, 7.44, 4.1, 3.92, 2.86, 4.12], borderColor: PINK, borderWidth: 2.5, tension: 0.4,\n        pointRadius: 4, pointBackgroundColor: '#FFFFFF', pointBorderColor: PINK, pointBorderWidth: 2,\n        fill: true, backgroundColor: function(c){ return pinkGrad(c.chart.ctx, 0.22); } }] },\n    options: { responsive: true, maintainAspectRatio: false, devicePixelRatio: DPR,\n      plugins: { legend: { display: false },\n        tooltip: { callbacks: { label: function(c){ return ' ' + c.parsed.y + T(' % des fiches cr\u00e9\u00e9es cette ann\u00e9e-l\u00e0 sont incoh\u00e9rentes', '% of entries created that year are inconsistent'); } } } },\n      scales: {\n        y: { min: 0, max: 9, grid: { color: RULE }, ticks: { color: MUTED, callback: function(v){ return v + ' %'; } } },\n        x: { grid: { display: false }, ticks: { color: INK, font: { size: 11 } },\n          title: { display: true, text: T('Ann\u00e9e de cr\u00e9ation de la fiche', 'Year the entry was created'), color: MUTED, font: { size: 12 } } }\n      } }\n  });\n})();\n<\/script>\n<\/div>\n<script data-wpmeteor-nooptimize=\"true\" src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.4\/dist\/chart.umd.min.js\"><\/script>\n<script data-wpmeteor-nooptimize=\"true\" src=\"https:\/\/cdn.jsdelivr.net\/npm\/chartjs-plugin-annotation@3.1.0\/dist\/chartjs-plugin-annotation.min.js\"><\/script>","protected":false},"excerpt":{"rendered":"<p>Lean Calculateur TDEE Accueil &nbsp;\/&nbsp; \u00c9tude base de donn\u00e9es calories \u00c9tude originale &middot; Donn\u00e9es publiques 857&nbsp;655 produits analys\u00e9s. Ce que ton scanner de calories ne te dit pas. Chaque scan de code-barres en France interroge la m\u00eame base. Nous l&rsquo;avons analys\u00e9e en entier. Plus d&rsquo;un scan sur trois renvoie une donn\u00e9e absente, incompl\u00e8te ou incoh\u00e9rente. [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"single-lvm-blank","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1947","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Hemos analizado 857 655 productos vendidos en Francia: lo que tu esc\u00e1ner de calor\u00edas no te dice - Lean<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lean-app.com\/es\/etude-base-donnees-calories\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hemos analizado 857 655 productos vendidos en Francia: lo que tu esc\u00e1ner de calor\u00edas no te dice - Lean\" \/>\n<meta property=\"og:description\" content=\"Lean Calculateur TDEE Accueil &nbsp;\/&nbsp; \u00c9tude base de donn\u00e9es calories \u00c9tude originale &middot; Donn\u00e9es publiques 857&nbsp;655 produits analys\u00e9s. Ce que ton scanner de calories ne te dit pas. Chaque scan de code-barres en France interroge la m\u00eame base. Nous l&rsquo;avons analys\u00e9e en entier. Plus d&rsquo;un scan sur trois renvoie une donn\u00e9e absente, incompl\u00e8te ou incoh\u00e9rente. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lean-app.com\/es\/etude-base-donnees-calories\/\" \/>\n<meta property=\"og:site_name\" content=\"Lean\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-23T20:43:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-05T10:39:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\" \/>\n<meta name=\"author\" content=\"L&#039;\u00e9quipe Lean\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"L&#039;\u00e9quipe Lean\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/\"},\"author\":{\"@id\":\"https:\/\/lean-app.com\/#organization\"},\"headline\":\"Nous avons analys\u00e9 857 655 produits vendus en France : ce que ton scanner de calories ne te dit pas\",\"datePublished\":\"2026-08-23T20:43:53+00:00\",\"dateModified\":\"2026-09-05T10:39:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/\"},\"wordCount\":1781,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/lean-app.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\",\"inLanguage\":\"es-ES\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/\",\"url\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/\",\"name\":\"Nous avons analys\u00e9 857 655 produits vendus en France : ce que ton scanner de calories ne te dit pas - Lean\",\"isPartOf\":{\"@id\":\"https:\/\/lean-app.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\",\"datePublished\":\"2026-08-23T20:43:53+00:00\",\"dateModified\":\"2026-09-05T10:39:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#breadcrumb\"},\"inLanguage\":\"es-ES\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lean-app.com\/etude-base-donnees-calories\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage\",\"url\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\",\"contentUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lean-app.com\/etude-base-donnees-calories\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lean-app.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nous avons analys\u00e9 857 655 produits vendus en France : ce que ton scanner de calories ne te dit pas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lean-app.com\/#website\",\"url\":\"https:\/\/lean-app.com\/\",\"name\":\"Lean\",\"description\":\"T\u00e9l\u00e9charge, essaye GRATUITEMENT l&#039;application et prends en main ton corps \u00c0 VIE.\",\"publisher\":{\"@id\":\"https:\/\/lean-app.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lean-app.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es-ES\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/lean-app.com\/#organization\",\"name\":\"Lean\",\"url\":\"https:\/\/lean-app.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\/\/lean-app.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png\",\"contentUrl\":\"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png\",\"width\":1672,\"height\":1484,\"caption\":\"Lean\"},\"image\":{\"@id\":\"https:\/\/lean-app.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr\",\"https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646\",\"https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite\",\"https:\/\/app.dealroom.co\/companies\/lean_calorie_tracker\",\"https:\/\/alternativeto.net\/software\/lean-calorie-tracker\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hemos analizado 857 655 productos vendidos en Francia: lo que tu esc\u00e1ner de calor\u00edas no te dice - Lean","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lean-app.com\/es\/etude-base-donnees-calories\/","og_locale":"es_ES","og_type":"article","og_title":"Hemos analizado 857 655 productos vendidos en Francia: lo que tu esc\u00e1ner de calor\u00edas no te dice - Lean","og_description":"Lean Calculateur TDEE Accueil &nbsp;\/&nbsp; \u00c9tude base de donn\u00e9es calories \u00c9tude originale &middot; Donn\u00e9es publiques 857&nbsp;655 produits analys\u00e9s. Ce que ton scanner de calories ne te dit pas. Chaque scan de code-barres en France interroge la m\u00eame base. Nous l&rsquo;avons analys\u00e9e en entier. Plus d&rsquo;un scan sur trois renvoie une donn\u00e9e absente, incompl\u00e8te ou incoh\u00e9rente. [&hellip;]","og_url":"https:\/\/lean-app.com\/es\/etude-base-donnees-calories\/","og_site_name":"Lean","article_publisher":"https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr","article_published_time":"2026-08-23T20:43:53+00:00","article_modified_time":"2026-09-05T10:39:09+00:00","og_image":[{"url":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","type":"","width":"","height":""}],"author":"L'\u00e9quipe Lean","twitter_card":"summary_large_image","twitter_misc":{"Written by":"L'\u00e9quipe Lean","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#article","isPartOf":{"@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/"},"author":{"@id":"https:\/\/lean-app.com\/#organization"},"headline":"Nous avons analys\u00e9 857 655 produits vendus en France : ce que ton scanner de calories ne te dit pas","datePublished":"2026-08-23T20:43:53+00:00","dateModified":"2026-09-05T10:39:09+00:00","mainEntityOfPage":{"@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/"},"wordCount":1781,"commentCount":0,"publisher":{"@id":"https:\/\/lean-app.com\/#organization"},"image":{"@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage"},"thumbnailUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","inLanguage":"es-ES","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lean-app.com\/etude-base-donnees-calories\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/","url":"https:\/\/lean-app.com\/etude-base-donnees-calories\/","name":"Analizamos 857 655 productos vendidos en Francia: lo que tu esc\u00e1ner de calor\u00edas no te dice - Lean","isPartOf":{"@id":"https:\/\/lean-app.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage"},"image":{"@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage"},"thumbnailUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","datePublished":"2026-08-23T20:43:53+00:00","dateModified":"2026-09-05T10:39:09+00:00","breadcrumb":{"@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#breadcrumb"},"inLanguage":"es-ES","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lean-app.com\/etude-base-donnees-calories\/"]}]},{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#primaryimage","url":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp","contentUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2026\/05\/lvm-logo-lean-square-scaled.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/lean-app.com\/etude-base-donnees-calories\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lean-app.com\/"},{"@type":"ListItem","position":2,"name":"Nous avons analys\u00e9 857 655 produits vendus en France : ce que ton scanner de calories ne te dit pas"}]},{"@type":"WebSite","@id":"https:\/\/lean-app.com\/#website","url":"https:\/\/lean-app.com\/","name":"Lean","description":"Descarga, prueba GRATIS la aplicaci\u00f3n y toma el control de tu cuerpo DE POR VIDA.","publisher":{"@id":"https:\/\/lean-app.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lean-app.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es-ES"},{"@type":"Organization","@id":"https:\/\/lean-app.com\/#organization","name":"Lean","url":"https:\/\/lean-app.com\/","logo":{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/lean-app.com\/#\/schema\/logo\/image\/","url":"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png","contentUrl":"https:\/\/lean-app.com\/wp-content\/uploads\/2025\/08\/Logo-for-Lean-App-the-best-calorie-and-TDEE-tracking-application.png","width":1672,"height":1484,"caption":"Lean"},"image":{"@id":"https:\/\/lean-app.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/share\/1GXD3qyMBy\/?mibextid=wwXIfr","https:\/\/apps.apple.com\/fr\/app\/lean-calorie-ai-podometre\/id6738668646","https:\/\/play.google.com\/store\/apps\/details?id=com.lean.testsqflite","https:\/\/app.dealroom.co\/companies\/lean_calorie_tracker","https:\/\/alternativeto.net\/software\/lean-calorie-tracker\/"]}]}},"_links":{"self":[{"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/posts\/1947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/comments?post=1947"}],"version-history":[{"count":0,"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/posts\/1947\/revisions"}],"wp:attachment":[{"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/media?parent=1947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/categories?post=1947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lean-app.com\/es\/wp-json\/wp\/v2\/tags?post=1947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}