Inflación en Tiempo RealGT

Metodología del índice diario de precios en línea

Documento técnico · Inflación en Tiempo Real GT · CINCO · versión 1.0 (junio de 2026)

Este documento especifica por completo la construcción del índice: el panel de precios, los filtros, el índice multilateral GEKS-Jevons con ventana móvil y empalme medio (el índice titular), el índice Jevons encadenado de comparación, la agregación con ponderaciones del IPC y las microestadísticas de fijación de precios. Toda decisión metodológica que toma el código está documentada aquí; el código SQL que implementa cada fórmula es público en el repositorio del proyecto.

1. Introducción

El proyecto continúa el programa de investigación iniciado por el Billion Prices Project del MIT (Cavallo y Rigobon, 2016): usar precios publicados en línea por grandes minoristas, recolectados diariamente mediante raspado web, para medir inflación en alta frecuencia. La evidencia comparada indica que los precios en línea de las grandes cadenas coinciden en niveles y dinámica con sus precios en tienda física la mayor parte del tiempo (Cavallo, 2017), y que los índices construidos con ellos anticipan los movimientos del IPC oficial (Cavallo, 2013).

A diferencia del BPP original —que encadenaba índices Jevons día a día— el índice titular de este proyecto usa un método multilateral (GEKS), el estándar actual recomendado para datos masivos de precios por el manual del IPC (FMI et al., 2020) y la guía de métodos multilaterales de (Eurostat, 2022). La razón es matemática y está desarrollada en la sección 4: el encadenado de alta frecuencia sufre deriva cuando la entrada y salida de productos está correlacionada con promociones; el GEKS, al ser la transitivización por mínimos cuadrados de todas las comparaciones bilaterales, es inmune a ella por construcción.

2. Datos

Tres cadenas con venta en línea en Guatemala se rastrean una vez al día (madrugada, hora de Guatemala):

CadenaProductos/díaIdentificadorCategorías propiasEAN
Walmart GT≈ 34,000product_id|sku_id3 niveles (617 hojas)100 %
La Torre≈ 16,000product_id|sku_id3 niveles (332 hojas)100 %
PriceSmart≈ 3,000pid— (clasificación propia por título)

Cada observación es una tupla (r,i,t,p,,a)(r, i, t, p, \ell, a): cadena rr, producto ii, día tt, precio de venta pp, precio de lista \ell y disponibilidad aa. El precio usado es el efectivo (con descuento si lo hay); los precios de lista alimentan la estadística de promociones. PriceSmart no publica taxonomía, así que sus ≈ 3,000 títulos se clasificaron a 27 etiquetas armonizadas (91.4 % por reglas léxicas auditables, el resto manualmente); el archivo de clasificación está versionado en el repositorio.

La serie inicia el 3 de junio de 2026 (fecha base del índice). El diseño está pensado para acumular años de historia sin cambios metodológicos.

3. Construcción del panel

Sea pit>0p_{it} > 0 el precio del producto ii (la pareja cadena-producto) el día tt, tras estos pasos en orden:

Definicióndepuración y compuerta de validez

  1. Deduplicación: si un día tiene más de un raspado, se conserva el más reciente por producto.
  2. Filtro de elegibilidad: se exigen pit>0p_{it} > 0 y disponibilidad (ait=1a_{it} = 1).
  3. Compuerta de validez por cadena-día: el día tt de la cadena rr se descarta por completo si su número de filas cae por debajo de 0.70.7 veces su media móvil de los 7 días previos. Un raspado parcial no es aleatorio —los rastreadores recorren el sitio por categorías— y un día parcial sesgaría la composición del conjunto emparejado.

Definiciónregla de atípicos

Sobre observaciones crudas consecutivas del mismo producto se descarta la observación posterior cuando

lnpitlnpis>ln3,(1)\left| \ln p_{it} - \ln p_{is} \right| > \ln 3, \tag{1}

donde ss es el día observado anterior. Es la regla clásica del BPP para errores de captura. Con la regla aplicada a pares crudos: un error de un solo día nunca entra al índice (el día atípico se elimina y el puente imputado lo salta), mientras que un cambio genuino y permanente mayor que 3× entra con un día de rezago a través del puente. La incidencia observada es de 0–2 pares por día sobre ≈ 40,000.

Definiciónimputación por arrastre

Si el producto ii no se observa el día tt pero sí en algún día tks<tt - k \le s < t con k=3k = 3, se imputa pit=pis\*p_{it} = p_{is^\*} con s\*s^\* el último día observado (carry-forward). Tras kk días sin observación el producto sale del panel hasta reaparecer. Las filas imputadas participan de los índices (mantienen la continuidad del conjunto emparejado) pero se excluyen de todas las microestadísticas de la sección 9, porque un precio arrastrado registraría mecánicamente "sin cambio".

El resultado es el panel P={(i,t,pit)}\mathcal{P} = \{(i, t, p_{it})\}, con ≈ 40,000 productos diarios y banderas de imputación y promoción por fila.

4. Índices elementales y deriva

4.1 El índice bilateral de Jevons

Definicióníndice de Jevons bilateral

Para dos días s,ts, t y el conjunto emparejado S(s,t)={i:pis>0pit>0}S(s,t) = \{ i : p_{is} > 0 \wedge p_{it} > 0 \} dentro de un ámbito (todo el panel, una cadena, o una división de gasto), el logaritmo del índice de Jevons es la media de los relativos logarítmicos:

m(s,t)  =  lnPJ(s,t)  =  1S(s,t)iS(s,t)(lnpitlnpis).(2)m(s,t) \;=\; \ln P_J(s,t) \;=\; \frac{1}{|S(s,t)|} \sum_{i \in S(s,t)} \left( \ln p_{it} - \ln p_{is} \right). \tag{2}

El Jevons es el índice elemental estándar cuando no se observan cantidades: es la media geométrica no ponderada de relativos, es exacto para preferencias Cobb-Douglas con participaciones iguales sobre el conjunto emparejado, y es el único índice elemental que satisface simultáneamente reversión temporal, conmensurabilidad y el test circular dentro de un conjunto fijo de productos (FMI et al., 2020).

Dos propiedades inmediatas de (2): antisimetría, m(s,t)=m(t,s)m(s,t) = -m(t,s) —que la implementación verifica numéricamente—, y, crucialmente, no transitividad: en general

m(s,t)+m(t,u)    m(s,u),(3)m(s,t) + m(t,u) \;\neq\; m(s,u), \tag{3}

porque cada término se promedia sobre un conjunto emparejado distinto: S(s,t)S(t,u)S(s,u)S(s,t) \neq S(t,u) \neq S(s,u).

4.2 La deriva de encadenamiento

El índice encadenado define el nivel acumulando los eslabones diarios: lnITenc=t=1Tm(t1,t)\ln I^{enc}_T = \sum_{t=1}^{T} m(t-1, t). Si el conjunto de productos fuera fijo, la suma telescoparía y el encadenado sería exacto. Con entrada y salida de productos correlacionada con el estado del precio, no telescopa, y el error se acumula sin cota: eso es la deriva (Ivancic, Diewert y Fox, 2011).

Ejemplo — rebote promocional con faltante

Un producto vale Q10; entra en promoción a Q8 (el índice registra ln0.822.3%\ln 0.8 \approx -22.3\% log); la promoción agota el inventario y el producto desaparece del sitio más de kk días; reaparece a Q10. Como el puente de imputación expiró, la recuperación de +ln1.25+\ln 1.25 nunca se registra: el encadenado queda con 22.3%-22.3\% log permanente por cada ciclo promoción-faltante-reaparición de este tipo. Este patrón es común en comercio en línea (Cavallo, 2018). Un método multilateral que compara directamente el día final con el inicial —donde el producto vale Q10 en ambos— registra correctamente 00.

5. El índice GEKS-Jevons

El método GEKS (Gini–Eltetö–Köves–Szulc, (Gini; Eltetö–Köves; Szulc, 1931; 1964; 1964)) resuelve la no transitividad de manera óptima: busca los niveles cuya matriz de comparaciones implícitas sea la más cercana, en mínimos cuadrados, a la matriz bilateral observada.

ProposiciónGEKS como transitivización por mínimos cuadrados

Sea WW una ventana de NN días y m:W×WRm : W \times W \to \mathbb{R} la matriz bilateral de Jevons, antisimétrica con m(x,x)=0m(x,x)=0. Considérese

minφRW  Q(φ)=sWtW(φtφsm(s,t))2.(4)\min_{\varphi \,\in\, \mathbb{R}^W} \; Q(\varphi) = \sum_{s \in W} \sum_{t \in W} \bigl( \varphi_t - \varphi_s - m(s,t) \bigr)^2. \tag{4}

Todo minimizador satisface, para cada uWu \in W,

φu  =  φˉ    A(u),A(u):=1NlWm(u,l),(5)\varphi_u \;=\; \bar{\varphi} \;-\; A(u), \qquad A(u) := \frac{1}{N} \sum_{l \in W} m(u,l), \tag{5}

con φˉ\bar\varphi la media de los φ\varphi (libertad de norma: la solución es única salvo una constante aditiva). En consecuencia, para cualesquiera o,dWo, d \in W el índice GEKS entre oo y dd es

lnPWGEKS(o,d)  =  φdφo  =  A(o)A(d)  =  1NlW[m(o,l)+m(l,d)],(6)\ln P^{GEKS}_W(o,d) \;=\; \varphi_d - \varphi_o \;=\; A(o) - A(d) \;=\; \frac{1}{N} \sum_{l \in W} \bigl[ m(o,l) + m(l,d) \bigr], \tag{6}

que es la fórmula clásica del GEKS: la media geométrica de todas las comparaciones oldo \to l \to d a través de cada día puente ll.

Demostración

Derivando (4) respecto de φu\varphi_u y usando que uu aparece como tt en una suma y como ss en la otra:

Qφu=2sW(φuφsm(s,u))    2tW(φtφum(u,t)).\frac{\partial Q}{\partial \varphi_u} = 2 \sum_{s \in W} \bigl( \varphi_u - \varphi_s - m(s,u) \bigr) \;-\; 2 \sum_{t \in W} \bigl( \varphi_t - \varphi_u - m(u,t) \bigr).

Por antisimetría, sm(s,u)=sm(u,s)-\sum_s m(s,u) = \sum_s m(u,s), de modo que ambas sumas de mm se agregan a 2lm(u,l)2\sum_l m(u,l):

Qφu=4[NφulWφl+lWm(u,l)].\frac{\partial Q}{\partial \varphi_u} = 4 \Bigl[ N \varphi_u - \sum_{l \in W} \varphi_l + \sum_{l \in W} m(u,l) \Bigr].

Igualando a cero se obtiene (5). La función objetivo es convexa (suma de cuadrados de funciones afines), así que la condición es suficiente. La diferencia φdφo=A(o)A(d)\varphi_d - \varphi_o = A(o) - A(d) elimina la constante libre; la última igualdad de (6) se obtiene sumando y restando: 1Nl[m(o,l)+m(l,d)]=1Nlm(o,l)1Nlm(d,l)=A(o)A(d)\tfrac1N \sum_l [m(o,l) + m(l,d)] = \tfrac1N \sum_l m(o,l) - \tfrac1N \sum_l m(d,l) = A(o) - A(d), usando otra vez m(l,d)=m(d,l)m(l,d) = -m(d,l).

Tres observaciones para quien disfruta la estructura:

  1. Transitividad. De (6), lnPGEKS(s,t)+lnPGEKS(t,u)=[A(s)A(t)]+[A(t)A(u)]=A(s)A(u)=lnPGEKS(s,u)\ln P^{GEKS}(s,t) + \ln P^{GEKS}(t,u) = [A(s)-A(t)] + [A(t)-A(u)] = A(s)-A(u) = \ln P^{GEKS}(s,u): el índice es un gradiente sobre la ventana, exacto por construcción.
  2. Descomposición. La matriz antisimétrica mm se descompone en una parte "consistente" (φtφs\varphi_t - \varphi_s, la imagen del operador gradiente) y un residuo de "circulación" ortogonal que el GEKS descarta — la misma estructura del HodgeRank en teoría de rankings. La deriva del encadenado es exactamente la integral de esa circulación a lo largo del camino 01T0 \to 1 \to \cdots \to T.
  3. Implementación. La identidad lnPGEKS(o,d)=A(o)A(d)\ln P^{GEKS}(o,d) = A(o) - A(d) reduce el cálculo a un promedio por fila de la matriz bilateral —un único GROUP BY en SQL— en lugar de la doble suma sobre pares de pares. La suite de validación comprueba la identidad contra la doble suma directa con error <1012< 10^{-12}.

El estimador se calcula por ámbito: el panel completo (all), cada cadena, y cada división de gasto COICOP, cada uno con su propia matriz bilateral sobre sus conjuntos emparejados.

6. Ventana móvil y empalme

El GEKS de (6) está definido dentro de una ventana fija. Para publicar una serie diaria sin revisar lo ya publicado se usa una ventana móvil de N=25N = 25 días (la primera publicación exige un mínimo de 15 días de historia, que la serie alcanza el 17 de junio de 2026) con empalme medio sobre todos los días de traslape, en el espíritu del método HASP ((Chessa, 2016); (Eurostat, 2022)):

Definiciónempalme medio (mean splice)

Sea WdW_d la ventana que termina en el día nuevo dd, A()A(\cdot) los promedios de fila calculados sobre WdW_d, y O=Wd{d}O = W_d \setminus \{d\} los días de la ventana cuyos niveles lnIo\ln I_o ya fueron publicados. Cada origen oo propone la extensión lnIo+[A(o)A(d)]\ln I_o + [A(o) - A(d)]; el nivel publicado es su promedio:

lnId  =  1OoO[lnIo+A(o)]    A(d).(7)\ln I_d \;=\; \frac{1}{|O|} \sum_{o \in O} \bigl[ \ln I_o + A(o) \bigr] \;-\; A(d). \tag{7}

Cuando el panel completa la ventana, O=24|O| = 24: cada nivel nuevo se ancla en las veinticuatro extrapolaciones posibles, promediando el ruido de empalme en lugar de heredar el de un único día de enganche (las alternativas estándar son el movement splice, o=d1o = d-1, y el window splice, o=dN+1o = d-N+1; el empalme medio domina a ambas en estabilidad). Los niveles publicados son definitivos: la política de no revisión está codificada en el sistema —el bucle de cálculo solo inserta días nuevos— y una reconstrucción histórica exige un acto deliberado y documentado.

La serie titular se publica con base lnIbase=0\ln I_{base} = 0 (nivel 100) el 3 de junio de 2026.

7. Agregación y ponderación

7.1 Estratos y clasificación COICOP

Cada producto pertenece a un estrato = (cadena × categoría de nivel 2 del sitio); los 227 estratos de Walmart y La Torre, y las 27 etiquetas de PriceSmart, están mapeados a las 13 divisiones CCIF/COICOP 2018 del IPC de Guatemala (base diciembre 2023) en un archivo versionado. Diez divisiones tienen cobertura de supermercado; Educación (10), Restaurantes (11) y Seguros (12) no la tienen, lo que se reporta de manera explícita.

7.2 El índice titular ponderado

Con lnIt(g)\ln I^{(g)}_t el nivel GEKS de la división gg y wgw_g su ponderación oficial del IPC (INE, 2024) (Tabla 2 del documento metodológico del INE: Alimentos 32.33 %, Vivienda 11.16 %, Transporte 9.90 %, …, que suman 100.00), el índice titular es la media geométrica ponderada con pesos renormalizados sobre las divisiones publicadas en tt:

lnIttitular  =  gGtw~g,tlnIt(g),w~g,t=wggGtwg.(8)\ln I^{titular}_t \;=\; \sum_{g \in G_t} \tilde{w}_{g,t} \, \ln I^{(g)}_t, \qquad \tilde{w}_{g,t} = \frac{w_g}{\sum_{g' \in G_t} w_{g'}}. \tag{8}

La renormalización hace explícito el supuesto identificador: la inflación de las divisiones sin cobertura se proyecta igual al promedio ponderado de las cubiertas. El índice democrático lnItall\ln I^{all}_t (GEKS del panel agrupado, al estilo BPP) se publica en paralelo; la brecha entre ambos mide cuánto importa la canasta.

8. El índice encadenado de comparación

Junto al titular se publica el Jevons encadenado clásico del BPP, que sirve de diagnóstico de deriva. Relativo diario del estrato ee: δe,t=1Me,tiMe,tΔlnpit\delta_{e,t} = \frac{1}{|M_{e,t}|} \sum_{i \in M_{e,t}} \Delta \ln p_{it} con Me,tM_{e,t} los pares emparejados contra el día válido anterior de la cadena. Relativo de división: media de los δe,t\delta_{e,t} ponderada por número de pares (equivalente al Jevons agrupado de la división). Relativo titular: media de divisiones con pesos INE renormalizados, exigiendo un mínimo de 10 pares por división-día. Niveles: suma acumulada de logaritmos desde la base.

Dt  =  lnIttitularlnItenc(9)D_t \;=\; \ln I^{titular}_t - \ln I^{enc}_t \tag{9}

es el diagnóstico de deriva acumulada: si los conjuntos emparejados fueran estables, Dt0D_t \approx 0; su crecimiento sistemático cuantifica el sesgo que el método multilateral está corrigiendo.

9. Microestadísticas de fijación de precios

Sobre pares observados consecutivos (sin imputaciones), siguiendo a (Klenow y Kryvtsov, 2008):

Frecuencia y duración. Sea ftf_t la fracción de productos cuyo precio cambió entre t1t-1 y tt. Bajo riesgo constante de cambio por día (proceso de ajuste sin memoria, à la Calvo), la probabilidad diaria de cambio es f=1eλf = 1 - e^{-\lambda}, de donde la intensidad es λ=ln(1f)\lambda = -\ln(1-f) y la duración esperada de un precio es

E[τ]  =  1λ  =  1ln(1ft)dıˊas.(10)\mathbb{E}[\tau] \;=\; \frac{1}{\lambda} \;=\; \frac{-1}{\ln(1 - f_t)} \quad \text{días}. \tag{10}

Distribución de cambios. El histograma diario de Δlnpit0\Delta \ln p_{it} \neq 0, junto con la participación de subidas y bajadas y los cuartiles de Δlnp|\Delta \ln p| — los insumos de la literatura de rigideces de precios.

Promociones y faltantes. Participación con precio bajo lista (p<p < \ell) y tasa de no disponibilidad del catálogo, el indicador de quiebres de inventario que demostró su valor durante la pandemia.

Ley de un solo precio. Walmart y La Torre publican código de barras EAN para el 100 % de su catálogo; ≈ 4,900 EAN aparecen en ambas cadenas el mismo día (restringidos a EAN con un único producto por cadena-día para excluir multipacks). Para cada par se calcula la brecha γj,t=lnpj,tWlnpj,tLT\gamma_{j,t} = \ln p^{W}_{j,t} - \ln p^{LT}_{j,t} y se publican su media, la mediana de γ|\gamma| y la fracción de pares con γ1%|\gamma| \le 1\% y 5%\le 5\%: una medición diaria y directa de la dispersión de precios entre cadenas para productos físicamente idénticos.

10. Limitaciones

  1. Cobertura: tres cadenas de supermercado/club de compras; 89.7 % del peso del IPC en divisiones con alguna cobertura, pero sin servicios (vivienda, educación, transporte público). El índice mide la inflación del supermercado en línea, no el IPC.
  2. Sin cantidades: no hay ponderación por gasto dentro de los estratos; el Jevons trata los productos por igual. El GEKS-Törnqvist queda como extensión natural si algún día se observan cantidades.
  3. Imputación conservadora: el arrastre registra "sin cambio" hasta 3 días; sesga la frecuencia de cambio hacia abajo si se incluyera (por eso las microestadísticas la excluyen) y suaviza marginalmente el índice.
  4. Relanzamientos: un producto que reaparece con otro identificador entra como producto nuevo; no hay empalme hedónico de reemplazos en v1.
  5. Precios en línea: la evidencia internacional de coincidencia en-línea/tienda (Cavallo, 2017) no se ha verificado aún para Guatemala; es investigación pendiente de CINCO.
  6. Una semana de historia al lanzamiento: el GEKS titular se publica desde el día 15 de la serie; mientras tanto el tablero muestra el encadenado con el aviso correspondiente. Las variaciones a 28 días e interanuales se habilitan conforme el panel madura.

Referencias

  1. Cavallo, A. y R. Rigobon (2016). “The Billion Prices Project: Using Online Prices for Measurement and Research”. Journal of Economic Perspectives, 30(2), 151–178. https://doi.org/10.1257/jep.30.2.151
  2. Cavallo, A. (2013). “Online and official price indexes: Measuring Argentina's inflation”. Journal of Monetary Economics, 60(2), 152–165.
  3. Cavallo, A. (2017). “Are Online and Offline Prices Similar? Evidence from Large Multi-channel Retailers”. American Economic Review, 107(1), 283–303.
  4. Ivancic, L., W. E. Diewert y K. J. Fox (2011). “Scanner data, time aggregation and the construction of price indexes”. Journal of Econometrics, 161(1), 24–35.
  5. de Haan, J. y H. A. van der Grient (2011). “Eliminating chain drift in price indexes based on scanner data”. Journal of Econometrics, 161(1), 36–46.
  6. Chessa, A. G. (2016). “A new methodology for processing scanner data in the Dutch CPI”. Eurostat Review on National Accounts and Macroeconomic Indicators, 1/2016, 49–69.
  7. Eurostat (2022). Guide on Multilateral Methods in the Harmonised Index of Consumer Prices. Luxemburgo: Oficina de Publicaciones de la Unión Europea.
  8. FMI, OIT, OCDE, Eurostat, ONU y Banco Mundial (2020). Consumer Price Index Manual: Concepts and Methods. Washington, D.C.: Fondo Monetario Internacional.
  9. Klenow, P. J. y O. Kryvtsov (2008). “State-Dependent or Time-Dependent Pricing: Does It Matter for Recent U.S. Inflation?”. Quarterly Journal of Economics, 123(3), 863–904.
  10. Gini, C. (1931). “On the Circular Test of Index Numbers”. Metron 9, 3–24; Eltetö, Ö. y P. Köves (1964) y Szulc, B. (1964), artículos fundacionales del método GEKS.
  11. Instituto Nacional de Estadística de Guatemala (2024). Documento metodológico del Índice de Precios al Consumidor, año base 2024 (ponderaciones base diciembre 2023, ENIGH 2022-2023). https://www.ine.gob.gt/wp-content/uploads/2025/02/Documento-metodologico-IPC-ano-base-2024.pdf
  12. Cavallo, A. (2018). “Scraped Data and Sticky Prices”. Review of Economics and Statistics, 100(1), 105–119.

Código y semillas de clasificación: repositorio del proyecto. Validación numérica: identidad de separabilidad GEKS (error < 10⁻¹²), re-derivación independiente del Jevons elemental por estrato, antisimetría de la matriz bilateral, base = 100 exacta, cotas de imputación y atípicos. Consultas y correcciones: CINCO.