RUUUTS · Hoja de modelo · v2
Recálculo completo del modelo de huella y compensación. Objetivo confirmado sin cambios: 100 kg netos por caja de 6.
| Concepto (1 caja de 6, envío nacional ~1.000 km) | Antes (230 g) | Ahora (400 g) | Δ |
|---|---|---|---|
| Huella fija por botella | 0,79 | 0,92 | +16 % |
| Producción y envase, 6 botellas | 4,74 | 5,52 | +16 % |
| Transporte | 0,76* | 0,95 | +25 % |
| Emisiones LCA | 5,50 | 6,47 | +18 % |
| Prudencia +50 % | +2,75 | +3,24 | +18 % |
| Huella considerada | 8,25 | 9,71 | +18 % |
| Aportación neta (objetivo, sin cambios) | +100 | +100 | = |
| CO₂ retirado por caja | ≈108 | ≈110 | +1,8 % |
| Multiplicador sobre la huella | ×13 | ×11 | baja |
* El 0,76 antiguo no salía del cálculo: estaba ajustado a mano para que el LCA diera 5,50 exacto. Con la fórmula real y 230 g habría sido 0,82.
El error de los 230 g cuesta 2 kg más de créditos por caja, un 1,8 % más. Nada. Porque los 100 kg netos son 10 veces la huella: cualquier error en la huella se diluye. Esto no es un problema de dinero, es un problema de credibilidad — y ahora está resuelto.
Efecto secundario positivo: el multiplicador baja de ×13 a ×11, que es más creíble y además coincide con el que ya usan las páginas de certificaciones. Se acaba la contradicción.
| Componente | Masa | Antes | Ahora | Factor y fuente |
|---|---|---|---|---|
| Producción y embotellado | — | 0,55 | 0,55 | Sin cambio. ⚠️ Origen no documentado — ver sección 05. |
| Botella de vidrio | 400 g | 0,15 | 0,26 | 0,648 kg CO₂e/kg de vidrio. Media ponderada de ADEME/FEDEREC (virgen 923 · reciclado 409 kg/t) con el 53,55 % de casco medio europeo publicado por FEVE. |
| Tapón | 6 g | 0,00 | 0,02 | No existe factor publicado para el bioplástico de caña. Se usa como aproximación conservadora el tapón sintético de PE coextruido de ADEME (2.530 kg/t) y se declara. |
| Etiqueta | ~10 g | 0,03 | 0,03 | Coherente con ADEME «étiquettes papier imprimé» 2.930 kg/t. |
| Caja de cartón (÷6) | ~128 g | 0,05 | 0,05 | Coherente con ADEME cartón reciclado 390 kg/t (≈770 g por caja de 6). |
| Precinto | — | 0,01 | 0,01 | ⚠️ Sin factor fiable. ADEME tiene dos registros contradictorios para film. |
| Total fija por botella | 0,79 | 0,92 |
El factor de vidrio que estaba implícito en el modelo viejo era 0,15 / 0,230 = 0,652 kg CO₂e por kg de vidrio. El que sale de reconstruirlo desde ADEME y FEVE es 0,648. Prácticamente idéntico.
El factor estaba bien. Lo que estaba mal era la masa. Eso significa que el resto del modelo probablemente también sea sano, y que el arreglo es quirúrgico, no una refundación.
Un estudio revisado por pares de 2025 sitúa una botella de tinto en 0,88 ± 0,3 kg CO₂e, con el vidrio en el 44 %. Nuestros 0,92 kg de huella fija quedan justo en esa horquilla, y con el transporte añadido salimos por arriba. Es decir: el modelo nuevo es conservador frente a la ciencia publicada, que es exactamente donde hay que estar.
FIJA_BOT = 0.92 // era 0.79 — botella de 400 g PESO_BOT = 1.22 // era 1.05 — 0,75 vino + 0,40 vidrio + 0,07 packaging ⚠️ PESAR EF_ROAD = 0.10 // correcto: DEFRA articulado, well-to-wheel EF_SEA = 0.0198 // era 0.016 — le faltaba el pozo-al-tanque DETOUR = 1.30 PRU = 1.5 kmR = distancia(origen, destino) × DETOUR pesoT = botellas × PESO_BOT / 1000 tr = pesoT × kmR × EF_ROAD [+ pesoT × 900 × EF_SEA si ultramar] lca = botellas × FIJA_BOT + tr huella = lca × PRU net = cajas × 100 comp = huella + net
El 0,016 que usa hoy el modelo es el factor DEFRA de portacontenedores tanque-a-estela, no well-to-wheel como dice la web. Le falta el tramo pozo-a-tanque (0,0036). El valor completo es 0,0198. Estábamos subestimando el marítimo un 19 % mientras afirmábamos que era WTW. Es el tipo de detalle que un verificador detecta a la primera.
El de carretera, en cambio, está bien: 0,10 corresponde casi exactamente al articulado >33 t de DEFRA con los dos tramos sumados (0,0802 + 0,0196 = 0,0998).
La auditoría del código ha sacado seis fallos reales que no tienen nada que ver con los 400 g pero que conviene cerrar ahora que se toca todo:
| Dónde | Qué pasa |
|---|---|
functions/pay.js 185, 202, 285 | Lee q.compensa, pero el modelo devuelve comp. Siempre es undefined. Funciona de casualidad porque co2.js recalcula, pero el metadato de Stripe guarda la huella en vez de la compensación. |
model.js 87 vs pay.js 276 | Uno usa ceil(bot/6) y prorratea, el otro round(bot/6). Con 8 botellas la web enseña 133 kg netos y el certificado retira 100. Con 3 botellas enseña 50 y retira 100. |
model.js:9 | El origen logístico está en Barcelona [41.39, 2.16] y la bodega está en Toledo. Todas las distancias están mal. |
informe-sostenibilidad.html 77-79 | Tabla que no cuadra: 290 + 145 = 25. |
| ~15 archivos | El multiplicador aparece como ×13, ×11 y ×14 según la página, porque cada una usa un ejemplo distinto. Con el modelo nuevo se unifica en ×11. |
marketing/one-pagers/…/content.js 52, 76, 100 | Los one-pagers siguen diciendo «por el triple de la huella» en los tres idiomas. Es el modelo obsoleto de junio. |
Dos números del modelo no puedo derivarlos sin datos tuyos, y prefiero decirlo antes que rellenarlos:
PESO_BOT exacto. Ahora mismo hay una incoherencia: el peso logístico dice 70 g de packaging por botella, pero la línea de emisiones del cartón implica 128 g. Uno de los dos está mal y la báscula lo resuelve en treinta segundos.Toco un solo punto del motor (functions/model.js) y desde ahí se recalculan solos el carrito, el checkout, los pedidos pro y mayorista, los certificados y los kilos que se retiran de verdad en CNaught. Después voy a mano por las 28 páginas que llevan cifras escritas duras, sincronizo las 178 claves de traducción y regenero /en y /ca.
Y de paso caen los seis errores de la sección 04. Dime que sí y empiezo.