クルマの保有コストシミュレータの作り方
クルマの保有コストシミュレータを公開したところ、「どうやって作るの?」という質問をいただいたので、プロンプトを清書したものを公開しておく。SPAなのでMarkdownすら使わず、単なるテキストとしてぶわぁーっと要件定義して渡してるだけです。ZedでGPT-5.5を使って以下の指示をすれば、大体同じ感じになるはず。
日本向けの「車の保有コスト・TCO比較シミュレータ」を、依存ライブラリなしのJavaScript Webコンポーネントとして作成してください。
ブログや固定ページに貼り付けて使えるように、`car-tco-simulator.js`、`index.html`、`README.md` を作成してください。
前提日は2026年6月現在とし、日本で新車販売中または販売継続想定の車種を可能な限り多く収録してください。
メーカー公式サイト、CEV-PC、総務省、自治体情報などを参考にしてください。
ただし公開ページ上で外部CSV/JSONを取り込む機能は不要です。
取得・調査した初期データはJavaScript内に静的データとして埋め込んでください。
シミュレータの基本要件:
- メーカー → 車種 の順に選択して比較対象へ追加できること
- 複数車種を同時比較できること
- 年間走行距離によってTCOの優劣が逆転するため、年間走行距離別TCOグラフを表示すること
- 各車種ごとの前提値を画面上で編集できること
- CSV/JSONインポート、エクスポート、localStorage保存、FileReader、Blobなどの公開時にセキュリティ確認が複雑になる機能は入れないこと
- 「妥当性チェック用ソース」「信頼度」などのデータは保持しても良いが、画面には表示しないこと
含めるコスト項目:
- 車両価格
- 諸費用、オプション費
- ローン金利、頭金
- 国のCEV補助金
- 都道府県・市区町村など自治体補助金
- その他補助金の手入力欄
- 自動車税/軽自動車税
- 自動車重量税
- 自賠責保険
- 車検基本費用
- 任意保険
- 燃料代、電気代、水素代
- 駐車場代
- 整備・消耗品費
- タイヤ交換費用
- ロードサービス費
- EV/PHEVの自宅充電器設置費
- EV/PHEVの駆動用バッテリー予備費
- 売却時のリセールバリュー
車種データ:
- 国内主要メーカーだけでなく、主要輸入メーカーも可能な限り収録すること
- 代表車種だけで済ませないこと
- 価格、燃料種別、燃費、排気量、ボディタイプなど取得できる値を使い、不足する車重・タイヤサイズ・タイヤ費用・EV電費などはクラス/価格帯から保守的に推計すること
- 車種データはJavaScript内に埋め込むこと
燃料価格:
- レギュラーガソリン、軽油、電気、水素の単価を共通条件として編集可能にすること
- 初期値は2026年6月時点の実勢に近い値にすること
- 例: レギュラーガソリン 169.5円/L、軽油 158.8円/L、電気 32円/kWh、水素 1200円/kg
税金:
- 自動車税/軽自動車税は排気量別に推計すること
- 軽自動車は10,800円を基準にすること
- EV/FCVは25,000円を基準にすること
- 重量税は車両重量500kgごとの税額を基準にし、軽自動車、EV/PHEV/FCV、ハイブリッドのエコカー減税を概算反映すること
- 車検時重量税は編集可能にすること
補助金:
- 国のCEV補助金を車種ごとに保持すること
- 高額車両の補助金調整がある場合は反映すること
- 東京都ZEV補助はベース額とメーカー別上乗せを考慮すること
- 総務省「全国地方公共団体コード」を参考に、全都道府県の全市区町村・政令指定都市区を選択可能にすること
- CEV-PC「地方自治体の支援制度」など、公的・準公的な一覧を参考に、自治体支援制度データをJavaScript内に保持すること
- 支援制度には、制度名、対象、年度、状態、問い合わせ先、URLなどを保持すること
- 各支援制度のウェブページへのリンクを表示すること
- 条件付き補助、設備補助、V2H、事業者向け補助などは自動計算に無理に入れず、制度情報として保持・表示し、金額調整は「その他補助金」で対応できるようにすること
- 自動反映する自治体補助金は、固定額として安全に確認できる車両購入補助に限定すること
駐車場:
- 車種による違いはないが、都道府県別に平均的な月額駐車場代を初期値として持つこと
- ユーザーが手入力で上書きできること
タイヤ:
- 車種ごとにタイヤサイズ、4本の交換費用、交換距離、交換年数を持つこと
- 初期値からユーザーが変更できること
- タイヤ交換費用は距離または年数の早い方で発生するようにすること
任意保険:
- 初年度等級を選択できること
- 無事故前提で毎年1等級ずつ上がり、20等級で上限になるようにすること
- 年齢条件を選択できること
- 全年齢/21歳未満
- 21歳以上
- 26歳以上
- 30〜59歳
- 60〜69歳
- 70歳以上
- ゴールド免許割引の有無を選択できること
- 各車種の保険基準年額は編集可能にすること
- TCO内訳では、年ごとに変化する保険料の合計を使うこと
リセール:
- 車種・メーカー・パワートレイン・クラスに応じたリセールカーブを持つこと
- トヨタ、レクサス、ランドクルーザー系、ミニバン、SUV、軽自動車、EV/PHEVなどは傾向差を反映すること
- 年間走行距離が多い場合は売却額を補正すること
- 各車種のリセール曲線を画面に表示すること
グラフ:
1. 年間走行距離別TCOグラフ
- 選択車種ごとに、年間走行距離を変えた場合の総TCOを線グラフで比較すること
- 現在設定している年間走行距離を縦線で表示すること
2. 費用発生タイミンググラフ
- 各車種の前提編集欄に表示すること
- 購入時、金利、燃料/電気、駐車場、任意保険、税金、車検、タイヤ、整備、ロードサービス、電池予備費、売却額を年次棒グラフで表示すること
- 売却額はマイナス側の棒として表示すること
- 車検年、タイヤ交換年など、費用発生タイミングが分かるようにすること
UI:
- 共通条件として、地域、市区町村、保有年数、年間走行距離、グラフ最大km、保険等級、年齢条件、ゴールド免許、燃料単価、駐車場代、
ロードサービス、頭金、ローン金利、補助金反映、自宅充電器費用を編集できること
- 車種ごとの前提編集として、車両価格、諸費用、国補助金、自治体補助金、その他補助金、燃費、電費、PHEV電気走行比率、税額、重量税、車検基本費、自賠責、
整備費、タイヤ費、保険基準額を編集できること
- 比較結果として、総TCO、年平均、1kmあたり、補助金、想定売却額、年間燃料/電気費を表示すること
- 費目別内訳表を表示すること
- 選択地域の自治体支援制度一覧を折りたたみ表示し、制度名・対象・年度・公式ページリンクを確認できること
セキュリティ:
- GitHub ActionsやCodeQLは使わない前提で、rio.stの固定ページとして公開できる安全性を意識すること
- 外部依存を使わないこと
- 外部通信をしないこと
- URLはHTTP(S)のみを抽出・表示すること
- index.htmlには可能であればCSP metaとReferrer-Policyを入れること
成果物:
- `car-tco-simulator.js`
- 依存なしのWebコンポーネント
- 車種データ、地域データ、自治体制度データを内蔵
- `index.html`
- デモページ
- `<car-tco-simulator region="tokyo"></car-tco-simulator>` を表示
- `README.md`
- 使い方
- 含めている費目
- 初期値
- データ更新方針
- 固定ページ公開時のセキュリティ設定
検証:
- `node --check car-tco-simulator.js` が通ること
- 全車種についてTCO計算を実行し、総額が有限の正数になること
- 自治体制度リンクがHTTP(S)のみであること
- 危険APIが含まれないこと
- CSV/JSON取り込み、localStorage保存、妥当性チェック用ソース表示、信頼度表示が入っていないこと
