Claudeで新NISAの積立シミュレーションを作る — 上限を固定したArtifactの手順
金融庁が示す新NISAの年間投資枠と総枠をArtifactの定数に固定し、毎月の積立額と仮の年率から評価額を試算する計算機をClaudeに作らせる手順です。
新NISAの積立シミュレーションは、上限を固定して作る
新NISAの積立シミュレーションは、制度の上限をArtifactの定数に固定し、積立額と利回りだけを入力欄にすると作りやすくなります。上限が動かなければ、Claudeが計算機を作り直しても枠の判定がぶれません。
この記事で作る計算機は、毎月の積立額と仮の年率を入れると、評価額と元本を並べて返します。つみたて投資枠と成長投資枠の上限を超える入力は、画面で止めます。
ただし、年率は将来の予想ではなく、利用者が入れる仮定値です。計算機が出す数字は試算であり、特定の商品や投資額をすすめるものではありません。
計算機に固定する制度の上限
金融庁の「NISAを知る」のページが示す、2024年からの制度の数字は次のとおりです。
Artifactの定数にする4つの上限
つみたて投資枠
年120万円
つみたてNISAの3倍
成長投資枠
年240万円
一般NISAの2倍
年間の合計
360万円
併用した場合の最大
生涯の総枠
1,800万円
成長投資枠は1,200万円まで
総枠の1,800万円は生涯を通じた上限で、そのうち成長投資枠で使えるのは1,200万円です。つまり、つみたて投資枠だけで総枠を埋めることはできても、成長投資枠だけで埋めることはできません。
もう一つ、この制度の前提を確認しておきます。
- 非課税の対象は運用益(売却益と配当・分配金)です。通常は約20%の税金がかかります
- 非課税保有期間は無期限で、制度そのものも恒久化されています
- 口座を開けるのは、利用する年の1月1日時点で18歳以上の人です
- 口座は1人1口座で、金融機関の変更は年単位です
計算機の入力欄は、この前提に合わせて設計します。
計算機が扱わないこと
制度のうち、この計算機が省くものを先に決めておきます。省いたことを画面に書いておけば、数字を読む人が前提を取り違えません。
- 売却と枠の再利用: 金融庁のページでは、売却した商品の簿価の分だけ、翌年以降に非課税の枠が復活します。売却を考えない前提にして、積立を続ける場合だけ扱います
- 2023年までのNISAの保有分: 新制度の総枠とは別の外枠で管理されるため、計算に入れません
- 成長投資枠の一括投資: 年240万円を一度に入れる使い方は扱わず、毎月均等に積み立てる前提にします
- 商品ごとの違い: 手数料や信託報酬、分配金は入力せず、年率の仮定に含めて考えます
Claudeに計算機のArtifactを作らせる
Artifactを作るには、設定の「Capabilities」で、クラウド上のコード実行とファイル作成をオンにします。Free・Pro・Maxは個人設定、Team・Enterpriseは組織設定です。前提はClaude Artifactsで個人サイトを作る方法の有効化の節にまとまっています。
依頼文では、上限と計算の約束事をこちらから渡します。次の形が一例です。
新NISAの積立シミュレーションのArtifactを作ってください。
定数(コードの先頭にまとめる):
つみたて投資枠の年間上限 1,200,000円
成長投資枠の年間上限 2,400,000円
非課税保有限度額(総枠) 18,000,000円
うち成長投資枠 12,000,000円
入力: つみたて投資枠の月額 / 成長投資枠の月額 /
想定年率(%) / 積立年数
想定年率の初期値は0%にし、利用者が自分で入れる
計算: 年率を月率((1+年率)^(1/12)-1)に直し、
毎月末に積立。元本が総枠か成長枠の上限に
達した月から、その枠への積立を止める
(総枠が足りないときはつみたて投資枠を先に入れる)
検証: 月額×12が年間上限を超えたら、計算せずに
入力欄の下にエラーを出す
出力: 元本、評価額、運用益、総枠に達した年
運用益の約20%を、課税口座の目安として併記
常時表示: 「年率は仮定。将来の成果を示すものではなく、
特定の商品や投資額をすすめるものではない」ポイントは、年率の初期値を0%にしておく点です。Claudeに「もっともらしい利回り」を決めさせると、数字が予想のように見えてしまいます。0%で始めれば、利用者が自分で仮定を入れるまで、元本と評価額は同じ値になります。
計算の中身を確かめる
Claudeが返すコードの核は、例えば次のような形になります。これは上の依頼文に沿った例で、実際の出力は頼み方によって変わります。
const CAP = {
tsumitateYear: 1_200_000, // つみたて投資枠の年間上限
growthYear: 2_400_000, // 成長投資枠の年間上限
total: 18_000_000, // 非課税保有限度額
growthTotal: 12_000_000, // うち成長投資枠
};
function validate(tsumitate, growth) {
const errors = [];
if (tsumitate * 12 > CAP.tsumitateYear) errors.push("つみたて投資枠が年間上限を超えています");
if (growth * 12 > CAP.growthYear) errors.push("成長投資枠が年間上限を超えています");
return errors;
}
function simulate(tsumitate, growth, annualRate, years) {
const i = (1 + annualRate) ** (1 / 12) - 1;
let balance = 0, paidT = 0, paidG = 0;
for (let m = 0; m < years * 12; m++) {
let room = CAP.total - paidT - paidG;
const addT = Math.min(tsumitate, Math.max(room, 0));
room -= addT;
const addG = Math.min(growth, CAP.growthTotal - paidG, Math.max(room, 0));
paidT += addT;
paidG += addG;
balance = balance * (1 + i) + addT + addG;
}
return { paid: paidT + paidG, balance };
}この関数の約束事は三つです。月末に積み立てるので、その月の積立は翌月から増え始めます。総枠が足りなくなった月は、つみたて投資枠から先に入れます。そして成長投資枠は、累計で1,200万円を超えません。
仮の数字で検算する
Artifactの数字は、手計算の結果と突き合わせてから使います。次の値は、すべて説明用の仮のものです。
検算の順番
- 1
年率0%で元本を確かめる
つみたて投資枠が月3万円、成長投資枠が0円、年率0%、20年で試算します。評価額は元本と同じ720万円(3万円×12か月×20年)になるはずです。これが合わなければ、積立の足し方に誤りがあります。
- 2
年率3%で手計算と合わせる
同じ条件で年率3%にします。月率は1.03の12分の1乗から1を引いた約0.2466%です。月3万円を240か月積み立てた評価額は、約980万円になります。運用益は約260万円で、その約20%は約52万円です。
- 3
上限に達する条件を試す
つみたて投資枠が月10万円、成長投資枠が月20万円なら、年間の積立は360万円です。5年で総枠の1,800万円に達し、以降の積立は止まります。
- 4
上限を超える入力を試す
つみたて投資枠に月10.1万円を入れると、年間の合計が121.2万円になるので、エラーで止まるはずです。月10万円ちょうどは通ります。
3番目の条件を、20年と5年で比べた結果が次の表です。年率は3%の仮定で、小数点以下を切り捨てています。
| 期間 | 元本 | 評価額 | 運用益 |
|---|---|---|---|
| 5年 | 元本1,800万円 | 評価額1,937万円 | 運用益137万円 |
| 20年 | 元本1,800万円 | 評価額3,018万円 | 運用益1,218万円 |
元本は5年目に総枠に達してから動きません。20年目の評価額が伸びるのは、積立ではなく、すでに入れた1,800万円が運用され続けるためです。
この表を画面に出すときは、元本が止まる年を併記しておくと、「20年積み立てた」という読み違いを防げます。
投資助言にならない線引きを画面に残す
試算ツールの価値は、数字の読み方を間違えにくくする点にあります。次の線引きを、依頼文と画面の両方に入れます。
画面に残す4つの線引き
年率は利用者の仮定
初期値は0%で、予想値を出しません。利用者が入れた値だけで動くことを、入力欄の近くに書きます。
商品名を出さない
特定のファンドや銘柄は、入力欄にも出力にも入れません。評価額は枠の使い方による違いを見るためのものです。
結果の断定を避ける
「この額が貯まります」ではなく、「この仮定なら、この額になります」と表示させます。
税率は目安
約20%は課税口座の目安として併記するだけにします。実際の税の扱いは、口座を開く金融機関の案内で確かめます。
Claudeに頼むと、親切のつもりで「おすすめの積立額」や「目標達成の見込み」を足してくることがあります。そうした表示は依頼文で「追加しない」と書いておきます。
条件を保存したいときと共有するとき
積立額や年率を毎回入れ直すのが手間なら、Artifactのデータ保存を使います。保存先は個人用と共有用に分かれ、個人用はその人だけに見えます。Pro・Max・Team・Enterpriseで使え、保存できるのは1つのArtifactにつきテキストで20MBまでです。
入力値の保存は個人用のストレージだけを使い、
共有用のストレージは使わないでください。共有用のストレージだと、使う全員が同じデータを見ます。家計の数字を入れる計算機では、個人用に限定します。保存の実例はClaudeで習慣トラッカーと体重記録をArtifactsで作る手順にあります。
計算機を家族や知人に見せたいときは、Artifactを共有します。ProとMaxでは「Only you」か「Anyone with the link」を選べ、特定の人にはメールで招待します。リンクを知る人は誰でも開けるので、定数と計算式だけを入れた版を共有し、保存した個人の入力値は渡さないでおくと安心です。Team・Enterpriseで組織外へ共有できるかは、管理者の設定で決まります。設定の手順はClaude Artifactsの管理者が組織外共有を制御する設定手順にあります。
制度の変更に合わせて直す
定数が変われば、計算機も直す必要があります。直すときの流れは次のとおりです。
定数を見直すタイミング
- 制度の改正があったとき金融庁のページの数字を見直す
年間投資枠と総枠が変わっていないかを、金融庁の「NISAを知る」で見比べます。
- 数字が変わっていたとき定数だけを差し替える
Claudeに「定数のブロックを次の値に直して」と頼み、計算の関数は触らせません。
- 直した後検算をやり直す
上の4つの検算を同じ条件で回し、手計算と合うかを見ます。
定数を一か所にまとめておけば、差し替えるのは数行で済みます。計算の関数まで書き換えさせると、検算の結果が変わる原因が増えるため、定数だけを頼みます。
同じように、控除の式をArtifactの計算機に変える手順は、Claudeでふるさと納税の上限額を試算する手順で扱っています。そちらは税額の式が中心で、本記事は積み上がる枠と複利が中心です。
つまずきやすい点
元本が止まる年を見落とす。総枠に達したあとは積立が止まります。評価額の伸びだけを見て、「毎年積み立てている」と読み違えないようにします。
成長投資枠が1,200万円で止まる。月額の合計が総枠に届くより前に、成長投資枠の累計が先に上限へ達します。成長投資枠を厚くした入力ほど、この止まり方が出やすくなります。
年率の入れ方。年率を月率に直さず、そのまま12で割った値を使う実装もあります。複利の月率と合わず、手計算との差が出ます。検算の2番目で見つかります。
ボーナス月の積立。ここで作る計算機は毎月同額の積立だけを扱います。ボーナス月に増額する使い方は、年間上限の判定を月単位から年単位に直さないと扱えません。
まとめ
この計算機が返すのは、仮の年率で動く試算です。制度の上限は定数に固定し、年率と積立額は利用者が入れ、約束事は画面に残します。評価額を使って判断する前には、金融機関の案内と照らしてください。