coding agent で備える確定申告の外国税額控除
TL;DR
- 確定申告の作業の中でも面倒な外国税額控除の作業を coding agent で実施してみた
- PDF ファイルと望ましい出力形式を提示すれば完璧に作業をしてくれた
- 去年の段階ではうまくいかなかったので、ついにその時が来たという感じ
今年も確定申告の季節がやって来た。
確定申告の作業で面倒なものの一つが外国税額控除 https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1240.htm である。 外国税額控除についてはここでは詳しく述べないが、外国証券の配当などを受け取る際に外国と日本の二重課税が発生する際に外国の税金を差し引ける制度である。
自分は SBI 証券を使っているが、この場合は配当の情報をウェブサイトから PDF ファイルで取得し、そこに記載されている情報から配当金額や外国源泉徴収税額の情報などを抽出して、明細を作って申請する必要がある。 PDF ファイルは具体的には以下のような形式になっている(画像は SBI 証券のページ https://search.sbisec.co.jp/v2/popwin/info/home/pop690_koujyo.html から引用)。
この PDF から必要な情報を抽出するのが面倒な作業で、複数ある PDF ファイルを対象にしてちまちまと作業をするのは憂鬱である。 そのうち SBI 証券が必要なデータをまとめた情報や web API を提供してくれるかもと思ったりしたこともあったが、どうもそういう雰囲気はない。 PDF を扱うライブラリを使ってそれ用のコードを書くのも面倒だなと思っていたところで、生成 AI でやれそうと思い始めたのがここ 1,2 年である。
去年に試してみたメモを見ると以下のように書いてあった。
今年は外国税額控除のための作業を OpenAI API のモデルを使ってなくせるかと思って試してみたけど、モデル性能的に無理だった。 ChatGPT でやるともっと性能がいいので惜しいところまでいったけど、prompt tuning が必要なのと一部カラムを間違えてしまったりするのでこれもまだ作業を楽にしてくれるレベルではなかった。 来年には API でできるようになってほしい。頼む。
今年は coding agent もかなり賢くなったのでこれでいけるだろうと思って試してみた結果、無事にうまくいったという話である。
複数の coding agent で検証しようと思い、Claude Code, Kiro, Codex, Gemini CLI を使ってみたが、少なくとも上位モデルを使えばどの coding agent でもうまくいった。
以下のような感じでプロンプトを指定して実行(xxx の部分は去年自分が作ったデータから一つコピペして値を入れている)して、PDF ファイルから全ての銘柄について正しく値が取れていることを確認した。
確定申告における外国税額控除をすることを考えています。そのために必要なデータを @test.pdf から抽出したいです。このファイルから以下の形式(数字は例なのでファイルから正しく取得して)でデータを銘柄ごとに取得して test.tsv に出力して。
配当金等支払日 国内支払日 現地基準日 銘柄コード 銘柄名 数量 配当金等金額 外国源泉 外国手数料 外国精算金額 国内源泉 国内手数料 消費税 受取金額 配当金等金額(円) 外国源泉 国内課税所得額(円) 所得税 地方税 国内源泉徴収額 xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
多くの coding agent では pdfplumber などをインストールしてガチャガチャやって目的のデータを抽出していたが、Claude Code はファイルを Read してシュッと答えを出していたのでスマートだった。 coding agent は便利だ。
なお、この結果に満足して今年の確定申告はこれ以外何も手をつけていないのであった。