# Fermenty — Backtest del motor

> Registro del contraste del modelo contra fermentaciones reales del obrador.
> **Resultado: el modelo pasa la prueba de humo.** Se puede construir encima.
>
> Destino sugerido: `docs/Backtest.md` · 2026-07-23

---

## 1. Qué es esta prueba y qué no

**Es una prueba de humo, no una calibración.** Puede tumbar el modelo —si predijera cuatro días donde nunca bajó de seis— pero no puede afinar coeficientes. Ésa es la función del bucle 2, con tandas medidas a lo largo de meses.

La prueba se hizo en el orden correcto: **la matemática se documentó antes de escribir el motor** (`docs/Matematica_Motor.md`), así que el contraste se pudo hacer a mano, sin código, y antes de que hubiera nada construido encima.

---

## 2. El dato: seis recetas probadas

Seis perfiles distintos, todos verificados en el obrador, todos con azúcar moreno *(golden light)* a 23-24 °C.

| Receta | Té | Azúcar | Arranque | °C | Días F1 | Perfil declarado |
|---|---|---|---|---|---|---|
| White Bloom | Pai Mu Tan 6 g/L | 65 g/L | 12 % | 23 | 6–8 | acidez suave, delicada |
| Summer Sencha | Sencha 7 g/L | 70 g/L | 10 % | 24 | 5–7 | fácil de beber, comercial |
| Black Roots | Assam 8 g/L | 75 g/L | 15 % | 24–25 | 8–10 | seco, estructurado, vinícola |
| Forest Lab | Verde+negro 50/50 | 68 g/L | 15 % | 23 | 9–12 | seco, complejo, largo |
| Ocean Coconut | Verde ligero | 60–65 g/L | 12 % | 23 | 5–6 | refrescante, F1 corta |
| **Suave rápida** | Verde jazmín 6 g/L | **40 g/L** | **20 %** | 24 | **6** | amable, acidez media, lista para 2F |

*La sexta se produjo después de cerrar el contraste inicial: es la única que el modelo no había visto de ninguna forma.*

---

## 3. El método

Al modelo se le dieron **solo números**: azúcar, arrancador, temperatura y días observados. **Nada sobre sabor.**

Se invirtió la cinética para deducir en qué punto de corte tuvo que estar cada receta:

```
progreso = días × 0,6 × fTemp × velocidad / (diasRef × fS0 × fArr)
```

Después se comparó ese orden con los perfiles sensoriales declarados, que el modelo nunca vio.

---

## 4. El resultado

| Punto de corte | Receta | Lo que dijo el obrador |
|---|---|---|
| 0,43 | Ocean Coconut | refrescante, F1 corta |
| 0,45 | Summer Sencha | fácil de beber |
| 0,53 | White Bloom | acidez suave |
| 0,76 | Black Roots | seco, estructurado |
| 0,84 | Forest Lab | seco, complejo |

*(azúcar moreno, velocidad 0,92 · Forest Lab roza el techo de progreso de la ficha, 0,88 — candidato a subirlo a 0,95)*

**Cinco de cinco, sin un solo cruce.** Si la cinética estuviera mal —si el Q10, el exponente del azúcar o el del arrancador fueran incorrectos— el orden saldría revuelto respecto a los perfiles.

### El caso que lo demuestra: Black Roots

Lleva **más** arrancador que Summer Sencha (15 % contra 10 %) y **más** temperatura (24,5 contra 24), y aun así tarda **más** (8–10 días contra 5–7). Visto por encima es una contradicción.

El modelo la resuelve correctamente: no fermenta más lento, **se corta mucho más tarde**. Y «seco, estructurado, vinícola» lo confirma.

Esa es la prueba de que el modelo separa dos cosas que se confunden fácil: la velocidad de la fermentación y la decisión de cuándo pararla.

### La sexta receta: el mismo destino por el camino contrario

Producida después del contraste, sin que el modelo la hubiera visto. Es la más informativa de las seis.

El modelo le asigna un **progreso de 0,71** —consumió el 71 % del azúcar, de los más altos— y sin embargo el ácido resultante son **3,31 g/L** y el pH **3,75**: la segunda más suave del conjunto.

No es contradictorio: **el progreso es una fracción, no un sabor.** Con 40 g/L de partida, consumir el 71 % deja poco ácido en absoluto. Un modelo que equiparase progreso alto con acidez alta habría fallado aquí.

Y la descripción del obrador lo confirma en sus dos mitades a la vez: *«acidez mediana»* **y** *«aún amable, dulce»*.

Las seis ordenadas por ácido:

| ácido g/L | pH | receta | perfil declarado |
|---|---|---|---|
| 3,10 | 3,78 | Ocean Coconut | refrescante |
| **3,31** | **3,75** | **Suave rápida** | **amable, acidez media** |
| 3,66 | 3,69 | Summer Sencha | fácil de beber |
| 4,04 | 3,64 | White Bloom | acidez suave |
| 6,64 | 3,36 | Forest Lab | seco, complejo |
| 6,67 | 3,36 | Black Roots | seco, estructurado |

Dos grupos limpios —suaves y secos— y la nueva cae donde su descripción dice.

**Nota de producto:** esta receta no cabe en ningún preset de la ficha. Vive en intensidad ≈ 0 y complejidad ≈ 0,07, dos esquinas a la vez, con el arrancador al 20 % rozando el techo del modelo (22 %). Es el rincón «rápida y suave»: poco azúcar, mucho arranque, seis días, y sale con 11 g/L de residual — sitio de sobra para una 2F. Candidato a séptima carta, y de las que más pediría un principiante.

### Convergencia no buscada

Los presets de la ficha —que vienen del prototipo del Afinador, calibrado por otro camino— caen en los mismos sitios que las recetas reales:

```
0,41  ● suave          0,43  ○ Ocean Coconut
                       0,45  ○ Summer Sencha
0,52  ● equilibrada    0,53  ○ White Bloom
0,80  ● ácida          0,76  ○ Black Roots
                       0,84  ○ Forest Lab
```

Dos fuentes independientes describiendo el mismo espacio.

### Y la temperatura, confirmada de memoria

El obrador describe: *«en verano a los 5 o 6 días, en invierno se me va a 10 o 12»*. El modelo, sin ajuste alguno:

| °C | 18 | 20 | 23 | 25 | 28 |
|---|---|---|---|---|---|
| días | 10,9 | 9,5 | 7,7 | 6,7 | 5,5 |

---

## 5. Lo que NO valida esta prueba

**El comportamiento absoluto.** Lo verificado es el orden y las relaciones: que más azúcar alargue, que más arrancador acorte, que la temperatura mande. Los valores absolutos de azúcar residual, pH y alcohol en cada día no se han contrastado contra medidas reales.

Se intentó con un documento de parámetros del obrador, pero **eran valores didácticos de masterclass, sin verificación en cocina**. Contrastar una estimación contra otra estimación no es evidencia: **esos números se descartaron y no se tocó ningún coeficiente.**

---

## 6. Las mediciones pendientes

Ninguna bloquea. Las dos son un número cada una.

### 6.1 · El pH en el punto de corte

**Qué desempata:** si el modelo acidifica lo que debe, y si los presets apuntan donde el obrador corta de verdad.

**Hay dos indicios independientes en la misma dirección**, y por eso esta medición sube de «pendiente» a «lo siguiente que hacer»:

1. Las curvas didácticas descartadas (§5) implicaban un `factorAcido` de 0,19–0,32 en la zona de 6–7 días, contra el 0,12 del modelo.
2. El obrador estima **pH 3,5 por paladar** en la sexta receta. El modelo **no puede llegar ahí**: con 40 g/L de azúcar su suelo es 3,59, incluso forzando el progreso a su tope de 0,95. Para dar 3,5 haría falta `factorAcido` entre 0,14 y 0,19.

Dos fuentes distintas apuntando a que el modelo acidifica algo menos de lo que ocurre. Ninguna concluyente —la primera es didáctica, la segunda es paladar y el paladar responde a la acidez titulable, no al pH— pero convergentes.

**Por qué no se ha tocado:** mover `factorAcido` desplaza el pH de las seis recetas a la vez. Un cambio así se hace con un dato medido, no con dos estimaciones.

**Una medición con pHmetro al cortar lo resuelve.**

### 6.2 · El alcohol

**Por qué importa más que el resto:** es el único parámetro cuyo error tiene consecuencias fuera de la cocina.

`fraccionEtanolSobrevive = 0,06` asume que las acéticas se comen el 94 % del etanol en F1 abierta. Con eso el modelo predice **0,12 %** en una tanda equilibrada. El umbral de etiquetado de la UE son **0,5 %**.

Si el valor real está por encima, el aviso legal nunca salta. Merece un dato medido antes de que el motor esté en manos de nadie.

### 6.3 · Por qué el Brix no sirve aquí

Se intentó usar una lectura de 4,5–5,0 °Bx de la sexta receta. **No es utilizable**: el punto de partida (40 g/L de azúcar + 6 de té) ya da ~4,6 °Bx, así que una lectura final igual implicaría que no fermentó nada — y el sabor dice lo contrario.

Es el artefacto clásico del refractómetro en líquido fermentado: los ácidos, el glicerol y los sólidos del té también refractan y no desaparecen con la fermentación. Para seguir el azúcar haría falta un densímetro; para lo que el modelo necesita, el pH basta y es más fácil de medir.

---

## 7. Conclusión

**El modelo pasa.** Reproduce el ancla del obrador, ordena las recetas probadas exactamente por su perfil sensorial (cinco en el contraste ciego, más una sexta que no había visto y cae donde su descripción dice), explica correctamente un caso que parece contradictorio, y coincide con la memoria estacional del obrador sin ajuste alguno.

No se movió ningún coeficiente. **La estructura del modelo queda validada y se puede construir encima.**

Lo que sigue —conectar el motor, las columnas de la tanda, la pantalla de formular— parte de un modelo comprobado en vez de uno supuesto.

---

## 8. Reproducir esta prueba

```bash
python3 docs/afinador.py     # la tabla dorada: ancla, presets, curva de temperatura
python3 docs/backtest.py     # el contraste contra las seis recetas
```

Cuando el obrador acumule tandas medidas, se añaden como filas nuevas. Un fallo sistemático en una dirección —siempre corto, siempre en frío— sería señal de modelo, no de ruido.

---

*Documento vivo. Cada tanda medida que llegue amplía el contraste.*
