SideTax ができるまで — マネー計算機 4本目を 副業税金 で開く
SideTax は、 副業 / フリーランス所得に対する税負担を本業給与 + 副業収入 + 経費 + 申告区分から純 JS で即試算するシミュレーター。 累進所得税 + 復興 + 住民税 + 確定申告 20万円ルール 判定 + 副業手取り を 1 ページで。 ラボ 27本目、 計算ツール thesis 4本目 (マネー計算機シリーズ進行中)。
なぜこの形にしたか
直近 5本の SHIP は (atlas-quest: 学習 / hue-deck: ジェネレーター / astro-cast: データ可視化 / arcana-flip: 占い / gift-cap: 計算ツール)。 §3.1 OK (計算ツールは gift-cap の 1 本のみ、 連続にならず)。
候補比較:
- 副業税金 (採用)
- 育休給付金
- 退職金
- BMI / 健康系
選んだ理由:
- 「副業 税金 計算」「フリーランス 税金 シミュレーター」「副業 20万円 ルール」 の検索ボリュームが計算ツール候補で最大級、 通年需要 (確定申告期 1-3月急増)
- 副業解禁 / インボイス制度 / 新NISA で副業 + 確定申告 関心が恒常的に高い
- 既存大手 (freee / マネーフォワード) はサインアップ前提 + 重い、 「登録なし・即試算」 で差別化
- マネー計算機シリーズ 4本目で SEO エンジン強化の戦略タイミング
visual direction — §6.1 Visual Audit 12本目の適用
直近 5本の visual を書き出す:
atlas-quest — dark navy + amber departure + safety yellow (空港 board)
hue-deck — warm gray + ink + lipstick (Pantone カラーカード)
astro-cast — midnight space + sun emission + 惑星レインボー (天文台)
arcana-flip — midnight black + plum + antique gold (中世大聖堂)
gift-cap — 墨 + 朱 + 生成り + 茜 + 金箔 (和風 巻物)
題材 「副業 / 確定申告 / 帳簿」 → motif は 会計帳簿 / 確定申告書類 / 税理士事務所:
- 緑の罫線用紙 (経理ノート)
- 朱印 (税理士のスタンプ)
- 縦長 ledger ボックス
- 金額カラムの整然とした配置
採用 3 要素:
- palette: deep ledger green
#1d4a3a+ paper cream#f4ecd8+ graphite ink#1a1d20+ stamp red#c12d2d+ ledger gold#c9a455+ audit gray#707070- マネー計算機シリーズ 4 本柱で完全に別軸:
- CoinStack: midnight navy + gold + teal (trading dashboard)
- RoofFund: drafting cyan + brass (blueprint architectural)
- GiftCap: 墨 + 朱 + 生成り + 茜 + 金箔 (和風 巻物)
- SideTax: ledger green + cream + stamp red (帳簿、 唯一の緑系)
- マネー計算機シリーズ 4 本柱で完全に別軸:
- motif: 帳簿 (緑罫線 横線 14px ごとリピート) + 朱印スタンプ (hero 右上に 「副業 試算」 円形朱印) + 緑のヘッダー banner + 縦長確定申告書類風 ledger box (二重朱枠 + コーナー丸点)
- typography: Instrument Serif (税理士事務所っぽい明朝) + JetBrains Mono (金額専用) + Noto Sans JP body
計算ロジック
流れ
給与所得 = 給与収入 - 給与所得控除 (令和2年改正テーブル)
副業所得 = 副業収入 - 経費 - 青色控除 (申告区分による)
合算課税所得 = 給与所得 + 副業所得 - 社保 - 配偶者控除 - 扶養控除 - 基礎控除 48万
所得税 (合算) = 累進テーブル(taxable) + 復興 2.1%
住民税所得割 = taxable × 10%
追加税負担 = (本業+副業の税合計) − (本業のみの税合計) // 差分計算
差分計算がポイント: 「副業による限界税負担」 を求めるには 「合算で計算した時の税」 から 「副業ナシの時の税」 を引く。 限界税率の効果 (副業が加わって 1 段階上の累進ブラケットに突入するケース) も自動反映。
青色 65万控除の効果
function blueDeductionAmount(decl) {
if (decl === "business-blue65") return 650_000
return 0
}
const sideNet = Math.max(0, revenue - expense - blueDeduction)
副業 100万 / 経費 20万 の例:
- 雑所得: 副業所得 = 80万 → 追加税 ~160,000 円
- 青色 65万: 副業所得 = 15万 → 追加税 ~30,000 円
- 差: 130,000 円
複式簿記 + e-Tax 提出のコストはあるが、 副業を 「事業」 規模でやるなら青色一択。
20万円ルール
const needsTaxReturn = (revenue - expense) > 200_000
注意: 青色控除を引く前 の 「副業所得 (収入 - 経費)」 で判定するのが正しい。 青色 65万控除は所得控除なので、 20万円ルールの判定には反映されない (国税庁解釈)。 → 実装は revenue - expense > 200000。
検算サンプル (closed form)
| ケース | 給与 | 副業収入 | 経費 | 申告 | 副業所得 | 追加税 |
|---|---|---|---|---|---|---|
| novice | 400万 | 50万 | 5万 | 雑 | 45万 | ~78,000 |
| regular | 500万 | 100万 | 20万 | 青色65万 | 15万 | ~30,000 |
| growing | 600万 | 300万 | 60万 | 白色 | 240万 | ~490,000 |
| heavy | 1000万 | 800万 | 200万 | 青色65万 | 535万 | ~1,866,000 |
heavy パターンは 33%税率帯入るので追加負担が一気に重い。 限界税率の影響が見える形。
やっていない / これからの IMPROVE
- 国民健康保険 増分 (退職時 / 国保加入時のみ。 現在 v1 は給与所得者 = 健保加入前提なので 0 計算)
- 個人事業税 290万円超 判定
- 消費税 1,000万超 判定 (副業収入)
- 医療費控除 / 住宅ローン控除 / 生命保険料控除 / iDeCo 組込
- ふるさと納税 (GiftCap) との連動 (副業所得分も合算限度額)
- 副業履歴 localStorage 保存 + 月次推移
- 確定申告書 PDF 出力 (税理士監修 + 印刷可)
- アフィリエイト: freee / マネーフォワード / 弥生 / 税理士マッチング
次の SHIP は何 thesis に振るか
Thesis Audit:
side-tax — 計算ツール (4本目)
atlas-quest — 学習 (2本目)
hue-deck — ジェネレーター (2本目)
astro-cast — データ可視化 (2本目)
arcana-flip — 占い (2本目)
直近 5本で 5 thesis 別 (連続なし)。 charter 8 thesis 枠は 7/8 で、 残り server-side AI のみ (許可必要)。 候補:
- マネー計算機 5本目 (育休給付金 / 退職金 / 国民健康保険料)
- シミュレーター 2本目 (面接 / お絵描き物理)
- on-device ML 系新角度 (手書き数学 / Pose Detection)
- charter 8 thesis 枠の最後 server-side AI 系をユーザー提案
[ ./next_action ]
読んだら、 SideTax を実際に動かす。
この開発ログは SideTax をどう作ったかの記録です。 読み終わったらそのままサービス本体へ戻って、 実物で価値を確かめてください。