德國報稅 是做什麼的?
免責聲明:這是一個模板,而非稅務建議。 它僅為您建構自己的報稅申報提供一個起點,內容基於一個家庭的經驗,並依據
references/thresholds.json中所連結的法律條文(以該檔案標示的日期為準)進行檢查。稅法每年變動,且每個案例情況不同。此技能可能錯誤、不完整或過時。您需對所提交的內容負責。請自行核對每一項數字,若遇複雜案例,請諮詢稅務顧問 (Steuerberater) 或薪資稅務協助協會 (Lohnsteuerhilfeverein)。無任何擔保(請見授權條款)。在依賴此技能前,請根據您自身情況調整其規則、問題與限制。
模型提出並解釋。腳本則檢查它們能檢查的部分。最後由真人簽署並送出。
沒有任何數字是因為模型「相信」而被納入報稅申報。只有當 scripts/check_receipts.py 在其來源文件中找到該數字,且 scripts/limits.py 已套用其涵蓋的限制後,該數字才會被納入。這些腳本涵蓋了一組常見規則,而非完整稅法;超出其範圍的任何事項,都會成為一個需要詢問使用者的問題。像是「這個訂閱是否屬於工作用途?」這類的判斷,會被記錄下來作為給人類的問題,絕不會被暗地決定。
範圍與限制(請先閱讀)
- 僅限於使用者本人或其配偶的聯合申報。在德國,以營利為目的協助第三方處理稅務是特許專業人士的專屬業務(§§ 2, 5 StBerG;§ 6 列出了少數例外,例如無償協助親屬)。請勿提供此類服務。
- 這是一個模板,而非稅務建議。請在使用者開始時(即在訪談之前),明確、直接地告知一次。
- 與特定年份相關的數字來自
references/thresholds.json,每個數字均附有官方來源。如果該檔案中缺少該年份的資料,請在從官方來源驗證(請參閱references/official-sources.md)後再行新增。 - 絕不代為提交。若使用者要求,代理程式可在 ELSTER 或稅務軟體中填寫表格,但送出動作必須始終由使用者點擊。
模式
- 年度申報:完整工作流程如下。
- 每月掃描:請參閱
references/monthly.md。在每個月的頭幾天執行,掃描上個月的付款、發票與電子郵件。 - 稅單核對:將稅單 (Steuerbescheid) 與已申報的資料進行比較,列出所有差異,以及提出異議 (Einspruch) 的截止日期(稅單視為送達後一個月內,§ 355 AO)。請參閱
references/workflow.md,第 6 步驟。
年度工作流程(依序設有閘門)
每個步驟都有一個閘門。請勿僅憑模型的判斷就通過閘門。
- 訪談。 以簡單明瞭的詞語,每次一或兩個問題,逐一詢問
references/interview.json中的 12 個篩選問題。回答選項為「是」、「否」或「不確定」(「不確定」視同「是」)。然後執行python3 scripts/interview.py --answers answers.json(或在終端機中使用--ask參數)。輸出將針對每個適用的領域,列出後續問題、需收集的文件、其費用的分類帳類別以及可能需要的表格。即使使用者未提及某個領域,也不應跳過。 閘門: 12 個問題全部回答完畢。 - 收集。 首先詢問報稅年份。收集去年的報稅資料與稅單、所有證明文件、發票、銀行匯出資料以及稅務局的信件,並統一放到一個本地資料夾中。使用
references/intake-checklist.md。 閘門: 每個檢查清單項目都有一個明確的答案(數值、是/否、無)。 - 安全。 在使用者的本地資料夾中工作。絕不要求或儲存密碼;由使用者自行登入。確保稅號、IBAN 以及姓名不會出現在任何會同步或分享的檔案中。 閘門: 使用者已確認資料存放的位置以及誰可以看到它。
- 測試任務(聘用代理程式)。 在進入新年度之前,閱讀去年的稅單,找出哪些項目被遺漏或遭到刪減。回報時請附上頁碼與行號。 閘門: 使用者對照紙本核對該發現。
- 建立分類帳。 在
ledger-YYYY.csv中,每個申報費用一列(欄位說明請見scripts/limits.py --help)。依據references/deduction-guide.md排序各列。混合使用的項目需記錄work_share(工作使用比例)以及書面理由。 - 檢查(腳本為準,非意見)。
python3 scripts/check_receipts.py ledger-YYYY.csv --root FOLDER每一筆金額都必須能在其文件中找到。若已安裝 tesseract,掃描文件將透過 OCR 讀取。失敗的資料列要嘛修正,要嘛標記為衍生數字,並在旁邊寫下計算方式。python3 scripts/limits.py ledger-YYYY.csv --year YYYY套用使用比例、上限、總額扣除額、低價值資產限制以及支付年度規則。被標記的資料列將作為問題呈現給使用者。- 租賃房屋:
python3 scripts/afa.py split|eligible|schedule ...閘門: 兩個腳本都退出並返回 0(在limits.py中,只有狀態為approved的資料列通過),或者所有剩餘的標記都有書面回答。
- 填寫、審閱、送出。 將檢查後的總額對應到表格中(
references/output-template.md)。使用者審閱每個欄位並送出。收到稅單後,執行稅單核對。
輸出規則
- 先說結果:退稅或應繳金額,以及尚有哪些障礙。
- 顯示腳本的輸出,而非對其進行改寫。
- 每個估計值都必須明確標示為估計值。
- 對於德文術語,請在首次出現時提供英文 (English) 解釋。
檔案
scripts/interview.py+references/interview.json:12 個篩選問題 -> 收集清單scripts/check_receipts.py:金額必須出現在其來源文件中scripts/limits.py:每年、每人適用的法律限制scripts/afa.py:建築物比例、5% 遞減資格、折舊計畫scripts/monthly_scan.py:銀行 CSV + 發票 + .eml -> 每月報告references/thresholds.json:附有官方來源的年度數值references/deduction-guide.md:哪些費用可列舉及如何判斷references/workflow.md:閘門的詳細說明、稅單核對references/monthly.md:每月例行程序及如何排程references/intake-checklist.md、references/output-template.mdreferences/official-sources.mdexamples/:虛構的分類帳與收據,讓您能在一分鐘內嘗試兩種檢查tests/:python3 -m unittest discover -s tests