consumption-tax

285installs342stars

Install to Claude Code

npx -y skills add https://github.com/kazukinagata/shinkoku --skill consumption-tax

Description

>

SKILL.md

---
name: consumption-tax
description: >
  This skill should be used when the user needs to calculate consumption tax
  (消費税) or determine their tax method (2割特例, 簡易課税, or 本則課税).
  Trigger phrases include: "消費税を計算", "消費税の申告", "消費税申告書",
  "2割特例", "簡易課税", "本則課税", "課税売上", "消費税額", "インボイス",
  "みなし仕入率", "課税仕入".
---

# 消費税計算(Consumption Tax Calculation)

課税売上・課税仕入から消費税額を計算するスキル。
assess スキルで消費税の課税事業者と判定され、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-consumption --input /home/user/tax-2025/output/consumption_input.json`

## 進捗情報の読み込み

設定の読み込み後、引継書ファイルを読み込んで前ステップの結果を把握する。

1. `.shinkoku/progress/progress-summary.md` を Read ツールで読み込む(存在する場合)
2. 以下の引継書を Read ツールで読み込む(存在する場合):
   - `.shinkoku/progress/06-settlement.md`
   - `.shinkoku/progress/02-assess.md`
3. 読み込んだ情報を以降のステップで活用する(ユーザーへの再質問を避ける)
4. ファイルが存在しない場合はスキップし、ユーザーに必要情報を直接確認する

## 基本方針

- assess スキルの判定結果(課税事業者判定・申告方法)を確認してから開始する
- 免税事業者の場合は消費税申告不要であることを案内して終了する
- 申告方法(2割特例/簡易課税/本則課税)に応じた計算を行う
- 税率区分(標準税率10%/軽減税率8%)を正確に区分する
- references/tax-classification.md の区分ルールに従って判定する

## 前提条件の確認

消費税計算を開始する前に以下を確認する:

1. **課税事業者であるか**: assess スキルの判定結果を確認する
2. **申告方法の確定**: 以下のいずれかを確認する
   - 2割特例(インボイス登録により課税事業者になった場合の経過措置)
   - 簡易課税(届出済みで基準期間の課税売上が5,000万円以下)
   - 本則課税(上記以外)
3. **課税期間**: 通常は1月1日〜12月31日(個人事業者)
4. **帳簿データが揃っているか**: settlement スキルの決算が完了していること

## 申告方法の判定フロー

```
Q1. インボイス登録により課税事業者になったか?
    かつ基準期間の課税売上が1,000万円以下か?
├── Yes → 2割特例の適用が可能 → Q2へ
└── No → Q3へ

Q2. 2割特例を適用するか?
├── Yes → 2割特例で計算
└── No → Q3へ(簡易課税・本則課税と比較して有利な方を選択可能)

Q3. 簡易課税制度選択届出書を提出済みで、
    基準期間の課税売上が5,000万円以下か?
├── Yes → 簡易課税で計算
└── No → 本則課税で計算
```

## ステップ1: 課税売上の集計

帳簿から課税売上高を税率区分別に集計する。`ledger.py trial-balance` や `ledger.py search` の結果から以下を算出する:

### 集計項目

| 項目 | 説明 |
|------|------|
| 課税売上高(税込) | 税率10%と軽減税率8%を区分して集計 |
| 課税売上高(税抜) | 課税標準額(1,000円未満切り捨て) |
| 非課税売上高 | 受取利息等の非課税取引 |
| 免税売上高 | 輸出取引等(該当する場合) |

### 勘定科目との対応

- 売上(4001): 通常は課税売上(tax_category = taxable)
- 受取利息(4100): 非課税売上(tax_category = non_taxable)
- 雑収入(4110): 内容に応じて課税/非課税を判定

## ステップ2: 消費税額の計算

### `tax_calc.py calc-consumption` の呼び出し

```bash
shinkoku tax calc-consumption --input consumption_input.json
```
入力 JSON (ConsumptionTaxInput):
```json
{
  "fiscal_year": 2025,
  "method": "special_20pct",
  "taxable_sales_10": 5500000,
  "taxable_sales_8": 0,
  "taxable_purchases_10": 0,
  "taxable_purchases_8": 0,
  "simplified_business_type": null,
  "interim_payment": 0
}
```
出力 (ConsumptionTaxResult):
- `method`: 適用した申告方法
- `taxable_sales_total`: 課税売上高合計(税込、表示用)
- `taxable_base_10`: 課税標準額(10%分、税抜、1,000円切捨て)
- `taxable_base_8`: 課税標準額(8%分、税抜、1,000円切捨て)
- `national_tax_on_sales`: 消費税額(国税: 7.8%分 + 6.24%分)
- `tax_on_sales`: = national_tax_on_sales(後方互換エイリアス)
- `tax_on_purchases`: 控除対象仕入税額(国税部分)
- `net_tax`: 差引税額(100円切捨て、正の場合のみ)
- `refund_shortfall`: 控除不足還付税額(仕入 > 売上の場合)
- `interim_payment`: 中間納付税額
- `tax_due`: 納付税額 = net_tax - interim_payment
- `local_tax_due`: 地方消費税額(差引税額 × 22/78、100円切捨て)
- `total_due`: 合計納付税額(負 = 還付)

### 2割特例の計算ロジック

```
1. 課税標準額 = 税込売上 × 100/110(10%分)or × 100/108(8%分)
   → 1,000円未満切捨て(国税通則法118条)

2. 消費税額(国税)= 課税標準額 × 7.8%(10%分)+ 課税標準額 × 6.24%(8%分)

3. 差引税額 = 消費税額 × 20%
   → 100円未満切捨て(国税通則法119条)

4. 地方消費税 = 差引税額 × 22/78
   → 100円未満切捨て
```

- インボイス登録により課税事業者になった者が対象
- 基準期間の課税売上が1,000万円以下であること
- 適用期限: 令和8年9月30日を含む課税期間まで
- 届出不要(申告書に適用する旨を記載するのみ)

### 簡易課税の計算ロジック

```
1. 課税標準額 = 税込売上 × 100/110(10%分)or × 100/108(8%分)
   → 1,000円未満切捨て(国税通則法118条)

2. 消費税額(国税)= 課税標準額 × 7.8%(10%分)+ 課税標準額 × 6.24%(8%分)

3. 控除対象仕入税額 = 消費税額 × みなし仕入率

4. 差引税額 = 消費税額 − 控除対象仕入税額
   → 100円未満切捨て(国税通則法119条)

5. 地方消費税 = 差引税額 × 22/78
   → 100円未満切捨て
```

**みなし仕入率(事業区分別):**

| 事業区分 | 該当する事業 | みなし仕入率 |
|----------|-------------|-------------|
| 第1種 | 卸売業 | 90% |
| 第2種 | 小売業、農林水産業(飲食料品) | 80% |
| 第3種 | 製造業、農林水産業(その他)、建設業、電気ガス業 | 70% |
| 第4種 | その他(飲食店業等) | 60% |
| 第5種 | サービス業(運輸・通信・金融保険) | 50% |
| 第6種 | 不動産業 | 40% |

- フリーランス(IT、デザイン、コンサル等)は通常**第5種**(みなし仕入率50%)
- 2以上の事業を営む場合は、原則として事業区分ごとに計算する

### 本則課税の計算ロジック

```
1. 課税標準額 = 税込売上 × 100/110(10%分)or × 100/108(8%分)
   → 1,000円未満切捨て(国税通則法118条)

2. 課税売上に係る消費税額(国税):
    標準税率分: 課税標準額 × 78/1000(= 7.8%)
    軽減税率分: 課税標準額 × 624/10000(= 6.24%)

3. 課税仕入に係る消費税額(国税):
    標準税率分: 税込仕入額 × 78/1100(= 7.8/110)
    軽減税率分: 税込仕入額 × 624/10800(= 6.24/108)

4. 差引税額 = 売上消費税額 − 仕入消費税額
   正の場合 → 100円未満切捨て(国税通則法119条)
   負の場合 → 控除不足還付税額(端数処理なし)

5. 地方消費税 = 差引税額 × 22/78
   → 100円未満切捨て
```

- 課税仕入の集計には適格請求書(インボイス)の保存が必要
- 帳簿の消費税区分(references/tax-classification.md)に基づいて集計する
- 課税売上割合が95%以上かつ課税売上高が5億円以下の場合、全額控除可能
- インボイス制度における仕入税額控除の詳細要件は /tax-invoice-credit-context を実行する

## ステップ3: 申告方法の比較(任意)

複数の方法が選択可能な場合、それぞれの税額を試算して比較表を提示する。

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
消費税の申告方法比較
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

| 方法 | 納付税額 | 備考 |
|------|---------|------|
| 2割特例 | ○○,○○○円 | 届出不要 |
| 簡易課税 | ○○,○○○円 | 届出が必要 |
| 本則課税 | ○○,○○○円 | インボイス保存要 |

→ 最も有利な方法: [方法名](差額: ○○,○○○円)
```

## ステップ4: 計算結果サマリーの提示

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
消費税の計算結果(令和○年分)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■ 基本情報
  申告方法:           [2割特例 / 簡易課税 / 本則課税]
  課税期間:           令和○年1月1日〜12月31日

■ 課税売上
  標準税率(10%)対象:  ○,○○○,○○○円
  軽減税率(8%)対象:     ○○○,○○○円
  課税売上高合計:     ○,○○○,○○○円

■ 消費税額
  課税売上に係る消費税額:     ○○○,○○○円
  控除対象仕入税額:           ○○○,○○○円
  差引税額:                   ○○○,○○○円
  中間納付税額:                     0円
  -----------------------------------------
  消費税の納付税額:           ○○○,○○○円
  地方消費税の納付税額:        ○○,○○○円
  合計納付税額:               ○○○,○○○円

■ 次のステップ:
  → /e-tax で確定申告書等作成コーナーに入力する(Claude in Chrome)
  → /submit で提出準備を行う
  → 消費税の納付期限: 令和○年3月31日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

## 引継書の出力

サマリー提示後、以下のファイルを Write ツールで出力する。
これにより、セッションの中断や Compact が発生しても次のステップで結果を引き継げる。

### ステップ別ファイルの出力

`.shinkoku/progress/08-consumption-tax.md` に以下の形式で出力する:

```
---
step: 8
skill: consumption-tax
status: completed
completed_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---

# 消費税計算・申告書作成の結果

## 申告方法

- 適用方法: {2割特例/簡易課税/本則課税}

## 課税売上

- 標準税率(10%)対象: {金額}円
- 軽減税率(8%)対象: {金額}円
- 課税売上高合計: {金額}円

## 消費税額の内訳

- 課税売上に係る消費税額: {金額}円
- 控除対象仕入税額: {金額}円
- 差引税額: {金額}円

## 地方消費税

- 地方消費税額: {金額}円

## 合計納付税額

- 消費税の納付税額: {金額}円
- 地方消費税の納付税額: {金額}円
- **合計納付税額: {金額}円**

## 次のステップ

/e-tax で確定申告書等作成コーナーに入力する(Claude in Chrome)
/submit で提出準備を行う
消費税の納付期限: 令和{年}年3月31日
```

消費税申告が不要な場合(免税事業者)は status を `skipped` とし、内容は「免税事業者のため申告不要」と記載する。

### 進捗サマリーの更新

`.shinkoku/progress/progress-summary.md` を更新する(存在しない場合は新規作成):

- YAML frontmatter: fiscal_year、last_updated(当日日付)、current_step: consumption-tax
- テーブル: 全ステップの状態を更新(consumption-tax を completed または skipped に)
- 次のステップの案内を記載

### 出力後の案内

ファイルを出力したらユーザーに以下を伝える:
- 「引継書を `.shinkoku/progress/` に保存しました。セッションが中断しても次のスキルで結果を引き継げます。」
- 次のステップの案内

## 免責事項

- この計算は一般的な消費税の計算ロジックに基づく
- 簡易課税の事業区分の判定は個別の事情により異なる場合がある
- 最終的な申告内容は税理士等の専門家に確認することを推奨する