跳到主要内容

4 篇博文 含有标签「finance」

查看所有标签

Top 8 Easy-to-Use SMB Accounting Software (2025 Edition)

· 阅读需 10 分钟
Mike Thrift
Mike Thrift
Marketing Manager

Choosing accounting software shouldn’t eat up your entire week. For most small businesses, the goal is to find a tool that’s easy to set up, handles the basics flawlessly, and doesn’t break the bank. To help you decide, we’ve put together a concise, plain-English rundown of eight options that small and medium-sized businesses (SMBs) actually enjoy using.

Below, we cover what each platform is best at, how much it costs (as of August 20, 2025), and the small gotchas to note before you commit.

2025-08-18-top-8-easy-to-use-smb-accounting-software-2025-edition


How We Picked

We focused on platforms that respect your time and solve real-world problems. Our selection criteria prioritized four key areas:

  • Fast Onboarding: A clean user interface, sensible default settings, and helpful setup flows to get you up and running quickly.
  • Core Features: Robust support for the essentials, including invoicing, bank feeds and reconciliation, and basic financial reporting.
  • Price Clarity: Transparent, publicly listed prices or official statements, so you know what you’re paying for without a sales call.
  • Scalability: The ability to grow with your business, whether that’s from a solo operation to a small team, with accessible add-ons or higher tiers.

1) Beancount.io — Best for developers & teams who want scriptable, auditable books

What it is: Beancount.io is a modern, plain-text accounting platform that turns simple text-based transactions into comprehensive financial reports and dashboards. It’s a “finance-as-code” approach built for precision, automation, and complete data ownership. Paid tiers include AI-powered insights and highly customizable workflows.

  • Why SMBs like it: The combination of plain-text data and version control (like Git) creates an airtight audit trail and makes reviewing financial changes as easy as reviewing code. Its flexible automation capabilities integrate seamlessly into engineering-centric workflows. Best of all, there is zero lock-in; your financial data lives in simple text files that you own, not in a proprietary walled garden.
  • Pricing: A generous free tier is available for individuals and open-source projects. Paid plans unlock advanced automations and team features. See the official site for detailed pricing.
  • Keep in mind: This platform is the best fit for teams who are comfortable working with files and version control systems like Git, or for businesses that want deep, programmatic control over their financial operations.

2) QuickBooks Online — Best for accountants-everywhere compatibility

What it is: QuickBooks Online is the industry default and the platform your bookkeeper or CPA most likely already knows. It offers a deep feature set and arguably the most extensive ecosystem of integrations and professional support.

  • Why SMBs like it: Its reporting capabilities are comprehensive, higher-tier plans handle inventory management well, and the vast marketplace of third-party app integrations means it can connect to almost any tool you use. Its biggest advantage remains its ubiquity—nearly every accountant is fluent in QuickBooks.
  • List price: Plans range from Simple Start at 35/mo,Essentialsat35/mo**, Essentials at **65/mo, Plus at 99/mo,toAdvancedat99/mo**, to Advanced at **235/mo. Intuit frequently runs promotions offering 50% off for the first 3 months. (QuickBooks Pricing)
  • Keep in mind: For some users, the feature sprawl can feel heavy and overwhelming. Prices have also trended steadily upward over time, as noted by industry watchers. (Woodard Report on price increases)

3) Xero — Best for clean UI + unlimited users (on every plan)

What it is: Xero is a popular QuickBooks alternative known for its clean, easy-to-navigate interface, strong bank feed connections, and a broad app marketplace. It’s particularly notable for offering unlimited user seats on every plan.

  • Why SMBs like it: Users often praise its thoughtful workflows, which make daily tasks like reconciliation feel intuitive. The platform provides good cash-flow visualizations and is backed by a rich app ecosystem for extending its functionality.
  • US price: The Early plan is 20/mo,Growingis20/mo**, Growing is **47/mo, and Established is $80/mo. Note that Xero has announced price increases for its US plans that will be effective October 1, 2025. (Xero Pricing)
  • Keep in mind: The entry-level "Early" plan has caps on the number of invoices and bills you can send or enter. Essential services like payroll and mileage tracking are paid add-ons.

4) FreshBooks — Best for service businesses that live in invoices + time

What it is: FreshBooks excels at the core needs of service-based businesses: simple and professional invoicing, integrated time tracking, and client management portals, all wrapped in polished web and mobile apps.

  • Why SMBs like it: The invoicing experience is delightful and designed to help you get paid faster. It also offers excellent project profitability tracking on its Premium plan, allowing you to see which clients and projects are most valuable.
  • List price: Core plans are Lite (21/mo),Plus(21/mo**), Plus (**38/mo), and Premium (65/mo).CostscanclimbwithaddonslikeTeamMembers(65/mo**). Costs can climb with add-ons like Team Members (**11/user/mo), Advanced Payments (20/mo),andPayroll(startingat20/mo**), and Payroll (starting at **40 + $6/worker/mo). Promotions often display lower introductory prices. (FreshBooks Pricing)
  • Keep in mind: Be mindful of the client and user limits on lower tiers, as your costs can rise as your business scales or if you need multiple add-on features.

5) Zoho Books — Best automation value, especially if you already use Zoho

What it is: Zoho Books is a feature-dense and automation-friendly accounting platform that delivers exceptional value. It integrates deeply with the broader Zoho suite of business apps, making it a powerful choice for existing Zoho users.

  • Why SMBs like it: It offers excellent bang-for-your-buck with robust workflow rules that can automate many routine accounting tasks. It also includes strong inventory management options, even on mid-tier plans.
  • US price (monthly): A Free plan is available with eligibility limits. Paid plans are Standard (20),Professional(20**), Professional (**50), Premium (70),Elite(70**), Elite (**150), and Ultimate (275).Additionaluserscost275**). Additional users cost **3/user/mo. (Zoho Books Pricing)
  • Keep in mind: While powerful, some accountants may be less familiar with Zoho Books compared to QuickBooks. Each plan also comes with specific limits on invoice and expense volumes.

6) Wave — Best free starter option with paid “Pro” conveniences

What it is: Wave is a fantastic starting point for brand-new businesses, freelancers, and solopreneurs who need to get up and running fast without an initial investment.

  • Why SMBs like it: You get instant setup with unlimited invoicing and simple bookkeeping for free. The affordable Pro plan adds valuable conveniences like enhanced bank automations and better support.
  • Price: The Starter plan is 0.TheProplanis0**. The **Pro** plan is **19/mo (or 190/year).Creditcardprocessingfeesaretypically2.9190/year**). Credit card processing fees are typically **2.9% + 0.60, with a discount on the first 10 transactions for Pro users. (Wave Pricing)
  • Keep in mind: It has fewer advanced features and integrations compared to giants like QuickBooks or Xero. Key features like automated bank imports and premium support are reserved for the Pro plan.

7) ZipBooks — Best lightweight alternative with a true free plan

What it is: ZipBooks is a clean, friendly, and straightforward accounting tool that’s a great fit for side hustles, consultants, and small teams who want simplicity without a hefty price tag.

  • Why SMBs like it: The interface is uncluttered and makes invoicing easy. It offers decent reporting for its class and supports connections to multiple bank accounts even on the free plan.
  • Price: The Starter plan is Free, Smarter is 15/mo,andSophisticatedis15/mo**, and Sophisticated is **35/mo. A dedicated plan for accountants is also available. (ZipBooks Pricing)
  • Keep in mind: Its main limitation is a smaller ecosystem of third-party integrations when compared to the "big three" (QuickBooks, Xero, FreshBooks).

8) Patriot Accounting — Best budget pick with optional US payroll

What it is: Patriot offers a simple UI, US-based customer support, and a tightly integrated payroll bundle, making it a strong contender if you need both services without complexity.

  • Why SMBs like it: The software is very approachable, with clear, no-nonsense pricing. Core tasks like creating invoices and importing bank transactions are easy to manage.
  • Price: Accounting Basic is 20/moandAccountingPremiumis20/mo** and Accounting Premium is **30/mo. Payroll can be added, starting at 17/mo+17/mo + 4/worker for basic service or 37/mo+37/mo + 5/worker for full-service payroll. Promotions are common. (Patriot Software Pricing)
  • Keep in mind: It lacks the advanced features and extensive integration library you'd find in QuickBooks or Xero, but it capably handles the fundamentals.

Quick “At a Glance” (prices are monthly list unless noted)

  • Beancount.io: Free tier; paid automations available. Best for dev-savvy teams.
  • QuickBooks Online: 3535–235. Ubiquitous, feature-rich, widely supported.
  • Xero: 20/20 / 47 / $80 (increases Oct 1, 2025). Clean UI, unlimited users.
  • FreshBooks: 21/21 / 38 / $65. Strong for invoicing & project-based work.
  • Zoho Books: Free–$275. Great automation value, especially if you’re already on Zoho.
  • Wave: Starter 0;Pro0; Pro 19/mo or $190/yr. Ideal for brand-new businesses.
  • ZipBooks: Free–$35. Simple, friendly, and straightforward.
  • Patriot: 2020–30. Great budget option with tightly integrated US payroll.

How to Choose in 10 Minutes

Stop overthinking and start trying. Here’s a quick decision guide:

  • If you want a “set it and forget it” system and you’re technical, start a Beancount.io free workspace. Import a week of transactions, script your recurring rules, and see the power of auditable, text-based books.
  • If you work with outside accountants, try QuickBooks Online (the most universal option) or Xero (great for collaborating with its unlimited user policy).
  • If you bill for your time and rely on polished, professional invoices, trial FreshBooks.
  • If you want the most automation power for the lowest cost, test Zoho Books Standard vs. Premium plans.
  • If you’re brand new and highly price-sensitive, start on the Wave or ZipBooks free plan and upgrade when you’re ready.
  • If you need simple accounting and payroll under one roof at a budget price, check out Patriot.

Where Beancount.io Fits in Your Stack

Beancount.io is built for businesses that see their financial records as a critical dataset, not just a compliance task. It provides:

  • A developer-friendly ledger that’s precise, transparent, and reviewable in pull requests.
  • Powerful automations to categorize, transform, and reconcile financial data at scale.
  • AI-assisted insights that help you understand your numbers without surrendering ownership of your books.

Start for free and add advanced workflows only when you’re ready to scale.


Notes & Sources

Pricing and feature information were verified from the official company websites on August 20, 2025. Prices are subject to change and do not always reflect promotional offers. See the citations linked throughout the article for the most current information: QuickBooks, Xero, FreshBooks, Zoho Books, Wave, ZipBooks, Patriot Software, and Beancount.io.

Accounting Dictionary for Beancount Users (A–Z)

· 阅读需 17 分钟
Mike Thrift
Mike Thrift
Marketing Manager

Welcome to your developer-friendly guide to accounting concepts, tailored specifically for the world of plaintext accounting with Beancount. This dictionary bridges the gap between traditional finance terminology and Beancount's unique syntax, directives, and tools. Whether you're a seasoned developer new to accounting or a finance pro exploring plaintext methods, this A–Z reference will help you master your ledger.


How to Read Each Entry

Each term is broken down into three parts for clarity:

  • Conceptual Meaning — A simple, jargon-free explanation of the accounting or finance idea.
  • Beancount Implementation — How the concept is represented or handled in Beancount, whether through directives, options, command-line tools, or reports.
  • Example — A minimal, copy-paste-ready code snippet to illustrate the concept in a .beancount file.

Note: All examples adhere to the canonical syntax and behavior described in the official Beancount documentation.


A

Account

  • Conceptual Meaning: A named category or "bucket" used to track the balance of something you own, owe, earn, or spend. Examples include your checking account, credit card, salary, or grocery expenses.
  • Beancount Implementation: Account names are hierarchical and separated by colons (e.g., Assets:Bank:Checking). Every account must belong to one of the five root account types: Assets, Liabilities, Equity, Income, or Expenses.
  • Example:
    2014-05-01 open Assets:US:BofA:Checking USD

Accounting Equation

  • Conceptual Meaning: The fundamental formula on which all accounting is based: Assets = Liabilities + Equity. It means that everything a business or individual owns (assets) is financed by either debt (liabilities) or the owner's own funds (equity).
  • Beancount Implementation: This equation is automatically and rigorously enforced. Every transaction must be zero-sum, meaning the total of all its postings must equal zero. This design makes it impossible to create an unbalanced entry.

Accrual vs. Cash Basis

  • Conceptual Meaning: Two methods of recording transactions. Accrual basis records revenue when it's earned and expenses when they're incurred, regardless of when money changes hands. Cash basis records them only when cash is actually received or paid.
  • Beancount Implementation: Beancount supports both methods. Accrual accounting is achieved by using Assets:Receivables for money owed to you and Liabilities:Payables for money you owe. Cash basis accounting simply omits these intermediate postings.

Amortization / Depreciation

  • Conceptual Meaning: The process of systematically spreading the cost of a tangible (depreciation) or intangible (amortization) asset over its useful life. For example, writing off the value of a company laptop over three years.
  • Beancount Implementation: This is handled by creating periodic transactions that move a portion of the asset's cost from its asset account to an expense account (e.g., Expenses:Depreciation). This can be automated using scheduled transaction plugins.

B

Balance Assertion

  • Conceptual Meaning: A checkpoint to confirm that your recorded balance for an account matches the real-world balance (e.g., from a bank statement) on a specific date. This is the core of reconciliation.
  • Beancount Implementation: The balance directive asserts an account's total value at the start of the specified day. Beancount will raise an error if the calculated balance from all prior transactions does not match the asserted amount.
  • Example:
    2024-01-31 balance Assets:US:BofA:Checking 154.20 USD

Balance Sheet

  • Conceptual Meaning: A financial statement that provides a snapshot of a company's or individual's financial health at a single point in time, showing assets, liabilities, and equity.
  • Beancount Implementation: The web interface Fava provides an interactive Balance Sheet report. You can also generate one using Beancount's query language (bean-query or the newer standalone Beanquery tool).

Booking Method (Inventory Matching)

  • Conceptual Meaning: The method used to decide which previously purchased lots of an asset (like shares of a stock) are considered "sold" when a portion is divested. Common methods are FIFO (First-In, First-Out) and LIFO (Last-In, First-Out).
  • Beancount Implementation: The booking method can be set globally with option "booking_method" ... or on a per-account basis in its open directive. Beancount's default is STRICT, which requires you to explicitly state which lot is being sold if there's any ambiguity. Other options include FIFO and LIFO.

Budget

  • Conceptual Meaning: A financial plan that estimates income and expenses over a specified period.
  • Beancount Implementation: Budgeting is not a native feature of Beancount's core language. It is primarily implemented in the Fava web interface, which supports its own custom budget directives, or through community-developed plugins like fava-envelope.

C

Capital Gain / Loss

  • Conceptual Meaning: The profit (capital gain) or loss (capital loss) resulting from the sale of a capital asset, such as stocks or real estate.
  • Beancount Implementation: When you post a transaction that reduces a position (e.g., selling stock), Beancount automatically matches it against existing lots based on the booking method. You then post the calculated gain or loss to an appropriate income account, like Income:CapitalGains.

Chart of Accounts

  • Conceptual Meaning: A comprehensive, structured list of all accounts in the general ledger.
  • Beancount Implementation: Your Chart of Accounts is implicitly defined by all the open directives and account names used throughout your ledger files. There is no separate file to define it.

Commodity / Currency

  • Conceptual Meaning: The unit of value being tracked. This can be a traditional currency (USD, EUR), a stock (AAPL), a loyalty point (AIRMILE), or any other quantifiable unit.
  • Beancount Implementation: All such units are called "commodities." You can optionally declare them using the commodity directive to attach metadata, such as a full name or formatting rules.

Cost (Lot Cost)

  • Conceptual Meaning: The original price paid per unit for a specific purchase of an asset (a "lot"). This is crucial for calculating capital gains.
  • Beancount Implementation: Lot cost is specified using curly braces {} on a posting. This information—cost, date, and an optional label—is attached to the lot and used for future matching.
  • Example:
    2025-04-01 * "Buy Stock"
    Assets:Brokerage 25 HOOL {23.00 USD}
    Assets:Bank:Checking -575.00 USD

Credit / Debit

  • Conceptual Meaning: The two sides of every accounting entry. In simple terms, a debit increases an asset or expense account, while a credit increases a liability, equity, or income account.
  • Beancount Implementation: Beancount abstracts this away. You simply use positive and negative numbers. By convention, increases to Assets and Expenses are positive, while increases to Liabilities, Equity, and Income are represented by crediting them (which requires a negative number in your transaction). As long as the transaction sums to zero, the accounting is correct.

D

Directive

  • Conceptual Meaning: A command or a declaration in the ledger that isn't a transaction but changes the state of the books (e.g., opening an account, recording a price).
  • Beancount Implementation: Every line in a Beancount file is a directive. The main types include open, close, commodity, * (transaction), balance, pad, note, document, price, event, query, and custom.

Document

  • Conceptual Meaning: An external file, such as a PDF statement or a receipt image, linked to a transaction or account for record-keeping.
  • Beancount Implementation: The document directive links a file to an account. If the option "documents" path is set, tools like Fava can automatically discover and associate files with transactions by their date and filename.
  • Example:
    2024-02-01 document Assets:US:BofA:Checking "statements/2024-02-01.statement.pdf"

Double-Entry

  • Conceptual Meaning: The accounting principle that every transaction must affect at least two accounts and must balance (total debits must equal total credits).
  • Beancount Implementation: This is the core, non-negotiable principle of Beancount. The zero-sum rule for all transaction postings ensures double-entry bookkeeping is always maintained.

E

Equity

  • Conceptual Meaning: The net worth or owner's stake in the assets (Assets - Liabilities). This includes initial capital contributions and accumulated profits/losses (retained earnings).
  • Beancount Implementation: Beancount uses Equity accounts for several internal functions, such as Equity:Opening-Balances to initialize account values and Equity:Earnings:Current to accumulate income and expense totals for reporting.

Event

  • Conceptual Meaning: A dated, non-financial marker on your timeline, useful for annotating life events like a job change, a move, or a vacation.
  • Beancount Implementation: The event directive allows you to add a key-value pair to a specific date in your ledger.
  • Example:
    2024-08-15 event "location" "Moved to San Francisco"

Exchange Rate

  • Conceptual Meaning: The value of one currency expressed in terms of another.
  • Beancount Implementation: Exchange rates can be recorded with price directives for a specific date or specified directly within a transaction using inline prices (@ or @@).

F

Fava

  • Conceptual Meaning: The modern, feature-rich web interface for Beancount.
  • Beancount Implementation: Fava is a separate Python package you install and run against your Beancount file. It provides interactive charts, reports (Balance Sheet, Income Statement), budgeting tools, query execution, and a file editor, replacing most of the older bean-web and bean-report command-line tools.

FIFO / LIFO

  • Conceptual Meaning: Acronyms for "First-In, First-Out" and "Last-In, First-Out," which are two common booking methods for matching inventory sales.
  • Beancount Implementation: These can be selected as the booking_method for an account or globally. (See Booking Method).

Flag

  • Conceptual Meaning: A status indicator on a transaction.
  • Beancount Implementation: A transaction's flag appears after the date. * typically means "cleared" or "confirmed," while ! means "incomplete" or "needs review." Custom flags are also possible.

G

General Ledger / Journal

  • Conceptual Meaning: A journal is a chronological record of all transactions. A ledger is a record of those same transactions, but sorted by account.
  • Beancount Implementation: Your .beancount text files collectively form the journal. Tools like Fava or bean-query process this journal to generate ledgers (e.g., the transaction list for a single account) and other reports.

I

Include

  • Conceptual Meaning: The practice of splitting a large ledger into multiple, more manageable files (e.g., by year or account type).
  • Beancount Implementation: The include directive tells Beancount to parse the contents of another file as if it were part of the main file.
  • Example:
    include "2024/transactions.beancount"
    include "accounts/open_accounts.beancount"

Inventory

  • Conceptual Meaning: The collection of all lots (units with a specific cost basis) held within an account at any given time.
  • Beancount Implementation: This is a core Beancount concept. Each account that holds non-currency commodities maintains an inventory of lots. When you sell or transfer units, Beancount reduces the inventory according to the booking method.

Inline Price vs. Total Price

  • Conceptual Meaning: Two ways to specify the conversion price within a transaction posting. You can either price it per unit or define the total price for the entire posting.
  • Beancount Implementation:
    • @ sets a per-unit price.
    • @@ sets a total price for the line.
  • Example (per-unit):
    2025-01-05 * "FX Transfer"
    Assets:USD -100.00 USD @ 1.34 CAD
    Assets:CAD

L

  • Conceptual Meaning: A unique identifier used to connect multiple, separate transactions that are part of a single logical event (e.g., a credit card payment and the corresponding bank withdrawal).
  • Beancount Implementation: Add a ^link_id to each transaction you want to group. Fava and other tools can then display these linked transactions together.
  • Example: ^cc-payment-2025-01

Lot

  • Conceptual Meaning: A specific quantity of a commodity purchased at a particular date and cost.
  • Beancount Implementation: A lot is defined by its amount, commodity, cost, date, and an optional label. Lots are created using the {...} cost basis syntax and are tracked in an account's inventory.

M

Metadata

  • Conceptual Meaning: Additional key-value data attached to a transaction or posting for extra context, filtering, or analysis.
  • Beancount Implementation: Metadata is added on the same line as a transaction or posting. Keys are lowercase, followed by a colon and a string, number, or other value.
  • Example:
    2025-03-02 * "Dinner"
    Expenses:Food 23.91 CAD ; receipt: "2025-03-02-1234.pdf", city: "Montreal"
    Assets:Cash -23.91 CAD

Multi-Currency

  • Conceptual Meaning: The ability to handle and report on transactions involving multiple different currencies or commodities simultaneously.
  • Beancount Implementation: This is a native, first-class feature. Beancount tracks each commodity independently within each account. The operating_currency option is used to specify which currencies reports should be converted to for display.

N

Narration / Payee

  • Conceptual Meaning: The descriptive text for a transaction. The payee is who you paid or who paid you, and the narration is a description of what the transaction was for.
  • Beancount Implementation: These are the two optional quoted strings that follow the transaction flag. The first is typically the payee, the second is the narration.
  • Example: 2025-03-19 * "Acme Corp" "Salary"

Note

  • Conceptual Meaning: A dated comment associated with a specific account, separate from any transaction.
  • Beancount Implementation: The note directive adds a text comment to an account's ledger on a given date.
  • Example:
    2014-04-10 note Assets:US:BofA:Checking "Called support to dispute a charge."

O

Open / Close

  • Conceptual Meaning: The actions of starting to use a new account or formally stopping the use of an existing one.
  • Beancount Implementation: The open directive is required before an account can be used in a transaction. The close directive marks it as inactive after a certain date.
  • Example:
    2016-11-28 close Liabilities:CreditCard:CapitalOne

Operating Currency

  • Conceptual Meaning: The primary currency (or currencies) that you want to see your financial reports in.
  • Beancount Implementation: Set via option "operating_currency" "USD". This tells tools like Fava to display columns converted to this currency using the price data available in your ledger.

P

Pad

  • Conceptual Meaning: A directive that automatically inserts a transaction to bring an account to a desired balance, booking the difference to another specified account.
  • Beancount Implementation: pad is often used to initialize an account's starting balance against Equity:Opening-Balances. It creates a transaction behind the scenes.
  • Example:
    2025-01-31 pad Assets:Cash Equity:Opening-Balances

Posting

  • Conceptual Meaning: A single entry within a transaction that debits or credits an account. Every transaction is composed of at least two postings.
  • Beancount Implementation: Each line under a transaction that specifies an account and an amount is a posting. The sum of all postings in a transaction must be zero.

Price

  • Conceptual Meaning: A record of the market value or exchange rate of one commodity in terms of another on a specific date.
  • Beancount Implementation: The price directive creates a historical database of rates that Beancount uses for valuation in reports. The bean-price tool can help fetch and update these prices from online sources.
  • Example:
    2025-02-03 price EUR 1.10 USD

Plugin

  • Conceptual Meaning: A piece of custom code that can modify or analyze your ledger data as it's being loaded.
  • Beancount Implementation: Plugins are loaded using the plugin "module.name" "config" directive. They can be used for anything from automatically adding tags to implementing complex scheduled transactions.

Q

Query Language (BQL / Beanquery)

  • Conceptual Meaning: An SQL-like language for performing sophisticated queries and generating custom reports from your ledger data.
  • Beancount Implementation: Beancount has a powerful query language. You can use it via the command-line tool bean-query or interactively in Fava's "Query" page. A newer, standalone version called Beanquery is the future of this tool.
  • Example:
    SELECT account, sum(position)
    WHERE account ~ "^Expenses"
    GROUP BY account
    ORDER BY sum(position)

R

Reconciliation

  • Conceptual Meaning: The process of comparing your internal financial records against external statements (from a bank, credit card company, etc.) to ensure they match and to identify any discrepancies.
  • Beancount Implementation: Reconciliation is primarily done using balance assertions. You can also use document directives to link to the statements you are reconciling against.

Realized vs. Unrealized Gains

  • Conceptual Meaning: A realized gain is a profit from a sale that has been completed. An unrealized gain is a "paper" profit on an asset you still own, based on its current market value.
  • Beancount Implementation: Realized gains are explicitly recorded when you sell an asset. Unrealized gains are not recorded in the ledger itself but can be calculated and displayed in reports by Fava and other tools, which value your holdings using your price database.

Rounding / Tolerance

  • Conceptual Meaning: A small margin of error allowed when comparing numbers to account for rounding differences, especially in multi-currency transactions.
  • Beancount Implementation: Beancount has rules for inferring precision from your entries and allows setting a tolerance for balancing checks. This prevents errors from trivial discrepancies like 0.0010.001.

S

Statements

  • Conceptual Meaning: Official records from financial institutions (banks, brokers) listing all transactions for a given period.
  • Beancount Implementation: These are typically imported into Beancount format using importer scripts (part of the beancount.ingest library). Once imported, the original statement file (e.g., a PDF) can be linked with a document directive.

Subaccount

  • Conceptual Meaning: A child account nested under a parent account to create a more detailed hierarchy.
  • Beancount Implementation: The colon : syntax creates subaccounts. For example, Expenses:Food:Restaurants is a subaccount of Expenses:Food.

T

Tag

  • Conceptual Meaning: A simple, flexible label used to categorize or filter transactions, often for events that cross multiple expense categories (like a vacation or a work trip).
  • Beancount Implementation: Tags are denoted with a # (e.g., #vacation-2025). A tag on a transaction line applies to all postings below it.
  • Example:
    2025-01-10 * "Conference Hotel" #work #travel-sfo-2025
    Expenses:Travel:Hotel 620.00 USD
    Assets:Bank:Checking -620.00 USD

Transaction

  • Conceptual Meaning: A dated financial event that moves value between two or more accounts.
  • Beancount Implementation: The fundamental data entry in Beancount. It starts with a date and a flag (* or !), is followed by an optional payee and narration, and contains two or more indented posting lines.
  • Example:
    2025-03-19 * "Acme Corp" "Salary"
    Assets:Bank:Checking 3062.68 USD
    Income:Salary -3062.68 USD

Trial Balance

  • Conceptual Meaning: A report that lists all accounts and their balances. The totals of the debit and credit columns should be equal, confirming the ledger is in balance.
  • Beancount Implementation: Because Beancount enforces the zero-sum rule on every transaction, the ledger is always in balance. A trial balance can be generated via a query, but it's not a necessary check as it is in manual accounting.

U–Z

Valuation

  • Conceptual Meaning: The process of expressing the value of all your holdings in a single, common currency (an operating currency).
  • Beancount Implementation: Tools like Fava perform valuation at report time. They use the price directives in your ledger to convert the value of all commodities (stocks, foreign currencies) into your chosen operating_currency.

Year-End Close

  • Conceptual Meaning: In traditional accounting, this is a formal process where the balances of all temporary income and expense accounts are moved to an equity account (like Retained Earnings) to start the new year fresh.
  • Beancount Implementation: Beancount ledgers are append-only; you never modify past entries. "Closing the books" is a reporting concept. Fava and query tools can show you an income statement for a specific period (e.g., a year) and carry forward the net result, but the raw ledger file remains a continuous, unbroken history.

Zero-Sum

  • Conceptual Meaning: The principle that the sum of all debits and credits in a transaction must equal zero.
  • Beancount Implementation: This is a core invariant. The bean-check tool will report an error if any transaction's postings do not sum to zero (within a given tolerance).

Beancount CLI & Tooling Quick-Map ⚙️

  • bean-check: Validates your ledger's syntax, balances, and core accounting rules. Run this first!
  • bean-format: Automatically formats your file, aligning numbers and currencies for readability.
  • bean-price: Fetches market prices for stocks and currencies and formats them as price directives.
  • bean-query: The command-line interface for running BQL/Beanquery queries.
  • bean-report: (Largely deprecated) A v2 tool for generating command-line reports. Modern workflows should use Fava or bean-query instead.

Five Essential Snippets for Daily Use

  1. Everyday Expense

    2025-04-10 * "Cafe Mogador" "Lunch"
    Expenses:Food:Restaurants 17.45 USD
    Assets:Bank:Checking -17.45 USD
  2. Balance Assertion (for Reconciliation)

    2025-04-30 balance Assets:Bank:Checking  2345.67 USD
  3. Investment Purchase with Cost Basis

    2025-05-02 * "Vanguard" "Buy ETF"
    Assets:Brokerage:Vanguard 100 VEA {50.00 USD}
    Assets:Bank:Checking -5000.00 USD
  4. FX Transfer with Inline Price

    2025-06-01 * "Wise" "Convert USD to CAD"
    Assets:USD -100.00 USD @ 1.36 CAD
    Assets:CAD
  5. Daily Market Price Update

    2025-06-01 price VEA  53.12 USD

S-Corp 选举:Beancount 用户指南

· 阅读需 15 分钟
Mike Thrift
Mike Thrift
Marketing Manager

它是什么,何时值得,以及如何在你的账本中清晰地建模(附示例)。

⚠️ 本指南仅适用于美国,仅供教育之用。请咨询税务专业人士以了解你的具体情况。

简要概述

  • S-corp 是你通过向美国国税局(IRS)提交 2553 表格 选择的一种 税务状态,以便企业利润直接转到所有者的个人纳税申报表。一个关键要求是你必须向所有者经营者支付 合理的 W-2 工资,然后才能以股息或分配的形式获取任何利润。
  • 截止日期很重要:对于现有企业,你必须在你想让 S-corp 状态生效的纳税年度的 第 3 个月的第 15 天 或之前提交申请。对于 2025 年的日历年选举,2025 年 3 月 15 日是星期六,因此实际截止日期是下一个工作日,即 2025 年 3 月 17 日,星期一
  • 为什么要这样做?主要吸引力在于潜在的 自雇税节省。虽然你的 W-2 工资需要缴纳 FICA 税,但分配则不需要。但是,这种好处伴随着额外的工资、合规性以及某些州的额外实体级税的成本。
  • 在 Beancount 中,将工资与分配分开 至关重要。你需要跟踪工资负债,处理持有公司 2% 以上股份的股东的健康保险的特殊会计处理,并通过权益账户明确记录分配。

2025-08-08-s-corp-election

什么是 S-corp 选举?

从本质上讲,S-corp 选举是你向 IRS 提出更改企业纳税方式的请求。通过提交 2553 表格,你请求 IRS 根据《国内税收法典》的 S 子章 对你的公司或 LLC 征税。这使你的企业成为“传递”实体,这意味着其收入、亏损、扣除额和抵免额直接传递给股东的个人纳税申报表。这纯粹是一种税务分类,而不是一种不同类型的合法商业实体。

对所有者经营者的主要影响

一旦选举生效,你的角色基本上分为两部分:你现在既是公司的 股东,又是公司的 雇员

这种区别至关重要。你因劳动获得的报酬必须以 W-2 工资 的形式支付,这需要缴纳标准的工资税(社会保障和医疗保险)。任何剩余利润都可以作为 分配 支付,这通常不需要缴纳自雇税。IRS 坚持要求你在获得任何分配之前,为自己支付 合理的工资

你应该选择 S-corp 状态吗?

一旦你的企业产生稳定且有意义的利润,通常值得评估 S-corp 选举。一个常见的经验法则是,当你的 持续业务利润 可以轻松地支持你所在职位的 市场工资,并且在支付所有新的管理成本后还有足够的剩余利润进行分配时,就应该考虑 S-corp 选举。

确切的盈亏平衡点取决于你的具体情况,并取决于几个因素:

  • 你的“合理工资”:在你的行业中,企业会为具有你的技能和职责的人支付多少工资?这个数字是你的 W-2 工资的基准,并且会受到 IRS 的审查。
  • 州税和费用:一些州有自己的规定。例如,加州对 S-corp 的净收入征收 1.5% 的税,外加每年至少 800 美元的特许经营税。
  • 额外成本:你需要一个工资服务,并且你将支付失业保险。由于增加了复杂性,你的簿记和税务准备费用也可能会增加。
  • 合格商业收入扣除额(199A 条款):S-corp 选举会影响你的合格商业收入扣除额。你支付给自己的 W-2 工资可以帮助你获得全额扣除额,或者在收入较高的情况下成为限制因素。

资格和时间安排

并非所有企业都可以成为 S-corp。以下是高级要求:

  • 它必须是国内公司或符合条件的 LLC。
  • 它不能拥有超过 100 名股东。
  • 它只能拥有一种类型的股票。
  • 股东必须是个人、某些信托或遗产(即,不能是合伙企业、公司或非居民外国人股东)。

何时提交 2553 表格

时间安排至关重要,新企业和现有企业的规则略有不同。

  • 对于新企业:你必须在你的第一个纳税年度的第一天后的 2 个月零 15 天 内提交申请。例如,如果你的企业的纳税年度从 1 月 7 日开始,你的截止日期是 3 月 21 日。
  • 对于现有的 C-corp(或作为 C-corp 征税的 LLC):你可以在上一个纳税年度的任何时间或你想让选举生效的年度的 第 3 个月的第 15 天 或之前提交申请。如果该日期是周末或节假日,截止日期将延至下一个工作日,这是根据 IRC 第 7503 条的规定。

如果你错过了截止日期怎么办? 不要惊慌。IRS 根据 2013-30 号税收程序 提供了延迟选举救济的途径。如果你有合理的延迟提交申请的理由,你通常可以在预定生效日期后的 3 年零 75 天 内申请此救济。

合理工资:让人犯错的部分

这是 S-corp 结构中最受审查的方面。IRS 非常明确:股东-雇员必须在 任何利润作为分配之前 获得 合理的报酬

“合理”是什么意思?没有单一的金额。IRS 和法院会考虑各种因素来确定你的工资是否合适,包括你的职责、你花费的工作时间、你的经验水平以及类似企业会为类似服务支付的费用。如果你支付给自己的 W-2 工资非常低,同时获得大量分配,IRS 可能会仔细审查。这通常被视为试图逃避工资税的危险信号。

2% 以上股东的健康保险和附加福利

对于持有公司 2% 以上股份的股东的健康保险,S-corp 有一个特殊规则。如果 S-corp 支付或报销这些健康保险费,则该费用可由 S-corp 扣除

但是,这些保费的价值也必须 包含在股东-雇员的 W-2 工资中。虽然这笔金额需要缴纳联邦所得税,但只要处理得当,它就可以免缴社会保障和医疗保险(FICA)税。你必须与你的工资提供商协调,以确保这些金额在你的 W-2 上正确报告。

州级陷阱(示例)

联邦 S-corp 状态并不总是在州一级直接适用。请务必查看你所在州的具体规定。

  • 加州:S-corp 需要对其加州来源的净收入缴纳 1.5% 的税。此外,大多数公司必须每年支付 800 美元的最低特许经营税(尽管第一年有一些例外)。
  • 纽约:仅仅进行联邦 S-corp 选举是不够的。你还必须提交单独的州级选举,即 CT-6 表格,才能被视为纽约 S-corp。如果不这样做,你将在州一级被作为标准 C-corp 征税。

如何在 Beancount 中清晰地建模 S-corp

纯文本会计非常适合管理 S-corp 增加的复杂性。以下是构建账本的方法。

建议的会计科目表(入门)

此基本结构将你的工资支出与分配分开,并创建负债账户来跟踪你欠的税款。

; 核心银行和收入
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Income:Sales USD
1970-01-01 open Income:Other USD

; 工资支出和负债
1970-01-01 open Expenses:Payroll:Wages USD
1970-01-01 open Expenses:Payroll:EmployerTaxes USD
1970-01-01 open Expenses:Benefits:HealthInsurance USD
1970-01-01 open Liabilities:Payroll:Federal:FIT USD
1970-01-01 open Liabilities:Payroll:FICA USD
1970-01-01 open Liabilities:Payroll:Medicare USD
1970-01-01 open Liabilities:Payroll:State:Withholding USD

; 权益
1970-01-01 open Equity:ContributedCapital USD
1970-01-01 open Equity:Distributions USD
1970-01-01 open Equity:RetainedEarnings USD

典型的工资单运行(简化)

你的工资提供商(例如,Gusto、ADP)将从你的银行账户中扣除你的净工资和总税负。你的 Beancount 交易应将其细分为工资总额、雇主税和相应的负债。

; 此交易记录了 10 万美元的年薪,按月支付。
2025-01-31 * "Gusto" "一月工资单 — 股东-雇员"
Expenses:Payroll:Wages 8,333.33 USD ; 工资总额
Expenses:Payroll:EmployerTaxes 637.50 USD ; 雇主方 FICA/Medicare
Liabilities:Payroll:Federal:FIT -1,200.00 USD ; 雇员预扣税
Liabilities:Payroll:FICA -516.67 USD ; 雇员预扣税
Liabilities:Payroll:Medicare -120.83 USD ; 雇员预扣税
Assets:Bank:Checking -7,133.33 USD ; 从银行扣除的净工资

当你的工资提供商代表你将这些税款汇给政府时,你将记录另一笔交易以清除负债。

; 这表示你的工资提供商支付的税款。
2025-02-15 * "EFTPS" "联邦工资税存款"
Liabilities:Payroll:Federal:FIT 1,200.00 USD
Liabilities:Payroll:FICA 516.67 USD
Liabilities:Payroll:Medicare 120.83 USD
Assets:Bank:Checking -1,837.50 USD ; 此金额与 Gusto 扣除的税款部分相符。

2% 以上股东的健康保险

将保费支付记录为业务支出。你可以使用元数据来提醒自己,这需要在 W-2 上报告。

2025-02-01 * "BlueCross" "股东健康保险(在 W-2 上报告)"
Expenses:Benefits:HealthInsurance 600.00 USD ; w2: "true"
Assets:Bank:Checking -600.00 USD

所有者分配(非工资)

分配是权益的减少,而不是业务支出。将它们与工资单分开记录。

2025-03-31 * "所有者分配" "第一季度分配"
Equity:Distributions 20,000.00 USD
Assets:Bank:Checking -20,000.00 USD

跟踪股东基数(可选,但建议)

你的股东基数决定了分配是否免税,以及你是否可以在个人申报表上扣除业务亏损。虽然官方计算是在你的纳税申报表上完成的,但你可以在 Beancount 中使用专用的权益子账户或元数据来跟踪估算值。你将每年将其与你从 S-corp 收到的附表 K-1 进行核对。

关于合格商业收入扣除额(199A 条款)的说明

包括 S-corp 在内的传递企业的业主可能有资格获得 最高 20% 的合格商业收入 (QBI) 扣除额。但是,对于收入超过一定门槛的纳税人,此扣除额可能会受到企业支付的 W-2 工资 金额的限制。这造成了一种复杂的相互作用:S-corp 要求支付合理的工资,而这些工资会影响你的 QBI 扣除额——有时会有帮助,有时会有限制。这是与你的税务专业人士一起建模的关键领域。

选举后运营上的变化

切换到 S-corp 会增加一些管理层:

  • 运行工资单:你必须正式运行工资单,包括预扣税款、雇主税款、季度申报和年终 W-2。
  • 提交 1120-S 表格:这是 S-corp 的年度纳税申报表。你还将向每位股东签发 附表 K-1,详细说明他们所占公司财务业绩的份额。
  • 正确处理股东健康保险:确保 2% 以上所有者的保费包含在其 W-2 工资中。
  • 注意州级规定:随时了解任何所需的州级 S-corp 选举或实体税(如在加州和纽约)。

要避免的常见陷阱

  • 延迟或无效选举:仔细检查截止日期,并确保所有需要的股东都签署了 2553 表格。如果你错过了,请根据税收程序 2013-30 调查救济措施。
  • 不合理的工资:不要试图支付给自己人为的低工资。根据你的职位和市场数据,记录你的薪酬为何合理。
  • 混淆工资和分配:在你的账簿中保持这些交易的清晰和分开。分配不是工资。
  • 忽略州级要求:忘记州级选举或未支付实体级税款可能会导致罚款和合规性问题。

快速核对清单

  • 确认你符合条件,并且潜在的税收节省大于新的成本。
  • 2553 表格 的提交截止日期添加到日历中(并记住周末/节假日规则)。
  • 设置工资单服务,并确定有充分记录的合理工资。
  • 计划仅在支付工资和业务支出 之后 才进行分配。
  • 调查并遵守你所在州的特定 S-corp 申报要求和税收。
  • 使用必要的工资单、负债和股东权益账户更新你的 Beancount 账本。

Beancount S‑Corp 入门(中性模板)

;
; Beancount S‑Corp 入门(中性模板)
; 生成日期:2025-08-09
; ---
; 如何使用:
; 1) 搜索“TODO”并填写你的州、工资单提供商、EIN 和银行名称。
; 2) 将工资和所有者分配分开。
; 3) 与你的工资单提供商协调,在 W‑2(第 1 格)上报告 >2% 股东健康保险。
; 4) 如果你不在加州/纽约州,请删除或修改加州/纽约州示例。
;
; 注意:
; - 这是一个簿记模板,不是税务建议。
; - 假设运营货币为美元。根据需要更改。
;

option "title" "S‑Corp 账本"
option "operating_currency" "USD"
commodity USD

; === 账户(自 2025-01-01 起开放;根据需要调整日期) ==================
2025-01-01 open Assets:Bank:Checking USD ; TODO:重命名为你的银行(例如,Assets:Bank:Chase:Operating)
2025-01-01 open Assets:Bank:Savings USD
2025-01-01 open Assets:AccountsReceivable USD
2025-01-01 open Assets:PrepaidExpenses USD

2025-01-01 open Liabilities:CreditCard:Corporate USD
2025-01-01 open Liabilities:Payroll:Federal:FIT USD
2025-01-01 open Liabilities:Payroll:Federal:FICA USD
2025-01-01 open Liabilities:Payroll:Federal:Medicare USD
2025-01-01 open Liabilities:Payroll:Federal:FUTA USD
2025-01-01 open Liabilities:Payroll:State:Withholding USD ; TODO:重命名州(例如,CA、NY)
2025-01-01 open Liabilities:Payroll:State:Unemployment USD
2025-01-01 open Liabilities:Payroll:Local USD

2025-01-01 open Equity:ContributedCapital USD
2025-01-01 open Equity:Distributions USD
2025-01-01 open Equity:RetainedEarnings USD
2025-01-01 open Equity:OpeningBalances USD

2025-01-01 open Income:Sales USD
2025-01-01 open Income:Other USD

2025-01-01 open Expenses:COGS USD
2025-01-01 open Expenses:Payroll:Wages USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:FICA USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:Medicare USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:FUTA USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:State USD
2025-01-01 open Expenses:Benefits:HealthInsurance USD
2025-01-01 open Expenses:Benefits:HSA USD
2025-01-01 open Expenses:Benefits:Retirement:Match USD
2025-01-01 open Expenses:Taxes:State:S‑Corp USD ; 例如,加州 1.5% 的实体级税
2025-01-01 open Expenses:Taxes:State:Franchise USD ; 例如,加州 800 美元的最低特许经营税
2025-01-01 open Expenses:Professional:Payroll USD
2025-01-01 open Expenses:Professional:Accounting USD
2025-01-01 open Expenses:Professional:Legal USD
2025-01-01 open Expenses:BankFees USD
2025-01-01 open Expenses:Software USD
2025-01-01 open Expenses:Office USD
2025-01-01 open Expenses:Meals USD
2025-01-01 open Expenses:Travel USD
2025-01-01 open Expenses:Insurance:GeneralLiability USD


; === 示例:所有者注资 =================================================
2025-01-02 * "所有者" "初始资本投入"
Assets:Bank:Checking 25,000.00 USD
Equity:ContributedCapital -25,000.00 USD

; === 示例:客户付款 =====================================================
2025-01-15 * "Stripe" "一月订阅收入"
Assets:Bank:Checking 12,000.00 USD
Income:Sales -12,000.00 USD

; === 示例:月工资单(单一股东-雇员) ========================
; 选择的数字可以完美平衡。根据你的实际情况调整 FIT/州数字。
; 工资总额:8,333.33 | 雇员 FIT:1,200.00 | 州预扣税:300.00
; 雇员 FICA (6.2%):516.67 | 雇员 Medicare (1.45%):120.83
; 雇主 FICA:516.67 | 雇主 Medicare:120.83
; 净工资:6,195.83
2025-01-31 * "Gusto" "一月工资单 — 股东-雇员"
Expenses:Payroll:Wages 8,333.33 USD
Expenses:Payroll:EmployerTaxes:FICA 516.67 USD
Expenses:Payroll:EmployerTaxes:Medicare 120.83 USD
Liabilities:Payroll:Federal:FIT -1,200.00 USD
Liabilities:Payroll:Federal:FICA -1,033.34 USD ; 雇员 + 雇主
Liabilities:Payroll:Federal:Medicare -241.66 USD ; 雇员 + 雇主
Liabilities:Payroll:State:Withholding -300.00 USD
Assets:Bank:Checking -6,195.83 USD

; === 示例:工资税存款(EFTPS 和州) =================================
2025-02-15 * "EFTPS" "联邦工资存款(FIT、FICA、Medicare)"
Liabilities:Payroll:Federal:FIT 1,200.00 USD
Liabilities:Payroll:Federal:FICA 1,033.34 USD
Liabilities:Payroll:Federal:Medicare 241.66 USD
Assets:Bank:Checking -2,475.00 USD

2025-02-16 * "STATE DOR" "州工资预扣税"
Liabilities:Payroll:State:Withholding 300.00 USD
Assets:Bank:Checking -300.00 USD

; === 示例:>2% 股东的健康保险 =================================
; 与工资单协调,以便将年度保费总额包含在 W‑2 第 1 格中。
; 保费本身在此处可扣除;如果处理得当,请勿对其预扣 SS/Medicare。
2025-02-01 * "BlueCross" "股东健康保险(W‑2 包含由工资单处理)"
Expenses:Benefits:HealthInsurance 600.00 USD ; w2: "true"
Assets:Bank:Checking -600.00 USD

; === 示例:所有者分配(非工资) =======================================
2025-03-31 * "所有者分配" "第一季度分配"
Equity:Distributions 20,000.00 USD
Assets:Bank:Checking -20,000.00 USD

; === 州示例(如果不适用,请删除/编辑) =================================
; 加州最低特许经营税(并非总是第一年;请查看规则)
2025-04-15 * "California FTB" "年度特许经营税"
Expenses:Taxes:State:Franchise 800.00 USD
Assets:Bank:Checking -800.00 USD

; 加州 S‑Corp 1.5% 实体级税(示例估计付款)
2025-06-15 * "California FTB" "S‑Corp 税估计"
Expenses:Taxes:State:S‑Corp 1,500.00 USD
Assets:Bank:Checking -1,500.00 USD

; 纽约单独的 S 选举 (CT‑6) 没有直接的账本影响;占位符注释。
2025-01-05 note Equity:RetainedEarnings "已提交纽约 S‑选举 (CT‑6) — 仅为簿记注释(无条目)"

; === 基数跟踪(可选 — 账外备忘录) =====================================
2025-12-31 note Equity:RetainedEarnings "基数滚动:+ 资本 25,000 + 收入 60,000 − 分配 20,000 = 期末基数 65,000(与 K‑1 核对)"


; === 导入提示(来自 Gusto/ADP 的 CSV) =============================================
; - 对于 Gusto 工资单注册 CSV,映射列:
; 工资总额 -> Expenses:Payroll:Wages
; 雇员 FIT/FICA/Medicare -> Liabilities:Payroll:Federal:FIT/FICA/Medicare(负数)
; 州预扣税 -> Liabilities:Payroll:State:Withholding(负数)
; 雇主 FICA/Medicare/FUTA/SUTA -> Expenses:Payroll:EmployerTaxes:*(正数)和
; 如果你的 CSV 将雇主税列为应付金额,请将其反映为 Liabilities:*(负数),
; 然后用你的 EFTPS/州付款清除。
; 净工资 -> Assets:Bank:Checking(负数,与支付日期匹配)
; - 公司支付的健康保险:
; 供应商付款 -> Expenses:Benefits:HealthInsurance(正数)/ 银行(负数);
; 确保工资单将 >2% 股东的年度保费包含在 W‑2 第 1 格中。
;
; 提示:
; - 将分配保留在工资单账户之外。
; - 使用 #payroll #distribution 等标签在 Fava 中进行过滤。
; - 考虑为税务准备金(联邦/州)使用单独的银行子账户。

使用 Beancount 轻松掌握亚马逊卖家记账基础

· 阅读需 8 分钟
Mike Thrift
Mike Thrift
Marketing Manager

当你的利润微乎其微时,精确胜过猜测。

在亚马逊上销售是一个数量和速度的游戏。但在销售和发货的背后,隐藏着一个由费用、退货、库存变动和税务义务组成的复杂网络。标准的记账软件通常难以捕捉到这种细微差别,导致卖家对其真实盈利能力的了解模糊不清。

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

这就是像 Beancount 这样的纯文本会计系统大放异彩的地方。通过完全控制记录交易的方式,你可以构建一个完全模拟亚马逊市场独特挑战的财务真相来源。本指南提供了一个循序渐进的工作流程,让你在费用、税金和库存难题面前保持领先地位。

为什么亚马逊记账与众不同

如果你尝试将亚马逊付款与你的银行对账单进行核对,你就会知道这并非易事。亚马逊业务的财务现实隐藏在多层抽象之后。

  • 双周一次性付款: 亚马逊不会向你发送每笔销售的收入。相反,它每两周发送一次单笔存款。这笔一次性付款是一个 值,总销售额扣除推荐费、FBA 费用、广告成本、退货和其他预扣款。要了解你的业务,你必须将这个数字分解成其组成部分。 (doola: A Business-in-a-Box™)
  • 库存无处不在: 你的库存不断流动——从你的供应商到准备中心,再到全国各地的各种 FBA 配送中心,最后到客户。准确跟踪你的销售成本 (COGS) 需要知道每笔销售使用了哪一批库存(以什么成本)。 (Bean Ninjas)
  • 市场费用和促销: 你的很大一部分收入立即被费用消耗:推荐费、FBA 拣货和包装费、月度仓储费和广告成本。单独跟踪每个费用类别是计算你的真实毛利率和确定产品实际盈利能力的唯一方法。 (Profitwise Accounting)
  • 销售税拼凑: 虽然亚马逊的市场促进商法处理大多数州的销售税征收和汇款,但这并非一个完整的解决方案。在 FBA 仓库中存储库存可能会产生“关联”(业务存在),可能要求你在这些州注册和申报,即使没有应缴税款。这是一个复杂的合规领域,需要仔细跟踪。 (TaxDo)
  • 更低的 1099-K 门槛: 随着 2024 年 1099-K 表格的申报门槛从 20,000 美元降至 5,000 美元(并设定从 2026 年起降至 600 美元),几乎每个认真经营的卖家都将收到亚马逊的表格,向 IRS 报告其总交易量。你的账簿 必须 能够与这个数字完全一致。 (IRS)

Beancount 七步蓝图

此蓝图利用 Beancount 的精度来直接应对亚马逊的复杂性。

1. 尽早区分渠道

如果你在多个平台上销售,请将每个平台的会计分开。在你法人实体的单个 Beancount 文件中,为每个市场创建专用的分层账户。这种结构简化了分析,并使生成税务报表变得轻而易举。

2025-07-22 open Income:Amazon               USD
2025-07-22 open Expenses:Amazon:FBAFee USD
2025-07-22 open Assets:Amazon:Payouts USD

2. 分解每次付款

这是最关键的习惯。切勿将亚马逊存款记为单行收入。相反,请从卖家中心下载相应期间的“所有交易”结算报告。使用此报告创建一个 Beancount 交易,将付款分解成其组成部分。

你在银行收到的存款是平衡分录。总销售额记入 Income,而所有费用和退款则从其各自的 Expenses 账户中扣除。

; 来自结算报告的双周付款
2025-07-14 * "亚马逊结算 #4361"
Assets:Bank:Operating 8432.17 USD
Income:Amazon:Sales -12274.50 USD
Expenses:Amazon:FBAFee 2454.80 USD
Expenses:Amazon:Adverts 1012.06 USD
Expenses:Amazon:Refunds 375.47 USD
Assets:Amazon:Reserve -100.00 USD

3. 使用批次跟踪库存和 COGS

Beancount 有一个一流的库存跟踪系统,称为“批次”。当你购买库存时,你会记录单位数量及其特定成本。当一个单位售出时,你可以将该确切成本记为费用,从而完美计算销售成本 (COGS)。

; 从供应商处购买 1,000 件
2025-07-01 * "供应商 PO-7421"
Assets:Inventory:WidgetA 1000 WidgetA {@ 4.20 USD}
Assets:Bank:Operating

; 稍后,记录单笔销售的成本
2025-07-16 * "FBA 销售 WidgetA | COGS"
Expenses:COGS 1 WidgetA {4.20 USD}
Assets:Inventory:WidgetA

4. 选择权责发生制以提高清晰度

对于任何基于库存的业务,权责发生制都更胜一筹。现金收付制方法会在你购买库存的月份显示巨额支出,并在你销售库存的月份显示人为的高利润,从而扭曲你的业绩。权责发生制会计将销售商品的成本 (COGS) 与同一期间的销售收入正确匹配,从而更清晰地反映你的毛利润。 (Bean Ninjas)

5. 自动导入

手动输入结算报告一开始很有教育意义,但无法扩展。纯文本生态系统擅长自动化:

  • 使用 bean-extract 从 A2X 等服务导出的格式化 CSV 中提取数据。
  • 编写简单的 Python 脚本以直接从亚马逊的 SP-API 中提取数据。
  • 使用现有的导入程序提取银行 CSV 文件,以核对直接向信用卡收取的存款和费用。

6. 每周核对

养成检查数字的习惯。使用 Beancount 强大的命令行工具快速验证余额并查看业绩。

# 检查你当前的库存数量和价值
bean-balance books.bean "Assets:Inventory" "2025-07-21"

# 生成上一期间的损益表
bean-report books.bean income_statement -e 2025-07-21

7. 存档源文档

对于每笔主要交易,链接到源文档。使用 Beancount 的元数据语法 (document:) 附加亚马逊官方结算 PDF、库存采购的供应商发票或发货收据。这将创建一个独立的、可审计的财务记录。

销售税和合规性清单

  • 市场促进商法: 了解虽然亚马逊在大多数州代表你汇出销售税,但在加利福尼亚州、德克萨斯州或宾夕法尼亚州等州存储库存仍然会产生经济联系,可能需要你在当地注册你的企业。 (TaxGPT)
  • 1099-K 核对: 确保你在 Income:Amazon:Sales 中记录的年度总额与 1099-K 表格中报告的总金额精确到美分。任何差异都是审计标志。 (IRS)
  • 直接销售税: 如果你通过促进商未涵盖的其他渠道进行销售,请维护 Liabilities:SalesTaxPayable:State 账户子树以跟踪你直接欠缴的税款。

常见陷阱(和修复方法)

  • 陷阱: 仅记录亚马逊的净存款。
    • 修复: 始终使用完整的结算报告分解付款。
  • 陷阱: 忽略报销的退货或损坏的商品。
    • 修复: 将初始退款费用和随后的亚马逊报销作为单独的贷项记录。
  • 陷阱: 忘记滚动储备金。
    • 修复: 亚马逊通常会从付款中预扣“储备金”余额,尤其是对于新账户。在专用的 Assets:Amazon:Reserve 账户中跟踪你应得的这笔款项。
  • 陷阱: 你的系统和亚马逊的 SKU 别名不匹配。
    • 修复: 在导入脚本中规范所有 SKU 代码,以确保 COGS 查找不会失败。

快速入门待办事项

  • 在卖家中心启用并下载你的第一份结算报告。
  • 克隆 Beancount 入门存储库并构建特定于亚马逊的账户图表。
  • 编写一个小型导入程序脚本,将结算 CSV 转换为 Beancount 交易(.txn 文件)。
  • 安排每周提醒以提取新报告并运行 bean-check 以确保你的文件有效。
  • 每月查看你的损益表,以便就广告支出、定价和库存做出数据驱动的决策。

延伸阅读

多发货,少烦恼——保持你的 Bean 平衡。祝你销售愉快!