LNData LNData
Volver al portafolio Cliente · Masterfarma

El precio de cada competidor, región por región, actualizado solo.

Diseñé y construí la Discovery Stack — la plataforma que sigue, sola y cada quince días, por cuánto vende el retail farmacéutico cada producto en Brasil. Reúne los precios de cadenas competidoras y de bases públicas del gobierno, organiza todo en un solo lugar y lo entrega listo para que Masterfarma compare precio por producto, por región y por competidor.

Rol · Arquitectura de infraestructura, ingeniería de datos, orquestación, ingeniería inversa de APIs y scraping resiliente
Alcance · Proyecto de punta a punta · en producción
En resumen, para quien decide
El problema

Masterfarma necesitaba saber por cuánto venden los competidores cada medicamento, en cada región — pero ese precio estaba disperso en varios sitios y bases del gobierno, cada uno en su formato, imposible de seguir a mano.

Lo que hizo LNData

Construimos una plataforma que recolecta esos precios sola, cada quince días, reúne todo en un solo lugar y lo entrega listo para comparar por producto, región y competidor.

El resultado

La red pasó a ver el precio real practicado en 14 estados en un panel único y a decidir precio y compra con base en números actualizados — sin planillas manuales y sin depender de que nadie digite.

Rede Masterfarma
4
fuentes de datos monitoreadas
14
estados con precio regional real
~80 mil
EANs por ventana de 30 días
quincenal
cadencia automatizada
5
pipelines orquestados en cascada
~869
categorías mapeadas entre las fuentes
64
tasks de scraping en paralelo por run
millones
de observaciones de precio en el data warehouse
La ingeniería detrás — para quien quiere el detalle técnico

Arquitectura

La plataforma recolecta de múltiples fuentes con técnicas distintas, normaliza y conforma todo en un data warehouse columnar orientado a OLAP y entrega el resultado como comparación de precios entre competidores, fuentes gubernamentales y regiones.

Fuentes de datos
  • Drogaraia · 14 estados · GraphQL inverso
  • Preço Popular · VTEX Intelligent Search
  • Nota Paraná · API gub.
  • Menor Preço Brasil · SVRS-SC autenticada
Plataforma de datos
Orquestación Airflow · CeleryExecutor
Data warehouse ClickHouse (OLAP)
Scraping resiliente · contenerizada · nginx TLS
Consumo
  • Dashboards de BI · Superset
  • Comparación por EAN, región y competidor
  • Modelo unificado · cadenas + fuentes gub.

Fuentes monitoreadas

Dos cadenas competidoras y dos bases gubernamentales de menor precio — cada una exige una técnica de recolección propia, todas convergiendo hacia el mismo modelo de datos.

Competidor · cadena nacional

Drogaraia en 14 estados

Catálogo completo con precio regional real por código postal, EAN, marca, principio activo y dosis — vía interceptación de tráfico de red y GraphQL inverso.

Competidor · plataforma VTEX

Preço Popular vía Intelligent Search

Ingeniería inversa de la API de búsqueda de VTEX, con fallback de ordenación y descubrimiento dinámico de categorías, guardado en el mismo modelo de Drogaraia.

Base gubernamental · PR

Menor precio vía factura electrónica (Paraná)

API pública de Menor Preço / Nota Paraná consultada por GTIN y región, sembrada por el propio catálogo ya recolectado — el pipeline se retroalimenta.

Base gubernamental · SC

Menor precio autenticado (Santa Catarina)

API SVRS / gov.br con Bearer token, búsqueda por latitud/longitud y radio, y alerta automatizada cuando la credencial se acerca a su expiración.

Ingeniería aplicada

Las decisiones técnicas que hacen la recolección precisa y resistente — no una prueba de concepto, sino una plataforma que corre sola en producción.

Interceptación de red, no scraping de DOM

En vez de raspar HTML frágil, la recolección escucha las respuestas de red y extrae los datos directo del JSON de la propia aplicación (__NEXT_DATA__, GraphQL) — robusto a cambios de layout.

Sesiones geolocalizadas por código postal

La automatización abre y confirma el código postal de cada estado y persiste la sesión del navegador, capturando el precio regional correcto sin repetir el handshake en cada categoría.

Paralelismo determinista

Dynamic Task Mapping y chunking por hash dividen ~80 mil EANs en porciones estables, procesadas en paralelo, con rate limiting por Pool para no sobrecargar la fuente.

Producción · Resiliencia & operación

Hecha para correr sin niñera

El scraping en producción falla todo el tiempo — los sitios cambian, las APIs limitan, las sesiones caen. La plataforma trata la falla como caso esperado: aísla lo que se rompió, se recupera sola y deja rastro de lo que pasó.

Retry en tres capas

Retry de la task, retry por página con estrategias progresivas y un gate de sesión que salta una región entera con elegancia cuando falla — sin tumbar el run.

Rate limiting real

Airflow Pools limitan la concurrencia contra cada sitio objetivo independientemente del paralelismo del clúster, manteniendo la recolección dentro de lo que la fuente tolera.

Modo dry-run accionable

Una Airflow Variable enciende un modo de prueba (1 categoría / 1 región / 1 página) para validar cambios directo en producción, con seguridad y sin disparar el downstream.

Observabilidad de fallas

Toda falla se registra en una tabla de errores estructurada — empresa, lugar, ruta, error — en vez de solo romper la task, con diagnóstico de throttling por tipo.

Airflow PoolsTaskGroupsDynamic Task MappingVariablescron

Impacto

Precios de competidores y de bases gubernamentales, antes dispersos e invisibles, ahora viven en una única fuente analítica — comparables por EAN.

Precio regional real: la plataforma ve el valor practicado en cada uno de los 14 estados, y no un precio nacional genérico.

Modelo de datos unificado — cadenas competidoras y bases gub. en la misma tabla — habilita comparación directa con consultas rápidas sobre millones de filas.

Recolección autónoma y auditable: pipelines encadenados corren solos dos veces al mes, con traza de errores y alertas de credencial, exigiendo mínima intervención.

Stack de la plataforma

PythonAirflow (Celery)ClickHousePostgreSQLRedisPlaywrightDockernginx

¿Necesitas monitorear precios o recolectar datos en la web?

De la ingeniería inversa de APIs al scraping resiliente en producción, con data warehouse y BI al final — cuéntanos qué necesitas seguir y volvemos con alcance, plazo y entregables.

Hablar con LNData