スタートアップのためのBeancount設定
プレインテキストでスタートアップの会 計を運用するための、実用的でコピー&ペースト可能なベースライン。プレシードからシリーズAまで対応。これは法的または税務上のアドバイスではありません。
スタートアップを経営するということは、多くの役割を担うことを意味し、最も重要な役割の一つが「簿記係」です。高価なソフトウェアやフルタイムの会計士を雇う余裕ができる前に、正確で監査可能であり、独自の生態系に縛られないシステムが必要です。そこで、Beancountの登場です。Beancountは、オープンソースのプレインテキスト会計システムです。
Beancountを使用するということは、財務元帳がGitリポジトリ内のコードと同じようにテキストファイルに存在することを意味します。これはバージョン管理され、透過的で、無限にカスタマイズ可能です。このガイドでは、設立からシリーズAまでのスタートアップの会計を、健全な発生主義会計原則に基づいて実行するための、完全なコピー&ペースト可能な設定を提供します。
1) 設定内容
このガイドでは、完全なプロフェッショナルグレードの会計設定を作成する手順を説明します。終了するまでに、次のものが揃います。
- Gitで管理された単一の情報源となる元帳 (
main.beancount
)。会社の財務の完全で監査可能な履歴を提供し ます。 - 美しいレポートとグラフを作成するためのFava。Favaは、Beancount用のWebインターフェースで、テキストファイルをインタラクティブな損益計算書、貸借対照表、およびキャッシュフロー分析に変換します。
- 銀行、クレジットカード、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.py
main.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 * "Opening balances"
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 * "Founder stock purchase @ par"
Assets:Bank:Checking 800.00 USD
Equity:CommonStock -0.80 USD
Equity:APIC -799.20 USD
; 8,000,000 common @ $0.0001 — 株式数は元帳外で管理
(オプション) 独自の株式を商品として追跡する
元帳で発行済株式数を追跡する場合は、株式を「商品」として定義できます。これはより複雑ですが、より完全な元帳内記録を提供します。
2025-01-05 commodity ACME
name: "Acme, Inc. Common"
2025-01-05 * "Founder share issuance"
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 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Equity:SAFE -500,000.00 USD
; (B) 負債分類 (転換まで)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Liabilities:SAFE -500,000.00 USD
価格付きラウンドが終了すると、SAFE残高を、終了ドキュメントに基づいて優先株と資本準備金に再分類します。
発生利息付きの転換社債
SAFEとは異なり、転換社債は紛れもなく利息が発生する負債です。最初の現金を記録し、利息費用を定期的に (たとえば、四半期ごとに) 記帳します。
2025-03-01 * "Convertible Note — 6% annual"
Assets:Bank:Checking 250,000.00 USD
Liabilities:NotesPayable -250,000.00 USD
2025-06-30 * "Accrue note interest Q2"
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 * "Annual subscription — AcmeCo — INV-001"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
narration: "SaaS annual prepay"
2025-03-20 * "Payment INV-001"
Assets:Bank:Checking 1,200.00 USD
Assets:AR -1,200.00 USD
; 1/12 の月を認識する (毎月繰り返すか、スクリプト化する)
2025-04-01 * "Revenue recognition 1/12 — INV-001"
Liabilities:DeferredRevenue 100.00 USD
Income:Revenue:SaaS -100.00 USD
前払費用と償却
これは繰延収益の逆です。サービス (年間ソフトウェアや保険など) の前払いを行う場合、それを資産 (Prepaid
) として記録し、毎月その一部を「償却」または費用処理します。
2025-03-01 * "Annual software prepaid"
Assets:Prepaid:Software 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD
2025-04-01 * "Amortize prepay 1/12"
Expenses:Software:Subscriptions 100.00 USD
Assets:Prepaid:Software -100.00 USD
給与 (手取り現金、源泉徴収 + 雇用主税)
給与エントリには、いくつかの部分があります。総賃金費用、雇用主の税金費用、従業員に支払われる手取り現金、および政府に納付する必要がある源泉徴収税の負債です。
2025-04-15 * "Payroll — Apr 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
売上税の徴収と納付 (CAの例)
売上税を徴収する場合、それはあなたのお金ではありません。州に負っている負債です。売上税を記録し、税金を納付するときにそれを消去します。
2025-05-10 * "Invoice #123 — CA taxable"
Assets:AR 1,088.75 USD
Income:Revenue:SaaS -999.00 USD
Liabilities:SalesTax:CA -89.75 USD
2025-06-05 * "Payment #123"
Assets:Bank:Checking 1,088.75 USD
Assets:AR -1,088.75 USD
2025-07-20 * "Remit CA sales tax Q2"
Liabilities:SalesTax:CA 89.75 USD
Assets:Bank:Checking -89.75 USD
FXと暗号通貨 (軽量)
Beancountは、複数の通貨をネイティブに処理します。price
ディレクティブを使用して為替レートを記録し、特定のトランザクションには{}
コスト構文を使用します。
2025-03-01 price EUR 1.0832 USD
2025-03-02 * "AWS EU charge"
Expenses:Cloud 90.00 EUR
Liabilities:CreditCard:Corporate -90.00 EUR
2025-03-05 * "Buy BTC for testing"
Assets:Crypto:BTC 0.0200 BTC {3400.00 USD}
Assets:Bank:Checking -3,400.00 USD
7) Favaの使用 (1つのコマンドでのレポート)
Favaは、Beancountデータを生き生きとさせる素晴らしいWebインターフェースです。これは、注意深くデータを入力したことに対する報酬です。
- インストール:
$ 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のレポートは正しく見えますか?
- 短く一貫したメモ (例:
close: 2025-04
) を付けて Gitにコミットします。
9) メタデータとドキュメント (監査を簡単にする)
元帳は自己文書化されている必要があります。メタデータを使用し、ソースドキュメントにリンクして、反論の余地のない監査証跡を作成します。将来のあなた (とあ なたの会計士) は感謝するでしょう。
- 明確にするために、トランザクションに
payee:
、narration:
、invoice:
、customer:
、またはlink:
などのメタデータを追加します。 - ソースPDF (請求書、領収書、銀行の明細書) を
ledger/documents/
フォルダに添付し、document:
メタデータタグを使用してリンクします。 - タグ (
#payroll
、#saas
、#vendor-aws
、#invoice-001
) を使用して、フィルタリングと分析を簡単にします。
例:
2025-03-10 * "Annual subscription — 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 USD
10) 後でインポートする (時間があるとき)
最初の1〜2か月は、トランザクションを手動で入力することから始めます。これは、システムと自分の支出パターンを学習するのに最適な方法です。慣れてきたら、簡単なPythonインポーターを記述して、 プロセスを自動化し、手間を減らすことができます。
一般的なインポーターの順序:
- 銀行CSV →
Assets:Bank:Checking
- クレジットカードCSV →
Liabilities:CreditCard:Corporate
- Stripe/PayPalの支払いレポート → 収益と現金のマッピング
インポーターを /ledger/importers
に保持し、他のコード変更と同様に、生成されたトランザクションを確認します。
11) ポリシー ( includes/policies.beancount
に配置)
このファイルは、一貫性を保つために会計上の決定を文書化する場所です。これは単純なテキストファイルですが、規律を維持するために重要です。
- 発生主義基準。SaaS収益を比例配分で認識します。
- 機能通貨はUSDです。為替レートは日次レートまたはトランザクションレートで記録します。
- 資本化のしきい値 (たとえば、
$2,500
を超える項目はAssets:Equipment
項目になります。それ以外の場合は、すぐに費用処理されます)。 - 旅行/食事: 事業目的は
narration
フィールドに文書化する必要があります。 - 資本の記録: 通貨のみまたは 株式商品のどちらの方法を使用しているかを明示的に記述します。
- SAFE/社債: 選択した分 類 (負債または資本) を文書化します。
policies.beancount
の例:
; Policy: Accrual basis, revenue deferred and recognized monthly.
; Policy: USD functional currency. FX gains/losses are derived from cost/price data.
; Policy: Capitalize tangible assets over $2,500 with a 3-year straight-line depreciation.
; Policy: SAFEs are recorded as Liabilities until conversion in a priced round.
12) 簡単なトラブルシューティング
- 仕訳帳で収益がマイナスに見える: これは正しいです! 収益 は貸方です。Favaレポートでは正の数として表示されます。
- 残高がゼロにならない: トランザクションが不完全である可能性があります。トランザクションの転記の合計はゼロになる必要があります。Favaの仕訳帳ビューを使用して、原因を見つけてください。一時的な対策として、
Equity:Suspense
アカウントにバランス調整レッグを追加して、ファイルを有効にすることができます。その後、根本的な原因を調べて修正します。 - FXの不一致: 関連する日付の
price
ディレクティブがあるか、90.00 EUR {97.49 USD}
のように運用通貨で原価基準を指定していることを確認してください。
13) 元帳外で追跡するもの (リンクを保持)
Beancountは財務トランザクション用ですが、一部のものは専用システムで管理する方が適切です。重要なのは、元帳からそれらにリンクすることです。
- 資本政策表: Carta、Pulley、またはスプレッドシートを使用します。Beancountの資金調達トランザクションから署名済みの終了ドキュメントにリンクします。
- 取締役会の同意書、株式プラン、409Aレポート: これらを安全な場所に保管し、関連する株式トランザクションに
link:
メタデータを追加します。 - 税務申告書: 最終的なPDFを保存し、年末締めトランザクションからそれらにリンクします。
コピー対応のスターターファイル (オールインワン)
インクルード構造に拡張する前に、単一のファイルから始める場合は、上記のセクションのファイルの内容を1つの大きな main.beancount
に貼り付けるだけです。元帳の成長に合わせて、いつでもリファクタリングできます。
このフレームワークは、スタートアップの財務のための堅牢でスケーラブルな基盤を提供します。バージョン管理されたプレインテキストで帳簿を保持することにより、比類のない透明性と制御を獲得し、最初の日から財務規律を確立できます。