UIF — Resoluciones PLA/FT (corpus consolidado)
~213 resoluciones UIF antilavado desde 2002, con texto consolidado.
Qué incluye
- 17 columnas documentadas
- Formato Parquet y CSV
- Cobertura 2002 a presente
- Actualización mensual
- Acceso por descarga, API y MCP
- Schema versionado y trazable a la fuente
Casos de uso
- ¿Qué resoluciones UIF aplican a las entidades financieras y cuáles están vigentes?
- Trazá la cadena modificatoria de la Res. UIF 30/2017 (sujetos obligados de entidades financieras).
- ¿Qué resoluciones UIF rigen a los PSAV (proveedores de servicios de activos virtuales / cripto)?
- ¿Cuántas resoluciones UIF se emitieron por año desde 2010? ¿Hay picos post-FATF?
- ¿Qué resoluciones vigentes mencionan 'beneficiario final' en el título o asunto?
- Listá todas las resoluciones UIF que aplican a escribanos y que están vigentes.
Columnas17
Limitaciones conocidas
Pueden invalidar un análisis ingenuo. Documentadas como parte del control de calidad.
sujeto_obligado sólo poblado para el set vigente (~64 filas)
La tabla puente data_uif_pla_ft_resoluciones_sujetos contiene
únicamente las ~64 resoluciones vigentes auditadas. Las ~149
restantes (históricas / derogadas) NO tienen entrada en la puente.
Un LEFT JOIN desde la tabla principal traerá NULL en
sujeto_obligado para esas filas. Para queries de "qué rige hoy",
siempre filtrar WHERE r.estado = 'vigente' antes o después del
JOIN, o usar INNER JOIN si sólo interesan las vigentes.
estado sólo poblado para el set vigente (~64 filas)
El campo estado en la tabla principal también se llenó sólo para
las resoluciones vigentes auditadas. El resto de las ~149 históricas
tiene estado = NULL. No interpretar NULL como "sin estado conocido
que implique vigencia" — en este dataset NULL en estado significa
derogada/histórica no curada. Para listar todas las vigentes,
filtrar WHERE estado = 'vigente'.
texto_plano puede ser NULL hasta que corra el prewarm
El campo texto_plano se carga vía un batch asíncrono que fetchea
desde texto_actualizado_url (o texto_original_url como
fallback). En el snapshot inicial post-ingest puede estar NULL para
la mayoría de las filas. Verificar texto_plano_fetched_at IS NOT NULL
antes de filtrar por contenido del texto. Para full-text search
sobre título y asunto, el índice GIN idx_uif_resoluciones_fts
funciona aunque el texto plano esté NULL.
numero se guarda sin año — el año está en anio
El campo numero contiene sólo el número de resolución sin año
(ej. '30', '229'). El año está separado en el campo anio
(INTEGER). Para identificar unívocamente una resolución, usar la
combinación (numero, anio), ej. numero = '30' AND anio = 2017
para la Res. UIF 30/2017. No hacer CAST(numero AS INTEGER) para
ordenar sin verificar primero que no haya valores no numéricos.
Relación N:N requiere deduplicar si se trae a nivel resolución
Si se hace JOIN entre data_uif_pla_ft_resoluciones y la puente
data_uif_pla_ft_resoluciones_sujetos, una resolución que aplica
a 3 sujetos obligados aparecerá 3 veces. Para listar resoluciones
(sin expandir por sujeto), usar la tabla principal directamente o
agregar con COUNT(DISTINCT id_norma). Para listar sujetos de una
resolución, agrupar por id_norma con array_agg(sujeto_obligado).