.policy-wrap { max-width: 780px; margin: 0 auto; padding: 2rem 1.5rem 4rem; } .policy-header { border-bottom: 2px solid var(--navy); padding-bottom: 1.25rem; margin-bottom: 2rem; } .policy-header h1 { font-size: 1.75rem; color: var(--navy); margin: 0 0 0.35rem; } .policy-header .policy-meta { font-size: 0.82rem; color: var(--muted); } .policy-lang-note { background: var(--amber-bg); border: 1px solid var(--amber-brd); border-radius: var(--r); padding: 0.75rem 1rem; font-size: 0.82rem; color: var(--amber-tx); margin-bottom: 2rem; line-height: 1.5; } .policy-section { margin-bottom: 2.25rem; } .policy-section h2 { font-size: 1.15rem; color: var(--navy); border-bottom: 1px solid var(--border); padding-bottom: 0.4rem; margin-bottom: 1rem; } .policy-section h3 { font-size: 0.95rem; color: var(--text); margin: 1.25rem 0 0.5rem; font-weight: 600; } .policy-section p { font-size: 0.88rem; line-height: 1.7; color: var(--text); margin-bottom: 0.75rem; } .policy-section ul { font-size: 0.88rem; line-height: 1.7; color: var(--text); margin: 0 0 0.75rem 1.25rem; padding: 0; } .policy-section li { margin-bottom: 0.3rem; } .policy-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; margin-bottom: 1rem; } .policy-table th { background: var(--navy); color: #fff; text-align: left; padding: 0.5rem 0.75rem; font-weight: 600; } .policy-table td { padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--border); vertical-align: top; line-height: 1.55; } .policy-table tr:nth-child(even) td { background: #f9f8f6; } .policy-table td:first-child { font-weight: 600; white-space: nowrap; color: var(--navy); } .badge-no { color: var(--green); font-weight: 700; } .badge-yes { color: var(--red); font-weight: 700; } .badge-7 { color: var(--blue); font-weight: 700; } .alert-box { background: var(--amber-bg); border: 1px solid var(--amber-brd); border-radius: var(--r); padding: 0.75rem 1rem; font-size: 0.84rem; line-height: 1.6; margin-bottom: 1rem; color: var(--text); } .alert-box strong { color: var(--amber-tx); } .rights-table td:first-child { white-space: normal; } .divider-lang { border: none; border-top: 3px double var(--navy); margin: 3rem 0; } .lang-banner { text-align: center; font-size: 1rem; font-weight: 700; color: var(--navy); margin-bottom: 2rem; letter-spacing: 0.03em; }
🇪🇸 Versión oficial · Español

Política de Privacidad

ran.accordant.eu · Última actualización: 14 de junio de 2026
Esta es la versión oficial de la política. La versión en inglés, disponible más abajo, es una traducción de cortesía. En caso de discrepancia, prevalece el texto en español.

1. Responsable del tratamiento

ResponsableJohan Hellman
ActividadProyecto personal de exploración de IA aplicada a finanzas y fiscalidad
Sitio web principalaccordant.eu
Contacto de privacidadrufus@accordant.eu
Delegado de Protección de DatosNo designado. Dado el carácter personal y la escala reducida del tratamiento, no es exigible conforme al artículo 37 RGPD ni al artículo 34 LOPDGDD.

Rán es una herramienta de elaboración propia, sin ánimo de lucro y de acceso restringido mediante código de invitación personal.

2. Qué datos tratamos y cómo se recogen

2.1 Datos que tú nos envías

Cuando subes tu declaración de la renta (borrador del Modelo 100 de la AEAT) y pulsas «Analizar», nos envías:

  • El contenido de uno o dos archivos PDF de tu declaración del IRPF.
  • El texto extraído de esos PDFs: nombre completo, NIF/NIE, domicilio fiscal, rendimientos del trabajo y del capital, datos de situación familiar y personal, deducciones aplicadas (incluidas las relativas a discapacidad), cuotas a ingresar o devolver, y cualquier otro dato que figure en la declaración.
  • El código de invitación utilizado (p.ej. RENTA-XXXX).
  • Tu preferencia de idioma (español o inglés).
⚠️ Datos de categorías especiales (Art. 9 RGPD): Las declaraciones de la renta pueden contener referencias a situaciones de discapacidad, grado de dependencia u otras circunstancias de salud a través de las deducciones solicitadas. Estos datos son categorías especiales de datos sensibles. Para poder enviar el análisis, el formulario requiere que marques una casilla de consentimiento expreso específica para estos datos. Puedes retirar ese consentimiento en cualquier momento; consulta la sección 6.

2.2 Datos técnicos generados automáticamente

DatoRegistro¿Se escribe en disco?
IP (archivos estáticos: HTML, CSS, JS)Log de acceso de nginx — comportamiento estándar del servidor web
IP (subida de PDFs — ruta /process)Noaccess_log off configurado explícitamente
IP (ruta /health)Noaccess_log off también activo
Limitación de tasa por IP (anti-abuso)Búfer RAM de nginxNo — uso transitorio en memoria
Metadatos operativos de cada análisisops_log.jsonl — ver sección 2.3

2.3 Registro operativo (ops_log.jsonl)

Al completarse cada análisis se anota una línea JSON con los siguientes campos:

CampoDescripción
tsMarca de tiempo UTC
code_usedCódigo de invitación utilizado
returns_uploadedNúmero de PDFs subidos (1 o 2)
file_size_bytesTamaño total de los archivos
response_time_msDuración del análisis
completedSi el análisis finalizó correctamente
input_tokens / output_tokens / cost_usdUso de tokens y coste estimado de la API

Naturaleza de estos datos: El registro no almacena el contenido de tu declaración. Sin embargo, si el código de invitación fue asignado nominalmente a una persona, el campo code_used puede constituir un identificador seudónimo que vincule la entrada con esa persona. Conforme al Art. 4(1) RGPD y al Considerando 26, estos datos se tratan como datos personales seudónimos.

3. Finalidades del tratamiento y base jurídica

FinalidadBase jurídica
Analizar la declaración y generar el informe explicativoConsentimiento — Art. 6.1.a RGPD
Tratamiento de datos de salud/discapacidad contenidos en la declaraciónConsentimiento explícito — Art. 9.2.a RGPD y Art. 9.2.a LOPDGDD (casilla específica en el formulario)
Registro operativo de metadatos (timestamps, tamaños, rendimiento, costes)Interés legítimo — Art. 6.1.f RGPD. El responsable necesita controlar la estabilidad técnica y los costes operativos. El impacto para el interesado es mínimo: sólo metadatos seudónimos de escaso valor identificador.
Limitación de tasa de acceso (protección frente a usos abusivos)Interés legítimo — Art. 6.1.f RGPD. Las IPs se usan en RAM durante la sesión; nunca se escriben en disco para este fin.

La provisión de datos es voluntaria pero necesaria para la prestación del servicio: sin el PDF y el código de invitación no es posible generar el análisis. No existe obligación legal ni contractual de proporcionarlos.

4. Arquitectura de retención cero y transferencia a Anthropic

4.1 En nuestro servidor: retención cero de contenido documental

Los PDFs que subes jamás se escriben en disco. El tratamiento es íntegramente en memoria (RAM):

  1. El archivo se recibe por HTTPS y se almacena en un búfer BytesIO de Python (RAM).
  2. Se extrae el texto con pdfplumber — sin crear archivos temporales en ningún momento.
  3. El texto extraído se envía a la API de Anthropic por HTTPS.
  4. El búfer se libera. El PDF y el texto dejan de existir en el servidor.
  5. El informe se transmite por streaming directamente a tu navegador y no se almacena.

Al cerrar la pestaña, no queda ningún contenido de tu declaración que recuperar.

4.2 Transferencia internacional a Anthropic (encargado del tratamiento, EE.UU.)

Encargado del tratamientoAnthropic PBC, 548 Market Street, San Francisco, CA 94104, EE.UU.
Instrumento de garantía (Art. 46 RGPD)Cláusulas Contractuales Tipo (CCT) — Decisión 2021/914 + Marco de Privacidad UE-EE.UU. (EU-US Data Privacy Framework)
Contrato de encargo (Art. 28 RGPD)Anthropic ofrece un Data Processing Addendum que cubre las exigencias del Art. 28.3 RGPD.
Evaluación de impacto de la transferencia (TIA)El responsable ha evaluado el riesgo residual. La transmisión de texto fiscal por HTTPS a un proveedor sujeto a CCT y DPF, con retención máxima de 7 días y sin uso para entrenamiento, se considera de riesgo residual bajo y proporcional al objetivo del servicio.
Retención por AnthropicLos registros de la API (texto enviado y respuesta) se conservan 7 días y se eliminan permanentemente. No se usan con fines comerciales.
Uso para entrenamientoAnthropic no utiliza las entradas ni salidas de su API para entrenar sus modelos. Esta es la política contractual aplicable a los usuarios de la API, no una configuración por defecto. Política de retención →
Retención Cero de Datos (ZDR)El responsable ha solicitado la activación de ZDR, que eliminaría incluso la ventana de 7 días. Esta sección se actualizará cuando el ZDR esté confirmado.

5. Evaluación de Impacto (EIPD/DPIA)

El responsable ha realizado una evaluación preliminar conforme al Art. 35 RGPD y a la lista de tratamientos que requieren EIPD de la AEPD (2019).

Factores de riesgo identificados: tratamiento de datos de categorías especiales (Art. 9), uso de IA generativa, transferencia internacional (EE.UU.).

Factores mitigantes relevantes: (a) escala mínima — acceso exclusivo por invitación personal, sin procesamiento masivo; (b) el contenido documental no se almacena; (c) no se toman decisiones automatizadas con efectos jurídicos; (d) el interesado inicia voluntariamente el análisis; (e) una EIPD formal no es exigible para personas físicas en tratamientos de pequeña escala análogos (Considerando 91 RGPD).

El responsable estima que el tratamiento en sus circunstancias actuales no alcanza el umbral que haría preceptiva una EIPD formal. Si la escala se ampliara materialmente (acceso público, procesamiento masivo), se realizará una EIPD completa antes de dicha ampliación.

6. Plazos de conservación y derechos

6.1 Plazos de conservación

Categoría de datoPlazo
Contenido del PDF y texto extraídoNinguno — liberado de RAM al finalizar la solicitud
Informe generadoNinguno — transmitido por streaming, no almacenado
Logs de acceso de nginx (IPs en archivos estáticos)Máximo 30 días — rotación automática
Registro operativo ops_log.jsonlMáximo 12 meses desde cada entrada; supresión antes del vencimiento
Registros de Anthropic7 días — política publicada del proveedor

6.2 Tus derechos

Conforme al RGPD (artículos 15–22) y a la LOPDGDD (artículos 12–18):

DerechoAplicación en este servicio
Acceso (Art. 15)Los únicos datos vinculables a ti son: el código de invitación asignado (si fue nominativo) y las entradas correspondientes en ops_log.jsonl.
Rectificación (Art. 16)Corrección de datos inexactos en el registro operativo.
Supresión (Art. 17)Eliminación de tus entradas en el registro operativo y/o IPs en logs de nginx.
Limitación (Art. 18)Suspensión del tratamiento mientras se resuelve una disputa.
Portabilidad (Art. 20)Metadatos del registro operativo en formato estructurado legible por máquina.
Oposición (Art. 21)Oposición al tratamiento basado en interés legítimo (registro operativo).
Retirada del consentimiento (Art. 7.3)Puedes retirar tu consentimiento en cualquier momento. Dado que el contenido de tu declaración no se almacena, la retirada implica en la práctica: (a) no volver a utilizar el servicio para futuros análisis; y (b) solicitar en su caso la supresión de las entradas del registro operativo. La retirada no afecta a la licitud del tratamiento ya realizado.

Para ejercer cualquiera de estos derechos, escribe a rufus@accordant.eu con el asunto «Derechos RGPD». Responderemos en el plazo máximo de un mes (prorrogable a tres meses en casos justificados), conforme al Art. 12 RGPD.

7. Tratamiento automatizado y decisiones automatizadas

Rán utiliza un modelo de IA (Claude, de Anthropic) para analizar el contenido de tu declaración. Esta actividad implica tratamiento automatizado de datos personales.

No se toman decisiones automatizadas con efectos jurídicos ni efectos significativos similares sobre ti en el sentido del Art. 22.1 RGPD. El informe es una explicación informativa. La decisión de presentar, modificar o reclamar la declaración corresponde íntegramente a ti, en su caso con asesoramiento de un profesional habilitado.

8. Cookies y tecnologías de seguimiento

Rán no utiliza cookies, localStorage, sessionStorage ni ninguna otra forma de almacenamiento persistente en tu dispositivo. No hay Google Analytics, píxeles de publicidad, redes de seguimiento ni scripts de terceros cargados desde CDN externas.

El código de invitación que introduces existe únicamente en la memoria del navegador mientras tienes la pestaña abierta y desaparece al cerrarla o recargarla. El único archivo JavaScript externo a la lógica de la aplicación (marked.min.js) se sirve localmente desde este servidor, sin comunicación con terceros.

9. Autoridad de control

Tienes derecho a presentar una reclamación ante la Agencia Española de Protección de Datos (AEPD):

  • Web: www.aepd.es
  • Sede: C/ Jorge Juan, 6, 28001 Madrid
  • Formulario en línea: www.aepd.es → «Sede electrónica» → «Reclamaciones»

Te animamos a dirigirte primero a nosotros en rufus@accordant.eu para resolver cualquier inquietud directamente.

10. Cambios en esta política

Los cambios relevantes se comunicarán mediante aviso en el sitio web y actualizando la fecha indicada al inicio. Los cambios que afecten a la base jurídica o a las transferencias internacionales requerirán, cuando proceda, un nuevo consentimiento. Esta política está siempre disponible en ran.accordant.eu/privacy.


🇬🇧 Courtesy translation · English

Privacy Policy

ran.accordant.eu · Last updated: 14 June 2026
The official version of this policy is the Spanish text above. This English translation is provided as a convenience for non-native Spanish speakers. In case of discrepancy, the Spanish text prevails.

1. Data controller

ControllerJohan Hellman
ActivityPersonal project exploring AI in finance and tax
Main websiteaccordant.eu
Privacy contactrufus@accordant.eu
Data Protection OfficerNot appointed. Given the personal nature and small scale of processing, one is not required under Article 37 GDPR or Article 34 LOPDGDD.

Rán is a personal, non-commercial tool with access restricted to individually invited users.

2. What data we process and how

2.1 Data you send when using the service

When you upload your Spanish income tax return (AEAT Modelo 100 borrador) and click "Analyse", you send us:

  • The content of one or two PDF files of your IRPF return.
  • Text extracted from those PDFs: full name, NIF/NIE, address, employment and investment income, family and personal situation, applied deductions (including disability-related), amount to pay or refund, and any other data in the return.
  • Your invitation code (e.g. RENTA-XXXX).
  • Your language preference (Spanish or English).
⚠️ Special category data (Article 9 GDPR): Tax returns may contain references to disability, dependency status, or other health circumstances through applied deductions. This is special category sensitive data. The form requires you to tick an explicit consent checkbox before submitting. You may withdraw that consent at any time; see section 6.

2.2 Automatically generated technical data

DataRecordWritten to disk?
IP (static files: HTML, CSS, JS)nginx access logYes — standard web server behaviour
IP (PDF uploads — /process)Noaccess_log off explicitly configured
IP (/health)Noaccess_log off also active
Rate-limiting by IP (anti-abuse)nginx RAM bufferNo — transient, never persisted
Operational session metadataops_log.jsonlYes — see section 2.3

2.3 Operational log (ops_log.jsonl)

One JSON line is appended per completed analysis:

FieldDescription
tsUTC timestamp
code_usedInvitation code used
returns_uploadedNumber of PDFs uploaded (1 or 2)
file_size_bytesTotal file size in bytes
response_time_msAnalysis duration in milliseconds
completedWhether the analysis finished successfully
input_tokens / output_tokens / cost_usdToken usage and estimated API cost

Nature of this data: The log does not store your return content. However, if the invitation code was individually assigned to a named person, code_used may constitute a pseudonymous identifier linking the entry to that person. Under GDPR Article 4(1) and Recital 26, this is treated as pseudonymous personal data.

3. Purposes and legal basis

PurposeLegal basis
Analysing the return and generating the reportConsent — Article 6(1)(a) GDPR
Processing health/disability data in the returnExplicit consent — Article 9(2)(a) GDPR and Article 9(2)(a) LOPDGDD (dedicated checkbox in the form)
Operational metadata logging (timestamps, sizes, performance, costs)Legitimate interest — Article 6(1)(f) GDPR. The controller needs to monitor technical stability and operational costs. Impact on the data subject is minimal: pseudonymous metadata of very low re-identification value.
Rate-limiting (abuse protection)Legitimate interest — Article 6(1)(f) GDPR. IPs are used in RAM for this purpose only; never written to disk.

Providing data is voluntary but necessary for the service: without the PDF and invitation code, no analysis can be produced. There is no legal or contractual obligation to provide them.

4. Zero-retention architecture and transfer to Anthropic

4.1 On our server: zero-retention of document content

The PDFs you upload are never written to disk. Processing is entirely in memory (RAM):

  1. The file is received over HTTPS and stored in a Python BytesIO buffer (RAM only).
  2. Text is extracted with pdfplumber — no temporary files are created.
  3. The extracted text is sent to Anthropic's API over HTTPS.
  4. The buffer is released. The PDF and extracted text no longer exist on the server.
  5. The report is streamed directly to your browser and is not stored.

When you close the tab, no document content from your return remains anywhere to retrieve.

4.2 International transfer to Anthropic (processor in the USA)

ProcessorAnthropic PBC, 548 Market Street, San Francisco, CA 94104, USA
Transfer safeguard (Art. 46 GDPR)EU Standard Contractual Clauses (SCCs) — Implementing Decision 2021/914 + EU–US Data Privacy Framework
Data Processing Agreement (Art. 28 GDPR)Anthropic provides a Data Processing Addendum covering the Article 28(3) GDPR requirements.
Transfer Impact Assessment (TIA)The controller has assessed residual transfer risk. Transmitting fiscal PDF text over HTTPS to an established AI provider bound by SCCs and DPF, with 7-day maximum retention and no model training use, is considered of low residual risk and proportionate.
Retention by AnthropicAPI logs retained for 7 days then permanently deleted. Security/anti-abuse functions only, not commercial use.
Use for trainingAnthropic does not use API inputs or outputs to train its models. This is the contractual policy applicable to API customers, not a default setting. Retention policy →
Zero Data Retention (ZDR)The controller has applied to Anthropic for ZDR activation, which would eliminate even the 7-day window. This section will be updated when confirmed.

5. Data Protection Impact Assessment (DPIA)

The controller has conducted a preliminary assessment under Article 35 GDPR and the AEPD's mandatory DPIA list (2019).

Risk factors identified: special category data (Art. 9), use of generative AI, international transfer (USA).

Mitigating factors: (a) minimal scale — personal invitation only, no mass processing; (b) document content is never stored; (c) no automated decisions with legal effects; (d) the data subject initiates the analysis voluntarily; (e) formal DPIA is not required for individual controllers at small scale (Recital 91 GDPR).

The controller considers that processing under current circumstances does not reach the threshold for a compulsory formal DPIA. If the service scale were to expand materially (public access, mass processing), a full DPIA will be conducted before such expansion.

6. Retention periods and your rights

6.1 Retention periods

CategoryPeriod
PDF content and extracted textNone — released from RAM when the request ends
Generated reportNone — streamed, not stored
nginx access logs (IPs for static files)Maximum 30 days — automatic rotation
Operational log ops_log.jsonlMaximum 12 months per entry; deletion before that limit
Anthropic logs7 days — processor's published policy

6.2 Your rights

Under GDPR (Articles 15–22) and LOPDGDD (Articles 12–18):

RightWhat it means for this service
Access (Art. 15)The only data linkable to you is: your invitation code (if nominative) and corresponding ops_log.jsonl entries.
Rectification (Art. 16)Correct inaccurate data in the operational log.
Erasure (Art. 17)Request deletion of your operational log entries and/or IPs in nginx logs.
Restriction (Art. 18)Request suspension of processing while a dispute is resolved.
Portability (Art. 20)Your operational log metadata in structured, machine-readable format.
Objection (Art. 21)Object to legitimate interest-based processing (operational log).
Withdrawal of consent (Art. 7(3))You may withdraw consent at any time. Because your return content is not stored, withdrawal means in practice: (a) not using the service for future analyses; and (b) if desired, requesting deletion of your operational log entries. Withdrawal does not affect the lawfulness of processing already carried out.

To exercise any of these rights, email rufus@accordant.eu with the subject "GDPR Rights". We will respond within one month (extendable to three in complex cases) under Article 12 GDPR.

7. Automated processing and automated decisions

Rán uses an AI model (Claude by Anthropic) to analyse the content of your tax return. This involves automated processing of personal data.

No automated decisions with legal effects or similarly significant effects are made about you within the meaning of Article 22(1) GDPR. The generated report is an informational explanation of your return's figures. The decision whether to file, amend, or challenge your return is entirely yours, where appropriate with advice from a qualified professional.

8. Cookies and tracking technologies

Rán does not use cookies, localStorage, sessionStorage, or any other form of persistent browser-side storage. There is no Google Analytics, advertising pixels, tracking networks, or third-party scripts loaded from external CDNs.

The invitation code you type exists only in browser memory while the tab is open, and is gone when you close or reload it. The only JavaScript file external to the application logic (marked.min.js) is served locally from this server — no communication with any third party occurs.

9. Supervisory authority

You have the right to lodge a complaint with the Agencia Española de Protección de Datos (AEPD), Spain's data protection authority:

  • Website: www.aepd.es
  • Address: C/ Jorge Juan, 6, 28001 Madrid, Spain
  • Online form: www.aepd.es → «Sede electrónica» → «Reclamaciones»

We would also welcome direct contact at rufus@accordant.eu before escalating.

10. Changes to this policy

Material changes will be communicated via a notice on the website and by updating the date above. Changes that affect the legal basis of processing or international transfers will require fresh consent where applicable. This policy is always available at ran.accordant.eu/privacy.