Перейти к основному содержимому

9 записей с тегом "financial management"

Посмотреть все теги

Accumulated Depreciation (for Beancount): A Practical, Plain‑Text Guide

· 10 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

If you track fixed assets in your accounting—laptops, cameras, machinery, or even office furniture—your books need to reflect their declining value. This involves two key concepts: depreciation (the expense) and its running total, accumulated depreciation. This guide explains both in plain language and then shows you exactly how to model them in Beancount with copy-pasteable examples, including powerful automation options.


2025-08-23-accumulated-depreciation

What is accumulated depreciation?

Accumulated depreciation is the total amount of depreciation that has been recorded against an asset since the day it was put into service. Think of it as a running tally. It’s not a new kind of expense—it's just the to-date sum of all past depreciation charges for that asset.

In financial statements, you’ll see accumulated depreciation paired with the asset’s original price. This allows anyone reading your books to see both the historical cost (what you paid for it) and the net book value (what it's currently worth on your books).

A crucial detail is that accumulated depreciation is a contra-asset account. This might sound complex, but it's a simple idea:

  • It's an "asset" account, so it lives in the Assets section of your chart of accounts.
  • However, it carries a credit balance (a negative value in Beancount's asset accounts), which reduces the value of the related fixed asset.

Where does it appear on the balance sheet?

Accumulated depreciation typically appears on the balance sheet directly underneath the fixed asset it relates to. For example:

Equipment: Computers$3,000.00
Less: Accumulated Depreciation($1,000.00)
Equipment: Computers, Net$2,000.00

Many financial statements simplify this by showing a single line item like “Property, plant & equipment, net”. This single number represents the total historical cost of all assets minus their total accumulated depreciation, giving you the final net book value.


How do you calculate depreciation?

There are several methods for calculating depreciation. The one you choose determines how much expense you record each period, which in turn adds to the accumulated depreciation total. Two common families of methods are:

  • Straight-Line (SL): This is the simplest and most common method for bookkeeping purposes. You expense an equal amount of the asset's value in each period of its useful life. For example, a 3,000laptopwitha36month(3year)usefullifewouldbedepreciatedat3,000 laptop with a 36-month (3-year) useful life would be depreciated at 83.33 per month.
  • Tax Methods (e.g., MACRS in the U.S.): For tax purposes, governments often define specific accelerated schedules. In the U.S., the Modified Accelerated Cost Recovery System (MACRS) allows you to take larger depreciation deductions in the earlier years of an asset's life. Beancount can easily handle these schedules—you just need to calculate the amounts according to the official tables (like those in IRS Publication 946) and generate the corresponding journal entries.

Formula (Straight-Line)

Periodic Depreciation = fractextCosttextSalvageValuetextUsefulLife\\frac{\\text{Cost} - \\text{Salvage Value}}{\\text{Useful Life}}

Accumulated Depreciation (at date t) = sum(textPeriodicDepreciationuptot)\\sum (\\text{Periodic Depreciation up to } t)

Salvage value is the estimated residual value of an asset at the end of its useful life. For simplicity, it's often assumed to be zero.


The Beancount Way: Model Cost and Accumulated Depreciation

To properly track fixed assets in Beancount while preserving their original cost, you’ll use a pair of asset accounts for each category, plus an expense account.

  • Assets:Equipment:Computers:Cost (to hold the historical cost)
  • Assets:Equipment:Computers:AccumDep (the contra-asset, which will be credited over time)
  • Expenses:Depreciation:Computers (to record the periodic expense)

This structure mirrors standard accounting practice and is the recommended approach for managing fixed-asset depreciation in Beancount.


Option A: Manual Straight-Line Entries

This is the most direct method. You control every entry, which is great for understanding the mechanics.

1. Open the necessary accounts

2025-01-01 open Assets:Bank:Checking
2025-01-01 open Assets:Equipment:Computers:Cost
2025-01-01 open Assets:Equipment:Computers:AccumDep
2025-01-01 open Expenses:Depreciation:Computers

2. Record the purchase (at historical cost)

When you buy the asset, you debit the Cost account.

2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

3. Record monthly depreciation

Each month, you'll record the depreciation expense. For a 3,000assetover36months,themonthlydepreciationis3,000 asset over 36 months, the monthly depreciation is 3000 \div 36 = 83.3383.33.

The transaction involves debiting the expense account and crediting the contra-asset account.

2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD ; This is the credit to the contra-asset

You would repeat this entry every month for 36 months. The balance in Assets:Equipment:Computers:AccumDep will grow more negative over time, reducing the asset's net book value.

Quick Check: You can easily check the net book value in Fava's Balance Sheet or by running a quick query:

bean-query myledger.bean "SELECT account, SUM(position) WHERE account ~ 'Assets:Equipment:Computers:(Cost|AccumDep)' GROUP BY account"

The sum of the balances of these two accounts is your net book value.


Option B: Automate with Fava’s amortize Plugin

If you use Fava (the popular web interface for Beancount) and your depreciation is a fixed amount each month, you can automate it.

First, enable the plugin at the top of your Beancount file:

plugin "fava.plugins.amortize_over"

Next, create a single transaction that defines the entire depreciation schedule.

; 1. Record the initial purchase as usual
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

; 2. Set up the depreciation schedule
2025-01-20 * "Depreciation schedule - MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USD

The plugin will see this transaction and automatically generate virtual postings for $83.33 each month for 36 months. These entries don't get written to your .bean file but appear in all reports. This is perfect for straight-line depreciation but won't work for irregular schedules like MACRS.


Option C: Generate Periodic Entries with a Third-Party Plugin

If you prefer to have real, non-virtual transactions written into your files but still want automation, a periodic entry generator is a great choice. One of the most popular is beancount-periodic by Dallas Lu. This plugin can be configured to create dated postings on your behalf, giving you the control of manual entries with the convenience of automation.


Viewing Results: Cost, Accumulated Depreciation, and Net Book Value

No matter which method you choose, your Balance Sheet will show both the Cost and AccumDep accounts under your Assets. The sum of these two is your net book value. This presentation—showing the gross cost less the accumulated depreciation—is exactly what accountants and financial analysts expect to see. It provides full transparency into the age and value of your assets.


Disposing of an Asset (Sell, Scrap, or Retire)

When an asset reaches the end of its life, you either sell it, scrap it, or retire it. To remove it from your books, you must:

  1. Remove its historical cost.
  2. Remove its associated accumulated depreciation.
  3. Record any cash received.
  4. Record any resulting gain or loss (the difference between cash received and the net book value).

Example: Selling an Asset for a Gain

Let's say you sell the MacBook Pro on June 15, 2027.

  • Original Cost: $3,000
  • Accumulated Depreciation at time of sale: -$2,500
  • Net Book Value: 3,0003,000 - 2,500 = $500
  • You sell it for: $800
  • Gain on Sale: 800(proceeds)800 (proceeds) - 500 (net book value) = $300

Here is the Beancount transaction to record the disposal:

2027-06-15 * "Sell MacBook Pro"
Assets:Bank:Checking 800.00 USD ; Cash received
Assets:Equipment:Computers:AccumDep 2500.00 USD ; Debit to zero out the contra-asset
Assets:Equipment:Computers:Cost -3000.00 USD ; Credit to remove the original cost
Income:Gains:AssetDisposals -300.00 USD ; Credit to record the gain

If the proceeds had been only 400(alossof400 (a loss of 100), you would post the difference to an Expenses:Losses:AssetDisposals account with a positive amount (a debit).


FAQ (Fast)

  • Is accumulated depreciation an asset or a liability? Neither. It’s a contra-asset. It's located in the assets section of your balance sheet but has a credit balance, which reduces the total asset value.

  • Do I ever post directly to the Cost account after purchase? Generally, no. The purpose of the contra-asset account is to preserve the original historical cost. All reductions in value due to depreciation should be posted to ...:AccumDep.

  • Can I use Beancount for MACRS (tax) schedules? Yes. You'll need to calculate the depreciation amounts for each period using the tables in IRS Publication 946. Then, you can record those amounts using manual entries or a periodic plugin. The Fava amortize plugin is not suitable for this, as MACRS amounts are not equal each month.

  • What about Section 179 expensing? Section 179 allows you to expense the full cost of qualifying property in the year you place it in service, instead of depreciating it over time. This is an election you make for tax purposes. In Beancount, this would simply be a debit to an expense account instead of a fixed asset account at the time of purchase.


Common Pitfalls (and How to Avoid Them)

  • Posting depreciation directly against the Cost account.
    • Fix: Always credit the ...:AccumDep contra-asset account. This preserves the historical cost, which is important for financial reporting.
  • Forgetting to remove Accumulated Depreciation on disposal.
    • Fix: When you sell or scrap an asset, your journal entry must include a debit to ...:AccumDep to clear its balance for that asset.
  • Mixing up bookkeeping and tax depreciation schedules.
    • Fix: Your internal management books often use straight-line for simplicity, while your tax filings may require MACRS. Keep these purposes separate and document your policy.
  • Expecting the Fava amortize plugin to handle non-equal schedules.
    • Fix: Remember that this plugin is designed only for equal monthly splits. For any other pattern, use manual postings or a more flexible periodic plugin.

Copy-Paste Template

Here is a complete template you can adapt for your own ledger.

option "title" "My Business Ledger"
plugin "fava.plugins.amortize_over" ; Remove if not using Fava automation

; --- Accounts ---
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Assets:Equipment:Computers:Cost
2025-01-01 open Assets:Equipment:Computers:AccumDep
2025-01-01 open Expenses:Depreciation:Computers
2025-01-01 open Income:Gains:AssetDisposals
2025-01-01 open Expenses:Losses:AssetDisposals

; --- Purchase at historical cost ---
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

; --- Choose ONE depreciation approach ---

; (A) Manual monthly posting
2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD

; (B) Fava automation (for 36 equal monthly splits)
2025-01-20 * "Depreciation schedule - MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USD

; --- Sale example (edit numbers for your actual sale) ---
2027-06-15 * "Sell MacBook Pro"
Assets:Bank:Checking 800.00 USD
Assets:Equipment:Computers:AccumDep 2500.00 USD
Assets:Equipment:Computers:Cost -3000.00 USD
Income:Gains:AssetDisposals -300.00 USD

TL;DR

  • Keep asset Cost and AccumDep in separate accounts to preserve historical cost.
  • Record depreciation with a debit to Expenses:Depreciation:... and a credit to Assets:...:AccumDep.
  • Automate equal monthly depreciation with the Fava amortize plugin or generate dated entries with a periodic plugin.
  • When disposing of an asset, you must remove both its Cost and its AccumDep from the books and record the resulting gain or loss.

Sources & Further Reading

What is Accounts Payable? A Beancount-Friendly Guide for Tracking Vendor Bills in Plain Text

· 8 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Accounts payable (AP) is the money your business owes to its suppliers for goods or services you’ve already received but haven't paid for yet. In the world of accounting, AP is classified as a current liability on your balance sheet—an amount typically due within the next year, and often within 30 to 60 days.

This concept is central to accrual accounting, where you record the expense and the corresponding liability the moment a bill arrives, not when you actually send the cash. This guide will show you how to manage the entire AP workflow cleanly and efficiently using the plain-text accounting tool, Beancount.

2025-08-20-what-is-accounts-payable


Quick Summary

Before we dive into the details, let's cover the essentials:

  • Accounts Payable (AP) represents your short-term debts to vendors. You'll find it under the Liabilities section of your balance sheet.
  • Accrual vs. Cash: AP is a concept that exists only if you keep your books on an accrual basis. Beancount fully supports accrual workflows, and its web interface, Fava, will display your liabilities correctly.
  • AP vs. AR: It's simple: Payables are what you owe, while Receivables (AR) are what others owe you.

Where AP Lives in Beancount (and Fava)

To start tracking AP, you first need to declare an account for it in your ledger. A standard convention is:

Liabilities:AccountsPayable

You can optionally create subaccounts for major vendors (e.g., Liabilities:AccountsPayable:ForestPaintSupply).

In Fava, this account will appear on your Balance Sheet under Liabilities. You can click on it to drill down and see a list of all open and paid items, giving you a clear view of your obligations. You can even see this in action in Fava's public example ledger, which includes a Liabilities:AccountsPayable account.


Beancount Building Blocks You’ll Use

A robust AP workflow in Beancount relies on a few core features:

  1. Accounts: You'll primarily use your Liabilities:AccountsPayable account, a cash account like Assets:Bank:Checking, and your various expense accounts (e.g., Expenses:Supplies).
  2. Metadata: You can attach key-value data to any transaction. For AP, you'll use metadata like invoice:, due:, terms:, and document:. Fava even recognizes the document: key and will automatically create a clickable link to the attached file if you configure a documents folder.
  3. Tags & Links: Use #tags (like #ap) for easy filtering and ^links (like ^INV-10455) to programmatically tie a bill and its subsequent payment together. This creates a clear, auditable trail.
  4. Queries (BQL): Beancount's SQL-like query language (BQL) allows you to run powerful reports, like listing all open payables sorted by due date, directly from the command line with bean-query or on Fava's "Query" page.

Core AP Workflow in Beancount

Managing AP in your ledger involves two or three key steps: recording the bill, paying it, and sometimes handling partial payments or discounts.

1) Record the Vendor Bill (This Creates the Liability)

First, you book the expense and create the payable when the invoice arrives.

; Optionally set your documents folder in your main Beancount file:
option "documents" "documents"

2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
terms: "2/10, n/30"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

This single entry accomplishes two critical things:

  1. It immediately recognizes the $500 expense in the correct period (August).
  2. It creates a corresponding $500 liability, showing that you owe money to Forest Paint Supply.

The ^INV-10455 link is a unique identifier that lets you attach the same link to the payment later, keeping the bill and payment transactions logically connected.

2) Pay the Bill (This Clears the Liability)

When you pay the invoice, you create a transaction that moves money from your bank account to clear the liability.

a) Standard Payment (No Discount):

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

This entry reduces your AP balance by $500 and your checking account balance by the same amount. The liability is now cleared.

b) Early-Payment Discount (e.g., "2/10, n/30"):

If the terms are "2/10, n/30", you can take a 2% discount if you pay within 10 days. For our 500invoice,thatsa500 invoice, that's a 10 discount. Here are two acceptable ways to record it—just pick one method and be consistent.

; Option 1: Record the discount as other income (a contra-expense effect)
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD

; Option 2: Reduce the original expense directly
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD

In both cases, you clear the full 500liability,reduceyourbankbalancebythe500 liability, reduce your bank balance by the 490 you actually paid, and account for the $10 benefit.

3) Handling Partial Payments

Beancount's linking feature makes tracking partial payments simple and clean.

; Invoice for $1,200
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
invoice: "INV-9001"
due: "2025-09-09"
Expenses:Parts 1200.00 USD
Liabilities:AccountsPayable -1200.00 USD

; First payment of $400
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD

; Final payment of $800
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD

By using the ^INV-9001 link on all three transactions, you can easily filter your journal to see the complete history of this specific bill and its associated payments.


Helpful Queries (BQL)

You can run these queries in Fava’s “Query” tab or from the command line with bean-query.

Tip: The any_meta() function is incredibly useful for pulling metadata fields like invoice: and document: into your query results.

Open AP by Vendor (Balance View):

This query sums up the current outstanding balance you owe to each supplier.

SELECT payee, COST(SUM(position)) AS amount
WHERE account ~ "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

Open AP by Invoice + Due Date:

Get a tidy list of every open bill, sorted by its due date, to help you prioritize payments.

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account ~ "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

List Bills with Attached PDFs:

This query finds all your bills and shows the path to the linked document.

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account ~ "^Liabilities:AccountsPayable"
ORDER BY date DESC;

Where to See AP in Fava

  • Balance Sheet: Navigate to Balance SheetLiabilitiesAccountsPayable to see the total balance and drill down into the transaction details.
  • Journal: Filter the journal by account:Liabilities:AccountsPayable or a specific link like ^INV-xxxx to see a bill's complete lifecycle.
  • Documents Sidebar: If you use the document: metadata and set the option "documents" directive, you'll see a list of linked documents in the sidebar.

AP Aging, Turnover, and Cash-Flow Awareness

  • Aging Schedule: This report groups your open invoices by how long they’ve been outstanding (e.g., 1–30 days, 31–60 days, 60+ days). In Beancount, the most practical approach is to run the "Open AP by Invoice + Due Date" query above, export the results as a CSV, and bucket them in a spreadsheet or a small Python script.
  • AP Turnover Ratio: This is a quick health check on how fast you pay your vendors. The formula is Total Supplier Purchases ÷ Average AP. A related metric, Days Payable Outstanding (DPO), is roughly 365 ÷ Turnover Ratio.
  • If You Can’t Pay on Time: AP is meant for short-term debt. If a vendor agrees to formal, longer-term repayment, you should reclassify the debt out of AP and into a note payable.
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
Liabilities:AccountsPayable 2000.00 USD
Liabilities:NotesPayable -2000.00 USD

Best Practices for AP in a Plain-Text Ledger

  • Go Paperless: Store invoice PDFs in your documents folder and link them with the document: metadata key.
  • Use Links Consistently: Put the unique invoice number in a ^link on both the bill and all associated payment entries.
  • Keep Metadata Tidy: Consistently using invoice:, due:, and terms: improves search, queries, and financial reviews.
  • Accrual All the Way: If you want useful AP reporting, commit to keeping your books on an accrual basis. Beancount and Fava handle this beautifully.

Copy-Paste Starter: Vendor Bill + Payment

; ---- Bill ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

; ---- Payment (no discount) ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

This guide is for educational purposes and does not constitute tax, legal, or financial advice.

References & Further Reading:

Accounting Outsourcing: How to Hand Off Your Financial Tasks (for Beancount Users)

· 12 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

If your ledger lives in plain text, you already value clarity, control, and reproducibility. Outsourcing your accounting doesn’t have to compromise any of that. On the contrary, when done right, it transforms your Beancount setup into a reliable, documented workflow run by specialists—while you retain full ownership of the data, the repository, and the rules.

This is a practical guide for Beancount users on what to outsource, what to keep in-house, how to structure deliverables, and how to evaluate providers. It’s about delegating the mechanical work without ever giving up control.

2025-08-19-accounting-outsourcing-how-to-hand-off-your-financial-tasks


Who This Is For

This guide is for you if you fit one of these profiles:

  • Solo founders, indie hackers, and consultants who use Beancount and want to reclaim time spent on the mechanical parts of accounting to focus on building your product or serving clients.
  • Finance-savvy engineers who demand tight controls, versioned history, and full auditability but don't want to spend their weekends importing bank statements and reconciling accounts themselves.
  • Organizations migrating from an all-in-one vendor who are now prioritizing data custody and reproducibility. Recent, abrupt shutdowns of accounting platforms like Bench have underscored a critical lesson: exit plans and open formats are not optional. (TechCrunch, KSV Advisory Report)

Beancount, Briefly

For the uninitiated, the Beancount ecosystem is built on a few core components that make it powerful for this kind of workflow:

  • Beancount: At its heart, it's a double-entry accounting language specified in plain text. You write human-readable ledger files, commit them to a Git repository, and use a compiler to validate them and generate financial reports. (GitHub)
  • Fava: This is the elegant web interface for Beancount. Fava reads your ledger file and gives you interactive balance sheets, income statements, trends, filters, and a powerful SQL-like query language to inspect your data. (Fava Demo)
  • beangulp: The modern framework for automating data ingestion. Evolved from Beancount's original importer, beangulp provides the tools to write robust importers that can parse CSV, OFX, QFX, and even PDF statements, turning raw bank data into structured Beancount entries. (GitHub)

A successful outsourcing relationship should preserve and enhance these strengths: version control, a human-readable history, strict validation, and the composability of your tools.


What to Outsource vs. What to Keep

The key to effective delegation is a clear division of labor. Here’s how to draw the line between tactical execution and strategic ownership.

Great Candidates to Outsource

These tasks are typically repetitive, rule-based, and time-consuming—perfect for a specialist.

  • Statement Collection & Importing: Downloading monthly statements, normalizing various file formats (CSV, OFX, PDF), and running your beangulp importers. This includes maintaining the importer rules as financial institutions inevitably change their statement formats.
  • Categorization Assistance: Building heuristics and declarative rules to categorize transactions. They can optionally use tools like smart_importer to predict postings based on historical data, but the final review always remains with a human.
  • Reconciliation & Integrity Checks: The meticulous work of posting balance assertions to match your statements, investigating discrepancies, and ensuring the ledger remains error-free.
  • Attachments & Document Hygiene: Fetching invoices and receipts, linking them to transactions with metadata, and archiving the source documents in a tidy, reproducible directory tree.
  • Month-End Close & Reporting: Preparing the standard suite of reports (P&L, Balance Sheet, Statement of Cash Flows) and providing Fava views or exports for your management updates.
  • AR/AP Ops & Payroll Prep: Preparing bills for payment, generating invoices, chasing collections, and staging payroll files for your final review and approval.
  • Tax Package Prep: At the end of the year, producing a clean trial balance, supporting schedules, and all the necessary files for your CPA or tax advisor.

Keep In-House (You Own the Intent and Risk)

These responsibilities are strategic and define the financial backbone of your business. They belong to you.

  • Chart of Accounts Design: The structure and naming conventions of your accounts reflect how you think about your business. This is your financial map.
  • Core Accounting Policies: Decisions on entity structure, revenue recognition, and capitalization policies have long-term financial and legal implications.
  • Final Approvals: You must retain the final say on all cash movements, including payments, payroll runs, and significant journal entries.
  • Strategic Finance: Forecasting, budgeting, and defining what "good" looks like for your business are fundamental owner responsibilities.

The Beancount-Native Outsourcing Workflow

Here’s what a structured, Git-based collaboration looks like in practice.

1) Repository Layout (Example)

Your repository is the single source of truth. A well-organized structure makes the process transparent and maintainable.

/ledger
main.beancount # Main ledger file, includes others
accounts/ # Chart of Accounts definition
includes/ # Monthly or yearly transaction files
prices/ # Price directives for commodities/stocks
metadata/ # Custom metadata declarations
plugins/ # Custom Beancount plugins
documents/ # Bank statements, receipts, invoices
/importers # beangulp importers + rules
config.yaml
bank_x.py
card_y.py
/scripts
import.sh # Orchestration script for importers
close_month.py # Month-end validation and reporting script
/reports
monthly/
year_end/
/ops
runbook.md # How to run the system
checklist.md # Procedural checklists (e.g., month-end)
controls.md # Documentation of financial controls

2) The Weekly Cycle

Routine work should follow a predictable rhythm, culminating in a clear deliverable for your review.

  1. Ingest: Your provider pulls statements and runs the beangulp importers to stage new transactions.
  2. Categorize: They apply categorization rules and, if used, smart_importer suggestions. This is followed by a human review to correct any ambiguities.
  3. Reconcile: They add balance assertions to match statement totals and investigate any differences. The use of pad directives should be rare and always require a clear explanation.
  4. Document: Relevant documents (receipts, invoices) are attached to transactions.
  5. Commit & Propose: The changes are committed with descriptive messages and a pull request is opened for your review, allowing you to see the exact diff of what changed in your books.

3) The Month-End Close (Minimum Viable)

Closing the books is a critical checkpoint to ensure accuracy and produce reliable reports.

  • Update price directives for any foreign currency or market-based securities.
  • Review outstanding items: accounts receivable, accounts payable, accruals, prepaid expenses, and loans.
  • Validate that all balance assertions pass and there are no other failing checks.
  • Tag the commit with the closing period (e.g., 2025-08-close) and export the standard reports.
  • Publish a Fava snapshot or provide a secure URL for the period.

4) The Year-End Package

The culmination of the year's work is a tidy, auditable package for your tax preparer. This includes a final trial balance, supporting schedules for key accounts (like fixed assets or inventory), and a reproducible script to regenerate every artifact directly from the Git repository.


Security & Access (Non-Negotiables)

A professional workflow prioritizes security and your ownership of the data.

  • Data Custody First: You own the private Git repository. Your provider should work from a fork and submit pull requests. They should never host the only copy of your ledger.
  • Bank Access: Provide read-only access whenever possible. If you must use an aggregator service, create isolated credentials and have a clear process for revoking them.
  • Secrets & Encryption: Use tools like GPG or age to encrypt sensitive documents at rest. Enforce multi-factor authentication on all services. Operate on the principle of least privilege.
  • Fava Access: You should self-host Fava or run it locally (fava ledger.beancount) and share access for review sessions via a secure tunnel or VPN. Avoid exposing it directly to the public internet.
  • Exit Plan: Insist on a "pull the cord" playbook. This should include escrow or guaranteed handoff of all scripts, configurations, and documentation. As recent events show, vendors can disappear overnight; your financial records must not be stranded with them.

What “Good” Deliverables Look Like (Every Month)

At the end of each month, you should receive two things: a technical artifact and a business summary.

1. A Clean Pull Request Containing:

  • All imported and reviewed transactions for the period.
  • A diff of any new or modified importer rules.
  • Commit messages that summarize key assumptions or manual adjustments.
  • A 100% green status on all balance assertions, with a log showing each account has been reconciled.
  • Links in the Beancount file to all attached documents, plus a report of any missing documents.
  • Updated price directives for investments or foreign currencies.

2. A Management Pack Containing:

  • Standard reports: P&L, Balance Sheet, and Statement of Cash Flows.
  • Key metrics like cash runway and budget vs. actual variance highlights.
  • Direct links to pre-filtered Fava views for deeper, interactive analysis.

Provider Types (And When They Fit)

Not all providers are the same. Match the provider to your stage and complexity.

  • Beancount-Savvy Bookkeeper: Perfect for handling the core workflow: steady importing, categorization, reconciliations, and preparing month-end report packs.
  • Boutique Accounting Firm: A good fit if you need additional services like managing AR/AP, payroll coordination, multi-entity consolidation, or tax preparation support.
  • Fractional Controller/CFO: The right choice when you need strategic oversight. They help design accounting policies, build financial forecasts, prepare board-ready reporting, and design internal controls.

Engagements are typically structured with a monthly retainer for routine work and an hourly rate for ad-hoc projects.


Interview Questions for Beancount Outsourcing

When vetting a potential provider, ask specific, technical questions to gauge their expertise.

  • Which beangulp importers have you personally built or maintained? Can you show me anonymized examples?
  • Will you deliver reproducible scripts and a runbook, or just the final output files?
  • How do you enforce data integrity in your process? (Look for answers involving balance assertions, review checklists, and maybe even CI/CD linting).
  • Do you use smart_importer? If so, what is your process for reviewing and overriding its predictions?
  • How do you propose we structure the Git workflow (e.g., branching strategy, PR templates, commit message conventions)?
  • What is your exit plan? What does the data handback process look like to ensure there is zero lock-in?
  • How do you run Fava in a secure way for client review sessions?

A Simple Statement of Work (SoW) You Can Copy-Paste

Use this as a starting point for your engagement agreement.

Scope of Work

- Weekly transaction imports via beangulp; includes rules maintenance for all connected financial institutions.
- Human-reviewed transaction categorization. Use of smart_importer for suggestions is permitted, but entries will not be auto-committed without review.
- Weekly reconciliations against statements, enforced with `balance` assertions. Variance notes will be provided for any unreconciled differences greater than $X.
- Document collection for all significant transactions; attachment hygiene and a monthly missing-documents report.
- Month-end close process, including price updates, accruals checklist, and delivery of Fava report links.
- Year-end package preparation, including a trial balance and supporting schedules for CPA review.

Deliverables

- A monthly pull request tagged "<YYYY-MM>-close" with all checks passing.
- Updates to the `/ops` folder, including diffs for `runbook.md` and `controls.md`.
- Final reports archived in `/reports/monthly` with a summary changelog.

Access & Security

- All work will be performed in the client-owned private Git repository. Vendor access is granted via a dedicated user, and all changes will be submitted via pull requests.
- Credentials will be scoped to read-only access where possible. Multi-factor authentication is required on all shared services.
- Sensitive documents will be stored using client-provided encryption keys and will be purged from vendor systems upon termination.

SLA & Cadence

- A weekly PR with reconciled transactions will be submitted every <Day of Week>.
- The month-end closing PR will be submitted by business day <N> of the following month.
- Standard response time for inquiries is <X> business hours; critical issue response is <Y> hours.

Exit Clause

- Upon termination, the vendor will hand back the complete repository, all scripts, documentation, and a map of all credentials used within <Z> business days. A 2-hour turnover call is included.

Tips That Save Hours (And Future Pain)

  • Name accounts for reconciliation. Structure your account names to include the institution and the last four digits of the account number (e.g., Assets:Bank:Chase:Checking:1234). This makes debugging trivial.
  • Assert balances at statement boundaries. Treat each bank statement as a verifiable checkpoint. A balance directive at the end of each statement period ensures errors are caught early and contained.
  • Automate price updates. Use Beancount's tools to fetch market prices automatically and record them with price directives. This is essential for accurate investment and foreign exchange reporting.
  • Keep rules declarative. Favor writing small, testable beangulp importers over building complex, ad-hoc scripts. Declarative rules are easier to maintain and debug.
  • Review with Fava, approve in Git. Use Fava's powerful interface to explore the changes and understand their impact. But the final approval happens by reviewing the diff in a Git pull request. Never let your books become a "black box."

Frequently Used Tools in This Stack

  • Beancount: Core engine and language documentation. (Docs)
  • beangulp: The standard for building importers. (GitHub)
  • smart_importer: Machine learning-aided predictions for categorization. (GitHub)
  • Fava: The indispensable web interface for visualizing your ledger. (Website)

The Bottom Line

Outsourcing for Beancount users isn’t about “giving up control.” It is the opposite. It’s about codifying your financial processes so that a specialist can execute them reliably on your behalf. You keep the repository, the scripts, the assertions, and the fundamental ability to regenerate any report from scratch. You delegate the work, not the ownership.

Accounting Solutions: The Top 7 Ways to Get Your Accounting Done

· 8 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Whether you’re running a side hustle from your laptop or scaling a fast-growing startup, you have a few reliable paths to keeping clean, accurate books. But which one is right for you? The best solution depends on your budget, your technical comfort, and how much control you want over your financial data.

Here’s a clear-eyed guide to the seven most common accounting options—what they’re good at, where they struggle, and when a modern solution like Beancount.io is the perfect fit.

2025-08-16-accounting-solutions-the-top-7-ways-to-get-your-accounting-done


1) Excel

This is often the first stop on the accounting journey for its sheer simplicity and universal availability.

  • Good for: Builders and DIY founders who love total control and already know their way around a spreadsheet.
  • Pros: The barrier to entry is practically zero, and thousands of free templates are available online. Its flexibility allows you to build custom financial models and track unique workflows that off-the-shelf software can't handle.
  • Cons: The biggest drawback is the immense manual workload. Every transaction must be entered and reconciled by hand, which is a massive time sink. Worse, it’s dangerously easy to introduce silent formula errors or typos with no guardrails to catch them. Collaboration and maintaining a clear audit trail are clunky without rigorous discipline.
  • Best if… you want a quick, no-frills start for a very simple business and you are exceptionally meticulous.

2) Google Sheets

The cloud-native cousin of Excel, Google Sheets offers the same core functionality with a collaborative twist.

  • Good for: Teams that need simple, shared spreadsheets for tracking income and expenses.
  • Pros: Built-in cloud backups and dead-simple sharing are the main advantages. You can work from any device with a web browser, making it accessible for teams on the go.
  • Cons: It suffers from the same fundamental flaws as Excel: a heavy manual workload and a high risk of user error. You may also run into compatibility quirks with certain templates and add-ons designed for the Microsoft ecosystem.
  • Best if… your team already runs on Google Workspace and you’re willing to accept the trade-offs of a manual system.

3) QuickBooks Online

For decades, QuickBooks has been the default choice for small businesses looking for dedicated accounting software.

  • Good for: Small businesses that want a "classic" SMB software experience with a large ecosystem of integrations.
  • Pros: Its signature feature is bank feeds, which automatically pull in transactions from your bank and credit card accounts, drastically reducing manual data entry. It provides a wide range of financial reports out of the box and is supported by a massive community of accountants and app developers.
  • Cons: While transactions are imported automatically, the system still requires your weekly attention to categorize expenses and reconcile accounts correctly. The interface can have a steep learning curve, and the cost can grow with add-on features. Most importantly, it creates vendor lock-in, making it difficult to export your financial history if you ever decide to leave.
  • Notes & Sources: As QuickBooks promotes, automated bank feeds are a core feature, but you’ll still be responsible for the review and categorization needed to keep your books accurate.

4) Xero

A popular, modern alternative to QuickBooks, Xero offers similar capabilities with a focus on clean design and user experience.

  • Good for: Business owners who prefer a more modern UI but need the same core capabilities as QuickBooks Online.
  • Pros: Xero also has robust bank feeds and powerful reconciliation tools that make matching transactions straightforward. Its clean design is often praised by users, and a large number of accountants are fluent in the platform.
  • Cons: The lower-priced tiers can have feature gaps (like limits on invoices or bills) that push you toward more expensive plans, and add-ons increase the total cost. And just like QBO, it faces the same "you still do the work" reality when it comes to the final categorization and review.
  • Notes & Sources: According to Xero, its automated bank feeds connect to thousands of financial institutions worldwide to power its core reconciliation workflows.

5) Accountants (CPAs)

Certified Public Accountants are highly trained financial experts who provide strategic advice, tax planning, and compliance services.

  • Good for: Tax strategy, navigating complex financial situations, handling audits, and getting one-off advisory.
  • Pros: A good CPA provides expert guidance on critical decisions like entity structure, tax optimization, and complex accounting treatments. Their oversight significantly reduces your risk on high-stakes financial matters.
  • Cons: Hiring a CPA firm for day-to-day bookkeeping is prohibitively expensive for most small businesses. To be effective, they still need you to provide timely, organized financial records.
  • What’s the difference from bookkeepers? In short, bookkeepers record and organize historical transactions, while accountants and CPAs interpret, report, and advise based on that data. (Investopedia, Intuit)

6) Traditional Bookkeepers

A bookkeeper is a professional responsible for the weekly or monthly task of recording and reconciling your financial transactions.

  • Good for: Business owners who want a dedicated person handling the weekly grind of bookkeeping.
  • Pros: Human oversight greatly reduces common categorization errors that software alone can miss. At the end of each month, they produce a clean set of financial statements for you to review.
  • Cons: This option is costlier than DIY software, with monthly retainers often starting in the hundreds of dollars. The turnaround time for reports and answers depends on your bookkeeper's availability and process.
  • Reality Check: For many small businesses, the combination of a great bookkeeper for weekly tasks and periodic CPA support for tax and strategy is a durable and effective combo. (Pioneer Accounting Group)

7) Beancount.io (Plain-Text Accounting, Supercharged)

This modern approach combines the control of spreadsheets with the automation of software and the precision of double-entry accounting.

  • Good for: Developers, finance pros, and detail-oriented founders who demand precision, transparency, and automation without black boxes.
  • What it is: Beancount.io is a platform built on the open-source Beancount methodology. Your entire financial ledger lives as human-readable plain text, which the platform transforms into real-time analysis, hosted Fava dashboards, and AI-assisted workflows.
  • Why teams choose it:
    • Scriptable & Auditable: Version-control your books with Git. Every single change is reviewable in a diff, just like code.
    • Hosted Fava UI: Instantly generate income statements, balance sheets, and interactive charts directly from your text-based ledger. No manual report building.
    • AI Assistance: Speed up transaction categorization and anomaly detection while keeping humans in the loop for final approval.
    • True Portability: Your core data is a simple text file. You can export it anytime. There is zero vendor lock-in.
  • Tradeoffs: There is a learning curve if you’ve never used double-entry accounting in a plain-text format. It's best suited for those who value absolute accuracy and control over the illusion of "push-button" convenience.

Prefer pure open source and self-hosting?

You can always run the Beancount open-source engine on your own machine and use Fava as the web UI. It’s incredibly powerful and free, but you will be responsible for managing the setup, backups, and data integrations yourself. Beancount.io handles all of that for you.


Quick Comparison (At a Glance)

SolutionYour Time InvestmentAutomation LevelHuman HelpData Control
ExcelHighLowNoneMedium
Google SheetsHighLowNoneMedium
QuickBooks OnlineMediumMedium-HighOptionalLow
XeroMediumMedium-HighOptionalLow
Accountants (CPAs)LowN/AHigh (Advisory)Medium
Traditional BookkeepersLowN/AHigh (Weekly)Medium
Beancount.ioLow-MediumHighOptionalHigh

How to Choose

  • Want maximum control, auditability, and developer-grade workflows? Choose Beancount.io. You get hosted Fava dashboards, AI assistance, and the freedom of plain-text portability.
  • Want someone to “just handle it”? Hire a bookkeeper and keep a CPA on call for taxes and strategic questions.
  • Comfortable in traditional SMB software ecosystems? QuickBooks or Xero are fine choices—just be sure to budget time each week to review and reconcile your transactions.
  • Just testing the waters on a tight budget? Spreadsheets can work for a short time. Treat them as a stepping stone to a real system, not the final destination.

Why Plain-Text Accounting is Having a Moment

Plain-text accounting (PTA) tools like Beancount are gaining traction because they emphasize reproducibility, version control, and transparency. These are values that resonate deeply with engineers, data scientists, and finance pros. If you believe your company's books should be as clear and reviewable as your code, you’re in the right place. (plaintextaccounting.org)

Ready to see your ledger come alive?

Spin up a free Beancount.io workspace, import a small sample of last month’s transactions, and open the hosted Fava dashboard. You'll see your income statement and balance sheet appear instantly—then you can refine your categories with AI assistance.

Beancount.io против традиционного бухгалтерского ПО: что подходит именно вам?

· 7 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Десятилетиями в мире бухгалтерского учета доминировали знакомые закрытые системы с графическим интерфейсом, такие как QuickBooks, Xero и FreshBooks. Они установили стандарт, предлагая простоту использования и визуальные рабочие процессы, ориентированные на нетехнических пользователей. Но для разработчиков, опытных пользователей и всех, кто ценит абсолютную прозрачность и контроль, появился принципиально иной подход: Beancount.io.

Эта статья представляет собой прямое сравнение Beancount.io с традиционным бухгалтерским программным обеспечением. Мы разберем их основные различия в философии, гибкости, стоимости и долгосрочной поддержке, чтобы помочь вам решить, какая система действительно соответствует вашим потребностям.

2025-08-08-beancount-io-vs-traditional-accounting-software

1. Философия и рабочий процесс

Самое фундаментальное различие между этими двумя подходами заключается в их основной философии.

Beancount.io Beancount.io построен на философии простого текстового учета. По сути, каждая финансовая транзакция — это запись в простом текстовом файле. Эта модель «учет как код» ставит во главу угла удобочитаемые записи, контролируемые с помощью систем контроля версий. Ваши финансовые данные хранятся в вечном, открытом формате, которым вы полностью владеете — он никогда не может быть заблокирован поставщиком. Этот рабочий процесс предназначен для пользователей, которым удобно работать с текстовыми редакторами, системами контроля версий, такими как Git, и инструментами командной строки.

Традиционное ПО Традиционные бухгалтерские платформы основаны на графическом интерфейсе и формах. Вы вводите данные с помощью мастеров, раскрывающихся меню и визуальных форм. Этот подход ставит во главу угла непосредственность и доступность, позволяя нетехническим пользователям легко начать работу без крутой кривой обучения. Однако ваши данные хранятся в проприетарном формате или облачной базе данных, что часто требует сложных процедур экспорта и импорта, если вы решите перейти на другой сервис.

Вердикт: Если вы отдаете приоритет полному контролю, владению данными, прозрачности и автоматизации, Beancount.io — явный победитель. Если вам нужен интерфейс «щелкни и работай» с минимальной кривой обучения, традиционное программное обеспечение будет казаться более естественным.

2. Гибкость и настройка

Насколько хорошо программное обеспечение может адаптироваться к вашим конкретным потребностям?

Beancount.io Возможность 100% написания скриптов — это суперсила Beancount.io. Он легко интегрируется с Python, позволяя вам подключаться к любому API, автоматизировать получение данных из банковских фидов, программно помечать транзакции на основе сложных правил и генерировать пользовательские отчеты, адаптированные к вашим точным требованиям. Ваши возможности расширения и настройки практически безграничны, без каких-либо ограничений со стороны поставщика.

Традиционное ПО Эти платформы предлагают курируемый набор интеграций с популярными инструментами, такими как PayPal, Stripe и различные службы расчета заработной платы. Хотя это удобно, вы работаете в рамках «огороженного сада» поставщика. Настройка ограничена тем, что позволяет платформа, а для расширенной отчетности или автоматизации часто требуется переход на более высокий тарифный план или покупка сторонних надстроек. Вы можете работать с их API, но вы всегда будете связаны правилами и ограничениями скорости их экосистемы.

Вердикт: Beancount.io обеспечивает непревзойденную гибкость для разработчиков и технических пользователей. Традиционные инструменты лучше подходят для стандартных рабочих процессов «подключи и работай» с популярными бизнес-приложениями.

3. Совместная работа и прозрачность

То, как вы работаете с другими и проверяете свои записи, значительно различается.

Beancount.io Совместная работа в Beancount.io осуществляется через Git. Это делает каждое изменение в вашей финансовой книге полностью прозрачным и проверяемым. Вы можете видеть, кто, что, когда и почему изменил — как и в рабочем процессе проверки кода. Это идеально подходит для распределенных команд, которые уже используют такие инструменты, как GitHub или GitLab. Кроме того, нет никаких скрытых расчетов; каждое число в отчете можно проследить до точной записи в вашей книге, что обеспечивает полную проверяемость.

Традиционное ПО Совместная работа осуществляется с помощью встроенных пользовательских ролей и разрешений. Вы можете пригласить своего бухгалтера, счетовода или деловых партнеров для доступа к книгам непосредственно через веб-интерфейс. Это очень эффективно для предприятий, которые следуют традиционной модели финансового надзора. Недостатком является то, что некоторые внутренние операции, такие как расчет налогов или автоматическая корректировка баланса, могут быть непрозрачными «черными ящиками», что затрудняет независимую проверку логики.

Вердикт: Beancount.io идеально подходит для команд, которые ценят детальную проверяемость и совместную работу в стиле кода. Традиционные системы более удобны для бухгалтеров для общего доступа к графическому интерфейсу в режиме реального времени.

4. Стоимость и владение

Финансовые модели и концепция владения данными — это совершенно разные миры.

Beancount.io Основное программное обеспечение Beancount является открытым и бесплатным. Вы платите только за услуги с добавленной стоимостью Beancount.io, которые включают хостинг, интеллектуальную автоматизацию и премиальные функции. Плата за лицензию на каждое рабочее место отсутствует, поэтому вы можете масштабировать свою команду без дополнительных затрат. Самое главное, что нет никакой зависимости от поставщика. Ваши данные — это набор текстовых файлов, которые вы можете перемещать, редактировать или хранить где угодно и когда угодно.

Традиционное ПО Эти сервисы работают по подписной модели, как правило, с ежемесячной или ежегодной оплатой. Цены часто зависят от набора функций, и вам, возможно, придется столкнуться с платой за пользователя или за компанию, которая растет вместе с вашей организацией. Это создает зависимость; если вы прекратите платить, вы рискуете потерять доступ к своим данным и функциональности программного обеспечения. Эта зависимость от поставщика представляет собой значительный долгосрочный риск.

Вердикт: Beancount.io значительно более экономичен в долгосрочной перспективе, особенно для технических команд, которые ценят суверенитет данных. Традиционное программное обеспечение предлагает предсказуемые расходы на подписку, но создает долгосрочную зависимость.

5. Кривая обучения и внедрение

Как быстро вы можете начать работу?

Beancount.io Кривая обучения, несомненно, более крутая. Внедрение этой системы требует комфортной работы с текстовым редактированием, понимания базового синтаксиса и знакомства с такими инструментами, как Git. Однако первоначальные вложения окупаются. После освоения Beancount обеспечивает невероятно быстрые, повторяемые рабочие процессы и дает гораздо более глубокое, фундаментальное понимание вашей финансовой картины.

Традиционное ПО Эти платформы разработаны для нетехнических владельцев бизнеса и предлагают минимальные трудности при адаптации. Вы можете начать работу, отправлять счета и классифицировать расходы в течение нескольких минут. Тем не менее, изучение более продвинутых функций, таких как создание пользовательских отчетов или настройка многопользовательского учета, все же требует значительных затрат времени.

Вердикт: Beancount.io — правильный выбор, если вы готовы потратить время на изучение мощной системы. Традиционное программное обеспечение быстрее освоить нетехническим пользователям, которым нужны немедленные результаты.

Побочное сравнение

ФункцияBeancount.ioТрадиционное бухгалтерское ПО
Основная философияУчет как код; текстовая книгаГрафический интерфейс; работа с формами
Формат данныхОткрытый (простой текст)Проприетарный (база данных)
Владение данными100% принадлежит пользователю и переносимоКонтролируется поставщиком; потенциальная зависимость
ГибкостьБезграничная; полностью скриптовая с PythonОграничена экосистемой и API поставщика
Совместная работаНа основе Git; прозрачная история измененийПользовательские разрешения на основе ролей
ПрозрачностьПолностью проверяемый; нет скрытых расчетовНекоторые расчеты могут быть непрозрачными
Модель стоимостиОткрытый исходный код; оплата за хостинг/автоматизациюЕжемесячная/годовая подписка (SaaS)
Кривая обученияБолее крутая для нетехнических пользователейНизкая; разработана для быстрого старта
Идеальный пользовательРазработчики, опытные пользователи, аналитики данныхВладельцы малого и среднего бизнеса, нетехнические команды

Когда выбирать каждый вариант

Решение в конечном итоге сводится к навыкам вашей команды, приоритетам и рабочему процессу.

Выбирайте Beancount.io, если вы:

  • Разработчик, аналитик данных или технически подкованный опытный пользователь.
  • Цените абсолютную прозрачность, контроль и долгосрочную переносимость данных превыше всего.
  • Хотите полностью автоматизировать свой учет и глубоко интегрировать его в свои пользовательские рабочие процессы.
  • Вам удобно обращаться со своими финансовыми записями с той же строгостью, что и с исходным кодом.

Выбирайте традиционное бухгалтерское ПО, если вы:

  • Хотите быстро начать работу с визуальным интерфейсом без какой-либо технической настройки.
  • Вам нужен немедленный доступ, удобный для бухгалтера, с минимальным обучением.
  • Предпочитаете управляемое, размещенное решение, где поставщик обрабатывает все обновления и соответствие требованиям.
  • Ваши потребности в интеграции удовлетворяются популярными готовыми приложениями.

Заключительные мысли

Beancount.io не пытается быть лучшим QuickBooks — это принципиально иной способ мышления. Он представляет учет как код. Для технических специалистов этот сдвиг предлагает тот же скачок вперед, который контроль версий с Git принес в разработку программного обеспечения: полную прозрачность, идеальную воспроизводимость и полный контроль.

В то же время традиционное бухгалтерское программное обеспечение продолжает выигрывать по удобству использования «из коробки» и готовым интеграциям для нетехнических команд. Правильный выбор — это не то, что «лучше» в целом, а то, что идеально подходит для вашего рабочего процесса, ваших приоритетов и степени контроля, которую вы требуете от своих финансовых данных.

Выход за рамки сквозного налогообложения: полное руководство по налогам для S-корпораций для пользователей Beancount (2025)

· 7 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Вы создали S-корпорацию, чтобы сохранить свой бизнес гибким и налогово эффективным. Но хотя концепция «сквозного налогообложения» звучит просто, реальность включает в себя налоги на заработную плату, потенциальные сборы на уровне организации и важные различия между штатами.

Вот как на самом деле работают налоги для S-корпорации в 2025 году — и как вести четкую, проверяемую отчетность в Beancount.

2025-07-26-s-corp-tax-guide-for-beancount-users


Что облагается налогом (и где)

Суть структуры S-корпорации заключается в том, как она обрабатывает прибыль. Это трехкомпонентная система: сквозной доход, налоги на уровне организации и налоги на заработную плату.

  • Сквозное налогообложение на федеральном уровне: S-корпорация, как правило, не платит федеральный подоходный налог со своей обычной коммерческой прибыли. Вместо этого эта прибыль (наряду с другими налоговыми статьями, такими как кредиты и вычеты) переходит к акционерам через форму Schedule K-1. Акционеры указывают этот доход в своих личных налоговых декларациях, независимо от того, вывели ли они фактически денежные средства из бизнеса. Важно отметить, что эта прибыль по K-1 не облагается налогом на самозанятость.
  • Но... могут применяться налоги на уровне организации: Правило «отсутствия корпоративного налога» не является абсолютным. В определенных случаях S-корпорация может быть обязана платить налог напрямую. Наиболее распространенными причинами являются налог на встроенный прирост капитала (BIG) (для недавно преобразованных C-корпораций) и налог на избыточный чистый пассивный доход.
  • Налоги на заработную плату реальны: Это самое важное правило для акционеров-сотрудников. Если вы работаете в своем бизнесе, вам должна быть выплачена разумная компенсация в виде заработной платы по форме W-2 до того, как вы получите какие-либо необлагаемые налогом распределения. Эта заработная плата облагается налогом FICA (социальное обеспечение и медицинское страхование) и подоходным налогом, как и заработная плата любого другого сотрудника.

Заработная плата, краткий обзор (2025)

Для любого акционера-сотрудника вы будете начислять заработную плату и подавать стандартные формы налогов на заработную плату, включая ежеквартальную форму 941 (для удержания подоходного налога и FICA) и ежегодную форму 940 (для федерального налога на безработицу, или FUTA).

Ключевые ставки на 2025 год:

  • Социальное обеспечение (OASDI): База заработной платы составляет 176 100 долларов США. Ставка налога составляет 6,2% для сотрудника и 6,2% для работодателя на заработную плату до этого предела.
  • Медицинское страхование (Medicare): Нет предела заработной платы. Ставка составляет 1,45% для сотрудника и 1,45% для работодателя на всю заработную плату.
  • Дополнительный налог Medicare: Налог в размере 0,9% удерживается с заработной платы сотрудника, превышающей 200 000 долларов США в год. Работодатель не уплачивает этот налог.

Налоги на уровне организации, с которыми вы можете столкнуться

Хотя это менее распространено, вы должны знать о налогах, которые сама S-корпорация может быть обязана уплатить.

  • Налог на встроенный прирост капитала (BIG): Если вы преобразовали свой бизнес из C-корпорации в S-корпорацию, вам грозит 5-летний период признания. Если вы продаете активы с приростом капитала, которыми компания владела во время своего существования в качестве C-корпорации, в течение этого периода, сама S-корпорация будет обязана уплатить корпоративный налог с этой прибыли. Это рассчитывается в Приложении D к форме 1120-S.
  • Налог на избыточный чистый пассивный доход: Это применяется, если ваша S-корпорация накопила нераспределенную прибыль (AE&P) с момента своего существования в качестве C-корпорации и ее пассивный доход (например, арендная плата, роялти и проценты) превышает 25% ее валовой выручки.
  • Ежеквартальные расчетные платежи по этим налогам: Если вы ожидаете, что общая сумма налога BIG, налога на пассивный доход и некоторых других налогов на возмещение составит 500 долларов США или более, S-корпорация должна производить ежеквартальные расчетные платежи. На 2025 год даты платежей для календарного года — 15 апреля, 16 июня, 15 сентября и 15 декабря.

Ловушки на уровне штата и местного самоуправления 🗺️

Никогда не предполагайте, что федеральные правила применяются на уровне штата или города. Налоговый режим сильно различается.

  • Калифорния: S-корпорации должны платить ежегодный минимальный франчайзинговый налог в размере 800 долларов США, плюс 1,5% налога на чистую прибыль.
  • Нью-Йорк: Нью-Йорк не признает выборы S-корпорации. Федеральная S-корпорация, как правило, подлежит полному общему корпоративному налогу Нью-Йорка.
  • Налоги на факультативные сквозные организации (PTE): В качестве обходного пути для федерального ограничения вычета SALT в размере 10 000 долларов США многие штаты теперь разрешают S-корпорациям выбирать уплату подоходного налога штата на уровне организации. Правила сложны и меняются — проконсультируйтесь со своим CPA перед тем, как делать выбор PTE.

Что платят владельцы

Как акционер, ваша личная налоговая картина напрямую связана с результатами деятельности S-корпорации.

  • Доход по K-1 в вашей форме 1040: Вы будете указывать доход, убытки, вычеты и кредиты, переданные вам по вашей форме Schedule K-1, в своей личной форме 1040.
  • Ежеквартальные расчетные налоги: Поскольку с вашего дохода по K-1 не удерживаются налоги, вам, вероятно, потребуется производить личные ежеквартальные расчетные налоговые платежи в IRS, используя форму 1040-ES, чтобы избежать штрафов за недостаточную уплату.
  • Вычет QBI (Раздел 199A): Ваш сквозной доход может претендовать на ценный вычет квалифицированного бизнес-дохода (QBI), который может составлять до 20% вашего бизнес-дохода. На более высоких уровнях дохода этот вычет может быть ограничен суммой заработной платы по форме W-2, которую платит S-корпорация, — что делает ваш показатель «разумной компенсации» еще более важным.

Базовая подача документов и формы

Как минимум, ваше ежегодное соблюдение требований будет включать:

  • Форма 1120-S: Налоговая декларация S-корпорации.
  • Форма Schedule K-1: Для каждого акционера.
  • Формы для заработной платы: Ежеквартальные формы 941, ежегодная форма 940 и формы W-2/W-3 для сотрудников.
  • Форма 1099-NEC: Для платежей в размере 600 долларов США или более большинству независимых подрядчиков.

Beancount: Составьте карту, чтобы никогда не задаваться вопросом «Куда это делось?»

Четкий план счетов необходим для отслеживания этих движущихся частей.

Стартовые счета

Assets:Bank:Operating
Assets:PrepaidTax:Federal ; Для расчетных платежей на уровне S-корпорации
Expenses:Payroll:Wages
Expenses:Payroll:Employer:SocialSecurity
Expenses:Payroll:Employer:Medicare
Expenses:Payroll:Employer:FUTA
Expenses:Tax:Federal:S-Corp ; Для расходов по налогу BIG/на пассивный доход
Liabilities:Payroll:Withholding:{Federal,SocialSecurity,Medicare}
Equity:Distributions

Примеры транзакций

Начисление заработной платы (сторона компании + удержания)

2025-02-28 * "Заработная плата - Февраль"
Assets:Bank:Operating -10350.00 USD
Expenses:Payroll:Wages 12500.00 USD
Expenses:Payroll:Employer:SocialSecurity 775.00 USD
Expenses:Payroll:Employer:Medicare 181.25 USD
Liabilities:Payroll:Withholding:Federal -3000.00 USD
Liabilities:Payroll:Withholding:SocialSecurity -775.00 USD
Liabilities:Payroll:Withholding:Medicare -181.25 USD

Распределение владельцу (не заработная плата)

2025-03-10 * "Распределение акционерам"
Assets:Bank:Operating -5000.00 USD
Equity:Distributions 5000.00 USD

Расчетный налог на уровне корпорации (если применимо)

2025-04-15 * "Расчетный платеж 1120-S на уровне организации (налог BIG/на пассивный доход)"
Assets:Bank:Operating -1200.00 USD
Assets:PrepaidTax:Federal 1200.00 USD

Отметка ключевых дат подачи документов

2026-03-15 note "Форма 1120-S за 2025 год подана в электронном виде; формы K-1 предоставлены всем акционерам."

Проверки работоспособности (bean-query)

Используйте запросы, чтобы убедиться, что ваши записи корректны.

Заработная плата против распределений с начала года (проверка разумности компенсации)

SELECT account, SUM(position)
WHERE (account ~ "Expenses:Payroll:Wages" OR account ~ "Equity:Distributions")
AND year = 2025
GROUP BY account;

Зафиксировали ли мы передачу K-1?

SELECT date, narration WHERE narration ~ "K-1";

Практические советы (чтобы IRS не звонил) ✅

  1. Документируйте «разумную компенсацию». Храните простую памятку с вашими должностными обязанностями, распределением времени и ссылками на рыночные данные о заработной плате. Выплачивайте эту сумму через официальную заработную плату по форме W-2.
  2. Четко разделяйте заработную плату и распределения. Никогда не смешивайте их. Ваша книга Beancount должна делать это различие очевидным.
  3. Следите за правилами штата. Знайте о минимальных налогах (как в Калифорнии) или непризнании S-корпораций (как в Нью-Йорке).
  4. Пересматривайте расчетные платежи. Если ваш доход значительно меняется в середине года, скорректируйте как свои личные расчетные платежи по форме 1040-ES, так и любые расчетные платежи на уровне S-корпорации.

Это руководство предоставляет общую информацию, а не налоговые консультации. Каждая бизнес-ситуация уникальна. Всегда консультируйтесь с квалифицированным CPA для получения рекомендаций, специфичных для ваших обстоятельств.

Основы бухгалтерского учета для продавцов Etsy с помощью Beancount

· 7 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Аккуратно составленные книги учета лучше запутанных таблиц — особенно когда важен каждый цент.

Для художников, мастеров и коллекционеров на Etsy страсть движет бизнесом. Но по мере роста вашего магазина финансовая прозрачность становится так же важна, как и творческое видение. Жонглирование комиссиями, отслеживание стоимости материалов и подготовка к уплате налогов могут быть утомительными, отвлекая вас от работы.

2024-07-16-bookkeeping-basics-for-etsy-sellers-with-beancount

Что, если бы вы могли управлять финансами своего магазина с той же тщательностью и точностью, которую вы вкладываете в свои продукты? Это руководство знакомит вас с рабочим процессом бухгалтерского учета в формате простого текста с использованием Beancount, движка с открытым исходным кодом, разработанного для обеспечения точности и контроля. Этот метод поможет вам освоить свои цифры, чтобы вы могли сосредоточиться на своем ремесле.

Почему бухгалтерский учет Etsy отличается

Магазин Etsy имеет уникальный финансовый отпечаток со сложностями, которые часто упускает из виду обычное бухгалтерское программное обеспечение.

  • Повсеместные комиссии маркетплейса: Ваш окончательный доход — это то, что остается после того, как Etsy возьмет свою долю. Платы за размещение, транзакционные сборы, сборы за обработку платежей и расходы на рекламу — все это отнимает часть каждой продажи. Не отслеживая их по отдельности, вы не сможете узнать свою истинную прибыль.
  • Налог с продаж, контролируемый платформой: Etsy автоматически рассчитывает, собирает и перечисляет налог с продаж от вашего имени в большинстве штатов, что является огромным преимуществом для продавцов. Однако, если вы продаете на других каналах или имеете физическое присутствие в определенных штатах, у вас все еще могут быть собственные обязательства по уплате налога с продаж в связи с правилами "нексуса".
  • Гибкая частота выплат: В зависимости от ваших настроек и истории аккаунта Etsy может перечислять ваши средства ежедневно, еженедельно, раз в две недели или ежемесячно. Эта гибкость может сделать денежный поток непредсказуемым, особенно когда средства зарезервированы или задерживаются. (Etsy Help)
  • Более низкие пороги для формы 1099-K: Дни, когда можно было оставаться незамеченным налоговыми органами, прошли. Порог отчетности IRS для формы 1099-K, в которой указывается ваш валовой объем продаж, установлен на уровне 5000 долларов США на 2024 год и планируется снизить до 600 долларов США к 2026 году. Это означает, что почти каждый магазин получит форму IRS, и ваши бухгалтерские книги должны быть полностью с ней согласованы. (IRS)

План Beancount в семи быстрых шагах

Этот план в формате простого текста поможет вам создать четкую, точную и беспроблемную систему бухгалтерского учета.

1. Разделяйте каналы с самого начала

Если Etsy — не единственный ваш канал продаж, создайте отдельные счета доходов и расходов для каждого из них. Это простое разделение на верхнем уровне вашего плана счетов обеспечивает чистоту аналитики и значительно упрощает налогообложение.

2025-07-22 open Income:Etsy               USD
2025-07-22 open Expenses:Etsy:ListingFee USD
2025-07-22 open Assets:Etsy:Payout USD

2. Разбивайте каждую выплату

Никогда не записывайте поступление от Etsy как одну строку дохода. Вместо этого загрузите ежемесячный CSV-файл счета платежей из своего менеджера магазина. Используйте этот отчет для создания одной транзакции Beancount, которая "разбивает" каждое поступление на валовые продажи и отдельные составляющие комиссий.

; еженедельная выплата из CSV-файла счета платежей Etsy
2025-07-15 * "Поступление Etsy #2025-28"
Assets:Bank:Operating 1842.77 USD
Income:Etsy:Sales -2100.00 USD
Expenses:Etsy:TransactionFee 136.50 USD ; 6.5 %
Expenses:Etsy:PaymentProcessing 66.00 USD ; 3 % + $0.25 за заказ
Expenses:Etsy:ListingFee 14.00 USD ; $0.20 x 70 обновлений
Assets:Etsy:Reserve -75.73 USD

3. Отслеживайте запасы и себестоимость проданных товаров с помощью партий

Для продавцов физических товаров функция "партии" в Beancount кардинально меняет отслеживание себестоимости проданных товаров (COGS). Когда вы покупаете сырье, вы регистрируете его как запасы по определенной стоимости. Когда вы продаете готовый продукт, вы можете списать точную стоимость использованных материалов.

; Покупка материалов оптом для запасов
2025-07-01 * "Оптовая покупка пряжи | Поставщик XYZ"
Assets:Inventory:ScarfBlue 500 ScarfBlue {@ 3.45 USD}
Assets:Bank:Operating

; Запись себестоимости проданных товаров при продаже товара
2025-07-20 * "Продажа синего шарфа | Заказ #1234"
Expenses:COGS 1 ScarfBlue {3.45 USD}
Assets:Inventory:ScarfBlue

4. Выберите свой метод учета заранее

У вас есть два основных варианта:

  • Кассовый метод: Простой и легкий. Вы регистрируете доход, когда деньги поступают на ваш банковский счет, и расходы, когда вы их оплачиваете. Это хорошо подходит для небольших магазинов, работающих в качестве хобби.
  • Метод начисления: Дает более точное представление о прибыльности. Вы регистрируете доход, когда совершаете продажу (а не когда получаете оплату), и расходы, когда вы их несете. Это лучше подходит для магазинов, которые покупают материалы оптом или продают товары на заказ.

5. Автоматизируйте импорт

Экономьте время, автоматизируя ввод данных. Экосистема простого текста предлагает несколько вариантов:

  • Используйте bean-extract с пользовательскими правилами для анализа CSV-файлов Etsy.
  • Настройте импортер банковских CSV-файлов для учета рекламных расходов или стоимости доставки, оплаченных кредитной картой.
  • Для опытных пользователей напишите скрипт на Python для получения отчетов непосредственно из API Etsy.

6. Сверяйте еженедельно

Выделяйте несколько минут каждую неделю, чтобы проверить свои цифры. Используйте инструменты командной строки Beancount для быстрой проверки ваших балансов и выявления любых проблем, таких как высвобожденные резервы, возвраты или корректировки комиссий, до конца месяца.

# Проверка баланса вашего расчетного счета Etsy
bean-balance books.bean "Assets:Etsy:Payout" "2025-07-21"

# Создание отчета о прибылях и убытках за последний период
bean-report books.bean income_statement -e 2025-07-21

7. Прикрепляйте исходные документы

Создайте полностью автономную и проверяемую запись, привязав исходные документы непосредственно к метаданным вашей транзакции. Это идеально подходит для квитанций поставщиков, PDF-файлов этикеток доставки или заказов на покупку.

2025-07-12 * "Этикетка доставки Etsy для заказа #4321"
Expenses:ShippingLabel 4.25 USD
Assets:Bank:Operating
document: "docs/labels/2025-07-12-order4321.pdf"

Знайте свои комиссии Etsy (США)

Чтобы получить истинное представление о своей прибыли, отслеживайте каждый тип комиссии на отдельном счете расходов:

  • Плата за листинг: $0.20 за товар, которая автоматически обновляется каждые 4 месяца или после продажи. (Etsy)
  • Комиссия за транзакцию: 6.5% от общей суммы заказа (включая цену товара, доставку и подарочную упаковку). (Etsy)
  • Комиссия за обработку платежей: Варьируется в зависимости от страны, но для США обычно составляет 3% + $0.25 за заказ, обработанный через Etsy Payments. (Etsy Help)
  • Подписка (Etsy Plus): Дополнительные инструменты за $10 в месяц (необязательно).

Советы по налогу с продаж и соблюдению требований

  • Хотя Etsy перечисляет налог с продаж за большинство штатов США, имейте в виду, что продажа на других платформах или наличие физической мастерской может создавать дополнительные налоговые обязательства ("нексус"). Тщательно отслеживайте свои пороги продаж.
  • Как только пороги для формы 1099-K будут применяться к вашему магазину, убедитесь, что общая сумма Income:Etsy:Sales в Beancount совпадает с валовой суммой в форме до цента. (IRS)

Распространенные ошибки (и способы их исправления)

  • Ошибка: Учет чистых поступлений.
    • Исправление: Всегда используйте CSV-файл платежей, чтобы разбить поступления на валовые продажи, комиссии и резервы.
  • Ошибка: Устаревшая стоимость запасов.
    • Исправление: Регистрируйте свои покупки материалов и запасов в момент их приобретения. Не ждите, пока готовый продукт будет продан.
  • Ошибка: Слепые зоны возврата.
    • Исправление: При оформлении возврата регистрируйте расход и также сторнируйте исходную запись себестоимости проданных товаров, чтобы вернуть стоимость обратно на ваш счет запасов.
  • Ошибка: Игнорирование удержания резервов.
    • Исправление: Откройте счет Assets:Etsy:Reserve для отслеживания денег, которые удерживает Etsy. Это обеспечит достоверность ваших отчетов о движении денежных средств.

Контрольный список быстрого старта

  • В менеджере магазина настройте ежемесячные отчеты и загрузите свой первый CSV-файл.
  • Клонируйте стартовый репозиторий Beancount и составьте план счетов вашего магазина.
  • Выберите кассовый метод или метод начисления и придерживайтесь его.
  • Напишите базовый скрипт импорта или файл правил и запланируйте еженедельную синхронизацию.
  • Сверяйте свои выплаты, уровни запасов и банковский баланс каждый понедельник.
  • Создавайте отчет о прибылях и убытках каждый месяц и анализируйте тенденции валовой прибыли.
  • Создавайте резервные копии своих файлов .bean с помощью Git и внешнего хранилища.

Готовы вплести бухгалтерский учет в свой творческий рабочий процесс? Установите Beancount, внесите свою первую запись и позвольте ясности простого текста освободить больше времени для работы. Удачного ведения учета!

Создание и отслеживание счетов с помощью Beancount

· 6 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Текстовый шаблон, повторяемый рабочий процесс и один запрос для ответа на вопрос «Кто мне еще должен?»


2022-02-12-crafting-tracking-invoices-with-beancount

Выставление счетов может казаться рутиной, застрявшей между выполненной работой и ожидаемым платежом. Но хороший процесс выставления счетов — это основа здорового денежного потока. Он выполняет двойную функцию: четко сообщает вашим клиентам, что и когда они должны, и предоставляет вашей бухгалтерской системе неопровержимые факты, которые ей необходимы.

Хотя специализированные SaaS-приложения могут отправлять красивые, автоматизированные PDF-файлы, они часто требуют ежемесячной платы и блокируют ваши данные в проприетарном хранилище. Легкий, текстовый подход с использованием Beancount предлагает мощную альтернативу. Вы можете превратить каждый счет в четкий набор бухгалтерских записей, получая все преимущества контроля версий, мощных метаданных и мгновенных запросов — без необходимости подписки.


Минимально жизнеспособный счет (поля, которые никогда нельзя пропускать)

Прежде чем приступить к работе с бухгалтерской книгой, вам нужен профессиональный счет. Формат может быть простым, но содержание должно быть точным. Эти поля, заимствованные из проверенной временем практики малого бизнеса, не подлежат обсуждению.

  • Реквизиты продавца: Название вашей компании и физический адрес.
  • Реквизиты клиента: Имя вашего клиента и (в идеале) его адрес.
  • Номер счета: Уникальный, последовательный идентификатор, который никогда не используется повторно. INV-045 следует за INV-044.
  • Даты выставления и оплаты: Четко укажите, когда был выставлен счет и когда ожидается оплата.
  • Строки счета: Четкое описание услуг или продуктов, а также количество, ставка и итоговая сумма по строке.
  • Итого, налог и общая сумма: Покажите расчет, чтобы клиент мог легко его проследить.
  • Дополнительные примечания: Место для благодарности, инструкций по переводу или предоставленного клиентом номера заказа на покупку.

Чтобы помочь вам начать, мы создали набор готовых к редактированию шаблонов, которые включают все эти поля. Версии электронных таблиц даже предварительно рассчитывают итоговые суммы для вас.

Note: Invoice templates are coming soon! In the meantime, you can create your own using the fields listed above in Google Docs, Word, Sheets, Excel, or any other document format.


Запись счета в бухгалтерской книге

После того, как вы отправили PDF-файл счета клиенту, вы должны записать его в Beancount. Это важный шаг, который учитывает доход в момент его получения, а не только в момент оплаты. Процесс включает в себя две отдельные транзакции.

1. При выставлении счета:

Вы создаете транзакцию, которая перемещает общую сумму с вашего счета Income (Доход) на счет Assets:AccountsReceivable (Активы:Дебиторская задолженность). Это создает цифровой долговой документ в вашей бухгалтерии.

; 2025‑07‑21 Счет № 045  Веб-дизайн спринт для Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Веб-дизайн спринт"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "ap@acme.example"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

Здесь вы дебетуете AccountsReceivable (Дебиторская задолженность) и кредитуете свой счет Income (Доход). Обратите внимание на богатые метаданные: срок оплаты, уникальный invoice_id и даже прямая link: (ссылка) на отправленный вами PDF-файл.

2. При оплате клиентом:

Когда деньги поступают на ваш банковский счет, вы записываете вторую транзакцию, чтобы "закрыть" долговой документ. Это перемещает баланс с AccountsReceivable (Дебиторская задолженность) на ваш расчетный счет.

2025-08-01 * "Acme Corp" "Оплата INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

Баланс для INV-045 в Assets:AccountsReceivable (Дебиторская задолженность) теперь равен нулю, и ваша бухгалтерия идеально сбалансирована.

Прикрепите PDF: Ключ метаданных link: особенно полезен при использовании с Fava, веб-интерфейсом Beancount. Fava отобразит кликабельную ссылку прямо в представлении транзакции, поэтому исходный документ всегда находится на расстоянии одного клика. Этот рабочий процесс был задуман еще в 2016 году в запросе на функцию (GitHub).


Один запрос для вывода списка всех открытых счетов

Итак, кто вам еще должен деньги? С этой системой вам не нужно рыться в электронной почте или электронных таблицах. Вам нужен всего один простой запрос.

Сохраните следующее как файл с именем open-invoices.sql:

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

Теперь запустите его из командной строки:

bean-query books.beancount open-invoices.sql

За считанные секунды вы получите чистый, актуальный отчет о всех непогашенных счетах, с указанием идентификатора счета, клиента, даты выставления и суммы задолженности. Никакого дополнительного программного обеспечения не требуется.


Автоматизируйте рутинную работу

Прелесть простого текста — это возможность написания скриптов. Вы можете автоматизировать утомительные части этого рабочего процесса.

  • Шаблон + Pandoc = PDF: Храните шаблон счета в Markdown. Небольшой скрипт на Python может заполнить переменные (имя клиента, строки счета, номер счета), а инструмент командной строки Pandoc может мгновенно преобразовать его в профессиональный PDF-файл.
  • Git Pre-commit Hook: Если вы храните свою бухгалтерскую книгу в Git, простой pre-commit hook может выполнять проверки перед сохранением вашей работы. Он может проверить, что каждый новый invoice_id уникален, что проводки по транзакции сбалансированы до нуля, и что файл, на который ссылается метаданные link:, действительно существует.
  • Cron Job: Настройте запланированное задание (cron job) для запуска запроса open-invoices.sql каждую ночь и отправки вам сводки по электронной почте. Вы будете начинать каждый день, точно зная, кому нужно отправить дружеское напоминание.

Реалистичное предостережение

Beancount — это инструмент для ведения бухгалтерского учета, а не сервис для выставления счетов. Он не будет автоматически отправлять клиентам напоминания об оплате или обрабатывать платежи по их кредитным картам. Рабочий процесс следующий: вы создаете и отправляете счет с помощью выбранного вами метода (например, с помощью шаблонов выше), а затем вносите бухгалтерские записи в свою бухгалтерскую книгу.

Для большинства фрилансеров и небольших компаний этот ручной шаг — небольшая цена за надежную, проверяемую и бесплатную бухгалтерскую систему, которой вы полностью владеете и управляете (beancount.io).


Следующие шаги

Готовы взять под контроль выставление счетов? Вот как начать.

  1. Скачайте шаблон и используйте его для создания следующего реального счета, обязательно используя последовательный номер счета.
  2. Храните отправленные PDF-файлы в специальной папке, например docs/invoices/, и используйте ключ метаданных link: в своей транзакции Beancount для ссылки на них.
  3. Сохраните запрос open-invoices.sql и сделайте его запуск частью вашего еженедельного финансового обзора.

Текстовый бухгалтерский учет не означает отказ от аккуратности или контроля — это просто означает, что база данных доступна для поиска с помощью grep. С помощью простого шаблона и приведенных выше фрагментов кода вы будете получать оплату быстрее и поддерживать безупречный порядок в своей бухгалтерии.

Основы бухгалтерского учета с Beancount: путь к четкой отчетности через простой текст

· 7 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Вы не можете управлять бизнесом, если не знаете, куда уходят деньги. Точная бухгалтерия превращает догадки в понимание. (Investopedia)

Каждый владелец бизнеса, фрилансер или основатель стартапа рано или поздно сталкивается с одной и той же реальностью: финансовый хаос губит рост. Без четкого представления о вашем денежном потоке вы действуете вслепую. Но что, если бы вы могли управлять своими финансами с той же точностью и контролем, которые вы применяете к своему коду? Встречайте Beancount — мощную систему бухгалтерского учета с открытым исходным кодом, которая работает с простыми текстовыми файлами.

2019-03-24-bookkeeping-basics

Это руководство познакомит вас с основами бухгалтерского учета и покажет, как построить надежный, легкий и прозрачный финансовый рабочий процесс с помощью Beancount.

Что такое бухгалтерский учет?

По сути, бухгалтерский учет — это систематическая и непрерывная запись каждой финансовой операции, совершаемой бизнесом. Это ежедневная дисциплина отслеживания доходов, расходов, активов (того, чем вы владеете) и обязательств (того, что вы должны).

В мире Beancount эти записи не заперты в проприетарном программном обеспечении. Они хранятся в простых, удобочитаемых текстовых файлах. Этот подход позволяет вам контролировать версии вашей финансовой истории с помощью таких инструментов, как Git, так же, как вы делаете это с программным проектом. Каждая запись регулируется правилом двойной записи — элегантной системой, которая автоматически проверяет вашу работу и гарантирует, что ваша бухгалтерия всегда верна. (beancount)

Почему это важно?

Тщательный бухгалтерский учет — это не просто административная аккуратность; это стратегическое преимущество.

  • Уверенность при налогообложении: Когда наступает налоговый сезон, чистая отчетность — ваш лучший друг. Налоговая служба требует четкой документации по доходам и вычетам. Хорошо организованная бухгалтерия означает, что вы можете подавать декларацию с уверенностью и значительно сократить любые потенциальные проверки. (IRS)
  • Более точные решения: Достаточно ли высоки ваши цены? Действительно ли конкретный договор на обслуживание прибылен? Растут ли расходы на подписку бесконтрольно? Финансовые отчеты, такие как отчет о прибылях и убытках и баланс, выявляют утечки цен, безудержные расходы и проблемы с денежным потоком, предоставляя менеджерам и инвесторам данные, необходимые для принятия разумных решений. (Investopedia)
  • Более легкое финансирование: Кредиторы и инвесторы не принимают решения, основываясь на интуиции. Прежде чем переводить средства, они попросят финансовые отчеты. Хорошая бухгалтерия позволяет вам генерировать баланс или отчет о прибылях и убытках за считанные секунды, демонстрируя профессионализм и финансовое здоровье. (Investopedia)
  • Предупреждения о мошенничестве и ошибках: Регулярная сверка вашей бухгалтерии с банковскими выписками — ваша первая линия защиты от ошибок. Эта простая привычка помогает вам быстро выявить дублирующие платежи, банковские ошибки или мошенническую деятельность, прежде чем они станут серьезными проблемами. (IRS)

Семишаговый план в простом тексте

Готовы начать? Вот как построить вашу систему бухгалтерского учета на базе Beancount с нуля.

1. Разделите бизнес-счета и личные счета

Это первый и не подлежащий обсуждению шаг. Откройте отдельный расчетный счет для бизнеса и, при необходимости, бизнес-кредитную карту. Смешивание средств создает кошмар для бухгалтерии и может размыть границы ответственности между вами и вашим бизнесом. Четкое разделение необходимо для точного вычета расходов и правовой защиты. (Small Business Administration)

В Beancount вы объявляете о существовании этих счетов с помощью директивы open:

; Начальные остатки на ваших счетах
2025-07-22 open Assets:Bank:Business USD
2025-07-22 open Assets:Bank:Personal USD

2. Выберите систему бухгалтерского учета

Beancount использует метод двойной записи, золотой стандарт бухгалтерского учета на протяжении веков. Принцип прост: каждая транзакция затрагивает как минимум два счета. На каждое дебетование одного счета должно быть соответствующее кредитование другого. Волшебство этой системы заключается в том, что сумма всех ваших счетов всегда должна быть равна нулю. Beancount автоматически применяет это правило, а это означает, что опечатка или логическая ошибка немедленно поднимут флаг. Вы буквально не можете иметь несбалансированную бухгалтерию. (beancount)

3. Выберите метод учета

У вас есть два основных варианта:

  • Кассовый метод: Вы регистрируете доход, когда получаете деньги, и расходы, когда их оплачиваете. Это проще и непосредственно отражает ваш денежный поток.
  • Метод начисления: Вы регистрируете доход, когда вы его зарабатываете (например, когда отправляется счет), и расходы, когда вы их несете (например, когда получаете счет). Этот метод дает более точное представление о финансовом состоянии и деятельности компании, особенно для растущих фирм. (Investopedia)

Вот пример транзакции по методу начисления в Beancount. Вы учитываете доход при отправке счета, перемещая сумму в Assets:AccountsReceivable. Когда клиент платит, вы перемещаете деньги со счета AccountsReceivable на ваш банковский счет.

; Пример начисления: выставлен счет, оплата позже
2025-07-22 * "Счет за дизайн №101"
Assets:AccountsReceivable 3000.00 USD
Income:Design

2025-08-15 * "Клиент оплачивает счет №101"
Assets:Bank:Business 3000.00 USD
Assets:AccountsReceivable

4. Соберите свой набор инструментов

Прелесть Beancount заключается в его минималистской, модульной природе. Ваш основной набор включает:

  • Редактор + Git: Ваш любимый текстовый редактор для записи транзакций и Git для контроля версий, что дает вам полную, проверяемую историю каждого изменения.
  • bean-report / bean-balance / Fava: Инструменты командной строки, такие как bean-report, и потрясающий веб-интерфейс Fava, предоставляют вам мгновенные финансовые отчеты, панели мониторинга и мощные возможности фильтрации.
  • Импортеры: Богатая экосистема импортеров, созданных сообществом, может подключаться к вашим банковским каналам через CSV, Plaid или API для таких сервисов, как Stripe и PayPal, автоматизируя большую часть ввода данных.

5. Классифицируйте каждую транзакцию

Хорошо организованный "план счетов" — это основа для анализа отчетности. Определите категории, которые имеют смысл для вашего бизнеса, используя иерархические счета для детализации. Затем, записывая транзакции, тщательно классифицируйте их.

2025-07-30 * "Ежемесячный счет AWS"
Expenses:Hosting:AWS 124.50 USD
Assets:Bank:Business
tag: "ops"

В этом примере расход четко отнесен к категории Expenses:Hosting:AWS. Использование tag: "ops" также позволяет создавать перекрестные отчеты, например, просматривать все операционные расходы независимо от их основной категории. (IRS)

6. Надежно храните исходные документы

Налоговая служба с радостью принимает цифровые копии чеков и счетов. Сканируйте бумажные чеки или пересылайте счета по электронной почте в специальную папку в облачном хранилище (например, Google Drive или Dropbox). Затем ссылайтесь на файл непосредственно в вашей записи Beancount, используя метаданные. Это создает герметичную, автономную запись.

; Изображение чека, связанное как метаданные
2025-07-18 * "Обед команды"
Expenses:Meals 85.10 USD
Assets:Bank:Business
receipt: "receipts/2025-07-18-team-lunch.jpg"

7. Сделайте бухгалтерский учет привычкой

Последовательность — ключ к успеху. Откладывание дел превращает бухгалтерский учет в стрессовое, трудоемкое занятие. Выделите повторяющийся временной блок — еженедельный или ежемесячный «Bean-день» — для импорта транзакций, сверки счетов и просмотра ваших финансовых отчетов. Эта простая процедура превращает бухгалтерский учет из ежеквартальной гонки в быструю, эффективную проверку состояния бизнеса. (IRS)

Самостоятельно или с помощью профессионалов?

  • Самостоятельно: Для фрилансеров или малого бизнеса с предсказуемым объемом транзакций самостоятельный подход с Beancount невероятно эффективен. Тем не менее, разумно провести краткую, разовую консультацию с CPA, чтобы проверить ваш план счетов и убедиться, что вы на правильном пути.
  • Профессиональный обзор: По мере роста вашего бизнеса, усложнения транзакций или повышения риска несоблюдения требований, привлечение профессионального бухгалтера или аудитора для периодических проверок становится бесценным. Вы можете продолжать использовать Beancount в качестве основного источника данных и просто экспортировать необходимые им отчеты.

Контрольный список для быстрого старта

  • Открыть отдельные банковские счета для бизнеса.
  • Клонировать стартовый репозиторий Beancount и определить ваши счета в accounts.bean.
  • Выбрать кассовый метод или метод начисления и придерживаться его.
  • Настроить импортеры для автоматизации ввода данных из вашего банка (CSV), Stripe, PayPal и т.д.
  • Добавлять теги и писать четкие описания для каждой транзакции.
  • Сверять вашу бухгалтерию с банковскими выписками еженедельно или ежемесячно.
  • Формировать ежемесячные отчеты о доходах, балансе и денежном потоке с помощью Fava или bean-report.
  • Регулярно создавать резервные копии ваших .bean файлов (Git + удаленное хранилище).

Дополнительная литература

Готовы начать? Установите Beancount, зафиксируйте свою первую запись и обменяйте туман электронных таблиц на четкость простого текста. Удачного ведения учета!