Ir al contenido

Comparativa con Otras Aplicaciones

Para comprender las decisiones de ingeniería detrás de Criptofolio, resulta esclarecedor comparar su arquitectura técnica frente a las dos categorías dominantes en el sector del seguimiento de carteras y fiscalidad cripto:

  1. Trackers Convencionales de Código Abierto: Aplicaciones de escritorio o auto-alojadas basadas típicamente en bases de datos relacionales monolíticas (como PostgreSQL o SQLite monohilo) y cálculos en arrays en memoria en el cliente.
  2. Plataformas Comerciales SaaS en la Nube: Soluciones propietarias que exigen enviar todo el historial a servidores de terceros y utilizan algoritmos de cálculo cerrados.

Dimensión Técnica Criptofolio Trackers Convencionales Plataformas SaaS en la Nube
Modelo de Despliegue Local-First (Mono-usuario) Servidor Auto-Alojado / Desktop Multi-inquilino en Nube Cerrada
Privacidad y Seguridad 100% Local (Bóveda AES-256-GCM) Base relacional sin depuración RAM Datos en servidores de terceros
Motor Fiscal FIFO Global + Custodia Doble Partida Coste medio simple o FIFO ingenuo Algoritmos opacos
Transferencias Internas No tributables; jamás dividen lotes Emparejamiento por ventana de tiempo Frecuentes ventas y ganancias falsas
Motor de Cálculo DuckDB OLAP Columnar Vectorizado SQL relacional / Arrays en JS Workers remotos en la nube
Modelo de Precisión PreciseAmount (Cero Coma Flotante) Tipos number / Flotantes IEEE-754 Representación propietaria
Arquitectura Hexagonal Estricta (Puertos/Adaptadores) Monolito MVC o código acoplado a UI Monolitos o microservicios cerrados
Series Temporales Apache Parquet (Particionado Hive) Tablas SQL relacionales pesadas Data Lakes propietarios
Ingesta de Exchanges Perfiles de Formato Declarados Mapeo superficial de columnas Mapeadores genéricos
Diseño Visual Terminal Institucional Claro Componentes genéricos / Modo oscuro Dashboards de consumo general

1. Reconciliación de Transferencias frente a FIFO Global

Sección titulada «1. Reconciliación de Transferencias frente a FIFO Global»

Una innovación determinante en Criptofolio es la gestión de movimientos entre cuentas propias del usuario (por ejemplo, retirar fondos de un exchange a una billetera fría).

  • Cómo lo hacen otras aplicaciones: La mayoría de herramientas intentan emparejar salidas y entradas utilizando una ventana temporal heurística (ej. movimientos con menos de 1 o 2 horas de diferencia) y una tolerancia de cantidad. En la operativa con criptomonedas, esta heurística falla con frecuencia: la congestión de red, las demoras de retiro y las comisiones de gas rompen la igualdad exacta de importes y tiempos. Además, si ocurren dos transferencias idénticas sucesivas, los emparejamientos pueden cruzarse erróneamente.
  • Cómo lo hace Criptofolio: Criptofolio no recurre a conjeturas temporales. Calcula el FIFO Fiscal (global por activo) de forma completamente independiente al Ledger de Custodia por Partida Doble. Las transferencias internas únicamente añaden apuntes al ledger de custodia (qty_delta: -X en origen y +X en destino). El lote original de adquisición jamás se divide, conserva su coste unitario y su fecha para siempre, y no se produce ningún hecho imponible.

2. Dual-Database: SQLite Transaccional + DuckDB Vectorizado

Sección titulada «2. Dual-Database: SQLite Transaccional + DuckDB Vectorizado»

Otras herramientas suelen ejecutar todas sus operaciones dentro de una única base de datos relacional o procesan los cálculos en memoria mediante bucles de JavaScript en el navegador.

Cuando una cartera acumula miles de transacciones a lo largo de varios ejercicios fiscales:

  • Los cálculos en JavaScript congelan el hilo de la interfaz de usuario.
  • Los motores SQL relacionales sufren con joins acumulativos recursivos para el FIFO y con métricas temporales multi-año.

El enfoque de Criptofolio:

  1. SQLite (criptofolio_ledger.db): Especializado en persistencia transaccional ACID, registros de auditoría mediante triggers nativos y borrado lógico (soft-deletes).
  2. DuckDB (fiscal.duckdb): Conexión Zero-Copy (ATTACH ... TYPE SQLITE). DuckDB ejecuta Window Functions vectorizadas para materializar la cadena derivada de lotes y computar métricas estadísticas avanzadas (Sharpe, caídas ATH, valoraciones diarias) en milisegundos sin sobrecargar el disco.

3. Perfiles de Formato de Origen vs. Mapeo Superficial

Sección titulada «3. Perfiles de Formato de Origen vs. Mapeo Superficial»

Los ficheros CSV exportados por los exchanges presentan convenciones contradictorias:

  • Algunos exchanges exportan el coste de comisiones en euros aunque realmente descuentan la cantidad en tokens de la red.
  • Otros anotan un movimiento rellenando a la vez ambas columnas direccionales (amount_in y amount_out).
  • Otros mezclan operaciones Spot y Futuros en un mismo extracto sin etiquetas claras.

En lugar de recurrir a heurísticas en tiempo de ejecución o simples renombrados de columnas, Criptofolio utiliza Perfiles de Formato de Origen (packages/core-domain/src/domain/services/sourceProfile/). Las particularidades de cada exchange se declaran formalmente como perfiles de datos inmutables que se detectan mediante firmas de cabecera antes de procesar cualquier dato.


4. Garantía de Cero Pérdida de Precisión (PreciseAmount)

Sección titulada «4. Garantía de Cero Pérdida de Precisión (PreciseAmount)»

En finanzas, los errores de redondeo de coma flotante IEEE-754 (0.1 + 0.2 === 0.30000000000000004) provocan desfases patrimoniales acumulativos.

Criptofolio garantiza el aislamiento del dominio:

  • Los puertos del dominio solo aceptan cadenas tipadas PreciseAmount.
  • Las operaciones aritméticas se limitan a los Casos de Uso y al tipo DECIMAL(38,18) en DuckDB.
  • Todos los datos que cruzan la Capa Anti-Corrupción (ACL) son validados por expresiones regulares antes de tocar la lógica interna.