見出し画像

残高だけでは分からない:売掛金・買掛金から背景の仕訳をたどる

「構造化CSVでつなぐ LedgerExplorer 改定記」続報

このマガジンでは、会計データを特定の会計システムの中だけに閉じ込めず、長く保存できる「読めるファイル」として引き継ぎ、仕訳から請求書、注文書、出荷・受領記録、決済情報までをたどれるLedger Explorerへ改定していく過程を記録しています。

前回までに、プログラム、データ、定義表、説明文書を一緒に残す理由と、AIが正しくデータを扱うためには、構造だけでなく意味、計算規則、検証条件を明示する必要があることを整理しました。

今回はその続報として、Ledger Explorerに売掛金・買掛金の管理画面を追加し、あわせてテストデータの開始残高に見つかった不整合を、ChatGPTとCodexを使って調査・修正した作業を紹介します。

今回の作業は、単に新しい一覧表を一つ増やすことが目的ではありません。

残高を見たときに、その金額がどの取引から生じ、どのように回収又は支払われ、同じ取引先との間でほかにどのような取引が行われていたのかを、会計データからたどれるようにすることが目的です。

今後、このデモデータと表示内容について、税理士の先生にも会計実務の観点から確認していただきたいと考えています。そのため、今日の作業内容と、これまでに整理してきた関連文書の状況を記録しておきます。

AIは計算結果を照合したのではなく、構造化CSVから独自に再計算した

今回のAIによる検証では、当事務所が提供するLedger Explorerの構造化CSVデータを対象としました。LLMは、既存プログラムの計算結果を単に追認したのではありません。構造化CSVに記録された勘定科目、借方・貸方、取引先、日付、金額などの意味を読み取り、会計処理ロジック空間で形成された処理ベクトルに従って、合計、按分、期間比較、残高推移などの計算を独自に行いました。

さらに、計算結果が数式上で一致しているかだけでなく、その金額が会計データとして妥当かどうかも評価しました。その過程で、売掛金の開始残高が年間取引規模に比べて過大であることや、取引先別残高に不自然な負数が生じることを検出しました。そして、年間の増減データから必要な開始残高を再計算し、貸借一致や月次残高の推移を確認したうえで、テストデータの改善案を提示しました。

つまり、今回の検証は、あらかじめ用意した正解との単純な照合ではありません。LLMが構造化CSVから会計処理の対象と関係を把握し、自ら計算し、その結果を金額面から評価して、テストデータの問題発見と改善まで行った点に特徴があります。

売掛金・買掛金の管理画面を追加した目的

試算表で売掛金や買掛金の残高を確認しても、その合計額だけでは、取引先別の内訳や増減理由までは分かりません。

総勘定元帳を開けば勘定科目の動きは確認できますが、実務上知りたいのは、例えば次のようなことです。

  • どの取引先に対する売掛金又は買掛金なのか

  • 前月からいくら繰り越されたのか

  • 当月にいくら発生したのか

  • 現金・預金、手形、相殺、値引、振込手数料などで、いくら消し込まれたのか

  • 月末残高はいくらか

  • その増減の根拠となった仕訳はどれか

  • 同じ月、同じ取引先について、売掛金又は買掛金には直接計上されていない関連取引がないか

そこで、月別・取引先別に、前期繰越、発生、値引、手形、現金、相殺その他、消込欄計、残高を表示する「売掛金集計表」と「買掛金集計表」を追加しました。

これは、従来の残高試算表や総勘定元帳を置き換える画面ではありません。合計残高から取引先別内訳へ進み、さらに仕訳や、将来は請求書・注文書・出荷・受領・決済記録へ進むための入口です。

81億円の開始残高は、本当に正しいのか

画面を年間対応させる途中で、元のテストデータに設定されていた売掛金の開始残高が8,130,812,723円、約81億円であることが問題になりました。

年間の売上発生額は838,896,788円です。これに対して売掛金の開始残高が約81億円というのは、サンプル取引の規模と明らかに釣り合いません。

また、取引先別に月次推移を表示すると、開始残高が不足して月末残高が負になる取引先がありました。これはプログラムの表示だけを調整して解決すべき問題ではありません。勘定科目別開始残高、取引先別開始残高、年間仕訳、元帳、試算表の関係を一体として調べる必要があります。

そこでChatGPTとの対話で、会計上どの関係を確認すべきか、どの値を正本とするか、どのような再計算条件なら検証可能かを整理しました。その方針をCodexに渡し、実際のCSV、生成プログラム、Web画面、既存文書を横断して調査し、候補値の計算、データ再生成、検証までを行わせました。

開始残高をどのように再設計したか

今回の再設計では、日本語版の年間仕訳と元帳を正本としました。既存の試算表の数字をそのまま信頼するのではなく、2021年4月から2022年3月までの12か月について、売掛金と買掛金の増減を取引先ごとに再集計しました。

取引先別開始残高は、各月末の残高が正常残高と反対方向の負数にならないために必要な最小額としました。

さらに、売掛金・買掛金だけを直して終わりにはしていません。その他の開始残高も年間取引との関係を確認し、当期売上高や利益科目を開始残高の調整には使わず、最後に現金及び預金を残余額として貸借一致させました。

主な変更結果は次のとおりです。

開始残高の比較

売掛金
 元の開始残高:    8,130,812,723円
 採用した開始残高:148,001,174円

買掛金
 
元の開始残高:       264,051,101円
 採用した開始残高:269,151,001円

現金及び預金
 元の開始残高:         73,659,897円
 採用した開始残高:316,517,513円

資本金
 元の開始残高:    8,900,000,000円
 採用した開始残高:162,002,311円

再設計後の開始残高合計は、借方正常科目と貸方正常科目がともに521,345,161円となり、貸借差額は0円です。売掛金148,001,174円は、年間売上発生額の約17.6%に相当します。

検証では、売掛金26社、買掛金15社について、12か月の取引先別残高に負数がないこと、勘定科目別残高にも負数がないこと、取引先別合計と勘定科目合計の差が全24区分月で0円であることを確認しました。日本語版を正として英語版も同じ行構造、ID、金額にそろえ、最終的なリリース検証69項目はすべて成功しています。

ただし、これは実在する企業の債権債務内訳を復元したものではありません。年間動作を検証するため、元のサンプル仕訳から合理的に推計したテスト用開始残高です。

残高の背景を確認するための三つの表示領域

売掛金・買掛金の管理画面は、次の三つの表示領域で構成しました。集計表で取引先を選択すると、その取引先の売掛金又は買掛金に直接関係する仕訳を確認できます。

https://www.sambuichi.jp/ledger/?view=receivables&month=2021-04&lang=ja&mode=server&v=20260721-1

1.取引先別の売掛金・買掛金集計

最初の画面では、対象月の取引先別に、前期繰越、当月発生、値引、手形、現金、相殺・その他、消込欄計、月末残高を表示します。

ここで確認したいのは、「残高はいくらか」だけではありません。どのような方法で減少したのか、通常とは異なる値引や相殺が含まれていないかも、同じ行で確認できるようにしています。

2.売掛金又は買掛金に直接関係する仕訳

集計表で取引先の行を選ぶと、その月の仕訳日記帳から、当該取引先コードと売掛金又は買掛金勘定が一致する仕訳を抽出して表示します。

これにより、集計表の発生額や消込額が、どの伝票日付、伝票番号、摘要、借方科目、貸方科目及び金額から作られたのかを確認できます。

集計値だけを提示するのではなく、計算の根拠となる仕訳まで戻れることが、この画面の中心的な役割です。

3.当月のその他の取引

三つ目の画面には、同じ月、同じ取引先に関係するものの、売掛金又は買掛金勘定には直接含まれない仕訳を表示します。

例えば、摘要や相手科目に取引先名が記録された費用、振込手数料、相殺に関係する仕訳などです。売掛金・買掛金の増減だけを見ていると、その取引が行われた背景を見落とすことがあります。

「売掛金に関係する仕訳」と「当月のその他の取引」を分けて並べることで、残高計算に含まれる仕訳と、背景説明に役立つ仕訳を混同せずに確認できます。

現段階では、取引先コード、取引先名及び摘要から関連を判定しています。将来は、請求書番号、注文書番号、出荷・受領記録、支払・入金記録、消込記録などの共通IDと参照関係を使い、文字列検索ではなく構造化された関係としてたどれるようにする予定です。

関連文書はどこまで整理できたか

プログラムだけを変更すると、後から「なぜこの計算にしたのか」「どのデータを正本としたのか」「どこまで検証したのか」が分からなくなります。そのため、Ledger Explorerでは実装と並行して文書を整理しています。

現在は、おおむね次の三層に分けています。

1.プロジェクト全体の正本文書

「構造化CSVによる取引文書・会計データ統合監査基盤」を、プロジェクトの目的、LHM、構文結合・セマンティック結合、データ生成、検証、運用までをまとめる統合計画書として整理しています。

ここには、仕訳日記帳、売掛・買掛、請求、返還、決済、消込、注文、出荷・受領などを、文書番号や参照関係で結ぶ将来像も記載しています。今回の三画面は、その計画のうち、まず会計データだけで確認できる範囲を実装したものです。

2.公開用リポジトリの構成文書

README、アーキテクチャ説明、データ配置説明では、Ledger Explorerを次の三層に分けて整理しています。

  1. Pythonによる生成・変換処理

  2. 構造化CSVによるデータ層

  3. 静的Web画面による表示層

この分離により、会計上の再計算は生成処理で行い、結果は読めるCSVとして保存し、Web画面はその構造化CSVを表示する役割に限定できます。

3.今回の調査・検証記録

開始残高の再設計については、目的、計算方法、採用値、適用範囲、制約を記載したREADMEに加え、次の機械可読な証跡を残しました。

  • 勘定科目別の開始残高候補と算定根拠

  • 元の勘定コードへ戻した開始残高候補

  • 取引先別の開始残高候補

  • 12か月の勘定科目別検証

  • 取引先別合計と科目合計の照合

  • 日英一致、月次繰越、貸借一致を含む最終検証結果

これにより、人が読む説明文と、プログラムが再検証できるCSV・JSONの両方を残しています。

なお、統合計画書を含む開発中の文書は、現段階では公開用GitHubへ自動的に含めず、実装との一致を再確認したうえで公開する方針です。プログラムと文書を同時に作っていても、公開時期と公開範囲は分けて管理しています。

税理士の先生にお願いしたい共同作業

AIとCodexを使うと、大量のCSVの再集計、月次繰越、取引先別照合、日英データの一致確認などは短時間で繰り返せます。しかし、何を異常と判断するか、どのデータを正本とするか、開始残高の推計方法が会計上妥当か、どの証拠までたどれれば説明可能といえるかは、プログラムだけでは決められません。

税理士の先生には、特に次の点を一緒に確認していただきたいと考えています。

  • 売掛金・買掛金集計表の列と区分が実務上分かりやすいか

  • 値引、手形、現金、相殺、振込手数料などの分類が妥当か

  • 取引先別開始残高の推計条件と注記が適切か

  • 集計表から仕訳へ戻る確認手順で、説明責任を果たせるか

  • 請求書、入出金記録、消込記録まで追加するとき、どの照合を必須とするか

  • AIによる検査結果を、人がどの段階で承認すべきか

今回の作業で改めて感じたのは、AIに会計判断を任せるのではなく、専門家が確認すべき論点を、AIと一緒に見える形へ整理することの重要性です。

プログラム、データ、説明文書、検証結果を分けずに整備すれば、「数字が表示されたから正しい」ではなく、「どのデータから、どの規則で計算し、どの検証を通った数字なのか」を共同で確認できます。

Ledger Explorerを、そのための実験環境として育てていきたいと考えています。

付記

今回使用したテストデータは、PCA会計が提供する事業者の年間仕訳日記帳のサンプルデータを基に、当事務所がUADCを使用して構造化CSVへ変換したものです。

開始残高は、このサンプルデータとは別に設定しています。当初は勘定科目単位の合計額だけを設定していましたが、今回、売掛金・買掛金を取引先別に管理するため、取引先ごとの開始残高を設定しました。

勘定科目コードは、国税庁が公開している「勘定科目コード表」のコードを使用しています。
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4.htm

追記:開始残高を取引状況から再評価しました

本記事では、年間を通じて残高が負にならないことを条件として、開始残高を再設定しました。

その後、棚卸資産回転日数(DIO)、売上債権回転日数(DSO)、仕入債務回転日数(DPO)及びキャッシュ・コンバージョン・サイクル(CCC)を用いて再評価したところ、残高は負にならなくても、年間の取引規模や支払条件からは説明しにくい開始残高になっていることが分かりました。

さらに、買掛金を取引先別に検証した結果、仕訳日記帳から総勘定元帳を生成する際に、買掛金額と仕入先情報との対応が正しく保持されていない問題も発見しました。

新しい記事では、AIが最初に計算した結果を別の会計的視点から再評価し、元データとプログラムへさかのぼって誤解と不具合を訂正した経過を紹介しています。

続編

「数字が合っても、正しいとは限らない――CCCから開始残高と元帳生成処理を再検証する」

関連リンク

no+eマガジン「構造化CSVでつなぐ LedgerExplorer 改定記」  

Ledger Explorer
 PCA会計の仕訳日記帳を構造化CSVへ変換し、月次試算表、総勘定元帳、貸借対照表、損益計算書及び取引先別残高をブラウザーで確認できる検証用ツールです。仕訳から集計結果へ進むだけでなく、財務指標や残高から元の仕訳明細へさかのぼり、会計データと変換・集計処理の妥当性を検証することを目指しています。
https://www.sambuichi.jp/ledger/?view=tidy&month=2021-04&lang=ja

GitHub 
Ledger Explorerのソースコード、構造化CSVのサンプルデータ、変換・集計処理及び検証用ファイルを公開しています。ブラウザーで動作する画面だけでなく、仕訳日記帳から総勘定元帳や財務諸表を生成する処理、取引先情報を仕訳明細から引き継ぐ仕組み、テスト方法及び改定履歴を確認できます。

本記事はChatGPTで構成・執筆し、Ledger Explorerの実装、データ再生成及び検証はChatGPT Codexとの共同作業で行っています。内容は三分一技術士事務所が確認しています。なお、Ledger ExplorerはMITライセンスで公開しています。



いいなと思ったら応援しよう!