Precios de los alimentos en Chile
¿Cuánto se movió esta semana el precio de la canasta, y se puede seguir solo con datos abiertos?
FastAPI · SQLite · APScheduler · ODEPA · :8015
- Estado
- En vivo · se actualiza solo
- Fuente de datos
- ODEPA · datos abiertos de datos.gob.cl
- Stack
- FastAPI · SQLite · APScheduler
- Cadencia
- Refresco semanal (martes)
- Cobertura
- 585 productos · 9 regiones · desde 2019
- Infraestructura
- Raspberry Pi · $0 cloud
El problema
La inflación de los alimentos es lo que más se siente en el bolsillo, y ODEPA —la oficina agraria del Estado— releva cada semana el precio de cientos de productos de la canasta en ferias, supermercados y carnicerías de todo el país. El dato existe y es público, pero vive disperso en decenas de planillas anuales que casi nadie abre. Quise responder algo concreto: ¿se puede convertir eso en un tablero que se actualice solo y muestre, semana a semana, qué subió y qué bajó?
Qué construí
Un monitor que cosecha los precios al consumidor de ODEPA hacia una base local y los muestra de tres formas: cómo se movió la canasta por categoría, cuáles fueron las mayores subidas y bajadas de la semana, y la serie histórica de cualquier producto.
- check_circle La ingesta descubre sola los recursos vigentes de ODEPA (no hay URLs escritas a mano), así que cuando publican un año nuevo o corrigen una semana, aparece sin que yo toque nada.
- check_circle Cubre 585 productos en 9 regiones, con precio mínimo, máximo y promedio semanal, y un histórico que arranca en 2019.
- check_circle No es una foto estática: un scheduler vuelve a leer ODEPA cada martes y reescribe la última semana. El resto del histórico no se toca.
- check_circle Corre 24/7 sobre una Raspberry Pi, con $0 de costo cloud. Apache hace de proxy hacia el servicio interno.
Cómo funciona
La ingesta resuelve el catálogo de ODEPA vía la API de datos.gob.cl, pagina cada año y agrega las observaciones crudas —cada punto de monitoreo— a una fila por producto, región y semana, con promedio ponderado. Eso deja una base chica y rápida (bajó de más de 1 GB a ~180 MB) sobre la que la API en FastAPI expone el estado, la variación de la canasta, los movers de la semana y la serie histórica de cada producto. APScheduler dispara el refresco semanal.
Decisiones técnicas
Agregar en la ingesta, no guardar cada observación
El grano crudo (producto × región × sector × punto × semana) eran ~2,5 millones de filas y más de 1 GB. Resumirlo a producto × región × semana con promedio ponderado da exactamente los mismos números —lo verifiqué fila a fila— con una base 5× más chica y un refresco casi instantáneo.
Descubrir los recursos, no hardcodear URLs
ODEPA rota los identificadores de sus planillas al republicar cada año. En vez de fijarlos, la ingesta consulta el catálogo y arma la lista sola, así el monitor no se rompe cuando cambia la fuente.
Mediana para la canasta, piso de observaciones para los movers
La variación por categoría usa la mediana de los productos, no el promedio: así un dato atípico de la fuente —un producto medido en un solo punto— no distorsiona toda la canasta. Y el ranking de subidas/bajadas exige un mínimo de puntos de monitoreo, para no destacar ruido.
Qué es real y qué es parcial
Es un prototipo, no una estadística oficial, y conviene ser preciso sobre qué muestra.
- verified Real: los precios son los que publica ODEPA, sin retoque ni imputación. El monitor solo los agrega y los grafica.
- schedule Parcial: el promedio "nacional" pondera por número de puntos de monitoreo, no por consumo. No es el IPC del INE ni pretende serlo; es un termómetro de precios de feria/retail.
- build Cobertura: ODEPA releva 9 regiones con puntos de monitoreo, no las 16 del país. Lo que no mide, no aparece.
¿Quieres ver los precios de esta semana?
El monitor corre ahora mismo sobre la Pi y se actualiza solo.