スタートアップ向けBeancountセットアップ
プレーンテキストでスタートアップの帳簿を運用するための、実用的でコピー&ペースト可能なベースラインです。プレシードからシリーズAまで対応します。これは法的または税務上のアドバイスではありません。
スタートアップを経営するということは、多くの役割を担うことを意味し、その中で最も重要なものの一つが「簿記係」です。高価なソフトウェアや専任の会計士を雇う余裕ができるまでは、正確で、監査可能で、プロプライエタリなエコシステムに縛られないシステムが必要です。そこで登場するのがBeancountです。これは、オープンソースのプレーンテキスト会計システムです。
Beancountを使用すると、財務台帳はテキストファイルで管理され、Gitリポジトリ内のコードと同じ場所に置かれます。バージョン管理され、透明性が高く、無限にカスタマイズ可能です。このガイドでは、会社設立からシリーズAまで、スタートアップの帳簿を運用するための、完全でコピー&ペースト可能なセットアップを、堅実な発生主義会計の原則に基づいて提供します。
1) セットアップするもの
このガイドでは、完全でプロフェッショナルなレベルの会計システムの構築手順を説明します。完了すると、以下のものが揃います。
- Gitで管理される単一情報源の台帳(
main.beancount)。会社の財務に関する完全で監査可能な履歴を提供します。 - 美しいレポートとグラフを提供するFava。 FavaはBeancountのウェブインターフェースで、テキストファイルをインタラクティブな損益計算書、貸借対照表、キャッシュフロー分析に変換します。
- インポーターの構造。 後で追加して、銀行、クレジットカード、PayPal、Stripeアカウントからの取引入力を自動化できます。まずは手動でシステムを学び、その後自動化します。
- 現代のスタートアップ向けに設計された発生主義対応の勘定科目表。 繰延収益、前払費用、給与債務を組み込みでサポートします。
- シード資金調達のためのプリミティブ。 SAFEノート(負債または資本として)および利息付き転換社債を記録するための明確な例を含みます。
2) プロジェクト構造(リポジトリに配置)
まず、会社のGitリポジトリ内に以下のディレクトリ構造を作成します。この構成により、台帳がクリーンでスケーラブルに保たれます。
/ledger
main.beancount
/includes
accounts.beancount
opening-balances.beancount
policies.beancount
/documents
/bank
/invoices
/receipts
/importers # 任意:CSV取り込みを自動化するときに追加
bank_importer.py
card_importer.pymain.beancount: すべてをまとめる中心となるファイル。/includes: 勘定科目表、期首残高、会計方針を保持します。/documents: 銀行取引明細書、請求書、領収書のPDFを保存し、クリーンな監査証跡を残す場所。/importers: 将来、銀行のCSVを解析するPythonスクリプトを置く場所です。
3) 最小限で健全なmain.beancount
これは台帳のエントリーポイントです。いくつかのグローバルオプションを設定し、他のコンポーネントファイルをインクルードします。この内容をledger/main.beancountにコピーし、タイトルをカスタマイズしてください。
option "title" "Acme, Inc. Ledger"
option "operating_currency" "USD"
option "documents" "ledger/documents"
include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"
; 後でインポーターを追加する場合は、ここにプラグイン行を追加します。
; plugin "beancount.plugins.implicit_prices"4) スターター勘定科目表(発生主義優先)
勘定科目表は、会社の財務取引のカテゴリの完全なリストです。このスターターテンプレートは発生主義会計用に構築されており、現金主義会計よりも会社の健全性をはるかに正確に把握できます。
これをincludes/accounts.beancountに配置します。すぐに必要ない勘定科目は自由に削除してください。
; --- 資産 ---
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:Bank:Savings USD
1970-01-01 open Assets:AR USD ; 売掛金
1970-01-01 open Assets:Prepaid:Software USD
1970-01-01 open Assets:Prepaid:Insurance USD
1970-01-01 open Assets:Deposits USD ; 保証金
1970-01-01 open Assets:Equipment USD
1970-01-01 open Assets:Intangibles USD
1970-01-01 open Assets:Crypto:BTC BTC
1970-01-01 open Assets:Other
; --- 負債 ---
1970-01-01 open Liabilities:AP USD ; 買掛金
1970-01-01 open Liabilities:CreditCard:Corporate USD
1970-01-01 open Liabilities:DeferredRevenue USD
1970-01-01 open Liabilities:Payroll:Withholding USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes USD
1970-01-01 open Liabilities:SalesTax:CA USD
1970-01-01 open Liabilities:SAFE USD
1970-01-01 open Liabilities:NotesPayable USD
1970-01-01 open Liabilities:Other
; --- 資本 ---
1970-01-01 open Equity:CommonStock USD
1970-01-01 open Equity:APIC USD ; 追加払込資本
1970-01-01 open Equity:SAFE USD ; SAFEを資本として分類する場合
1970-01-01 open Equity:RetainedEarnings USD
1970-01-01 open Equity:OpeningBalances USD
; --- 収益(負の残高) ---
1970-01-01 open Income:Revenue:SaaS USD
1970-01-01 open Income:Revenue:Services USD
1970-01-01 open Income:Other USD
; --- 費用 ---
1970-01-01 open Expenses:COGS USD
1970-01-01 open Expenses:Payroll:Wages USD
1970-01-01 open Expenses:Payroll:EmployerTaxes USD
1970-01-01 open Expenses:Benefits USD
1970-01-01 open Expenses:Contractors USD
1970-01-01 open Expenses:Software:Subscriptions USD
1970-01-01 open Expenses:Cloud USD
1970-01-01 open Expenses:Rent USD
1970-01-01 open Expenses:Meals USD
1970-01-01 open Expenses:Travel USD
1970-01-01 open Expenses:Marketing USD
1970-01-01 open Expenses:Legal USD
1970-01-01 open Expenses:Accounting USD
1970-01-01 open Expenses:Insurance USD
1970-01-01 open Expenses:BankFees USD
1970-01-01 open Expenses:Taxes:Income USD
1970-01-01 open Expenses:Taxes:Sales USD
1970-01-01 open Expenses:Other USD注記
- 収益勘定は負の値です。 これは複式簿記において貸方(クレジット)を表すためです。心配する必要はありません。Favaがレポートで自動的に符号を反転させるため、損益計算書では収益が正の数値として表示されます。
- 最初は範囲が狭く、目的が明確なカテゴリに抑えましょう。後で新しい勘定科目を追加する方が、雑然として過度に細分化された勘定科目表を整理するよりもはるかに簡単です。
5) 期首残高(初日)
台帳の最初の取引が基盤となります。これは、追跡を開始した日の勘定科目の初期状態を記録します。この取引をincludes/opening-balances.beancountに配置し、日付と金額を実際の開始時の状況に合わせて調整してください。
2025-01-01 * "期首残高"
Assets:Bank:Checking 5,000.00 USD
Liabilities:CreditCard:Corporate -500.00 USD
Equity:OpeningBalances -4,500.00 USDこの仕訳は、会社が銀行に$5,000、クレジットカードに$500の残高があった状態で開始したことを示します。Equity:OpeningBalances勘定は、複式簿記で要求されるように取引の貸借をゼロにするために使用される特別な勘定です。
6) スタートアップの一般的な取引(コピー&ペースト)
ここでは、アーリーステージのスタートアップで最も一般的な財務イベントのレシピを紹介します。コピーして、独自の用途に合わせて調整してください。
創業者の株式購入(シンプル、通貨のみ)
創業者が額面で最初の株式を購入する場合、現金が会社に入り、資本として記録されます。キャップテーブル(Carta、Pulley、またはスプレッドシート)が株式数の唯一の情報源であり、台帳には金額のみを記録します。
2025-01-05 * "創業者の額面での株式購入"
Assets:Bank:Checking 800.00 USD
Equity:CommonStock -0.80 USD
Equity:APIC -799.20 USD
; 普通株式8,000,000株 @ $0.0001 — 株式数は台帳外で管理(任意)自社株を商品として追跡
台帳で発行済み株式数を追跡したい場合は、自社株を「商品(コモディティ)」として定義できます。これはより複雑ですが、台帳内でより完全な記録を提供します。
2025-01-05 commodity ACME
name: "Acme, Inc. Common"
2025-01-05 * "創業者への株式発行"
Assets:Bank:Checking 800.00 USD
Equity:APIC -799.20 USD
Equity:CommonStock -8,000,000 ACME {0.0001 USD}SAFEの入金(分類を選択)
SAFE(将来の株式を約束する簡易契約)は、負債または資本の一形態(具体的には「メザニン資本」)のいずれかとして扱うことができます。会計士に相談して適切な方法を選択し、一貫性を保ってください。
; (A) 資本分類(メザニン)
2025-02-01 * "ポストマネーSAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Equity:SAFE -500,000.00 USD
; (B) 負債分類(転換まで)
2025-02-01 * "ポストマネーSAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Liabilities:SAFE -500,000.00 USD評価額が決定したラウンドがクローズする際には、クロージング文書に基づいてSAFE残高を優先株と追加払込資本に振り替えます。
利息が発生する転換社債
SAFEとは異なり、転換社債は明確に利息が発生する負債です。当初の現金を記録し、その後、定期的に(例:四半期ごとに)利息費用を計上します。
2025-03-01 * "転換社債 — 年利6%"
Assets:Bank:Checking 250,000.00 USD
Liabilities:NotesPayable -250,000.00 USD
2025-06-30 * "第2四半期の社債利息の計上"
Expenses:Interest 3,750.00 USD
Liabilities:NotesPayable -3,750.00 USD
; 250,000 * 6% * 0.25 = 3,750年間SaaS契約(繰延収益 + 月次認識)
これは発生主義会計の基礎です。顧客が1年分を前払いした場合、その収益を一度にすべて計上するのではありません。負債(DeferredRevenue)に計上し、毎月その1/12を認識します。
2025-03-10 * "年間サブスクリプション — AcmeCo — INV-001"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
narration: "SaaS年間前払い"
2025-03-20 * "INV-001の支払い"
Assets:Bank:Checking 1,200.00 USD
Assets:AR -1,200.00 USD
; 1/12を認識(毎月繰り返すか、スクリプト化)
2025-04-01 * "収益認識 1/12 — INV-001"
Liabilities:DeferredRevenue 100.00 USD
Income:Revenue:SaaS -100.00 USD前払費用と償却
これは繰延収益の逆です。サービス(年間ソフトウェアや保険など)を前払いした場合、それを資産(Prepaid)として記録し、毎月その一部を「償却」または費用計上します。
2025-03-01 * "年間ソフトウェア前払い"
Assets:Prepaid:Software 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD
2025-04-01 * "前払いの1/12を償却"
Expenses:Software:Subscriptions 100.00 USD
Assets:Prepaid:Software -100.00 USD給与(天引き・雇用主負担金込みの手取り現金)
給与の仕訳にはいくつかの要素があります。総額の給与費用、雇用主の税負担、従業員に支払われる手取り現金、そして政府に納付する必要がある天引きされた税金の負債です。
2025-04-15 * "給与 — 4月15日"
Expenses:Payroll:Wages 15,000.00 USD
Expenses:Payroll:EmployerTaxes 1,200.00 USD
Liabilities:Payroll:Withholding -4,000.00 USD
Assets:Bank:Checking -12,200.00 USD売上税の徴収と納付(カリフォルニア州の例)
売上税を徴収した場合、それは会社のお金ではありません。州に支払うべき負債です。売上時に負債を記録し、税を納付するときにその負債を清算します。
2025-05-10 * "請求書 #123 — CA州課税対象"
Assets:AR 1,088.75 USD
Income:Revenue:SaaS -999.00 USD
Liabilities:SalesTax:CA -89.75 USD
2025-06-05 * "支払い #123"
Assets:Bank:Checking 1,088.75 USD
Assets:AR -1,088.75 USD
2025-07-20 * "CA州売上税 第2四半期分を納付"
Liabilities:SalesTax:CA 89.75 USD
Assets:Bank:Checking -89.75 USDFXと暗号通貨(ライトウェイト)
Beancountは複数の通貨をネイティブに処理します。priceディレクティブを使用して為替レートを記録し、特定の取引には{}コスト構文を使用します。
2025-03-01 price EUR 1.0832 USD
2025-03-02 * "AWS EU請求"
Expenses:Cloud 90.00 EUR
Liabilities:CreditCard:Corporate -90.00 EUR
2025-03-05 * "テスト用にBTCを購入"
Assets:Crypto:BTC 0.0200 BTC {3400.00 USD}
Assets:Bank:Checking -3,400.00 USD7) Favaの使用(ワンコマンドでレポート)
Favaは、Beancountのデータを生き生きと表示する優れたウェブインターフェースです。これは、注意深いデータ入力に対する報酬です。
- インストール:
$ pip install fava - 実行:
$ fava ledger/main.beancount - 便利なビュー: 損益計算書、貸借対照表、仕訳帳(勘定科目やタグでのフィルタリング用)、クエリ(カスタムSQLライクなクエリ用)。
Favaのクイックフィルター:
account:DeferredRevenue: 繰延収益勘定のすべての活動を表示します。tag:#invoice-001: 特定の請求書に関連する取引にタグを付け、フィルタリングします。from:2025-01-01 to:2025-12-31: 特定の会計期間に焦点を当てます。
8) 月次締めチェックリスト(15〜45分)
毎月末に、このチェックリストを実行して、帳簿が正確で最新であることを確認します。この規律により、税務申告時期や投資家デューデリジェンスが容易になります。
- 銀行/クレジットカード: すべての取引をインポートまたは手動で入力します。残高を明細書と照合します。
- 売掛金/買掛金: 発行済みの請求書と受け取った請求書をすべて計上し、支払済みの項目を消し込みます。
- 収益: すべての前払い契約について、月次の収益認識仕訳を計上します。
- 前払費用: すべての前払費用の
1/12(または適切な割合)を償却します。 - 給与: 給与計算代行会社のレポートから仕訳を計上します。
- 売上税: 当月分の売上税負債を計上します。
- シード資金調達手段: 転換社債の利息を計上します。
- 健全性チェック:
- 損益計算書の収益は、想定されるMRR/ARRとおおよそ一致していますか?
- バーンレートとランウェイは、財務計画と整合していますか?
$ bean-checkはエラーなく実行されますか? Favaのレポートは正しく見えますか?
- Gitにコミットし、簡潔で一貫性のあるメモを付けます(例:
close: 2025-04)。
9) メタデータと文書(監査を容易に)
台帳は自己文書化されるべきです。メタデータを使用し、ソース文書にリンクして、堅牢な監査証跡を作成します。将来の自分(そして会計士)が感謝するでしょう。
- 明確にするために、取引に
payee:、narration:、invoice:、customer:、link:などのメタデータを追加します。 - ソースPDF(請求書、領収書、銀行取引明細書)を
ledger/documents/フォルダに添付し、document:メタデータタグを使用してリンクします。 - タグ(
#payroll、#saas、#vendor-aws、#invoice-001)を使用して、簡単にフィルタリングおよび分析できるようにします。
例:
2025-03-10 * "年間サブスクリプション — AcmeCo" #saas #invoice-001
payee: "AcmeCo"
invoice: "INV-001"
document: "documents/invoices/INV-001.pdf"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD10) 後でインポート(時間ができたら)
最初の1、2ヶ月は、取引を手動で入力することから始めてください。これは、システムと自身の支出パターンを学ぶ最良の方法です。慣れてきたら、単純なPythonインポーターを作成してプロセスを自動化し、労力を削減できます。
典型的なインポーターの適用順序:
- 銀行CSV →
Assets:Bank:Checking - クレジットカードCSV →
Liabilities:CreditCard:Corporate - Stripe/PayPal Payoutレポート → 収益と現金のマッピング
インポーターは /ledger/importers に置き、生成された取引は他のコード変更と同様にレビューしてください。
11) 会計方針(includes/policies.beancount に配置)
このファイルには、一貫性を保つための会計上の決定を文書化します。これは単純なテキストファイルですが、規律を維持するために重要です。
- 発生主義に基づき、SaaS収益は按分して認識します。
- 機能通貨はUSDであり、FXは日次レートまたは取引時レートで記録します。
- 資本化閾値(例:
$2,500を超える項目はAssets:Equipmentとして資産計上し、それ以外は即時費用処理します)。 - 旅費/交際費: 業務目的は
narrationフィールドに文書化する必要があります。 - 株式の記録: 通貨のみまたは株式商品のどちらの方法を使用するかを明示します。
- SAFE/社債: 分類(負債または資本)を文書化します。
policies.beancount の例:
; 方針: 発生主義、収益は繰延され毎月認識される。
; 方針: 機能通貨はUSD。FX損益はコスト/価格データから導出される。
; 方針: $2,500を超える有形資産は、3年間の定額法で資本化する。
; 方針: SAFEは、評価額決定ラウンドでの転換まで負債として記録する。12) クイックトラブルシューティング
- 仕訳帳で収益がマイナス表示される: これは正しいです。収益は貸方(クレジット)です。Favaのレポートでは正の数値として表示されます。
- 残高がゼロにならない: 不完全な取引がある可能性が高いです。取引の転記(ポスティング)は合計がゼロになる必要があります。Favaの仕訳帳ビューを使用して原因を見つけてください。一時的な措置として、
Equity:Suspense勘定に調整の転記を追加してファイルを有効にし、その後、根本原因を調査して修正できます。 - FXの不一致: 関連する日付の
priceディレクティブがあることを確認するか、90.00 EUR {97.49 USD}のように機能通貨でのコスト基準を指定してください。
13) 台帳外で管理するもの(リンクを維持)
Beancountは金融取引のためのものですが、一部のものは専用システムで管理する方が適しています。重要なのは、台帳からそれらにリンクすることです。
- キャップテーブル: Carta、Pulley、またはスプレッドシートを使用します。Beancountの資金調達取引から、署名済みのクロージング文書にリンクします。
- 取締役会の同意書、株式プラン、409Aレポート: これらは安全な場所に保管し、関連する株式取引に
link:メタデータを追加します。 - 税務申告書: 最終的なPDFを保管し、年度末の締め処理取引からリンクします。
コピー可能なスターターファイル(オールインワン)
複数ファイルのインクルード構造に拡張する前に、単一のファイルから始めたい場合は、上記のセクションのファイル内容をすべて1つの大きなmain.beancountに貼り付けるだけです。台帳が成長するにつれて、後でいつでもリファクタリングできます。
このフレームワークは、スタートアップの財務に対する堅固でスケーラブルな基盤を提供します。帳簿をプレーンテキストでバージョン管理下に置くことで、比類のない透明性とコントロールを得て、初日から財務規律を備えた会社を築くことができます。