Actualizada al 2026-06-05
Metodología
Cómo Musu Alpa recolecta, valida y archiva datos públicos. Cadencia por vertical, salvaguardas de calidad, y los gaps que explícitamente no cubrimos en V1.
Principio general
Todas las fuentes son públicas. No accedemos a APIs propietarias, no compramos datos cerrados de terceros, no rascamos información detrás de paywall. La cobertura es exactamente lo que existe accesible al público en internet costarricense — más una capa de archivo histórico que la web abierta no preserva.
La metodología completa de cada scraper es interna por seguridad operacional, pero la lista de fuentes y la cadencia están documentadas en /fuentes.
Cadencia por vertical
Autos
- Cadencia
- Reindexación cada 24 horas por fuente
- Fuentes
- crautos, Encuentra24, Facebook Marketplace, vendedor particular vía /vender
- Historia
- ~3 meses de snapshots; cada listado se re-snapshotea diariamente hasta que sale del mercado
Materiales de construcción
- Cadencia
- Reindexación diaria por retailer
- Fuentes
- Construplaza, EPA, El Lagar, Novex
- Historia
- ~1 año de snapshots; ~5–10k SKUs activos a través de retailers
Inmobiliario
- Cadencia
- Reindexación diaria (cuando está activo)
- Fuentes
- propiedades.cr, Century 21 — actualmente pausados
- Historia
- ~6 meses de snapshots en archivo histórico
Salvaguardas de calidad
Reglas explícitas que aplicamos sobre cada ingesta. Auditables.
Deduplicación cross-source
Cada listado de autos pasa por un canonicalizador que compara VIN, año, marca, modelo, kilometraje y precio entre fuentes. Los duplicados quedan agrupados bajo un canonical_listing_id; la vista expone offers[] con la atribución por fuente.
Marca de removido (removed_at)
Cuando una fuente deja de listar una fila previamente vista, anotamos removed_at en lugar de borrar. Distribuciones de días-en-mercado y curvas de inventario son derivables sin reescribir historia.
Detección de schema drift
Cada scraper compara su payload contra un schema esperado por fuente. Cambios en estructura disparan una alerta antes de contaminar el archivo. Runbook completo en audit_data_quality (Phase 1.9 interno).
Atribución por fila
Cada fila del dashboard carga source_name + retrieved_at. Defendible ante auditorías sin pre-procesamiento posterior.
Validación de URL en boundaries
URLs externas (fotos de listados, links de fuentes) pasan por safeHttpsUrl() antes de aparecer en JSON-LD o og:image. Mitiga SSRF y prompt-injection vía data envenenada.
Lo que NO tenemos
Nombrar las brechas es parte de la metodología. No queremos vender algo que no entregamos.
Precios de transacción cerrada en autos
Tenemos precios listados + días en mercado, NO precio de venta final. Es el techo de cualquier dato público en Costa Rica, incluyendo lo que reporta AGADCR. Implicación: valuaciones son por comparables, no por venta histórica.
FMCG / retail de consumo
Aliss, Automercado, Walmart CR existen en sandbox legacy, no en producción. Cualquier oferta anclada en FMCG es Phase X, no V1.
Datos de importación y aduanas
El scraper de Hacienda existe en sandbox; activación es downstream. No hay analíticas de sustitución de importación en V1.
Forecasts modelados
Índices crudos sí; modelos econométricos con propiedades estadísticas garantizadas son entregable de Análisis Personalizado, no del Dashboard estándar.
Inmobiliario fuera de GAM
Cobertura concentrada en Gran Área Metropolitana. Zona norte, atlántica y Guanacaste tienen muestras delgadas mientras FB Marketplace inmobiliario está pausado.
Cumplimiento legal
Cumplimos con la Ley 8968 de Protección de la Persona frente al Tratamiento de sus Datos Personales. No procesamos datos personales sensibles; los listados públicos no incluyen identidad del vendedor más allá del nombre comercial cuando ya está publicado.
Para preguntas legales o requerimientos regulatorios: contacto comercial.
Cambios en esta metodología
Revisión trimestral. Cuando agregamos una fuente, activamos un vertical o cambiamos una regla de validación, la edición aparece en el registro arriba y se anuncia en el Informe Trimestral del cuarto siguiente.