A Python engine that decomposes double-entry bookkeeping data into single-entry format for management accounting 複式簿記データを、管理会計に適した単式データ(FACフォーマット)に分解するPythonエンジン
Good numbers. Better decisions. / 良い数字は、より良い意思決定をもたらす。
EN: Because the data coming out of accounting software is still shaped like double-entry bookkeeping.
Future Accounting Commons is a community-driven engine, built in Python, that decomposes double-entry data into a standardized single-entry format — ready for management accounting, in one step.
JA: それは、会計ソフトから出力されるデータが「複式簿記の形」のままだからです。
Future Accounting Commonsは、Pythonで開発されたコミュニティ主導のエンジンです。複式簿記データを、管理会計にすぐ使える標準化された単式データへと一発で分解します。
Before: Double-entry journal (as exported from accounting software) / 複式仕訳(会計ソフトからの出力)
| Date | Debit Account | Credit Account | Amount |
|---|---|---|---|
| 2026-04-01 | Advertising Expense | Cash | ¥50,000 |
After: Single-entry data — FAC Format / 単式データ(FACフォーマット)
| date | account_large | account_middle | amount | cost_type | cf_type | dept_original | dept_allocated | status |
|---|---|---|---|---|---|---|---|---|
| 2026-04-01 | 経費 (Expense) | 広告宣伝費 (Advertising) | -50,000 | 変動費 (Variable) | 営業CF (Operating) | Marketing | Marketing | 実績 (Actual) |
EN: Revenue and cash inflows are recorded as positive values; expenses and cash outflows are recorded as negative values. This sign convention makes it possible to sum
amountdirectly across any dimension (department, account, cost type) without worrying about debit/credit direction.JA: 収益・キャッシュインはプラス、費用・キャッシュアウトはマイナスで記録されます。この符号規則により、借方/貸方の方向を意識せず、部門・科目・固変区分など任意の軸で
amountを直接合計できます。
Future Accounting Commons converts the left into the right — automatically classifying cost type, cash-flow type, and department allocation in a single decomposition step. 左のデータを右へ、固変区分・CF区分・部門配賦までを含めて一度の分解ステップで自動変換します。
EN: Head-office costs are often booked to a single department in the source system, but need to be allocated across the departments that actually benefited from them for management accounting purposes.
JA: 本社費は会計システム上では単一の部門に計上されがちですが、管理会計上は実際に恩恵を受けた各部門へ配賦する必要があります。
Before allocation / 配賦前
| date | account_middle | amount | dept_original | dept_allocated |
|---|---|---|---|---|
| 2026-04-01 | 地代家賃 (Rent) | -300,000 | Head Office | Head Office |
After running the allocation engine (split across 3 departments by headcount) / 配賦エンジン実行後(人員数比で3部門に按分)
| date | account_middle | amount | dept_original | dept_allocated |
|---|---|---|---|---|
| 2026-04-01 | 地代家賃 (Rent) | -150,000 | Head Office | Sales |
| 2026-04-01 | 地代家賃 (Rent) | -90,000 | Head Office | Engineering |
| 2026-04-01 | 地代家賃 (Rent) | -60,000 | Head Office | Marketing |
EN: dept_original always preserves where the cost was originally booked, while dept_allocated reflects the result of the allocation logic — so you can trace every allocated row back to its source.
JA: dept_originalは常に元の計上部門を保持し、dept_allocatedは配賦ロジックの結果を反映します。これにより、配賦後のどの行も元データまで遡ってトレースできます。
EN: Most accounting and finance professionals are not engineers — their primary tool is
a spreadsheet, not Python. FAC Format is deliberately designed so that, once your data is
decomposed into it, no code is required to analyze it: every column is a flat, structured
field with a closed vocabulary (no free text), and the amount sign convention means a simple
SUM is all it takes to compute totals.
In practice, this means a FAC-formatted CSV can be dropped directly into a spreadsheet and
explored with a pivot table — account_large / account_middle / account_small as row
fields, dept_allocated as a filter, amount as the value. No macros, no scripts.
This is a deliberate design choice, not an afterthought: the project's roadmap is Python first, with lightweight tooling (spreadsheet macros, and eventually a full application) to follow as the community grows — but the format itself was built spreadsheet-native from day one, so no one is ever locked out for lacking a Python environment.
JA: 会計・経理の実務家の多くはエンジニアではなく、日常的に使う主要なツールはExcelです。
FAC(Future Accounting Commons)フォーマットは、データを一度この標準フォーマットに分解してしまえば、コードを書かなくても
分析できるように意図的に設計されています。すべてのカラムはフラットで構造化されたフィールド
であり(自由記述を含まない)、amountの符号規則により、単純なSUMだけで集計が完結します。
実際に、FACフォーマットのCSVをそのままExcelに読み込み、ピボットテーブルで分析できます。
account_large / account_middle / account_smallを行フィールドに、dept_allocatedを
フィルターに、amountを値に置くだけです。マクロもスクリプトも不要です。
これは後付けの配慮ではなく、意図的な設計です。プロジェクトのロードマップとしては、まず Pythonでの開発を進め、コミュニティの成長に応じて軽量なツール(Excelマクロなど)、そして将来的 には本格的なアプリケーションへと投資していく計画ですが、フォーマット自体は最初からExcel ネイティブに使えるよう設計されています。Python環境がないという理由だけで、誰も締め出さない ためです。
EN: FAC (Future Accounting Commons) Format is the standardized single-entry data specification at the core of this project. It follows Semantic Versioning, and from v1.0.0 onward, backward compatibility is maintained as a principle — since the fundamental metrics of management accounting have remained largely unchanged for nearly a century, version changes are expected to be additive (new columns), not breaking.
Full specification: docs/fac_format.md
JA: FAC(Future Accounting Commons)フォーマットは、本プロジェクトの根幹となる標準化された単式データ仕様です。セマンティックバージョニングに従い、v1.0.0以降は原則として後方互換性を維持します。管理会計の基本指標はこの100年近く大きく変わっていないため、バージョン変更は主にカラムの追加(非破壊的変更)を想定しています。
詳細な仕様:docs/fac_format.md
EN: This project develops two kinds of engines, connected by the FAC Format as a common intermediate representation:
- Import engines — decompose double-entry journal data exported from accounting systems (Money Forward, freee, Yayoi, and others) into FAC Format.
- Analytics engines — compute management-accounting metrics from FAC-formatted data.
JA: 本プロジェクトでは、FACフォーマットを共通の中間表現として、以下2種類のエンジンを開発しています。
- インポートエンジン — マネーフォワード・freee・弥生会計など各種会計システムから出力された複式仕訳データを、FACフォーマットに分解します。
- 分析エンジン — FACフォーマットのデータをもとに、各種管理会計指標を算出します。
JA: 現在、下記の開発が完了しました。
・FACフォーマット分解エンジン(fac_importer)マネーフォワード、freee、弥生会計 に対応
・FACフォーマットから試算表を作成する集計エンジン(crosstab)実装。
・FACフォーマットからさらに部門配賦をするための部門配賦エンジン(dept_allocation)実装。
See CONTRIBUTING.md for how to propose changes, report issues, or open a pull request.
変更提案・Issue報告・プルリクエストの方法はCONTRIBUTING.mdをご覧ください。
Apache License 2.0