AYSA — Licitaciones de Obras
Licitaciones de obras de agua y saneamiento de AYSA, con estado y financiador.
Qué incluye
- 48 columnas documentadas
- Formato Parquet y CSV
- Cobertura ~2020 a presente
- Actualización diaria
- Acceso por descarga, API y MCP
- Schema versionado y trazable a la fuente
Casos de uso
- ¿Cuáles son las licitaciones AYSA abiertas hoy con mayor presupuesto?
- ¿Qué empresas adjudican más obras AYSA en los últimos 12 meses?
- ¿Cuál es el % promedio de bajo presupuesto en obras adjudicadas con financiamiento BID?
- ¿En qué partido del AMBA se concentra la mayor inversión histórica?
- ¿Cuántos días tarda en promedio una obra desde publicación hasta adjudicación, por categoría?
Columnas48
Limitaciones conocidas
Pueden invalidar un análisis ingenuo. Documentadas como parte del control de calidad.
AYSA devuelve currency con espacios y símbolos
El campo TipoMoneda en el JSON crudo viene como "$ " para
pesos y "U$S " para dólares. El normalizador
normalize_aysa_currency() mapea a ISO 4217 (ARS / USD)
antes de poblar moneda_presupuesto y moneda_adjudicacion.
Si se consume el bronze directamente hay que normalizar antes
de cualquier filter por moneda.
Localidad 'Varias' no tiene provincia_iso
28 valores en localidad, pero uno es "Varias" (obra
multi-partido). Para esa fila provincia_iso es NULL.
Cualquier rollup geográfico que use provincia_iso debe
decidir explícitamente si incluye o excluye estos casos
(típicamente excluir o aparte).
SCD Type 2: usar MAX(snapshot_date), no la última fila insertada
El dataset es append-on-change. Para obtener el estado vigente
de cada licitación, usar la matview v_aysa_lic_obras_latest
o MAX(snapshot_date) GROUP BY id_licitacion. Tomar ORDER BY created_at DESC LIMIT N produce vista parcial e incorrecta.
visible_en_fuente = false no implica anulada
AYSA a veces deja de listar licitaciones viejas sin marcarlas
como Anuladas. visible_en_fuente se setea a false cuando
la licitación desaparece del listing. Para el universo "vivo
en fuente" filtrar visible_en_fuente = true además del
estado relevante.
empresa_adjudicataria es free-form sin CUIT
AYSA publica la razón social como string libre — sin CUIT, sin normalización. Variantes ortográficas del mismo contratista pueden aparecer ("S.A.", "SA", "Sociedad Anónima"). Para ranking robusto agrupar con cuidado (normalizar mayúsculas, eliminar puntuación) o joinear contra un master CUIT externo.
Columnas en español: idioma de la fuente (WS3)
A diferencia de algunos datasets BCRA/INDEC donde las columnas
canonical son en inglés (porque sus fuentes usan términos
ambiguos o multilenguaje), AYSA expone su API JSON en español.
Por regla WS3 (PR #58) las columnas del dataset respetan el
idioma de la fuente. Mapping inglés legacy → español canónico
(migración 0048): tender_id → id_licitacion,
published_at → fecha_publicacion, status_name → estado,
category_name → categoria, granted_amount → monto_adjudicado,
winner_company_name → empresa_adjudicataria, etc. Si tu
pipeline tiene queries hardcoded con los nombres viejos, hay
que actualizarlos.