income-tax
This skill should be used when the user needs to calculate their income tax (所得税), compute deductions, or import withholding slips. Trigger phrases include: "所得税を計算", "確定申告書を作成", "控除を計算", "源泉徴収票を取り込む", "所得税額", "納付額を計算", "還付額を計算", "第一表", "第二表", "申告書B", "所得控除", "税額控除".
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install kazukinagata-shinkoku-income-tax
Repository
Skill path: skills/income-tax
This skill should be used when the user needs to calculate their income tax (所得税), compute deductions, or import withholding slips. Trigger phrases include: "所得税を計算", "確定申告書を作成", "控除を計算", "源泉徴収票を取り込む", "所得税額", "納付額を計算", "還付額を計算", "第一表", "第二表", "申告書B", "所得控除", "税額控除".
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: kazukinagata.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install income-tax into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/kazukinagata/shinkoku before adding income-tax to shared team environments
- Use income-tax for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: income-tax
description: >
This skill should be used when the user needs to calculate their income tax
(所得税), compute deductions, or import withholding slips. Trigger phrases
include: "所得税を計算", "確定申告書を作成", "控除を計算",
"源泉徴収票を取り込む", "所得税額", "納付額を計算", "還付額を計算",
"第一表", "第二表", "申告書B", "所得控除", "税額控除".
---
# 所得税計算(Income Tax Calculation)
事業所得・各種控除から所得税額を計算するスキル。
settlement スキルで決算書の作成が完了していることを前提とする。
計算結果は `/e-tax` スキル(Claude in Chrome)で確定申告書等作成コーナーに入力する。
## 設定の読み込み(最初に実行)
1. `shinkoku.config.yaml` を Read ツールで読み込む
2. ファイルが存在しない場合は `/setup` スキルの実行を案内して終了する
3. 設定値を把握し、相対パスは CWD を基準に絶対パスに変換する:
- `db_path`: CLI スクリプトの `--db-path` 引数に使用
- `output_dir`: 進捗ファイル等の出力先ベースディレクトリ
- 各ディレクトリ: ファイル参照時に使用
### パス解決の例
config の `db_path` が `./shinkoku.db` で CWD が `/home/user/tax-2025/` の場合:
- `shinkoku tax calc-income --input /home/user/tax-2025/output/income_input.json`
## 進捗情報の読み込み
設定の読み込み後、引継書ファイルを読み込んで前ステップの結果を把握する。
1. `.shinkoku/progress/progress-summary.md` を Read ツールで読み込む(存在する場合)
2. 以下の引継書を Read ツールで読み込む(存在する場合):
- `.shinkoku/progress/06-settlement.md`
- `.shinkoku/progress/02-assess.md`
- `.shinkoku/progress/05-furusato.md`
3. 読み込んだ情報を以降のステップで活用する(ユーザーへの再質問を避ける)
4. ファイルが存在しない場合はスキップし、ユーザーに必要情報を直接確認する
## 基本方針
- settlement スキルで青色申告決算書が完成しているか確認してから開始する
- 所得の計算 → 控除の計算 → 税額の計算 の順序で進める
- 各ステップの計算結果をユーザーに提示し、確認を得る
- references/form-b-fields.md の各欄に正しく値を設定する
- 端数処理ルールを厳守する:
- 課税所得: 1,000円未満切捨て(国税通則法118条)
- 復興特別所得税: 1円未満切捨て(復興財源確保法13条)
- ㊺ 所得税及び復興特別所得税の額: 端数処理なし
- 申告納税額(納付の場合のみ): 100円未満切捨て(国税通則法119条)
- 還付金: 1円単位・切捨てなし(国税通則法120条)
## 前提条件の確認
所得税計算を開始する前に以下を確認する:
1. **青色申告決算書が完成しているか**: settlement スキルの出力を確認する
2. **納税者プロファイルの読み込み**: `skills/setup/scripts/profile.py get-taxpayer` で config から納税者情報を取得する
- 氏名・住所・税務署名 → 確定申告書等作成コーナーへの入力に使用
- 寡婦/ひとり親・障害者・勤労学生の状態 → 人的控除の計算に使用
3. **事業所得以外の所得**: 給与所得・雑所得・配当所得・一時所得等がある場合は情報を収集する
4. **源泉徴収票**: 給与所得がある場合は取り込みを案内する
5. **各種控除の適用状況**: 適用可能な控除を網羅的に確認する
6. **予定納税額**: assess で確認済みの予定納税額を取得する
- 未確認の場合は、前年の確定申告書(㊺欄)から判定する
- 予定納税額は源泉徴収税額とは別に管理する
7. **分離課税の確認**: 株式・FX の分離課税(第三表)は対象外。該当する場合は税理士への相談を案内する
## 必須確認チェックリスト(スキップ不可)
所得税計算を開始する前に、以下の項目が**すべて確認済み**であることを検証する。
config・引継書に記載がない項目は、ユーザーに直接確認してから先に進む。
- [ ] **家族構成**: 配偶者の有無・扶養親族の有無を確認済みか?
- 未確認 → ユーザーに確認し、ステップ1.5 で詳細を登録する
- 確認済み(該当なし)→ ステップ1.5 をスキップ可
- [ ] **住宅ローン控除**: 適用有無を確認済みか?
- 未確認 → ユーザーに確認する
- 適用あり(初年度)→ ステップ3.7 で明細書を作成する
- [ ] **予定納税**: 有無・金額を確認済みか?
- 未確認 → 前年の確定申告書(㊺欄)から判定するようユーザーに確認する
- 金額未確定 → `estimated_tax_payment` パラメータに正しい値を設定できるまで進まない
## ステップ1: 源泉徴収票の取り込み
給与所得がある場合、源泉徴収票からデータを取り込む。
### `import_data.py import-withholding` の呼び出し
```bash
shinkoku import import-withholding --input withholding_input.json
```
入力 JSON:
```json
{
"file_path": "path/to/withholding_slip.pdf"
}
```
出力:
```json
{
"payer_name": "支払者名",
"payment_amount": 5000000,
"deduction_amount": 3560000,
"income_tax_withheld": 100000,
"social_insurance": 700000,
"life_insurance": 50000,
"spouse_deduction": 0
}
```
#### 画像ファイルの場合: OCR 読み取り
`extracted_text` が空の場合(画像ファイルまたはスキャン PDF)、画像の読み取りは `/reading-withholding` スキルを使用する。
スキルの指示に従い、デュアル検証(2つの独立した読み取り結果の照合)を行って結果を取得する。
**結果照合:** 両方の読み取り結果から `payment_amount`, `withheld_tax`, `social_insurance` を比較する
**一致の場合:** そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告
**不一致の場合:** ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
- 差異のあるフィールドを明示する
- A を採用 / B を採用 / 手動入力 の3択を AskUserQuestion で提示する
**取り込み後の検算(必須):**
OCR 結果の整合性を検証するため、「所得控除の額の合計額」と各内訳の合計を照合する:
```
検算: 所得控除の額の合計額 ≟ 社会保険料等の金額 ← 小規模企業共済等掛金を含む(内数)
+ 生命保険料の控除額
+ 地震保険料の控除額
+ 配偶者(特別)控除の額
+ 扶養控除額 ← 人数×単価から算出(特定63万/老人48万or58万/その他38万)
+ 障害者控除 ← 人数×単価から算出(一般27万/特別40万/同居特別75万)
+ 寡婦控除(27万)またはひとり親控除(35万) ← 該当時
+ 勤労学生控除(27万) ← 該当時
+ 基礎控除の額 ← 源泉徴収票の記載額を使用。未記載なら所得と年度から算出
```
注意:
- 「(うち小規模企業共済等掛金の額)」は社会保険料等の金額の**内数**。別途加算すると二重計上になる
- 扶養控除・障害者控除は金額欄ではなく人数欄で記載されるため、人数×単価で算出する
- 基礎控除の額は源泉徴収票に記載があればその値を使う。未記載の場合は合計所得と年度に応じて算出する(令和7・8年は特例加算あり、令和9年以降は一律58万)
- **一致の場合:** 各フィールドの OCR 精度が確認できたものとして採用する
- **不一致の場合:** 差額を明示し、どのフィールドが誤読の可能性があるかユーザーに提示する。元画像と突き合わせて修正する
**その他の確認事項:**
1. 複数の勤務先がある場合は各社分を取り込む
2. 年末調整済みの控除を確認し、追加控除の有無を判定する
## ステップ1.5: 扶養親族・配偶者情報の確認
所得控除の計算前に、扶養親族の情報を収集する。
まず DB に登録済みのデータを確認し、不足があれば追加入力する。
### DB からの読み込み
1. `ledger.py get-spouse --db-path DB_PATH` で配偶者情報を取得する(登録済みの場合)
2. `ledger.py list-dependents --db-path DB_PATH` で扶養親族のリストを取得する(登録済みの場合)
### 未登録の場合の確認項目
1. **配偶者**: 配偶者の有無と年間所得金額を確認する
- 所得48万円以下 → 配偶者控除(38万円)
- 所得48万円超133万円以下 → 配偶者特別控除(段階的)
- 納税者の所得が1,000万円超 → 配偶者控除なし
- 確認後 `ledger.py set-spouse --db-path DB_PATH --input spouse.json` で DB に登録する
2. **扶養親族**: 以下の情報を収集する
- 氏名、続柄、生年月日、年間所得、障害の有無、同居の有無
- 16歳未満: 扶養控除なし(児童手当対象)
- 16歳以上: 一般扶養38万円
- 19歳以上23歳未満: 特定扶養63万円
- 70歳以上: 老人扶養48万円(同居58万円)
- 確認後 `ledger.py add-dependent --db-path DB_PATH --input dependent.json` で各人を DB に登録する
3. **マイナンバーの収集**(申告書B第二表に記載が必要):
- 配偶者のマイナンバー(12桁)
- 扶養親族(16歳以上)全員のマイナンバー
- 16歳未満の子供のマイナンバー(住民税に関する事項の記載に必要)
- 取扱注意: DB に保存するが、ツール出力やログには表示しない
4. **事業専従者の確認**:
- 配偶者が青色事業専従者として給与を受けている場合 → 配偶者控除の対象外
- 扶養親族が青色事業専従者・白色事業専従者の場合 → 扶養控除の対象外
- 該当する場合は控除計算から除外し、ユーザーに明示する
5. **障害者控除**: 扶養親族に障害がある場合
- 一般障害者: 27万円、特別障害者: 40万円、同居特別障害者: 75万円
**重要: 16歳未満の扶養親族も必ず登録する**
16歳未満の子供は扶養控除の対象外だが、以下の理由で申告書への記載が必要:
- 住民税の非課税限度額の判定(扶養人数に16歳未満も含む)
- 住民税の均等割の非課税判定
- 申告書B第二表「住民税に関する事項 - 16歳未満の扶養親族」欄への記載
`ledger.py add-dependent` で登録する際、16歳未満でもスキップせずに登録すること。
## ステップ1.6: iDeCo・小規模企業共済の確認
掛金払込証明書がある場合は `import_data.py import-deduction-certificate` で取り込むことができる。
1. iDeCo(個人型確定拠出年金)の年間掛金を確認する
- 小規模企業共済等掛金払込証明書から金額を確認
- 全額が所得控除(上限: 自営業者は年額81.6万円)
2. 小規模企業共済の掛金がある場合も同様に確認する
#### 画像ファイルの場合: OCR 読み取り
`extracted_text` が空の場合(画像ファイルまたはスキャン PDF)、画像の読み取りは `/reading-deduction-cert` スキルを使用する。
スキルの指示に従い、デュアル検証(2つの独立した読み取り結果の照合)を行って結果を取得する。
**結果照合:** 両方の読み取り結果から `annual_premium`, `certificate_type` を比較する
**一致の場合:** そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告
**不一致の場合:** ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
- 差異のあるフィールドを明示する
- A を採用 / B を採用 / 手動入力 の3択を AskUserQuestion で提示する
## ステップ1.7: 医療費明細の集計
医療費控除を適用する場合、明細を集計する。
### 医療費の登録・集計
1. `ledger.py list-medical-expenses --db-path DB_PATH --input query.json` で登録済み医療費明細を取得する
2. 未登録の医療費がある場合は `ledger.py add-medical-expense --db-path DB_PATH --input medical.json` で登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"date": "2025-03-15",
"patient_name": "山田太郎",
"medical_institution": "ABC病院",
"amount": 150000,
"insurance_reimbursement": 0,
"description": null
}
}
```
3. 集計結果(total_amount - total_reimbursement)を医療費控除の計算に使用する
## ステップ1.8: 事業所得の源泉徴収(支払調書)
取引先から受け取った支払調書の情報を登録する。
### 支払調書の取り込み
1. `import_data.py import-payment-statement --input payment_input.json` で支払調書PDF/画像からデータを抽出する
#### 画像ファイルの場合: OCR 読み取り
`extracted_text` が空の場合(画像ファイルまたはスキャン PDF)、画像の読み取りは `/reading-payment-statement` スキルを使用する。
スキルの指示に従い、デュアル検証(2つの独立した読み取り結果の照合)を行って結果を取得する。
**結果照合:** 両方の読み取り結果から `gross_amount`, `withholding_tax`, `payer_name` を比較する
**一致の場合:** そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告
**不一致の場合:** ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
- 差異のあるフィールドを明示する
- A を採用 / B を採用 / 手動入力 の3択を AskUserQuestion で提示する
2. `ledger.py add-business-withholding --db-path DB_PATH --input withholding.json` で取引先別の源泉徴収情報を登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"client_name": "取引先名",
"gross_amount": 1000000,
"withholding_tax": 102100
}
}
```
3. `ledger.py list-business-withholding --db-path DB_PATH --input query.json` で登録済み情報を確認する
4. 源泉徴収税額の合計を `business_withheld_tax` として所得税計算に使用する
## ステップ1.8.5: 税理士等報酬の登録
税理士・弁護士等に報酬を支払っている場合、報酬明細を登録する。
1. `ledger.py list-professional-fees --db-path DB_PATH --input query.json` で登録済みの税理士等報酬を確認する
2. 未登録の場合は `ledger.py add-professional-fee --db-path DB_PATH --input fee.json` で登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"payer_address": "支払者住所",
"payer_name": "税理士名",
"fee_amount": 300000,
"expense_deduction": 0,
"withheld_tax": 30630
}
}
```
3. 源泉徴収税額は `business_withheld_tax` に合算する
## ステップ1.9: 損失繰越の確認
前年以前に事業で損失が発生し、青色申告している場合、繰越控除を適用できる。
1. `ledger.py list-loss-carryforward --db-path DB_PATH --input query.json` で登録済みの繰越損失を確認する
2. 未登録の場合は `ledger.py add-loss-carryforward --db-path DB_PATH --input loss.json` で登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"loss_year": 2023,
"amount": 500000
}
}
```
3. 繰越損失の合計を `loss_carryforward_amount` として所得税計算に使用する
## ステップ1.10: その他の所得の確認(雑所得・配当所得・一時所得・年金所得・退職所得)
事業所得・給与所得以外の総合課税の所得を確認・登録する。
### 公的年金等の雑所得
公的年金等の収入がある場合、年金控除を計算して雑所得を求める。
1. 年金収入の有無を確認する
2. `skills/income-tax/scripts/tax_calc.py calc-pension` で公的年金等控除を計算する:
```bash
shinkoku tax calc-pension --input pension_input.json
```
入力 JSON:
```json
{
"pension_income": 2000000,
"is_over_65": true,
"other_income": 0
}
```
出力:
```json
{
"pension_income": 2000000,
"deduction_amount": 1100000,
"taxable_pension_income": 900000,
"other_income_adjustment": 0
}
```
3. `taxable_pension_income` を雑所得として `misc_income` に加算する
4. 令和7年改正: 65歳未満の最低保障額60万→70万、65歳以上の最低保障額110万→130万
### 退職所得
退職金を受け取った場合、退職所得を計算する。
1. 退職金の有無を確認する
2. `skills/income-tax/scripts/tax_calc.py calc-retirement` で退職所得を計算する:
```bash
shinkoku tax calc-retirement --input retirement_input.json
```
入力 JSON:
```json
{
"severance_pay": 10000000,
"years_of_service": 20,
"is_officer": false,
"is_disability_retirement": false
}
```
出力:
```json
{
"severance_pay": 10000000,
"retirement_income_deduction": 8000000,
"taxable_retirement_income": 1000000,
"half_taxation_applied": true
}
```
3. 退職所得は原則分離課税(退職時に源泉徴収済み)だが、確定申告で精算する場合もある
4. 役員等の短期退職(勤続5年以下)は1/2課税が適用されない
### 雑所得(miscellaneous)
副業の原稿料、暗号資産の売却益、その他の雑収入。
1. `ledger.py list-other-income --db-path DB_PATH --input query.json` で登録済み雑所得を確認する
2. 未登録の収入がある場合は `ledger.py add-other-income --db-path DB_PATH --input other_income.json` で登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"income_type": "miscellaneous",
"description": "収入の内容",
"revenue": 500000,
"expenses": 50000,
"withheld_tax": 51050,
"payer_name": "支払者名"
}
}
```
3. 雑所得 = 収入 - 経費(特別控除なし)
### 仮想通貨(暗号資産)
暗号資産の売却益は雑所得(総合課税)として申告する。
1. `ledger.py list-crypto-income --db-path DB_PATH --input query.json` で登録済み仮想通貨所得を確認する
2. 未登録の場合は `ledger.py add-crypto-income --db-path DB_PATH --input crypto.json` で取引所別に登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"exchange_name": "取引所名",
"gains": 300000,
"expenses": 10000
}
}
```
3. 合計を雑所得として total_income に加算する
### 配当所得(総合課税選択分)
総合課税を選択した配当は配当控除(税額控除)の対象となる。
1. `ledger.py list-other-income --db-path DB_PATH --input query.json` で `income_type: "dividend_comprehensive"` を確認する
2. 未登録の場合は `ledger.py add-other-income --db-path DB_PATH --input dividend.json` で登録する
3. 配当控除: 課税所得1,000万以下の部分 → 配当の10%、超える部分 → 5%
### 一時所得
保険満期金、懸賞金等の一時的な所得。
1. `ledger.py list-other-income --db-path DB_PATH --input query.json` で `income_type: "one_time"` を確認する
2. 未登録の場合は `ledger.py add-other-income --db-path DB_PATH --input one_time.json` で登録する
3. 一時所得 = max(0, (収入 - 経費 - 特別控除50万円)) × 1/2
### `calc_income_tax` への反映
上記のその他所得は以下のパラメータで `calc_income_tax` に渡す:
- `misc_income`: 雑所得合計(仮想通貨含む)
- `dividend_income_comprehensive`: 配当所得(総合課税選択分)
- `one_time_income`: 一時所得の収入金額(1/2 計算は内部で実施)
- `other_income_withheld_tax`: その他所得の源泉徴収税額合計
## ステップ1.11: (対象外)分離課税
分離課税(株式・FX の第三表)は対象外。該当する場合は税理士への相談を案内する。
## ステップ1.12: 社会保険料の種別別内訳の登録
所得控除の内訳書に種別ごとの記載が必要なため、社会保険料を種別別に登録する。
社会保険料の控除証明書がある場合は `import_data.py import-deduction-certificate` で取り込むことができる。
1. `ledger.py list-social-insurance-items --db-path DB_PATH --input query.json` で登録済み項目を確認する
2. 未登録の場合は `ledger.py add-social-insurance-item --db-path DB_PATH --input insurance.json` で種別ごとに登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"insurance_type": "national_health",
"name": "保険者名",
"amount": 300000
}
}
```
insurance_type: national_health / national_pension / national_pension_fund / nursing_care / labor_insurance / other
3. 合計額を `social_insurance` として控除計算に使用する
## ステップ1.13: 保険契約の保険会社名の登録
所得控除の内訳書に保険会社名の記載が必要なため、保険契約を登録する。
控除証明書の画像・PDFがある場合は `import_data.py import-deduction-certificate` で取り込むことができる。
取り込み後、抽出データに基づいて `ledger.py add-insurance-policy` で登録する。
1. `ledger.py list-insurance-policies --db-path DB_PATH --input query.json` で登録済み項目を確認する
2. 未登録の場合は `ledger.py add-insurance-policy --db-path DB_PATH --input policy.json` で登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"policy_type": "life_general_new",
"company_name": "保険会社名",
"premium": 80000
}
}
```
policy_type: life_general_new / life_general_old / life_medical_care / life_annuity_new / life_annuity_old / earthquake / old_long_term
3. 生命保険料は `life_insurance_detail` パラメータに、地震保険料は `earthquake_insurance_premium` に反映する
## ステップ1.14: ふるさと納税以外の寄附金の確認
政治活動寄附金、認定NPO法人、公益社団法人等への寄附金を確認する。
1. `ledger.py list-donations --db-path DB_PATH --input query.json` で登録済み寄附金を確認する
2. 未登録の場合は `ledger.py add-donation --db-path DB_PATH --input donation.json` で登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"donation_type": "npo",
"recipient_name": "寄附先名",
"amount": 50000,
"date": "2025-06-01",
"receipt_number": null
}
}
```
donation_type: political / npo / public_interest / specified / other
3. 寄附金控除の計算:
- **所得控除**: 全寄附金 - 2,000円(総所得金額の40%上限)
- **税額控除(政治活動寄附金)**: (寄附金 - 2,000円) × 30%(所得税額の25%上限)
- **税額控除(認定NPO等)**: (寄附金 - 2,000円) × 40%(所得税額の25%上限)
4. `calc_deductions` の `donations` パラメータに寄附金レコードのリストを渡す
## ステップ2: 所得控除の計算
### `tax_calc.py calc-deductions` の呼び出し
```bash
shinkoku tax calc-deductions --input deductions_input.json
```
入力 JSON:
```json
{
"total_income": 5000000,
"social_insurance": 700000,
"life_insurance_premium": 80000,
"earthquake_insurance_premium": 30000,
"medical_expenses": 200000,
"furusato_nozei": 50000,
"housing_loan_balance": 0,
"spouse_income": null,
"ideco_contribution": 276000,
"dependents": [],
"fiscal_year": 2025,
"housing_loan_detail": null,
"donations": null
}
```
出力 (DeductionsResult):
- `income_deductions`: 所得控除の一覧(basic_deduction, social_insurance_deduction, life_insurance_deduction, earthquake_insurance_deduction, ideco_deduction, medical_deduction, furusato_deduction, donation_deduction, spouse_deduction, dependent_deduction, disability_deduction)
- `tax_credits`: 税額控除の一覧(housing_loan_credit, political_donation_credit, npo_donation_credit)
- `total_income_deductions`: 所得控除合計
- `total_tax_credits`: 税額控除合計
**各控除の確認事項:**
- 基礎控除: 合計所得金額に応じた段階的控除(令和7年分の改正を反映、132万以下=95万)
- 社会保険料控除: 国民年金・国民健康保険・その他の年間支払額
- 生命保険料控除: 新旧制度 × 3区分(一般/介護医療/個人年金)で計算する
- `life_insurance_detail` パラメータで5区分の保険料を指定:
- `general_new`: 一般(新制度)、`general_old`: 一般(旧制度)
- `medical_care`: 介護医療(新制度のみ)
- `annuity_new`: 個人年金(新制度)、`annuity_old`: 個人年金(旧制度)
- 各区分の上限: 新制度 40,000円 / 旧制度 50,000円 / 合算上限 40,000円
- 3区分合計の上限: 120,000円
- 源泉徴収票に生命保険料5区分の記載がある場合はそのまま使用する
- 地震保険料控除: 地震保険(上限5万円)+ 旧長期損害保険(上限1.5万円)、合算上限5万円
- `old_long_term_insurance_premium` パラメータで旧長期損害保険料を指定可能
- 小規模企業共済等掛金控除: 3サブタイプ個別追跡
- iDeCo(個人型確定拠出年金)
- 小規模企業共済
- 心身障害者扶養共済
- `small_business_mutual_aid` パラメータで小規模企業共済掛金を指定
- 医療費控除: 支払額から保険金等の補填額を差し引き、10万円(または所得の5%)を超える部分
- **セルフメディケーション税制との選択適用**: OTC医薬品の購入額 - 12,000円(上限 88,000円)
- 医療費控除とセルフメディケーションは併用不可。有利な方を選択する
- 配偶者控除/特別控除: 配偶者の所得に応じて段階的に控除額が変動
- 扶養控除: 年齢区分に応じた控除額(一般38万/特定63万/老人48万or58万)
- 障害者控除: 障害の程度に応じた控除額
- **人的控除**(config の納税者情報から自動判定):
- 寡婦控除: 27万円(所得500万以下)
- ひとり親控除: 35万円(所得500万以下)
- 障害者控除(本人): 一般 27万円 / 特別 40万円
- 勤労学生控除: 27万円(所得75万以下)
- ふるさと納税: 寄附金 − 2,000円(確定申告ではワンストップ特例分も含める)
- 住宅ローン控除: 住宅区分別の年末残高上限と控除率0.7%(令和4年以降入居)
## ステップ3: 所得税額の計算
### `tax_calc.py calc-income` の呼び出し
```bash
shinkoku tax calc-income --input income_input.json
```
入力 JSON (IncomeTaxInput):
```json
{
"fiscal_year": 2025,
"salary_income": 5000000,
"business_revenue": 3000000,
"business_expenses": 1000000,
"blue_return_deduction": 650000,
"social_insurance": 700000,
"life_insurance_premium": 80000,
"earthquake_insurance_premium": 30000,
"medical_expenses": 0,
"furusato_nozei": 50000,
"housing_loan_balance": 0,
"spouse_income": null,
"ideco_contribution": 276000,
"withheld_tax": 100000,
"business_withheld_tax": 30000,
"estimated_tax_payment": 0,
"loss_carryforward_amount": 0
}
```
出力 (IncomeTaxResult):
- `salary_income_after_deduction`: 給与所得控除後の金額
- `business_income`: 事業所得
- `total_income`: 合計所得金額(繰越損失適用後)
- `total_income_deductions`: 所得控除合計
- `taxable_income`: 課税所得金額(1,000円未満切り捨て)
- `income_tax_base`: 算出税額
- `total_tax_credits`: 税額控除合計
- `income_tax_after_credits`: 税額控除後
- `reconstruction_tax`: 復興特別所得税(基準所得税額 x 2.1%)
- `total_tax`: 所得税及び復興特別所得税の額(端数処理なし)
- `withheld_tax`: 源泉徴収税額(給与分)
- `business_withheld_tax`: 事業所得の源泉徴収税額
- `estimated_tax_payment`: 予定納税額
- `loss_carryforward_applied`: 適用した繰越損失額
- `tax_due`: 申告納税額(= total_tax - withheld_tax - business_withheld_tax - estimated_tax_payment)
**寄附金控除の反映:**
ふるさと納税以外の寄附金控除(ステップ1.14で登録)は、`calc_deductions` の結果に含まれている。
`calc_income_tax` は内部で `calc_deductions` を呼び出すため、以下のパラメータが正しく渡されていれば自動的に反映される:
- `furusato_nozei`: ふるさと納税の寄附金合計
- 政治活動寄附金・認定NPO等の税額控除は `calc_deductions` の `donations` パラメータ経由で計算される
所得税計算前に `calc_deductions` を個別に呼び出す場合は、`donations` パラメータにステップ1.14で登録した寄附金レコードのリストを必ず渡すこと。
**青色申告特別控除の自動キャップ:**
`blue_return_deduction` は config の値をそのまま渡してよい。計算エンジンが事業利益を上限として自動キャップする(租特法25条の2)。
結果の `effective_blue_return_deduction` と `warnings` を必ず確認すること。
**計算結果の確認:**
1. 合計所得金額の内訳を表示する
2. `effective_blue_return_deduction` を確認し、自動調整があれば `warnings` の内容を表示する
3. 繰越損失が適用されている場合はその額を明示する
4. 所得税の速算表の適用が正しいか確認する
5. 復興特別所得税が正しく加算されているか確認する
6. 源泉徴収税額(給与分 + 事業分)が正しく控除されているか確認する
7. 予定納税額が正しく控除されているか確認する
8. 最終的な納付額(または還付額)を明示する
所得税の速算表・配偶者控除テーブル・住宅ローン限度額等は `references/deduction-tables.md` を参照。
## ステップ3.1: サニティチェック(必須)
`calc-income` の結果を自動検証する。このステップはスキップ不可。
### `tax_calc.py sanity-check` の呼び出し
```bash
shinkoku tax sanity-check --input sanity_input.json
```
入力 JSON:
```json
{
"input": { ... },
"result": { ... }
}
```
- `input`: ステップ3で `calc-income` に渡した IncomeTaxInput
- `result`: ステップ3で `calc-income` から返された IncomeTaxResult
出力 (TaxSanityCheckResult):
- `passed`: true/false
- `items`: チェック項目のリスト(severity, code, message)
- `error_count`: エラー件数
- `warning_count`: 警告件数
### 結果に応じた対応
- **error > 0**: 計算結果に問題があります。エラー内容を確認し、入力を修正してステップ3を再実行してください
- **warning > 0**: 警告内容をユーザーに提示し、確認してから続行してください
- **passed = true**: 問題なし。次のステップに進む
## ステップ3.5: 住宅ローン控除明細の DB 登録(該当者のみ)
住宅ローン控除(初年度)を適用する場合、詳細情報を DB に登録する。
1. `ledger.py add-housing-loan-detail --db-path DB_PATH --input housing.json` で住宅ローン控除の明細を登録する:
```json
{
"fiscal_year": 2025,
"detail": {
"housing_type": "new_custom",
"housing_category": "certified",
"move_in_date": "2024-03-15",
"year_end_balance": 30000000,
"is_new_construction": true,
"is_childcare_household": false,
"has_pre_r6_building_permit": false,
"purchase_date": "2024-01-20",
"purchase_price": 40000000,
"total_floor_area": 8000,
"residential_floor_area": 8000,
"property_number": null, // 不動産番号(13桁)を入力すると登記事項証明書の添付省略可(令和3年度改正)
"application_submitted": false
}
}
```
住宅区分別の年末残高上限テーブルは `references/deduction-tables.md` を参照。
## ステップ6: 計算結果サマリーの提示
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
所得税の計算結果(令和○年分)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 所得金額(総合課税)
事業所得: ○○○,○○○円
給与所得: ○○○,○○○円
雑所得: ○○○,○○○円(該当者のみ)
配当所得: ○○○,○○○円(総合課税分、該当者のみ)
一時所得: ○○○,○○○円(該当者のみ)
合計所得金額: ○○○,○○○円
■ 所得控除
社会保険料控除: ○○○,○○○円
生命保険料控除: ○○,○○○円
基礎控除: 480,000円
[その他の控除...]
所得控除合計: ○○○,○○○円
■ 税額計算
課税所得金額: ○○○,○○○円
算出税額: ○○○,○○○円
税額控除: ○○,○○○円
復興特別所得税: ○,○○○円
所得税及び復興特別所得税: ○○○,○○○円
源泉徴収税額: ○○○,○○○円
予定納税額: ○○,○○○円
---------------------------------
申告納税額: ○○,○○○円(納付 / 還付)
■ 次のステップ:
→ /consumption-tax で消費税の計算を行う
→ /e-tax で確定申告書等作成コーナーに入力する(Claude in Chrome)
→ /submit で提出準備を行う
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
## 引継書の出力
サマリー提示後、以下のファイルを Write ツールで出力する。
これにより、セッションの中断や Compact が発生しても次のステップで結果を引き継げる。
### ステップ別ファイルの出力
`.shinkoku/progress/07-income-tax.md` に以下の形式で出力する:
```
---
step: 7
skill: income-tax
status: completed
completed_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---
# 所得税計算・確定申告書作成の結果
## 所得金額の内訳
- 事業所得: {金額}円
- 給与所得: {金額}円
- 雑所得: {金額}円(該当者のみ、仮想通貨含む)
- 配当所得(総合課税): {金額}円(該当者のみ)
- 一時所得: {金額}円(該当者のみ)
- 合計所得金額: {金額}円
## 扶養親族・配偶者
- 配偶者控除/特別控除: {適用あり(控除額)/適用なし}
- 扶養控除: {適用あり(控除額、人数)/適用なし}
## iDeCo・小規模企業共済
- 小規模企業共済等掛金控除: {金額}円({iDeCo/小規模企業共済/なし})
## 医療費控除
- 適用: {あり/なし}
- 医療費控除額: {金額}円
## 事業所得の源泉徴収
- 源泉徴収税額(事業分): {金額}円
## 損失繰越控除
- 適用: {あり/なし}
- 繰越損失控除額: {金額}円
## 所得控除の内訳
| 控除項目 | 金額 |
|---------|------|
| 基礎控除 | {金額}円 |
| 社会保険料控除 | {金額}円 |
| 生命保険料控除 | {金額}円 |
| 地震保険料控除 | {金額}円 |
| 小規模企業共済等掛金控除 | {金額}円 |
| 医療費控除 | {金額}円 |
| 寄附金控除 | {金額}円 |
| 配偶者控除/特別控除 | {金額}円 |
| 扶養控除 | {金額}円 |
| 障害者控除 | {金額}円 |
| **所得控除合計** | **{金額}円** |
## 税額計算
- 課税所得金額: {金額}円
- 算出税額: {金額}円
- 税額控除(住宅ローン控除等): {金額}円
- 復興特別所得税: {金額}円
- 所得税及び復興特別所得税: {金額}円
- 源泉徴収税額(給与分): {金額}円
- 源泉徴収税額(事業分): {金額}円
- 予定納税額: {金額}円
- **申告納税額: {金額}円({納付/還付})**
## 次のステップ
/consumption-tax で消費税の計算を行う
/e-tax で確定申告書等作成コーナーに入力する(Claude in Chrome)
/submit で提出準備を行う
```
### 進捗サマリーの更新
`.shinkoku/progress/progress-summary.md` を更新する(存在しない場合は新規作成):
- YAML frontmatter: fiscal_year、last_updated(当日日付)、current_step: income-tax
- テーブル: 全ステップの状態を更新(income-tax を completed に)
- 次のステップの案内を記載
### 出力後の案内
ファイルを出力したらユーザーに以下を伝える:
- 「引継書を `.shinkoku/progress/` に保存しました。セッションが中断しても次のスキルで結果を引き継げます。」
- 次のステップの案内
## Additional Resources
### Reference Files
詳細なテーブル・パラメータは以下を参照:
- **`references/form-b-fields.md`** — 確定申告書B様式の各欄の対応
- **`references/deduction-tables.md`** — 所得税速算表、配偶者控除テーブル、基礎控除テーブル、住宅ローン限度額、生命保険料控除等
## 免責事項
- この計算は一般的な所得税の計算ロジックに基づく
- 分離課税(株式・FX)は対象外 — 第三表の計算は行わない
- 白色申告(収支内訳書)は対象外
- 不動産所得、譲渡所得(不動産売却等)、退職所得は現時点で未対応
- 最終的な申告内容は税理士等の専門家に確認することを推奨する
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### references/deduction-tables.md
```markdown
# 控除・税率テーブル集
income-tax スキルで参照する各種テーブル。
## 所得税の速算表
| 課税所得金額 | 税率 | 控除額 |
|-------------|------|--------|
| 〜195万円 | 5% | 0円 |
| 195万超〜330万円 | 10% | 97,500円 |
| 330万超〜695万円 | 20% | 427,500円 |
| 695万超〜900万円 | 23% | 636,000円 |
| 900万超〜1,800万円 | 33% | 1,536,000円 |
| 1,800万超〜4,000万円 | 40% | 2,796,000円 |
| 4,000万超 | 45% | 4,796,000円 |
## 住宅ローン控除の年末残高上限
### R4-R5入居(令和4年〜5年 / 2022〜2023年)
| 住宅区分 | 新築 | 中古 |
|---------|------|------|
| 認定住宅(長期優良/低炭素) | 5,000万円 | 3,000万円 |
| ZEH水準省エネ住宅 | 4,500万円 | 3,000万円 |
| 省エネ基準適合住宅 | 4,000万円 | 3,000万円 |
| 一般住宅 | 3,000万円 | 2,000万円 |
### R6-R7入居(令和6年〜7年 / 2024〜2025年)一般世帯
| 住宅区分 | 新築 | 中古 |
|---------|------|------|
| 認定住宅(長期優良/低炭素) | 4,500万円 | 3,000万円 |
| ZEH水準省エネ住宅 | 3,500万円 | 3,000万円 |
| 省エネ基準適合住宅 | 3,000万円 | 3,000万円 |
| 一般住宅 | 対象外 | 2,000万円 |
### R6-R7入居 子育て世帯・若者夫婦世帯
| 住宅区分 | 新築 | 中古 |
|---------|------|------|
| 認定住宅(長期優良/低炭素) | 5,000万円 | 3,000万円 |
| ZEH水準省エネ住宅 | 4,500万円 | 3,000万円 |
| 省エネ基準適合住宅 | 4,000万円 | 3,000万円 |
| 一般住宅 | 対象外 | 2,000万円 |
- 一般住宅の新築は R6以降の建築確認では原則対象外
- R5以前に建築確認済みの一般住宅: 特例上限2,000万円(控除期間10年)
控除率: 0.7%(年末残高上限 x 0.7%)
## 配偶者控除・配偶者特別控除テーブル
### 納税者所得 900万円以下
| 配偶者所得 | 控除額 |
|-----------|--------|
| 58万円以下 | 38万円(配偶者控除) |
| 58万超〜95万円 | 38万円 |
| 95万超〜100万円 | 36万円 |
| 100万超〜105万円 | 31万円 |
| 105万超〜110万円 | 26万円 |
| 110万超〜115万円 | 21万円 |
| 115万超〜120万円 | 16万円 |
| 120万超〜125万円 | 11万円 |
| 125万超〜130万円 | 6万円 |
| 130万超〜133万円 | 3万円 |
| 133万超 | 0円 |
### 納税者所得 900万超〜950万円
上記テーブルの約2/3の控除額。最大26万円。
### 納税者所得 950万超〜1,000万円
上記テーブルの約1/3の控除額。最大13万円。
### 納税者所得 1,000万超
配偶者控除・配偶者特別控除なし。
## 基礎控除テーブル(令和7年分)
| 合計所得金額 | 控除額 |
|-------------|--------|
| 132万円以下 | 95万円(本則58万+加算37万) |
| 132万超〜336万円 | 88万円(本則58万+加算30万) |
| 336万超〜489万円 | 68万円(本則58万+加算10万) |
| 489万超〜655万円 | 63万円(本則58万+加算5万) |
| 655万超〜2,350万円 | 58万円(本則のみ) |
| 2,350万超〜2,400万円 | 48万円 |
| 2,400万超〜2,450万円 | 32万円 |
| 2,450万超〜2,500万円 | 16万円 |
| 2,500万超 | 0円 |
## 扶養控除テーブル
| 区分 | 年齢 | 控除額 |
|------|------|--------|
| 年少扶養 | 16歳未満 | 0円(児童手当対象) |
| 一般扶養 | 16歳以上 | 38万円 |
| 特定扶養 | 19歳以上23歳未満 | 63万円 |
| 老人扶養(別居) | 70歳以上 | 48万円 |
| 老人扶養(同居) | 70歳以上 | 58万円 |
## 障害者控除
| 区分 | 控除額 |
|------|--------|
| 一般障害者 | 27万円 |
| 特別障害者 | 40万円 |
| 同居特別障害者 | 75万円 |
## 生命保険料控除
### 新制度(平成24年1月以降の契約)
| 支払保険料 | 控除額 |
|-----------|--------|
| 2万円以下 | 全額 |
| 2万超〜4万円 | 支払額/2 + 10,000円 |
| 4万超〜8万円 | 支払額/4 + 20,000円 |
| 8万円超 | 40,000円(上限) |
### 旧制度(平成23年12月以前の契約)
| 支払保険料 | 控除額 |
|-----------|--------|
| 2.5万円以下 | 全額 |
| 2.5万超〜5万円 | 支払額/2 + 12,500円 |
| 5万超〜10万円 | 支払額/4 + 25,000円 |
| 10万円超 | 50,000円(上限) |
- 新旧合算の1区分上限: 40,000円
- 3区分(一般/介護医療/個人年金)合計上限: 120,000円
```
### references/form-b-fields.md
```markdown
# 確定申告書B様式 記載欄(Form B Fields)
確定申告書B(第一表・第二表)の各欄と、対応するデータの対応表。
`calc_income_tax` / `calc_deductions` の出力値を各欄に正しくマッピングするための参照資料。
## 第一表(表面)
### 上段: 基本情報
| 欄 | 項目名 | データソース |
|----|--------|-------------|
| — | 住所 | ユーザー入力 |
| — | 氏名 | ユーザー入力 |
| — | 生年月日 | ユーザー入力 |
| — | 個人番号(マイナンバー) | ユーザー入力 |
| — | 種類(青色 / 分離 / 修正 等) | assess判定結果 |
| — | 税務署名 | ユーザー入力(所轄税務署) |
### 収入金額等
| 欄番号 | 項目名 | データソース |
|--------|--------|-------------|
| ア | 事業(営業等) | 青色申告決算書の売上金額 |
| イ | 事業(農業) | 該当なしの場合は空欄 |
| ウ | 不動産 | 不動産所得がある場合 |
| エ | 利子 | 該当なしの場合は空欄 |
| オ | 配当 | 配当所得がある場合 |
| カ | 給与 | 源泉徴収票の「支払金額」 |
| キ | 雑(公的年金等) | 年金の源泉徴収票 |
| ク | 雑(その他) | 暗号資産・FX等の収入 |
| ケ | 一時 | 一時所得の収入金額 |
### 所得金額等
| 欄番号 | 項目名 | 計算方法 |
|--------|--------|----------|
| ① | 事業(営業等) | 青色申告決算書の所得金額(特別控除後) |
| ② | 事業(農業) | 該当なしの場合は空欄 |
| ③ | 不動産 | 不動産収入 − 必要経費 |
| ④ | 利子 | 利子収入金額 |
| ⑤ | 配当 | 配当収入 − 株式等の負債利子 |
| ⑥ | 給与 | 給与収入 − 給与所得控除 |
| ⑦ | 雑(公的年金等) | 年金収入 − 公的年金等控除 |
| ⑧ | 雑(その他) | 雑収入 − 必要経費 |
| ⑨ | 一時 | (収入 − 経費 − 50万円)× 1/2 |
| ⑫ | 合計 | ①〜⑨の合計 |
### 所得から差し引かれる金額(所得控除)
| 欄番号 | 項目名 | データソース |
|--------|--------|-------------|
| ⑬ | 社会保険料控除 | calc_deductions.social_insurance_deduction |
| ⑭ | 小規模企業共済等掛金控除 | calc_deductions.small_enterprise_deduction |
| ⑮ | 生命保険料控除 | calc_deductions.life_insurance_deduction |
| ⑯ | 地震保険料控除 | calc_deductions.earthquake_insurance_deduction |
| ⑰ | 寡婦控除・ひとり親控除 | 該当する場合の控除額 |
| ⑱ | 勤労学生控除 | 該当する場合: 27万円 |
| ⑲ | 障害者控除 | 該当する場合の控除額 |
| ⑳ | 配偶者控除・配偶者特別控除 | calc_deductions.spouse_deduction |
| ㉑ | 扶養控除 | calc_deductions.dependent_deduction |
| ㉒ | 基礎控除 | calc_deductions.basic_deduction |
| ㉓ | 雑損控除 | 該当する場合の控除額 |
| ㉔ | 医療費控除 | calc_deductions.medical_deduction |
| ㉕ | 寄附金控除 | calc_deductions.donation_deduction |
| ㉙ | 合計 | ⑬〜㉕の合計 |
### 税額の計算
| 欄番号 | 項目名 | 計算方法 |
|--------|--------|----------|
| ㉚ | 課税される所得金額 | ⑫ − ㉙(1,000円未満切り捨て) |
| ㉛ | 上の㉚に対する税額 | 速算表を適用 |
| ㉜ | 配当控除 | 該当する場合 |
| ㉝ | 住宅借入金等特別控除 | housing_loan_credit |
| ㊱ | 差引所得税額 | ㉛ − ㉜ − ㉝(マイナスの場合は0) |
| ㊲ | 復興特別所得税額 | ㊱ × 2.1% |
| ㊳ | 所得税及び復興特別所得税の額 | ㊱ + ㊲ |
| ㊹ | 源泉徴収税額 | 源泉徴収票の税額合計 + 予定納税額 |
| ㊺ | 申告納税額 | ㊳ − ㊹(100円未満切り捨て) |
| ㊻ | 第3期分の税額(納付) | ㊺がプラスの場合 |
| ㊼ | 還付される税金 | ㊺がマイナスの場合(絶対値) |
## 第二表(裏面)
### 所得の内訳
| 項目 | 記載内容 |
|------|----------|
| 所得の種類 | 給与、事業、雑 等 |
| 種目・所得の生ずる場所 | 勤務先名、事業所名等 |
| 収入金額 | 各所得の収入金額 |
| 源泉徴収税額 | 各所得に対する源泉徴収税額 |
### 社会保険料控除の内訳
| 項目 | 記載内容 |
|------|----------|
| 社会保険の種類 | 国民年金、国民健康保険等 |
| 支払保険料 | 年間支払額 |
### 生命保険料控除の内訳
| 区分 | 記載内容 |
|------|----------|
| 新生命保険料 | 平成24年以降契約の一般生命保険料 |
| 旧生命保険料 | 平成23年以前契約の一般生命保険料 |
| 新個人年金保険料 | 平成24年以降契約の個人年金保険料 |
| 旧個人年金保険料 | 平成23年以前契約の個人年金保険料 |
| 介護医療保険料 | 介護医療保険料(平成24年新設) |
### 配偶者や親族に関する事項
| 項目 | 記載内容 |
|------|----------|
| 氏名 | 配偶者・扶養親族の氏名 |
| 個人番号 | マイナンバー |
| 生年月日 | 年齢判定に使用 |
| 続柄 | 配偶者、子、親等 |
| 所得金額 | 配偶者・扶養親族の所得金額 |
### 住民税に関する事項
| 項目 | 記載内容 |
|------|----------|
| 給与・公的年金等に係る所得以外の所得に係る住民税の徴収方法 | 普通徴収 or 特別徴収 |
| 16歳未満の扶養親族 | 氏名・続柄・生年月日・マイナンバー |
## 端数処理ルール
### 所得税
| 対象 | ルール | 法的根拠 |
|------|--------|---------|
| 各所得金額 | 円単位(端数処理なし) | — |
| 課税所得金額(㉚) | 1,000円未満切捨て | 国税通則法118条 |
| 算出税額(㉛) | 円単位(速算表の結果そのまま) | — |
| 復興特別所得税(㊲) | 1円未満切捨て | 復興財源確保法13条 |
| 所得税及び復興特別所得税の額(㊺) | 端数処理なし(㉛+㊲の合計) | — |
| 申告納税額(㊼)=納付の場合 | 100円未満切捨て | 国税通則法119条 |
| 還付税額 | 1円単位(切捨てなし) | 国税通則法120条 |
### 消費税
| 対象 | ルール | 法的根拠 |
|------|--------|---------|
| 課税標準額 | 1,000円未満切捨て | 国税通則法118条 |
| 消費税額(国税) | 課税標準額 × 7.8%(標準)/ 6.24%(軽減) | 消費税法29条 |
| 差引税額 | 100円未満切捨て | 国税通則法119条 |
| 地方消費税 | 差引税額 × 22/78、100円未満切捨て | 地方税法72条の89 |
### 各種控除の端数処理
| 対象 | ルール | 法的根拠 |
|------|--------|---------|
| 給与所得控除 | 端数処理なし(速算表の結果そのまま) | 所得税法28条 |
| 生命保険料控除 | 1円未満切り上げ | 所得税法76条 |
| 地震保険料控除 | 1円未満切り上げ | 所得税法77条 |
| 住宅ローン控除 | 100円未満切捨て | 租税特別措置法41条2項 |
| 配偶者特別控除 | 端数処理なし(テーブル参照、固定額) | 所得税法83条の2 |
| 医療費控除 | 端数処理なし | 所得税法73条 |
| 減価償却費 | 1円未満切捨て | 所得税法49条 |
## 給与所得控除額の速算表(令和7年分)
| 給与等の収入金額 | 給与所得控除額 |
|-----------------|---------------|
| 〜162.5万円 | 65万円(最低保障額) |
| 162.5万超〜180万円 | 収入 × 40% − 10万円 |
| 180万超〜360万円 | 収入 × 30% + 8万円 |
| 360万超〜660万円 | 収入 × 20% + 44万円 |
| 660万超〜850万円 | 収入 × 10% + 110万円 |
| 850万超 | 195万円(上限) |
※ 令和7年分より最低保障額が55万円 → 65万円に引き上げ。
```