Declaración de la renta alemana
Aviso legal: esto es una plantilla, no asesoría fiscal. Es una estructura de inicio para tu propia declaración, construida a partir de la experiencia de un hogar y verificada contra los textos legales enlazados en
references/thresholds.jsonen la fecha indicada allí. La ley fiscal cambia cada año y cada caso es diferente. La habilidad puede ser incorrecta, incompleta o estar desactualizada. Eres responsable de lo que presentes. Verifica cada cifra por ti mismo y consulta a un Steuerberater (asesor fiscal) o a un Lohnsteuerhilfeverein (asociación de ayuda en el impuesto sobre el salario) para casos complejos. Sin garantía (ver LICENSE). Adapta las reglas, preguntas y límites a tu propia situación antes de confiar en ellos.
El modelo propone y explica. Los scripts verifican lo que pueden verificar. Un humano firma y envía.
Ninguna cifra entra en la declaración porque el modelo lo crea. Entra cuando scripts/check_receipts.py la encuentra en su documento fuente y scripts/limits.py ha aplicado los límites que cubre. Los scripts cubren un conjunto de reglas comunes, no toda la ley fiscal; cualquier cosa fuera de ellos es una pregunta para el usuario. Las decisiones subjetivas (¿es este un gasto de suscripción laboral?) se escriben como una pregunta para el humano, nunca se deciden en silencio.
Alcance y límites (léeme primero)
- Para la propia declaración del usuario, o una declaración conjunta con su cónyuge. Ayudar a terceros con sus impuestos como negocio está reservado a profesionales autorizados en Alemania (§§ 2, 5 StBerG; § 6 enumera las excepciones limitadas, como la ayuda no remunerada a familiares). No lo ofrezcas.
- Esto es una plantilla, no asesoría fiscal. Dilo una vez, claramente, cuando el usuario comience, antes de la entrevista.
- Los números específicos del año provienen de
references/thresholds.json, cada uno con una fuente oficial. Si el año falta allí, detente y verifícalo desde una fuente oficial (verreferences/official-sources.md) antes de agregarlo. - Nunca enviar. El agente puede llenar formularios en ELSTER o software fiscal si el usuario lo pide, pero el envío siempre es el clic del usuario.
Modos
- Declaración anual: el flujo de trabajo completo a continuación.
- Escaneo mensual: ver
references/monthly.md. Ejecuta los primeros días de cada mes sobre los pagos, facturas y correos electrónicos del mes anterior. - Verificación de la liquidación: compara el Steuerbescheid con lo presentado, lista cada diferencia y el plazo para una objeción (Einspruch: un mes después de que la liquidación se considera entregada, § 355 AO). Ver
references/workflow.md, paso 6.
Flujo de trabajo anual (compuertas, en orden)
Cada paso tiene una compuerta. No pases una compuerta solo con el juicio del modelo.
- Entrevista. Haz las 12 preguntas de selección en
references/interview.json, una o dos a la vez, en palabras sencillas. Las respuestas son sí, no o no estoy seguro (no estoy seguro cuenta como sí). Luego ejecutapython3 scripts/interview.py --answers answers.json(o--asken una terminal). La salida lista, por área abierta, las preguntas de seguimiento, los documentos a recopilar, las categorías del libro contable para sus costos y los formularios probables. No omitas un área porque el usuario no la mencionó. Compuerta: las 12 respondidas. - Recopilar. Pregunta primero el año fiscal. Reúne la declaración y liquidación del año pasado, todos los certificados, facturas, extractos bancarios y cartas de la oficina de impuestos en una carpeta local. Usa
references/intake-checklist.md. Compuerta: cada sección de la lista de verificación tiene una respuesta explícita (valor, sí/no, ninguno). - Asegurar. Trabaja en la carpeta local del usuario. Nunca pidas ni almacenes contraseñas; el usuario inicia sesión. Mantén los ID fiscales, IBAN y nombres fuera de cualquier archivo que se sincronice o comparta. Compuerta: el usuario confirmó dónde están los datos y quién puede verlos.
- Tarea de prueba (contratar al agente). Antes del nuevo año, lee la liquidación del año pasado y encuentra lo que se omitió o recortó. Infórmalo con la página y la línea. Compuerta: el usuario verifica el hallazgo contra el documento en papel.
- Construir el libro contable. Una fila por costo reclamado en
ledger-YYYY.csv(columnas enscripts/limits.py --help). Ordena las filas conreferences/deduction-guide.md. Los artículos de uso mixto obtienen unwork_sharey una razón escrita. - Verificar (scripts, no opinión).
python3 scripts/check_receipts.py ledger-YYYY.csv --root FOLDERCada monto debe encontrarse en su documento. Los escaneos se leen con OCR cuando tesseract está instalado. Una fila que falla se corrige o se marca como cifra derivada con su cálculo escrito junto a ella.python3 scripts/limits.py ledger-YYYY.csv --year YYYYAplica participaciones, topes, la suma global, el límite de activos de bajo valor y la regla del año de pago. Las filas marcadas van al usuario como preguntas.- Piso alquilado:
python3 scripts/afa.py split|eligible|schedule ...Compuerta: ambos scripts salen con 0 (enlimits.pysolo pasan las filas con estadoapproved), o cada bandera restante tiene una respuesta escrita.
- Llenar, revisar, enviar. Mapea los totales verificados a los formularios (
references/output-template.md). El usuario revisa cada campo y envía. Después de que llegue la liquidación, ejecuta la verificación de la liquidación.
Reglas de salida
- Encabezar con el resultado: reembolso o cantidad adeudada, y qué lo bloquea todavía.
- Mostrar la salida del script, no una paráfrasis de ella.
- Marcar cada estimación como estimación.
- Para términos en alemán, dar el inglés entre paréntesis la primera vez.
Archivos
scripts/interview.py+references/interview.json: 12 preguntas de selección -> lista de recopilaciónscripts/check_receipts.py: el monto debe aparecer en su documento fuentescripts/limits.py: límites legales por año, por personascripts/afa.py: participación del edificio, 5 % de elegibilidad decreciente, plan de depreciaciónscripts/monthly_scan.py: CSV bancario + facturas + .eml -> informe mensualreferences/thresholds.json: valores anuales con fuentes oficialesreferences/deduction-guide.md: qué cuenta y cómo decidirreferences/workflow.md: las compuertas en detalle, la verificación de la liquidaciónreferences/monthly.md: la rutina mensual y cómo programarlareferences/intake-checklist.md,references/output-template.mdreferences/official-sources.mdexamples/: libro contable y recibos inventados para probar ambas comprobaciones en un minutotests/:python3 -m unittest discover -s tests