Skip to main content

Calculadora de casillas del modelo 100 a partir de PDFs de brokers

Project description

jelies/renta-calculator

tests License: MIT

CLI para calcular las casillas de la declaración de la renta española (modelo 100) a partir de los informes de Fidelity NetBenefits, DEGIRO y Koinly.

Aviso importante: los resultados generados por este programa son una ayuda para el cálculo y la cumplimentación del modelo 100 en Renta Web. Nunca deben presentarse directamente a Hacienda sin revisión previa. Los valores deben ser verificados por el usuario y, si procede, por un asesor fiscal, antes de incluirlos en la declaración. El programa puede contener errores, los PDFs de entrada pueden variar entre años, y la normativa fiscal puede cambiar. El autor no se hace responsable de declaraciones incorrectas.


Información general

Casillas calculadas

Casilla Concepto
0029 Rendimientos del capital mobiliario - Dividendos
0326–0340 Ganancias/pérdidas patrimoniales - Ventas de acciones
1800–1814 Ganancias/pérdidas patrimoniales - Venta de cryptos
0588 Deducción por doble imposición internacional
0033 Rendimientos de capital mobiliario - Staking/Rewards crypto
0034 Rendimientos de capital mobiliario - Airdrops crypto

Este programa es una herramienta de ayuda. El informe generado incluye notas fiscales detalladas por cada sección. Verifica siempre los resultados antes de presentar la declaración.

Entradas soportadas

  • Fidelity NetBenefits — "Custom transaction summary" (PDF descargado desde la web)
  • DEGIRO — "Informe Fiscal Anual" de flatexDEGIRO Bank AG (PDF)
  • Koinly — "Complete tax report" en español (PDF)
  • Koinly — "Informe de plusvalías para España" (PDF, opcional) — cuando está presente, sustituye los totales de adquisición/transmisión por activo por los valores oficiales del informe, evitando errores de redondeo acumulado

Tipos de cambio

Los tipos de cambio USD/EUR se obtienen automáticamente del Banco Central Europeo:

https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A


Uso de la herramienta

Instalación

Requiere Python 3.11+ y pipx.

pipx install renta-calculator

Para actualizar a la última versión:

pipx upgrade renta-calculator

Ejecutar

renta-calculator --input carpeta/ [--output fichero.html] [--year 2024]

Donde carpeta/ contiene los PDFs de Fidelity, DEGIRO y/o Koinly. No es necesario tenerlos todos — el programa detecta automáticamente el tipo de cada PDF y procesa los que encuentre.

Opción Descripción Default
--input / -i Directorio con los PDFs (o ruta a un PDF) requerido
--output / -o Fichero HTML de salida output/renta_{año}_{YYYYmmdd_HHMM}.html
--year / -y Año fiscal autodetectado del PDF
renta-calculator --input /ruta/a/mis/pdfs/
renta-calculator --input /ruta/a/mis/pdfs/ --output renta_2024.html --year 2024

Output

El programa genera un HTML autocontenido (sin dependencias externas) con:

  • Resumen de casillas con importes en EUR (cada concepto es un enlace que salta a su sección de detalle)
  • Detalle de cada transacción con trazabilidad al PDF original (página y fila)
  • Tipos de cambio BCE utilizados para cada conversión USD → EUR
  • Notas y advertencias fiscales
  • Botones de acción junto a los importes relevantes para facilitar la introducción y verificación de datos en Renta Web. Dos tipos:
    • 📋 Copiar: valores a introducir directamente en el modelo 100.
    • 👁 Verificar: valores que la Renta calcula automáticamente — para cuadrar contra el resultado una vez introducidos los datos (casillas 0336, 0337/0338, 0339, 0340 en ventas; total global de dividendos).
    • Shift+click en cualquier botón restaura su estado original sin copiar nada.
  • Toggles en la cabecera del informe: modo privado (difumina todos los importes, útil para compartir pantalla) y tema claro/oscuro; ambos se persisten en el navegador.

Limitaciones

  • Los parsers están ajustados a formatos concretos de PDF de cada broker. Pueden romperse si el broker cambia el formato en un año futuro.
  • Solo cubre las fuentes documentadas en "Entradas soportadas". Otros brokers o exchanges requieren añadir un parser nuevo (ver SPEC.md).
  • Los tipos de cambio se obtienen del BCE en tiempo real; si la API no está disponible, los cálculos en USD quedan sin convertir y se marcan como no calculados.

Desarrollo

Setup

Requiere uv.

git clone https://github.com/jelies/renta-calculator.git
cd renta-calculator
uv run renta-calculator --input samples/1-samples/

uv run crea el entorno virtual e instala las dependencias automáticamente la primera vez (usando uv.lock para versiones exactas).

Tests

uv run pytest

Datos de ejemplo

El repositorio incluye tres datasets de PDFs ficticios en samples/:

renta-calculator --input samples/1-samples/  # datos pequeños (original)
renta-calculator --input samples/2-big/      # ~100 operaciones por sección
renta-calculator --input samples/3-empty/    # sin operaciones (estados vacíos)

Los PDFs se regeneran con python scripts/generate_sample_pdfs.py.

Añadir un nuevo parser

Los parsers están registrados en src/renta/parsers/__init__.py. Para añadir soporte para otro broker, consulta la sección "Cómo añadir un nuevo parser" en SPEC.md.

Contribuir

Las contribuciones son bienvenidas. Abre un issue para reportar un bug o proponer una mejora, o un PR si ya tienes un fix.


Ejemplo de informe generado

Ver informe de ejemplo

Ejemplo de informe generado


Licencia

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

renta_calculator-1.0.2.tar.gz (502.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

renta_calculator-1.0.2-py3-none-any.whl (57.9 kB view details)

Uploaded Python 3

File details

Details for the file renta_calculator-1.0.2.tar.gz.

File metadata

  • Download URL: renta_calculator-1.0.2.tar.gz
  • Upload date:
  • Size: 502.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for renta_calculator-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c821cbf2955ebb86a7b8a3253ebed66c28ac14399884d0cb111710de38181b6f
MD5 d1b65d3d9995ed5d7a63d22cb1ec7a7b
BLAKE2b-256 3191102bf2f3496ed38aaed13c12c7b232924e8022cb8f6c99ba756d8a1d5abc

See more details on using hashes here.

Provenance

The following attestation bundles were made for renta_calculator-1.0.2.tar.gz:

Publisher: publish.yml on jelies/renta-calculator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file renta_calculator-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for renta_calculator-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c5d37c0924c2f5161fac3278dd71324d11e4fcc6ffb63ffef935f29ceae6be0a
MD5 99d379da50d5a5baefcd84b0cd28ae54
BLAKE2b-256 ee3c4401d5a293f474186b2e0d7bf7625473307a0b77fe2e8fefdf10582cc014

See more details on using hashes here.

Provenance

The following attestation bundles were made for renta_calculator-1.0.2-py3-none-any.whl:

Publisher: publish.yml on jelies/renta-calculator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page