Plataforma Lean para Análisis y Calidad de Datos Financieros
FinLogic is a Lean Financial Data Quality and Analytics Platform designed to ingest, validate, transform and analyze financial datasets with a focus on data integrity, reproducibility and operational simplicity.
Los analistas financieros y equipos Quant consumen datos provenientes de múltiples fuentes, pero gran parte de su tiempo se pierde validando, limpiando y transformando información cruda antes de poder realizar análisis reales.
FinLogic busca reducir ese esfuerzo mediante una plataforma ligera y tolerante a fallos que permita:
- Ingestar datos financieros masivos.
- Validar la calidad en tiempo real y rechazar anomalías (Data Quality Engine).
- Almacenar información analítica sin costos operacionales (DuckDB-Native).
- Calcular métricas financieras (VAN, TIR, VaR).
- Exponer resultados mediante APIs claras.
- Equipos Quant / Data Scientists: Que necesitan ingestar datos de mercado sucios, obtener métricas de calidad y tener un backend robusto para sus modelos.
- Fintechs en etapa MVP: Que requieren persistencia histórica, control de anomalías y cálculos básicos desde el día 1.
- Arquitectos de Software: Buscando un blueprint de referencia para sistemas de Data Quality y Finanzas.
- Motor de Calidad (Ingesta): Endpoint
/ingesttolerante a fallos. Valida la integridad, clasifica anomalías (ej. precios negativos, símbolos faltantes) y genera reportes de "Quality Score". - Warehousing Analítico: Almacenamiento eficiente columnar (DuckDB) para consultas rápidas sobre series de tiempo directas en el sistema de archivos.
- Motor Financiero: endpoints API optimizados para cálculos vectorizados (Valor Presente, Tasa Interna de Retorno, Volatilidad/VaR).
- Auditabilidad y Resiliencia: Los datos crudos se conservan, y los corruptos van a una Dead Letter Queue (DLQ).
- High Frequency Trading (HFT): No está diseñado para latencias de microsegundos.
- Ejecución de Órdenes: No conecta con brokers para emitir compra/venta real.
- Contabilidad Ledger: No es un ERP ni lleva libros contables de doble entrada.
El sistema sigue una filosofía de "Ingesta Ligera, Análisis Pesado":
- Ingest Layer: Puntos de entrada para datos de mercado (Market Quotes).
- Storage Layer (DuckDB): El corazón del sistema. Un warehouse embebido OLAP que permite queries SQL complejas sobre archivos locales (parquet/ndjson/csv) con rendimiento extremo.
- Compute Layer (FastAPI): Servicio que expone capacidades analíticas. Realiza cálculos financieros sobre los datos del warehouse bajo demanda, delegando la carga pesada al motor columnar de DuckDB.
Estado: Alpha / MVP - Refactorizado a Modelo Lean. La infraestructura está consolidada para minimizar la fragmentación y maximizar la reutilización de código.
Roadmap Corto Plazo:
- Core Banking Logic consolidado (VAN, TIR).
- Motor ETL unificado y paramétrico.
- Persistencia nativa en DuckDB.
- Soporte Multi-moneda explícito.
- Dashboard de Observabilidad (Grafana + Prometheus).
& .venv\Scripts\Activate.ps1python -m unittest discover -v services/cashflow/testsdocker-compose up --buildSe ha realizado una refactorización profunda para reducir la fragmentación del código:
- Consolidación de Agentes: Reemplazo de roles fragmentados por un Agente Generalista unificado en
docs/agents.md. - Super-Skills: Fusión de múltiples habilidades técnicas en 3 Super-Skills paramétricas (
DataLifecycle,BusinessIntelligence,SystemReliability) detalladas endocs/skills.md. - Motor ETL Unificado: Fusión de
load_to_csv,load_to_duckdbyetl_runneren un únicoplatform/etl/engine.py. - Core Analytics: Movida toda la lógica de
cashflow/core.pyy analíticas demain.pyhaciautils.pypara una API más limpia. - Test Lean: Reducción de 6 archivos de prueba dispersos a 2 archivos temáticos robustos.
- Refactor de lectura de mercado:
services/cashflow/src/main.pyahora delega carga, filtros y resumen en helpers reutilizables deservices/cashflow/src/utils.py. - Hardening de modo DuckDB: si
USE_DUCKDB=1,DATA_FILEdebe terminar en.duckdb; en caso contrario, la API respondeHTTP 400con detalle explícito. - Cobertura ampliada: se agregaron pruebas para ruta DuckDB (
offset, rango temporal y validación de configuración forzada), además de test de contrato API para error400. - Validación final: suite
services/cashflow/testsen verde con 13 tests.
- Precisión Numérica: Reemplazo global de
floatporDecimalen el Core y la API para garantizar exactitud matemática en las operaciones de VAN e TIR. - Paginación Maximizada: Pushdown nativo del parámetro
OFFSETdirectamente a las consultas de DuckDB (read_prices_duckdb), mitigando problemas de memoria con datasets masivos. - Endpoint de Ingesta (Batch-over-HTTP): Nuevo endpoint
POST /ingestprotegido y con validación Pydantic que permite inyectarMarketQuotey almacenarlo endata/raw/incoming.ndjson. - Resiliencia ETL (DLQ): El motor
engine.pyahora implementa una Dead Letter Queue volcando cualquier registro corrupto adata/rejected/error.ndjsonen lugar de ignorarlo silenciosamente. - Validación final: Suite de pruebas extendida (
test_api.py,test_logic.py) en verde con 15 tests en 0.3s.
Contacto: Solicita próximas tareas a implementar o priorización para que las ejecute.