Declaração de imposto de renda alemã
Aviso: este é um modelo, não é aconselhamento fiscal. É uma estrutura inicial para sua própria declaração, construída a partir da experiência de um domicílio e verificada em relação aos textos legais mencionados em
references/thresholds.jsonna data indicada. A legislação tributária muda todos os anos e cada caso é diferente. A habilidade pode estar incorreta, incompleta ou desatualizada. Você é responsável pelo que declara. Verifique cada valor pessoalmente e consulte um Steuerberater (consultor fiscal) ou um Lohnsteuerhilfeverein (associação de ajuda no imposto sobre salários) para casos complexos. Sem garantia (consulte LICENSE). Adapte as regras, perguntas e limites à sua própria situação antes de confiar neles.
O modelo propõe e explica. Scripts verificam o que podem verificar. Um humano assina e envia.
Nenhum valor entra na declaração porque o modelo acredita nele. Ele entra quando
scripts/check_receipts.py o encontra em seu documento de origem e
scripts/limits.py aplicou os limites que cobre. Os scripts cobrem um conjunto
de regras comuns, não toda a lei tributária; qualquer coisa fora deles é uma
pergunta para o usuário. Decisões de julgamento
(este serviço de assinatura é profissional?) são registradas como uma pergunta para o humano,
nunca decididas silenciosamente.
Escopo e limites (leia primeiro)
- Para a declaração do próprio usuário, ou uma declaração conjunta com seu cônjuge. Ajudar terceiros com seus impostos como negócio é reservado a profissionais licenciados na Alemanha (§§ 2, 5 StBerG; § 6 lista as exceções restritas, como ajuda não remunerada para parentes). Não ofereça isso.
- Este é um modelo, não aconselhamento fiscal. Diga isso uma vez, claramente, quando o usuário começar, antes da entrevista.
- Os números específicos do ano vêm de
references/thresholds.json, cada um com uma fonte oficial. Se o ano estiver faltando lá, pare e verifique-o de uma fonte oficial (consultereferences/official-sources.md) antes de adicioná-lo. - Nunca envie. O agente pode preencher formulários no ELSTER ou software fiscal se o usuário pedir, mas o envio é sempre o clique do usuário.
Modos
- Declaração anual: o fluxo de trabalho completo abaixo.
- Verificação mensal: consulte
references/monthly.md. Execute nos primeiros dias de cada mês sobre os pagamentos, notas fiscais e e-mails do mês anterior. - Verificação da notificação de lançamento: compare o Steuerbescheid com
o que foi declarado, liste cada diferença e o prazo para objeção
(Einspruch: um mês após a notificação ser considerada entregue, § 355 AO).
Consulte
references/workflow.md, etapa 6.
Fluxo de trabalho anual (portões, em ordem)
Cada etapa tem um portão. Não passe por um portão apenas com base no julgamento do modelo.
- Entrevista. Faça as 12 perguntas de triagem em
references/interview.json, uma ou duas de cada vez, em palavras simples. As respostas são sim, não ou não tenho certeza (não tenho certeza conta como sim). Em seguida, executepython3 scripts/interview.py --answers answers.json(ou--askem um terminal). A saída lista, por área aberta, as perguntas de acompanhamento, os documentos a reunir, as categorias do razão para seus custos e os formulários prováveis. Não pule uma área porque o usuário não a mencionou. Portão: todas as 12 respondidas. - Reunir. Pergunte primeiro o ano fiscal. Reúna a declaração e
notificação do ano anterior, todos os certificados, notas fiscais,
extratos bancários e cartas do escritório de impostos em uma pasta local.
Use
references/intake-checklist.md. Portão: cada seção da lista de verificação tem uma resposta explícita (valor, sim/não, nenhum). - Proteger. Trabalhe na pasta local do usuário. Nunca peça ou armazene senhas; o usuário faz login. Mantenha IDs fiscais, IBANs e nomes fora de qualquer arquivo que seja sincronizado ou compartilhado. Portão: o usuário confirmou onde os dados estão e quem pode vê-los.
- Tarefa de teste (contratar o agente). Antes do novo ano, leia a notificação do ano anterior e descubra o que foi perdido ou cortado. Relate com a página e linha. Portão: o usuário verifica a descoberta em relação ao papel.
- Construir o razão. Uma linha por custo declarado em
ledger-YYYY.csv(colunas emscripts/limits.py --help). Ordene as linhas comreferences/deduction-guide.md. Itens de uso misto recebem umwork_sharee um motivo por escrito. - Verificar (scripts, não opinião).
python3 scripts/check_receipts.py ledger-YYYY.csv --root FOLDERCada valor deve ser encontrado em seu documento. Digitalizações são lidas com OCR quando o tesseract está instalado. Uma linha que falha é corrigida ou marcada como um valor derivado com seu cálculo escrito ao lado.python3 scripts/limits.py ledger-YYYY.csv --year YYYYAplica cotas, tetos, o montante fixo, o limite de ativos de baixo valor e a regra do ano de pagamento. Linhas sinalizadas vão para o usuário como perguntas.- Apartamento alugado:
python3 scripts/afa.py split|eligible|schedule ...Portão: ambos os scripts saem com código 0 (emlimits.pyapenas linhas com statusapprovedpassam), ou cada sinalização restante tem uma resposta por escrito.
- Preencher, revisar, enviar. Mapeie os totais verificados para os
formulários (
references/output-template.md). O usuário revisa cada campo e envia. Após a notificação de lançamento chegar, execute a verificação da notificação.
Regras de saída
- Lidere com o resultado: restituição ou valor devido, e o que ainda o bloqueia.
- Mostre a saída do script, não uma paráfrase dela.
- Marque cada estimativa como estimativa.
- Para termos alemães, forneça o inglês entre parênteses na primeira vez.
Arquivos
scripts/interview.py+references/interview.json: 12 perguntas de triagem -> lista de coletascripts/check_receipts.py: o valor deve aparecer em seu documento de origemscripts/limits.py: limites legais por ano, por pessoascripts/afa.py: cota do edifício, elegibilidade de depreciação de 5 %, plano de depreciaçãoscripts/monthly_scan.py: CSV bancário + notas fiscais + .eml -> relatório mensalreferences/thresholds.json: valores do ano com fontes oficiaisreferences/deduction-guide.md: o que conta e como decidirreferences/workflow.md: os portões em detalhe, a verificação da notificação de lançamentoreferences/monthly.md: a rotina mensal e como agendá-lareferences/intake-checklist.md,references/output-template.mdreferences/official-sources.mdexamples/: razão e recibos inventados para experimentar ambas as verificações em um minutotests/:python3 -m unittest discover -s tests