Skip to main content

80 posts tagged with "Beancount"

View all tags

2025 Credit Card Processors for Small Businesses (and How to Reconcile Them in Beancount)

· 12 min read
Mike Thrift
Mike Thrift
Marketing Manager

Choosing a credit card processor is part math, part operations. The right partner simplifies your workflow, while the wrong one can slowly bleed your margins through hidden fees and create bookkeeping nightmares. Transaction fees, payout timing, hardware costs, contracts, and data export quality all affect your bottom line—and your accounting workflow. This guide highlights popular U.S. options in 2025 and adds Beancount-friendly tips so you can keep your ledger clean from day one.

All pricing snapshots below are published U.S. rates as of September 2025 and may vary by plan, industry, and transaction volume. Always confirm current pricing on the provider’s official site.

2025-09-09-2025-credit-card-processors-for-small-businesses


How to Choose: A Quick Framework

Before diving into brand names, use this framework to narrow your search. Your business's unique transaction profile is the most important factor.

  • Transaction Mix

    • Mostly in-person, low average ticket: Your priority is speed and simplicity at the point of sale. Favor simple flat-rate POS systems like Square, Zettle, Clover, or Chase.
    • Mostly online/SaaS or multi-country: You need robust APIs, international payment methods, and developer-friendly tools. Look at Stripe, Adyen, or Braintree.
    • 30k30k–100k+ monthly volume with a stable mix: At this scale, flat-rate pricing becomes expensive. It's time to consider interchange-plus (Helcim, Dharma) or membership (Stax, Payment Depot) models to lower your effective rate.
  • Total Cost of Ownership (TCO) Don't just look at the advertised percentage. Calculate your effective rate by combining the percentage fee, fixed cents-per-transaction fee, monthly account fees, hardware costs, and potential chargeback fees. This gives you a true picture of your costs.

  • Payout Cadence How quickly do you need your cash? A next-day deposit schedule versus a two-day rolling window (T+2) can significantly impact your cash-flow forecasting. We'll cover how to model this in Beancount below.

  • Lock-In Avoid long-term contracts with hefty early termination fees (ETFs). Look for month-to-month billing and, crucially, the ability to easily export your transaction data via CSV or an API. Your data is your own; don't let a processor hold it hostage.


The Shortlist: Who It’s Best For

Stripe — Best for Online-First and Platforms

Stripe is the gold standard for internet businesses. Its excellent APIs, pre-built Checkout and Link components, robust subscription management, and global payment method support make it incredibly versatile. For physical sales, its Terminal line of hardware integrates seamlessly.

  • Pricing Snapshot: Online transactions are typically 2.9% + 30¢ (domestic). In-person payments via Terminal are 2.7% + 5¢. International cards and currency conversion may incur surcharges.
  • Payouts: Operates on a configurable, rolling schedule. Most U.S. businesses see funds available on a T+2 basis (two business days after the transaction).

Square — Best Turnkey POS for New Storefronts

Square excels at getting new retail and service businesses up and running quickly. With a free and intuitive POS app, a simple hardware lineup, and fast onboarding, it's a favorite for cafes, boutiques, and service providers.

  • Pricing Snapshot: In-person is 2.6% + 15¢, online is 2.9% + 30¢, keyed-in is 3.5% + 15¢, and invoices are 3.3% + 30¢.
  • Payouts: Standard next-business-day transfers are free. For urgent cash needs, instant or same-day transfers are available for an additional 1.75% fee.

PayPal Zettle — Best “Micro-Merchant” Mobile POS

Perfect for sellers at farmers' markets, pop-up shops, or conventions. Zettle offers low-cost entry hardware that integrates smoothly with the broader PayPal ecosystem, making it easy to manage funds alongside your online PayPal sales.

  • Pricing Snapshot: In-person card transactions are 2.29% + 9¢. Keyed, invoice, and online transactions have separate rates.

Braintree (by PayPal) — Best for PayPal/Venmo + Cards Under One API

Braintree is a developer-centric platform that allows businesses to accept credit cards, PayPal, Venmo, and other digital wallets through a single integration. It's a strong choice for e-commerce sites that want to offer customers a wide array of payment options.

  • Pricing Snapshot: Standard rate for cards and most digital wallets is 2.89% + 29¢. Venmo is often 3.49% + 49¢. Discounts for non-profits and custom pricing for high-volume businesses are available.

Helcim — Best Transparent Interchange-Plus with Volume Discounts

Helcim offers interchange-plus pricing with no monthly fee, making it an accessible option for businesses graduating from flat-rate models. Its pricing automatically gets cheaper as your processing volume increases, with clear tiers published on its site.

  • Pricing Snapshot: Margins are typically around Interchange + 0.40% + 8¢ (card-present) and Interchange + 0.50% + 25¢ (card-not-present), with margins decreasing at higher volumes.

Dharma Merchant Services — Best Small-to-Mid B2B Interchange-Plus

Dharma is known for its fair interchange-plus pricing and excellent support, with a focus on B2B transactions. It helps businesses qualify for lower Level 2 and Level 3 processing rates, which can lead to significant savings on corporate card transactions.

  • Pricing Snapshot: Card-present is IC + 0.15% + 8¢, and e-commerce is IC + 0.20% + 11¢, plus a modest monthly fee.

Stax — Best Subscription (Membership) Pricing at Higher Volumes

Stax uses a membership model: you pay a flat monthly subscription fee and in return get access to direct interchange rates with a "0% markup." This can be extremely cost-effective once your monthly volume is high enough to justify the subscription cost.

  • Pricing Snapshot: Plans start at $99/month, with tiers based on annual processing volume.

Payment Depot — Membership Alternative to Lower Processing Costs

Similar to Stax, Payment Depot offers interchange-plus rates under a membership model. It positions itself as a way for businesses to access wholesale processing rates without percentage markups, with an emphasis on no long-term contracts or early termination fees.

  • Pricing Snapshot: Membership-style IC+ pricing. Plans are typically provided via a custom quote.

Shopify Payments — Best if You Already Run on Shopify

If your business runs on Shopify, using Shopify Payments is a no-brainer. It's tightly integrated with your store, provides excellent fraud analysis tools, and enables the high-converting Shop Pay checkout. Using a third-party gateway on Shopify incurs additional fees.

  • Pricing Snapshot: Rates are tied to your Shopify plan. Online fees range from ~2.5% to 2.9% + 30¢, while in-person rates are around 2.4% to 2.6% + 10¢ on higher tiers.

Toast — Best All-in-One for Restaurants

Toast is purpose-built for the food and beverage industry. Its platform combines durable, restaurant-grade hardware with software for kitchen display systems (KDS), online ordering, inventory, and even payroll add-ons.

  • Pricing Snapshot: A pay-as-you-go plan is available at ~3.09%–3.69% + 15¢. If you pay for hardware upfront, rates can be as low as 2.49% + 15¢ (card-present) and 3.50% + 15¢ (card-not-present).

Clover (Fiserv) — Best POS Hardware Variety (Retail/Service)

Clover offers one of the broadest hardware lineups in the industry, from the mobile Go and Flex to the countertop Mini and Station. This variety makes it a flexible choice for retail stores and service businesses that need a specific form factor.

  • Pricing Snapshot: Rates vary widely by plan and device, but in-person rates are commonly advertised as low as 2.6% + 10¢.

Lightspeed Payments — Best Mid-Market Retail POS with Deep Inventory

Lightspeed is a powerhouse for retail businesses with complex inventory needs. Its integrated payments system works seamlessly with its advanced POS features, providing a unified platform for sales and stock management.

  • Pricing Snapshot: A frequently cited U.S. reference rate is ~2.6% + 10¢ for in-person and ~2.9% + 30¢ for card-not-present transactions.

Authorize.Net — Best Standalone Gateway (Bring Your Own Merchant Account)

A long-standing and trusted name, Authorize.Net is a payment gateway that connects your website to your merchant account. This is for businesses that have already negotiated a direct merchant account with an acquiring bank and just need the technology layer to process online payments.

  • Pricing Snapshot: All-in-one: 25/mo+2.925/mo + 2.9% + 30¢**. **Gateway-only:** **25/mo + 10¢ per transaction, plus a small daily batch fee.

Chase Payment Solutions — Best Bank-Integrated POS & Fast Deposits

For businesses that bank with Chase, their payment solutions offer a compelling advantage: the potential for same-day deposits into a Chase business checking account at no extra cost. This tight integration simplifies cash flow management.

  • Pricing Snapshot: Card-present is 2.6% + 10¢, while keyed-in sales and payment links are 3.5% + 10¢.

Beancount: Model Your Payouts and Fees Cleanly

Plain-text accounting shines when you can model real-world financial flows precisely. For payment processors, the key is using a "clearing account" to track money from the moment of sale until it lands in your bank. This preserves your gross revenue figures and makes reconciliation trivial.

Example Chart of Accounts:

Assets:Bank:Operating
Assets:Processors:Stripe ; A clearing account for each processor
Income:Sales
Expenses:ProcessingFees
Liabilities:SalesTax:Payable

Pattern A: “Net Deposit” Processors (Most Flat-Rate)

Most processors batch your sales, subtract their fees, and deposit the net amount. Your job is to record the gross sale first, then account for the deposit and the fee. A 100salewitha100 sale with a 2.90 fee becomes:

2025-09-08 * "Online order #8421"
Assets:Processors:Stripe 100.00 USD
Income:Sales -100.00 USD

2025-09-09 * "Stripe payout"
Assets:Bank:Operating 97.10 USD
Expenses:ProcessingFees 2.90 USD
Assets:Processors:Stripe -100.00 USD

Why this pattern is essential: It correctly records 100inIncome:Salesand100 in `Income:Sales` and 2.90 in Expenses:ProcessingFees. This is critical for analyzing your true gross revenue and is exactly what you need to reconcile your books with the processor's 1099-K form at year-end.

Pattern B: “Daily Batch” with Line-Item Fees

Some POS systems (like Toast or Clover) will show a single large deposit for a day's sales, with fees deducted as separate line items in their report. The principle is the same: balance the clearing account to zero.

2025-09-08 * "Toast batch — store #1"
Assets:Bank:Operating 1,943.55 USD
Expenses:ProcessingFees 56.45 USD
Assets:Processors:Toast -2,000.00 USD

Pattern C: “Membership” Pricing (Stax/Payment Depot)

For membership models, the monthly subscription is a separate operating expense. You book it directly, while the much smaller per-transaction fees are handled using Pattern A or B.

2025-09-01 * "Stax subscription"
Expenses:ProcessingFees 99.00 USD
Assets:Bank:Operating -99.00 USD

Importing & Reconciling Tips

  • One Clearing Account Per Processor: Create Assets:Processors:Stripe, Assets:Processors:Square, etc. If you have multiple locations, consider Assets:Processors:Toast:Store1 to isolate activity.
  • Mind the Payout Cadence: A sale on Friday might not hit your bank until Tuesday. This lag is why the clearing account is so important for accurate cash forecasting.
  • Automate Your Imports: Every provider offers CSV exports. Write simple Python scripts or use Fava's importer functionality to map the columns (date, gross amount, fees, net deposit) to Beancount transactions.
  • Handle Sales Tax Correctly: Sales tax is not income. Split it out to Liabilities:SalesTax:Payable at the time of sale. Most POS reports provide this breakdown.
  • Book Chargebacks Promptly: When a chargeback occurs, the processor debits your account. Book a reversal to Income:Sales for the sale amount and a separate entry to Expenses:ProcessingFees for the chargeback fee.

Quick Comparison Snapshot

ProviderPricing modelIn-person (from)Online (from)Monthly feePayout notes
StripeFlat‑rate + options2.7% + 5¢2.9% + 30¢$0Configurable; often ~T+2.
SquareFlat‑rate2.6% + 15¢2.9% + 30¢$0Next‑day free; instant/same‑day 1.75% transfer fee.
ZettleFlat‑rate2.29% + 9¢Varies$0PayPal ecosystem.
BraintreeFlat‑rate / custom2.89% + 29¢$0PayPal/Venmo/wallets under one roof.
HelcimInterchange‑plusIC + 0.40% + 8¢IC + 0.50% + 25¢$0Volume‑based discounts.
DharmaInterchange‑plusIC + 0.15% + 8¢IC + 0.20% + 11¢~$20Level 2/3 for B2B.
StaxMembership (0% markup)Interchange + centsInterchange + centsFrom $99Savings at higher volume.
Payment DepotMembership IC+Interchange + centsInterchange + centsQuoteWholesale‑style plans.
Shopify PaymentsFlat‑rate~2.4–2.6% + 10¢~2.5–2.9% + 30¢IncludedPlan‑dependent rates.
ToastFlat‑rate (tiered)2.49% + 15¢3.50% + 15¢From $0Restaurant‑specific suite.
CloverFlat‑rate (by plan)as low as 2.6% + 10¢2.9% + 30¢+Plan‑basedWide hardware range.
LightspeedFlat‑rate (region)~2.6% + 10¢~2.9% + 30¢POS planSee regional fee tables.
Authorize.NetGateway (or AIO)2.9% + 30¢ (AIO)$25Gateway‑only: 25+25 + 0.10/txn + batch fee.
ChaseFlat‑rate2.6% + 10¢3.5% + 10¢$0Same‑day deposits to Chase checking at no extra cost.

Which One Should a Beancount User Pick?

  • For the simplest setup with daily auto-payouts: Start with Square or Zettle. Their reports are clean and easy to import.
  • For developer work, subscriptions, or multiple payment methods: Stripe or Braintree are your best bets due to their powerful APIs.
  • If you process ≥$30k/month with a stable card mix: It's time to do the math. Price out Helcim (IC+) versus Stax/Payment Depot (membership) to calculate your true effective rate.
  • For a restaurant POS: Compare Toast and Clover/Lightspeed, paying close attention to contract terms and hardware financing.
  • If you're already on Shopify: Use Shopify Payments to avoid paying extra gateway fees.
  • For same-day deposits into your operating account: Chase QuickAccept linked to a Chase business checking account is the clear winner.

Final Beancount Checklist

  • Create Assets:Processors:* clearing accounts for each processor and location.
  • Always record gross sales and separate fees, even if your bank deposit is a net amount.
  • Match payout dates and batch IDs from the processor's CSV report to your clearing account transactions.
  • Automate your workflow by writing small importers to map CSV columns to Beancount postings.
  • Review chargebacks weekly and post the reversal and fee on the day they are debited by the processor.

Building Business Credit in 2025: A Ledger-First Playbook for Beancount Users

· 11 min read
Mike Thrift
Mike Thrift
Marketing Manager

If you keep immaculate books in Beancount, you already think in systems. You appreciate precision, automation, and a single source of truth. This guide turns that disciplined mindset into an 11-step, practical workflow for establishing and growing business credit. We'll map each critical step to simple, automatable Beancount habits, transforming your ledger from a historical record into a forward-looking tool for financial strength.

The 2025 Quick Primer: What Actually Matters

2025-09-08-building-business-credit-in-2025

The world of business credit can feel opaque, but the principles for 2025 are straightforward. Here’s what you need to know before you start.

First, separate your identities. The absolute foundation of business credit is a distinct legal entity (like an LLC or corporation) with its own, separate bank accounts. Co-mingling personal and business funds is the fastest way to be denied business credit.

Next, get an Employer Identification Number (EIN). This is your business's social security number for tax purposes. It is always free and you should apply for it directly with the IRS—never pay a third-party site for this service.

Then, understand how you’ll be scored. Unlike consumer credit's unified FICO score, business credit is measured by several bureaus, each with its own methodology:

  • Dun & Bradstreet PAYDEX® (1–100): This score is almost entirely driven by your payment history with vendors and suppliers. A score of 80 is considered on-time, while anything higher indicates you pay your bills early.
  • Experian Intelliscore Plus (1–100): This is a predictive score that forecasts the likelihood of serious delinquency. It analyzes payment trends, public records, and other company data.
  • FICO® SBSS (Small Business Scoring Service): This score is critical for accessing SBA 7(a) "Small Loans." As of 2025, the Small Business Administration (SBA) lists a minimum prescreen score of 165.

Finally, know that monitoring is fragmented. Scores differ by bureau, and accessing your full reports often costs money. Before paying for a report, try to verify which score a specific lender or vendor uses.

Heads-up: A quick note on identifiers. If you plan to sell to the U.S. federal government, the Unique Entity ID (UEI) replaced the D-U-N-S number in the SAM.gov system on April 4, 2022. However, for building your business credit file with Dun & Bradstreet, the D-U-N-S number is still essential.


The 11 Steps (and the Beancount Moves That Make Them Stick)

1. Formalize the Entity and Separate Money Flows

This is the non-negotiable first step. Form a legal entity, open a dedicated business checking account, and keep personal funds out. This creates a clean financial history that credit bureaus can track.

Beancount Move: Your ledger should explicitly reflect this separation from day one. Open distinct accounts for the business and document initial capitalization cleanly.

2025-01-01 open Assets:Bank:Checking:Business      USD
institution: "Bank of Example"
2025-01-01 open Equity:Owner:Contributions USD

2025-01-05 * "Owner Capitalization"
Assets:Bank:Checking:Business 10000 USD
Equity:Owner:Contributions

2. Get Your EIN (Free) and File It in Your Repo

Apply directly at IRS.gov. Once you receive your EIN confirmation letter (SS-4), store a digital copy in a docs/ directory alongside your ledger. This keeps critical identity documents version-controlled and accessible.

Beancount Move: Use metadata at the top of your ledger file to record the EIN and link to the source document.

; organization-id: "EIN 12-3456789"
; documents: "docs/tax/SS-4.pdf"

Tip: Beware of search-ad "EIN helpers" that charge fees or harvest your data. Always verify you are on a .gov domain before entering sensitive information.

3. Claim Your D-U-N-S® Number

A D-U-N-S number links your company to its Dun & Bradstreet credit file, which vendors and lenders use to assess your reliability. Go to the D&B website to claim or update your company's record for free.

Beancount Move: Just like your EIN, add your D-U-N-S number to your ledger's metadata. You can also link to an internal checklist for vendor onboarding to ensure you're always providing consistent information.

; duns: "123456789"
; vendor-onboarding-checklist: "docs/credit/dnb-checklist.md"

4. Open a Business Credit Card and Use It Prudently

A revolving business credit card is a powerful tool, as issuers often report your payment history to business bureaus. Use it for regular expenses, keep your utilization modest (ideally under 30%), and never, ever miss a payment.

Beancount Move: Model your credit card as a liability. Use metadata to note which bureaus it reports to. Track purchases and, crucially, payments from your business checking account.

2025-01-01 open Liabilities:Credit:BizCard:BankCo  USD
reports_to: "Experian, Equifax (varies)"

2025-02-04 * "Laptop (business card)"
Assets:Equipment:Computers 1600 USD
Liabilities:Credit:BizCard:BankCo

2025-02-15 * "BizCard payment (keep util <30%)"
Liabilities:Credit:BizCard:BankCo 1200 USD
Assets:Bank:Checking:Business -1200 USD

5. Establish Vendor Net-30 Trade Lines That Report

This is the fastest path to building a strong PAYDEX score. Find vendors that offer payment terms (e.g., Net-30) and confirm that they report your payment history to bureaus like D&B. Office supply, packaging, and shipping companies are common starting points.

Beancount Move: Track each vendor invoice in your Accounts Payable (Liabilities:AP). When you pay the invoice, record the transaction and consider adding a tag to track your payment habits.

2025-02-03 * "Acme Packaging — Net30"
invoice: "INV-2025-023"
Expenses:COGS:Packaging 525.00 USD
Liabilities:AP:AcmePackaging

2025-02-27 * "Pay Acme INV-2025-023 (paid early)"
Liabilities:AP:AcmePackaging 525.00 USD
Assets:Bank:Checking:Business -525.00 USD
; tag: net30-early

6. Pay on Time or Early to Target PAYDEX ≥ 80

D&B explicitly maps a PAYDEX score of 80 to "prompt/on-time" payments. Scores above 80 signify early payments. If your cash flow allows, paying invoices 10–20 days before the due date can significantly boost your score.

Beancount Move: This is a process, not a transaction. Set up a recurring reminder (e.g., a cron job or a Makefile task) that queries your open Liabilities:AP accounts and flags invoices that are due in the next 30 days, prompting you to schedule payments early.

7. Keep Business Identity Consistent Everywhere

Use the exact same legal name, address, phone number, and industry codes (like NAICS) across your bank accounts, IRS filings, insurance policies, and credit bureau profiles. Inconsistencies can lead to fragmented credit files or mismatches.

Beancount Move: Establish a single source of truth for this data in your ledger's top-level metadata.

; company-legal-name: "Acme Robotics, Inc."
; naics: "541511"
; address: "123 Market St, Springfield, ST 12345"

8. Monitor Your Business Credit and Dispute Errors

Business credit reports are less standardized and regulated than consumer reports, making errors more common. Periodically pull your reports from the major bureaus and dispute any inaccuracies immediately.

Beancount Move: Maintain a directory for docs/credit/ where you store PDFs of your credit reports and any dispute correspondence. You can link to these documents directly from transactions that were misreported, creating an auditable trail.

9. Graduate to Bank Lines and SBA Options (When Ready)

Once you have a solid history of on-time payments, you can approach banks for lines of credit or apply for SBA-backed loans. For SBA 7(a) Small Loans, lenders use the FICO SBSS score, and the current minimum prescreen is 165. Keep your personal credit clean as well, as it's often a factor.

Beancount Move: Use your ledger to track key financial metrics that lenders care about, like your Debt Service Coverage Ratio (DSCR) or cash buffer days. You can define these as custom metadata and run queries against your ledger to see if you meet a lender's covenants before you even apply.

10. Automate the Habits That Move Scores

Good credit is the result of consistent habits. Set up autopay for at least the minimum payment on business credit cards. Schedule a weekly time block to run your A/P. Regularly review A/R aging to protect your cash flow. Systematize the behaviors that lead to good scores.

Beancount Move: Document your financial policies as metadata. This serves as a reminder and a checklist for your operations.

; policy:
; - autopay: "Liabilities:Credit:BizCard:BankCo:min"
; - payables-run: "weekly, Mondays"
; - target-utilization: "<30%"

11. Keep Learning Your Scores’ Dials

Finally, understand what drives each score so you can focus your efforts:

  • PAYDEX (D&B): Driven almost entirely by payment timeliness and the number of trade lines reporting.
  • Intelliscore (Experian): Influenced by payment trends, public records (liens, judgments), and firmographics (age of business, industry risk).
  • SBSS (FICO/SBA): A blended model using business credit, personal credit, and business financials. Used heavily for SBA 7(a) loans.

A Compact Beancount Starter for Credit-Building

Here is a minimal credit.beancount file to get you started on tracking these activities in a structured way.

option "operating_currency" "USD"

; --- Accounts ---
2025-01-01 open Assets:Bank:Checking:Business USD
2025-01-01 open Assets:Equipment USD
2025-01-01 open Liabilities:AP:Vendors USD
2025-01-01 open Liabilities:Credit:BizCard:BankCo USD
2025-01-01 open Expenses:COGS:Packaging USD
2025-01-01 open Expenses:Office:Supplies USD
2025-01-01 open Income:Sales USD
2025-01-01 open Equity:Owner:Contributions USD

; --- Identity (metadata you can query) ---
; EIN: 12-3456789
; DUNS: 123456789
; NAICS: 541511
; address: "123 Market St, Springfield, ST 12345"

; --- Example workflow ---
2025-02-03 * "Acme Packaging — Net30" "Boxes for March"
invoice: "INV-2025-023"
vendor_duns: "987654321"
Expenses:COGS:Packaging 525.00 USD
Liabilities:AP:Vendors

2025-02-27 * "Pay Acme INV-2025-023 (early)"
Liabilities:AP:Vendors 525.00 USD
Assets:Bank:Checking:Business -525.00 USD

2025-03-04 * "Laptop (business card)"
Assets:Equipment 1600.00 USD
Liabilities:Credit:BizCard:BankCo

2025-03-15 * "BizCard payment (util <30%)"
Liabilities:Credit:BizCard:BankCo 1200.00 USD
Assets:Bank:Checking:Business -1200.00 USD

Common Questions

How many trade lines do I need to generate a D&B score? Dun & Bradstreet requires a sufficient number of verified trade experiences to generate a PAYDEX score. While there's no magic number, the key is having multiple vendors consistently reporting your on-time or early payments.

Where do I check my business credit scores? Each bureau (D&B, Experian, Equifax) offers paid access to reports on their websites. Some third-party services aggregate data, but they may not show the specific score a lender uses. Before paying, ask your potential lender or vendor which credit bureau and score they rely on.

I see sites charging money for an EIN. Are those legit? No. An EIN is always free from the official IRS.gov website. Avoid non-.gov domains and sponsored search ads that pose as official IRS pages; they are designed to charge you for a free service or collect your data.

Recap: The System in One Checklist

  1. Form an entity → Open a dedicated business bank account.
  2. Get an EIN (free) → Store the SS-4 document in your code repository.
  3. Claim your D-U-N-S number → Align your business identity across all systems.
  4. Add a business credit card → Automate payments and keep utilization low.
  5. Open 2–3 Net-30 vendor accounts that report → Pay them early to target a PAYDEX score of 80 or higher.
  6. Monitor your reports → Dispute any and all inaccuracies with the bureaus.
  7. When ready, approach lenders → Keep the SBA's SBSS prescreen minimum of 165 in mind as a benchmark for readiness.

Sources for Further Reading

Is Your Small Business Financially Healthy? A Practical, Plain-Text Accounting Checklist for Beancount Users

· 9 min read
Mike Thrift
Mike Thrift
Marketing Manager

As a founder, you live and breathe your product, your customers, and your team. But are you just as connected to the financial pulse of your business? Financial health can feel like a complex topic reserved for accountants, but it really comes down to four pillars: liquidity, profitability, insolvency, and operational efficiency.

This article provides a concise, founder-friendly checklist you can run monthly or quarterly to get a clear picture of where you stand. Best of all, it’s designed specifically for users of the plain-text accounting tool Beancount, showing you exactly where to look and what to track.

2025-09-07-is-your-small-business-financially-healthy

Beancount Tip: Fava, the web interface for Beancount, is your command center for this checklist. Its built-in Income Statement, Balance Sheet, and Holdings reports, combined with its query capabilities, provide everything you need to check these metrics fast.


The 12-Question Financial Health Check

1) Do you have enough cash to sleep at night?

  • What to look at: Your cash reserve. The common rule of thumb is to hold 3 to 6 months of operating expenses in cash or highly liquid assets. Adjust this target based on your business’s volatility, seasonality, and growth plans.
  • Why it matters: A healthy cash buffer allows your business to absorb unexpected shocks—a lost client, a market downturn, a supply chain delay—without resorting to expensive, reactive financing. It's the foundation of financial peace of mind.
  • Where to check in Beancount: In Fava, navigate to the Balance Sheet and sum the balances in your Assets:Bank:* accounts, plus any short-term liquid investments you hold.

2) Is today’s liquidity solid?

  • What to look at: The Current Ratio (Current Assets / Current Liabilities). For an even stricter view, use the Quick Ratio (or "Acid Test"), which excludes inventory from current assets. A ratio above 1.0 is generally considered stable, but this varies by industry.
  • Why it matters: These ratios gauge your ability to cover all your short-term obligations (like payroll and supplier bills) using only your short-term assets. They answer the critical question: "If we had to pay all our upcoming bills right now, could we do it without distress?"
  • Where to check in Beancount: Your Balance Sheet in Fava provides all the necessary figures. To make this easy, ensure you are tracking Assets:Receivables, Assets:Inventory, and Liabilities:Payables in separate sub-accounts.

3) Are you consistently profitable?

  • What to look at: The Net Income on your Income Statement. More importantly, look at the trend. Is it positive and growing month-over-month or quarter-over-quarter?
  • Why it matters: Profit is the engine of your business. It funds growth, attracts investment, and provides the ultimate cushion against downturns. Consistent profitability is the clearest sign of a sustainable business model.
  • Where to check in Beancount: Go to the Income Statement in Fava. (Pro-tip: consider enabling Fava’s option to invert income signs, which many find more intuitive for reading financial reports.)

4) Are gross margins holding (or improving)?

  • What to look at: Your Gross Margin Percentage, calculated as (Revenue − COGS) / Revenue. COGS, or Cost of Goods Sold, is typically Beginning Inventory + Purchases − Ending Inventory.
  • Why it matters: Gross margin reflects the profitability of your core product or service before overhead. A shrinking margin is a major red flag, often signaling issues with pricing power, discounting pressure, or rising supply costs.
  • Where to check in Beancount: Categorize all direct costs under Expenses:COGS:*. You can then review your margin directly on Fava’s Income Statement.

5) Are you collecting on time? (DSO)

  • What to look at: Days Sales Outstanding (DSO), which is approximately (Accounts Receivable / Total Credit Sales) × Number of Days. This tells you the average number of days it takes to collect payment after a sale.
  • Why it matters: A high DSO means your cash is trapped in your customers' bank accounts, tightening your own cash flow. Efficient collections are crucial for maintaining liquidity.
  • Where to check in Beancount: Track invoices using metadata (e.g., invoice: "INV-123" and customer: "AcmeCorp"). You can then monitor the total A/R balance on Fava’s Balance Sheet.

6) Are you turning inventory efficiently?

  • What to look at: Inventory Turnover, calculated as COGS / Average Inventory. This measures how many times you sell and replace your inventory over a period. You can also track Days Sales of Inventory (DSI) to see how many days stock sits on the shelf.
  • Why it matters: Slow-moving inventory ties up cash that could be used elsewhere. Conversely, turning inventory too quickly can lead to stockouts and lost sales. Finding the right balance is key.
  • Where to check in Beancount: Use Beancount’s built-in inventory lot tracking to manage cost basis and quantities accurately. You can then review your current positions in Fava under Holdings.

7) How fast do you turn cash? (CCC)

  • What to look at: The Cash Conversion Cycle (CCC), calculated as DSI + DSO − DPO (Days Payable Outstanding). It measures the time between paying for inventory/supplies and receiving cash from customers.
  • Why it matters: A shorter CCC means your business needs less external capital to operate and grow. A negative CCC (common in businesses like Dell or Amazon) means your customers pay you before you have to pay your suppliers—a powerful position for liquidity.
  • Where to check in Beancount: With DSI and DSO already tracked, the final piece is DPO, which you can derive from your Liabilities:Payables account. Reviewing this trend quarterly is sufficient for most businesses.

8) Can you comfortably service your debt? (DSCR)

  • What to look at: The Debt Service Coverage Ratio (DSCR), calculated as Net Operating Income / Total Debt Service. Many lenders, including for SBA loans, look for a ratio of 1.25 or higher.
  • Why it matters: This ratio signals your ability to make your loan payments from the cash your business generates. A healthy DSCR is critical for maintaining good relationships with lenders and avoiding breaches of loan covenants.
  • Where to check in Beancount: Tag your loan payments (both principal and interest). You can use a query or manually summarize your total debt service for the period and compare it to your operating income from the Income Statement.

9) Is leverage appropriate for your business model?

  • What to look at: Your Debt-to-Equity ratio and overall Working Capital. Don't just look at a single number; analyze the trend over several quarters.
  • Why it matters: Debt can be a powerful tool for financing growth, but it also introduces risk. The right level of leverage depends on your industry and risk tolerance. Are you taking on debt faster than you're growing equity?
  • Where to check in Beancount: Fava’s Balance Sheet clearly lays out your total liabilities versus your total equity.

10) How concentrated is your revenue?

  • What to look at: The percentage of total revenue coming from your top 1, 3, or 5 customers. Many practitioners flag a risk when a single customer accounts for 10-20% or more of your revenue.
  • Why it matters: Over-reliance on a few large clients magnifies churn risk and can weaken your pricing power. Diversification creates a more resilient business.
  • Where to check in Beancount: This is where metadata shines. Add a customer: tag to every income posting. You can then use Fava's filtering or Beancount's query language to pivot revenue by customer.

11) Do your unit economics work?

  • What to look at: The Contribution Margin for each product or service line (Revenue - All Variable Costs).
  • Why it matters: This tells you if scaling a particular offering will add cash to your bottom line or just burn through it faster. If the contribution margin is negative, you lose money on every additional sale.
  • Where to check in Beancount: Track variable costs and revenue with specific metadata tags like product: "Widget-A" or channel: "Retail". This allows you to slice and dice your data with queries to calculate profitability at a granular level.

12) Are your books clean and audit-ready?

  • What to look at: Do you have clear documentation, a consistent chart of accounts, and are you retaining records for as long as the IRS recommends?
  • Why it matters: Clean books reduce errors, dramatically speed up tax preparation, and are essential for securing financing or passing due diligence if you ever sell your company.
  • Where to check in Beancount: Use invoice: and document: metadata, and leverage Fava’s ability to link directly to source documents (like PDFs of receipts or invoices) to keep proof organized and accessible.

A One-Hour Monthly Financial Ritual

Turn this checklist into a routine. Block out one hour on the first business day of each month to perform this health check.

  • (15 min) — Cash & Runway: Confirm your cash balance. Review upcoming major payables and expected inflows from receivables. Re-validate that you still have your 3–6 month buffer.
  • (15 min) — P&L Review: Scan your net income and, most importantly, your gross margin trend. Did margins dip? If so, investigate whether it was due to discounting, returns, or higher COGS.
  • (15 min) — Working Capital Check: Quickly glance at your DSO, inventory turnover, and DPO. Calculate your CCC. Identify any actions needed, like following up on late invoices or adjusting inventory reorder points.
  • (15 min) — Solvency & Risk: Check your DSCR if you have debt. Review any changes in your Debt-to-Equity ratio and revenue concentration. Are any trends moving in the wrong direction?

Final Reminders

  • Benchmarks vary by industry. A "good" current ratio for a SaaS business is very different from that of a retail store. Compare your metrics against your own history first, and then against industry peers.
  • Trends beat snapshots. A single data point can be misleading. Charting your key ratios over 6–12 months will reveal the true direction of your business.
  • Plain-text wins. The beauty of Beancount is transparency. If a number on a report looks off, you can drill down to the exact plain-text transaction in seconds. This puts you in complete control of your own financial narrative.

Business Line of Credit: A Practical Guide for Owners & Bookkeepers

· 8 min read
Mike Thrift
Mike Thrift
Marketing Manager

A business line of credit (LOC) is one of the most flexible financing tools available, but its mechanics can be tricky. It lets you borrow up to a set limit, repay, and borrow again, paying interest only on what you use. It's ideal for smoothing cash flow, bridging accounts receivable gaps, and handling other short-term needs.

However, navigating secured vs. unsecured lines, variable rates, hidden fees, and tax implications is crucial. This guide breaks down everything owners and bookkeepers need to know, complete with practical examples for tracking it all in Beancount.

2025-09-06-business-line-of-credit


What a Business Line of Credit Is (and Isn’t)

Think of a business line of credit as revolving working capital. It’s a preset credit limit you can draw from whenever you need funds. Once you repay the borrowed amount, your available credit is restored, ready to be used again. The simplest analogy is: “credit card mechanics, business-loan pricing.”

This makes it fundamentally different from a term loan. A term loan provides a lump sum of cash upfront, which you repay over a fixed period through regular installments. LOCs are built for flexibility and short-term cash cycle management, whereas term loans are better suited for large, long-term investments like purchasing equipment or real estate.


When an LOC Makes Sense

A line of credit shines in specific, recurring business scenarios:

  • Bridging Receivables and Inventory Cycles: This is the classic use case. You can draw from your LOC to pay suppliers for inventory and then repay the line weeks or months later when your customers pay their invoices. It’s a perfect tool for wholesalers, agencies, and seasonal businesses that face predictable cash flow gaps.
  • Emergency Buffer: Unexpected expenses are inevitable. An LOC acts as a ready-to-draw backstop for covering a payroll shortfall, funding an emergency repair, or managing a sudden operational need. It’s far more efficient than applying for a new loan every time a surprise occurs.
  • Opportunistic Buying: Did a key supplier offer a significant discount for early payment? You can use your LOC to seize the opportunity, capture the savings, and repay the draw once your own cash flow catches up.

Secured vs. Unsecured (Read the Lien Language)

Lenders need assurance they’ll be repaid, which is why most lines of credit are secured by collateral.

  • Secured Lines: Many bank LOCs are secured by specific assets, like your accounts receivable or inventory. More commonly, a lender will place a blanket UCC lien on the business. This gives the lender a claim on most of your business assets in the event of a default. It is critical to read the security agreement and confirm if any key assets (like intellectual property) are excluded assets.
  • Unsecured Lines: These are harder to qualify for, typically come with lower limits and higher interest rates, and are reserved for businesses with stellar credit. They don't require you to pledge specific collateral, but many lenders will still require a personal guarantee from the owner.
  • SBA Options: For U.S. borrowers, the Small Business Administration (SBA) offers programs like the 7(a) Working Capital Pilot (WCP) for monitored lines of credit and CAPLines, which are asset-based revolvers tied directly to short-term working capital needs.

Practical Tip: Always ask the lender to spell out any carve-outs in the lien agreement. "Excluded assets" clauses are negotiable and can prevent a blanket lien from interfering with other financing, like an equipment loan.


How Costs Work (Rates + Fees)

The cost of an LOC isn't just the interest rate. You must account for a variety of potential fees.

  • Interest: You are only charged interest on the drawn amount. Rates are typically variable, calculated as a benchmark rate (like the Prime Rate) plus a margin (e.g., Prime + 1.5%). As you repay the principal, your interest cost decreases and your credit availability is restored.
  • Fees to Watch For:
    • Origination Fee: A one-time fee charged when you open the line.
    • Annual or Monthly Maintenance Fee: A recurring charge to keep the line open, sometimes called a non-usage fee if you don't draw from it.
    • Draw Fee: A fee charged each time you take funds from the line.

These costs add up. Before committing, model your expected usage to find the true cost.

Back-of-the-Envelope Example

Let's say you have a 100,000limitanddraw100,000** limit and draw **40,000 for two months at 12% APR. The line has a 2% draw fee and a $150 annual fee.

  • Interest40,000×1240,000 × 12% × (2/12) = **800**
  • Draw Fee = 2% × 40,000=40,000 = **800**
  • Annual Fee = $150
  • Total Cost$1,750

In this scenario, the fees make the effective cost significantly higher than the headline 12% APR.


Qualifying and Staying in Good Standing

Lenders evaluate your business's health based on revenue consistency, time in business, and both business and personal credit scores. Building a strong history of on-time payments is the best way to gain access to better terms and lower rates.

Most LOCs aren't "set it and forget it." They often require annual renewal, where the lender reviews updated financial statements. Your agreement may also include financial covenants, such as maintaining a minimum Debt Service Coverage Ratio (DSCR) or interest coverage ratio. If your financial metrics slip, the lender has the right to reduce your limit or freeze the line entirely.


LOC vs. Term Loan vs. Credit Card

Choose the right tool for the job:

ToolBest Use Case
Business Line of CreditRepeatable, short-term working capital swings and opportunistic buys you can repay quickly.
Term LoanOne-time purchases of long-life assets like machinery, vehicles, or real estate.
Business Credit CardSmall, frequent purchases where you can earn rewards. Watch the high interest rates.

A Note on U.S. Taxes

Interest paid on a business line of credit is generally a deductible business expense. However, under Section 163(j) of the tax code, this deduction may be capped.

A small-business exception exists for companies whose average annual gross receipts for the prior three years fall below an inflation-adjusted threshold (around 30millionfor2024and30 million for 2024** and **31 million for 2025). Always confirm the specifics with your tax advisor, as these rules are complex.


Beancount: How to Record a Line of Credit

Tracking an LOC in a plain-text ledger like Beancount ensures clarity and accuracy. Below are illustrative examples of the key transactions. (Note: In Beancount, increasing a liability uses a negative amount, while repaying it uses a positive amount).

1. Open Accounts & Document the Facility

First, set up the necessary accounts in your ledger. It's a best practice to add a note with the LOC's key terms.

2025-01-01 open Assets:Bank:Operating         USD
2025-01-01 open Liabilities:LOC:BigBank USD
2025-01-01 open Expenses:Interest:LOC USD
2025-01-01 open Expenses:BankFees USD

; Optional: Document the facility's terms with a note
2025-01-01 note Liabilities:LOC:BigBank "Limit=100000, Rate=Prime+1.50%, Secured by A/R & Inventory (UCC-1)"

2. Draw Funds

When you transfer funds from the LOC to your operating account, you increase cash and increase the liability.

2025-03-03 * "Draw from LOC to cover receivables timing"
Assets:Bank:Operating 40000.00 USD
Liabilities:LOC:BigBank -40000.00 USD

3. Accrue Monthly Interest

At the end of the month, record the interest incurred as an expense, which adds to the total amount you owe.

2025-03-31 * "Accrue LOC interest for March"
Expenses:Interest:LOC 800.00 USD
Liabilities:LOC:BigBank -800.00 USD

4. Record a Draw Fee or Maintenance Fee

Book any fees as an expense, paid from your operating account.

2025-03-31 * "LOC draw fee (2%)"
Expenses:BankFees 800.00 USD
Assets:Bank:Operating -800.00 USD

5. Make a Payment (Interest + Principal)

A payment reduces your operating cash and reduces the liability balance.

2025-04-10 * "LOC payment (principal + interest)"
Liabilities:LOC:BigBank 10800.00 USD
Assets:Bank:Operating -10800.00 USD

Due Diligence & Negotiation Checklist

Before you sign, get clear answers to these questions:

  • Fees: Request a full fee table: origination, annual/maintenance, inactivity, draw, and wire/ACH fees.
  • Renewal: What is the renewal process? What could trigger a limit reduction or a freeze?
  • Lien Scope: What specific assets are covered by the lien? Are there any exclusions?
  • Covenants: Are there financial covenants like DSCR? How often are they tested, and what happens if you temporarily fall short?
  • SBA Terms: If it's an SBA-backed line, is it a WCP or CAPLines facility? How is your borrowing base calculated and reported?

Final Word

A well-structured line of credit is an invaluable tool for managing a growing business. The key is to fully understand the collateral you're pledging, the total cost including all fees, and the obligations required to keep the line in good standing.

By keeping a clean ledger in Beancount with clear metadata, you can track your usage, understand its true cost, and ensure this flexible tool remains a powerful asset for your business.

This article is for educational purposes and does not constitute financial, legal, or tax advice. Consult with a qualified professional for guidance specific to your situation.

CD vs. Savings Account for Small-Business Cash (with Beancount examples)

· 9 min read
Mike Thrift
Mike Thrift
Marketing Manager

Deciding where to park your small business's cash reserves can feel like a balancing act between earning a decent return and keeping funds accessible. The two most common, safest options are high-yield savings accounts and certificates of deposit (CDs). Each serves a distinct purpose, and choosing the right one depends on your timeline and liquidity needs.

Let's break down the differences, explore the nuances of FDIC insurance for businesses, and then dive into practical Beancount patterns to track it all cleanly.

2025-09-05-cd-vs-savings-account-for-small-business-cash

TL;DR: The Quick Summary

  • Savings / Money Market Deposit Accounts (MMDAs): Best for liquid, everyday operating cash and near-term tax payments. Their interest rates are variable. While the Fed removed old withdrawal limits, banks can still set their own rules.
  • Certificates of Deposit (CDs): Offer a higher, fixed yield if you can lock up cash for a specific term. Pulling money out early triggers a penalty.
  • Safety First: Both are FDIC-insured up to $250,000 per depositor, per bank, per ownership category. The rules differ slightly for sole proprietorships versus corporations.
  • Over the Limit?: For balances above $250,000, services like an Insured Cash Sweep (ICS) can spread your funds across multiple banks to maximize insurance coverage while you maintain a single banking relationship.
  • Beancount Users: Skip to the end for journal patterns to model CDs, accrue interest, and handle early withdrawal penalties correctly.

What Each Account Does Well 🏦

High-Yield Savings / Money Market Deposit Accounts (MMDAs)

Think of these as your business's primary cash hub. They are designed for safety and accessibility.

  • Liquidity: This is their main advantage. You can withdraw funds anytime without penalty. It's important to note that even though the Federal Reserve removed the old "six convenient withdrawals per month" rule (Regulation D) in 2020, individual banks are still free to impose their own transaction limits or fees. Always read your account's terms.
  • Insurance & Safety: Savings and MMDAs at an FDIC-insured bank are covered. Don't confuse these with money market mutual funds offered by brokerages, which are investments and are not FDIC-insured.
  • Best Use Case: Perfect for your operating cash buffer (3-6 months of expenses), funds set aside for near-term payroll or taxes, and your general emergency reserve.

Certificates of Deposit (CDs)

CDs are a deal you strike with the bank: you agree not to touch your money for a set term (e.g., 3, 6, 12 months), and in return, the bank gives you a higher, fixed interest rate.

  • Yield Certainty: The fixed rate is a key benefit, protecting you if market rates fall. The flip side is the penalty for early withdrawal. If you break a CD within the first six days, federal rules mandate a minimum penalty of seven days' simple interest. After that, the penalty is determined by the bank's own policy (e.g., three months of interest).
  • Insurance & Safety: CDs carry the same FDIC insurance as savings accounts, up to the same $250,000 limit.
  • Best Use Case: Ideal for cash you are certain you won't need for the duration of the term. This could be money earmarked for a tax payment nine months away or a reserve for a capital expenditure you plan to make next year. CD laddering—opening multiple CDs with staggered maturity dates (e.g., 3, 6, 9, and 12 months)—is a popular strategy to balance higher yields with regular access to cash.

FDIC Coverage: The Practical Bits for Businesses 🛡️

The FDIC insurance rules are straightforward but have important distinctions for different business structures.

  • The Headline Rule: You get $250,000 of coverage per depositor, per insured bank, per ownership category. All your deposits (checking, savings, MMDAs, CDs) within the same ownership category at a single bank are added together to determine your coverage.
  • Sole Proprietorships: Business accounts for a sole prop are treated as the owner's individual accounts. They are combined with the owner's other personal single accounts at that same bank for one $250,000 insurance limit.
  • Corporations, LLCs & Partnerships: These legal entities are insured separately from their owners' personal accounts. The business itself gets its own $250,000 of coverage per bank.
  • Need More Coverage?: If your business holds more than $250,000, you don't have to juggle multiple banking relationships. Ask your bank about an Insured Cash Sweep (ICS). This service automatically distributes your deposits across a network of other FDIC-insured institutions, keeping all your funds insured while you manage them through your primary bank.

When a Small Business Should Favor Each Option 🤔

  • Choose a Savings/MMDA when…

    • Your cash flow is unpredictable or you have frequent, variable expenses.
    • You're building your 3–6 month operating expense buffer.
    • You need immediate access to funds and are willing to accept a variable interest rate.
  • Choose a CD when…

    • You have a surplus of cash that you can confidently lock away for a fixed term.
    • You want to lock in a specific interest rate and protect your return from market fluctuations.
    • You are building a CD ladder to create a predictable schedule of maturing cash.

A blended approach is often best: keep your immediate operating cash in a high-yield savings account and place longer-term reserves into a CD ladder or short-term Treasuries.


Important Fine Print to Read 📝

  • Early Withdrawal Penalties: These are specific to each bank and will be disclosed in your CD agreement. The best way to avoid them is to plan your ladder carefully so you don't have to break a CD.
  • Transaction Limits on Savings: Just because the federal rule is gone doesn't mean your bank won't charge you a fee after a certain number of monthly withdrawals. Check your account agreement.
  • Taxes on Interest: Interest earned from both savings and CDs is generally taxable income in the year it's credited to your account. You'll receive a Form 1099-INT. If you pay an early withdrawal penalty, it is deductible. The penalty amount appears in Box 2 of your 1099-INT and is typically treated as a business expense.

Alternatives Worth Knowing

  • Treasury Bills (T-Bills): These are short-term loans to the U.S. government that mature in 4 to 52 weeks. They are considered one of the safest investments in the world, backed by the full faith and credit of the U.S. government (not FDIC insurance). They are highly liquid and can be a great option for cash reserves exceeding FDIC limits.
  • Money Market Mutual Funds (MMFs): Offered by brokerage firms, these are investment products, not bank deposits, and are not FDIC-insured. They invest in high-quality, short-term debt and aim to keep a stable value of $1 per share, but this is not guaranteed.

A Decision Cheat-Sheet ✅

If you...Then choose a...
Need funds at any time and want no term risk?Savings/MMDA
Have a known future date for a cash need and want a better fixed rate?CD (or a CD ladder)
Are holding over $250k at one bank?Multiple banks or an Insured Cash Sweep (ICS) service
Want a government-backed, liquid, short-term yield?T-Bills in a brokerage account

Beancount: How to Model Savings and CDs 💻

For those of us managing our business finances with plain-text accounting, here are some simple, effective patterns for tracking these accounts in Beancount.

1) Chart of Accounts

First, ensure you have the necessary accounts. Adjust the names to fit your own chart.

Assets:Bank:Checking
Assets:Bank:Savings
Assets:Bank:CD:12M ; Create a unique account for each CD
Assets:InterestReceivable ; Optional, for monthly accruals
Income:Interest:Bank
Expenses:Bank:EarlyWithdrawalPenalty
Documents:Bank ; To link statements and agreements

2) Open and Fund a CD

When you open a CD, it's a simple transfer from one asset account to another.

; Open a 12-month CD for $50,000
2025-01-15 * "Open 12M CD @ fixed rate"
Assets:Bank:CD:12M 50,000.00 USD
Assets:Bank:Checking -50,000.00 USD
document: "Documents:Bank/CD-Agreement-2025-01-15.pdf"

3) Recognize Interest: Two Methods

Option A: Recognize Interest Only When Paid (Simple)

If your bank credits all interest at maturity, this is the easiest method.

; CD matures; principal + interest paid to checking
2026-01-15 * "CD matured; interest credited"
Assets:Bank:Checking 52,375.00 USD
Assets:Bank:CD:12M -50,000.00 USD
Income:Interest:Bank -2,375.00 USD

Option B: Accrue Interest Monthly (Better for Reporting)

For more accurate monthly financial statements, you can accrue the interest earned each month.

; Monthly accrual (illustrative amount)
2025-02-15 * "Accrue CD interest"
Assets:InterestReceivable 197.40 USD
Income:Interest:Bank -197.40 USD

; At maturity, reverse the receivable when the cash arrives
2026-01-15 * "CD matured; settle accrued interest"
Assets:Bank:Checking 52,375.00 USD
Assets:Bank:CD:12M -50,000.00 USD
Assets:InterestReceivable -2,372.80 USD
Income:Interest:Bank -2.20 USD ; true-up for rounding

4) Early Withdrawal and Penalty

Recording a penalty requires an extra posting to an expense account. This keeps your reporting clean and makes tax time easier.

; Break CD early; bank pays back principal plus net interest after penalty
2025-06-10 * "Early CD redemption; penalty applied"
Assets:Bank:Checking 50,900.00 USD
Assets:Bank:CD:12M -50,000.00 USD
Income:Interest:Bank -1,200.00 USD
Expenses:Bank:EarlyWithdrawalPenalty 300.00 USD
document: "Documents:Bank/1099-INT-2025.pdf" ; Box 2 shows the penalty

5) High-Yield Savings Interest and Reconciliation

Recording interest from a savings account is straightforward. Use a balance assertion to confirm your books match the bank statement.

; Monthly interest posted to savings
2025-03-31 * "Monthly interest - Savings"
Assets:Bank:Savings 185.23 USD
Income:Interest:Bank -185.23 USD

; Reconcile with the month-end statement
2025-03-31 balance Assets:Bank:Savings 150,185.23 USD

Tip: Always attach digital copies of your statements and CD agreements using the document: metadata tag. At tax time, you can easily search for Expenses:Bank:EarlyWithdrawalPenalty and verify the amount against Box 2 of your 1099-INT.


Final Thoughts: A Simple Cash Policy

  • Segment Your Cash: Keep your runway plus 1–2 months of operating expenses in a liquid Savings/MMDA. Place reserves for the next 3–12 months in a CD ladder or T-Bills.
  • Mind Your Insurance: Keep balances for each legal entity under the $250k limit per bank, or use an ICS service.
  • Avoid Surprises: Read the fine print on withdrawal rules and CD penalties before you commit your cash.
  • Stay Tax-Aware: Remember that interest is taxable and early-withdrawal penalties are deductible. Consult with your CPA to ensure you're handling them correctly.

This article is for educational purposes and does not constitute financial or tax advice. Please consult with a qualified professional for guidance specific to your business.

Detox Your Small‑Business Finances — the Beancount Way

· 10 min read
Mike Thrift
Mike Thrift
Marketing Manager

Turn one messy ledger into a calm, cash‑confident business in 30 days—using plain‑text accounting.


2025-09-04-detox-your-small-business-finances

TL;DR

  • Separate, simplify, and lock your books with a lean chart of accounts, consistent imports, and automated balance checks.
  • Surface what matters—COGS, overhead, cash runway—via quick bean-query reports.
  • Cut the noise (unused subscriptions, duplicate tools) and codify good habits (weekly reconcile, monthly close, receipts attached).
  • Make tax season boring by keeping statements, receipts, and balances verifiable in one place.

Why a “Detox”?

Financial clutter in a small business isn't just messy—it's expensive. It hides wasteful spending, obscures your true profitability, and turns tax season into a frantic scavenger hunt. A financial detox is a focused, 30-day reset: you identify what moves (and leaks) money, remove the complexity, and then institutionalize simple, repeatable routines to keep it clean.

Beancount is the perfect tool for this because it’s transparent, scriptable, and verifiable. Unlike black-box software, a plain-text ledger means every number is explainable. Every check and balance can be automated with directives and queries, creating a self-auditing system that forces clarity. This guide will walk you through a four-week plan to achieve just that.


Week 0 — Set Your Baseline

Before you can clean up, you need a solid foundation. This week is about defining the structure of your financial world.

Create a Lean Chart of Accounts

Your chart of accounts is the skeleton of your financial system. The goal here is minimalism. Don't create an account for every possible expense you might have. Start with the essentials you use today; you can always add more later. A cluttered chart of accounts encourages miscategorization and makes high-level analysis difficult.

Here’s a simple, effective starting point:

; Core entities
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Assets:Bank:Savings USD
2025-01-01 open Liabilities:CreditCard:Business USD
2025-01-01 open Income:Sales
2025-01-01 open Expenses:COGS
2025-01-01 open Expenses:Overhead:Rent
2025-01-01 open Expenses:Overhead:Utilities
2025-01-01 open Expenses:SaaS
2025-01-01 open Equity:Opening-Balances

Lock Balances You Can Verify

The most powerful feature in plain-text accounting is the ability to assert reality. A balance directive tells Beancount: "On this date, this account had exactly this much money." If it doesn't, Beancount will raise an error. This is your primary safety net.

When starting out, use pad in combination with balance to initialize your accounts from a bank statement. The pad directive creates a transaction that forces the account to the correct starting balance, booking the difference to an equity account.

; Initialize from statements
2025-01-01 pad Assets:Bank:Checking Equity:Opening-Balances
2025-01-01 balance Assets:Bank:Checking 12345.67 USD

A word of caution: Use pad sparingly. It's for getting started cleanly, not for papering over recurring reconciliation mistakes.


Week 1 — Separate and Simplify Flows

With a structure in place, it's time to clarify how money moves through your business.

Keep Business ≠ Personal

This is the golden rule of small-business finance. Co-mingling funds is a recipe for confusion and tax-time headaches.

  • Maintain one dedicated business bank account and one business credit card.
  • Mirror this separation in your ledger: Assets:Bank:Business:Checking, Liabilities:CreditCard:Business.
  • If you pay yourself, book it as a distribution to Equity:Owner-Draws. Never categorize personal expenses directly from business accounts.

Standardize Vendor Categories

Do you pay for AWS, Google Cloud, and Vercel? Don't create three separate accounts. Map them all to a single, logical category like Expenses:Cloud. Avoid creating micro-accounts you won't actually analyze. The goal is to see patterns, not to track every single vendor with its own account.


Week 2 — Automate Inputs and Receipts

Manual data entry is slow, error-prone, and unsustainable. This week is about building a machine to feed your ledger reliably.

Build a No-Drama Import Path

Beancount's import framework lets you teach it how to read CSV or OFX files from your bank and automatically generate transactions. Invest the time to set this up once, and you'll save hundreds of hours down the line. Keep your importer rules in version control (like Git) so your system is repeatable and backed up.

  • Start with Beancount’s official Importing External Data guide.
  • For a more interactive workflow, consider a tool like beancount-import, which provides a web UI for semi-automatic matching.
  • Many users rely on the built-in ingest or newer beangulp frameworks to build their custom importers. Pick one and stick with it for consistency.

Attach Documents Where They Belong

A transaction without a receipt is an unsubstantiated claim. Beancount and its web interface, Fava, make it trivial to link source documents to entries, creating an unshakeable audit trail.

You have two great options:

  1. Documents Folder + Directive: Store all your receipts and statements in a dedicated folder. Then, link a file to a transaction using the document directive.
  2. Drag-and-Drop in Fava: Simply drag a PDF or image file onto a transaction in the Fava UI. Fava automatically stores the file and inserts the correct document directive into your ledger file for you.
; In your main ledger file, tell Fava where your documents live
option "documents" "/home/acme/docs"

; Link a receipt to a specific transaction posting
2025-08-07 * "Figma" "Monthly Subscription"
Assets:CreditCard:Business -12.00 USD
Expenses:SaaS 12.00 USD
document: "receipts/figma-2025-08-07.pdf"

Week 3 — See the Truth (Fast Queries You’ll Reuse)

Your ledger is now clean and fed with data. It's time to ask it important questions. Fire up the bean-query command-line tool to get instant answers.

1) Where’s My Cash?

Get a quick snapshot of your liquid assets.

bean-query business.beancount 'BALANCES FROM year = 2025 AND (account ~ "Assets:Bank" OR account ~ "Liabilities:CreditCard")'

This gives you an immediate, real-time view of your cash position without logging into multiple bank portals.

2) What Am I Spending On Overhead vs. COGS?

Understand where your money is really going. Are you spending more on non-essential overhead or on the costs directly tied to delivering your product (Cost of Goods Sold)?

SELECT
account,
units(sum(position))
WHERE
account ~ "^Expenses:(Overhead|COGS)" AND year = 2025
GROUP BY
account
ORDER BY
account

This query separates your core operational costs from your administrative burden, a critical insight for profitability.

3) Which Subscriptions Look “Zombie”?

Find recurring, small-dollar expenses that often fly under the radar. These "zombie" subscriptions can bleed your cash flow dry.

SELECT
payee,
COUNT(*) AS num_transactions,
SUM(number) AS total_spent
WHERE
account ~ "^Expenses:SaaS" AND date >= '2025-01-01'
GROUP BY
payee
ORDER BY
num_transactions DESC,
total_spent DESC

This query instantly reveals vendors you pay frequently. If you see one you don't recognize or no longer need, it's time to cancel.


Week 4 — Tidy and Lock the System

The final week is about building the habits and guardrails that keep your finances clean for good.

Put Simple Budgets in Place

Fava can read budget directives from your ledger and display helpful progress bars in its reports, showing you if you're on track. This provides a gentle, constant reminder of your spending goals.

; Cap SaaS spending at $100 per month
2025-01-01 custom "budget" Expenses:SaaS "monthly" 100.00 USD

Set these for key variable expense categories like software, advertising, or contractors to notice drift before it becomes a problem.

Close the Month, Every Time

Establish a simple, non-negotiable monthly closing process:

  1. Reconcile: For every bank and credit card account, add a balance assertion matching the final number on your monthly statement.
  2. Attach: Attach the PDF statement itself to the balance entry using the document directive.
  3. Report: Run your three saved queries (cash, overhead/COGS, subscriptions) and paste the outputs into a short monthly review note.

The balance assertion is an automatic tripwire. If your ledger doesn't match the bank statement, Beancount will throw an error, telling you exactly where to look for the discrepancy.


Make Tax Season Boring (In a Good Way)

By following this system, you transform tax preparation from a crisis into a simple reporting exercise.

  • Receipts are attached to transactions, so there’s no frantic search. In Fava, you’re one click away from the source document for any expense.
  • Tax-relevant items can be tagged (e.g., #tax-deductible), allowing you to pull a clean report with bean-query for your accountant.
  • Year-end balances are locked and verified with balance assertions, giving you and your preparer confidence in the numbers.

A 30-Day Checklist (Print This)

  • Day 1–3
    • Create a minimal chart of accounts.
    • Add pad + balance for each bank/card using the latest statements.
  • Day 4–10
    • Set up one importer pipeline and commit your rules to version control.
    • Backfill 90 days of transactions; run a first BALANCES snapshot.
  • Day 11–15
    • Standardize vendors to their respective accounts (SaaS, Cloud, Shipping, etc.).
    • Attach statement PDFs for the reconciled periods; confirm they appear in Fava.
  • Day 16–20
    • Run the overhead vs. COGS query; fix any miscategorized items.
    • Run the subscription frequency query; cancel or consolidate unused services.
  • Day 21–25
    • Add one or two budget caps for key variable expenses via custom "budget".
    • Save your three most important bean-query commands to a script for easy reuse.
  • Day 26–30
    • Reconcile all accounts with month-end balance assertions.
    • Write a short "monthly close" note summarizing key numbers and linking to documents.

Common Snippets You’ll Reuse

A Clean Expense Posting

2025-08-05 * "Figma" "Pro plan"
Expenses:SaaS 12.00 USD
Assets:Bank:Checking -12.00 USD

Balance Assertion from a Statement

2025-09-01 balance Assets:Bank:Checking  8423.17 USD

Budget Guardrail for Rent

2025-01-01 custom "budget" Expenses:Overhead:Rent "monthly" 2500.00 USD

Keep It Simple, Keep It Scripted

The philosophy of a Beancount-powered financial detox is simple:

  • Script what you repeat: Automate imports and reporting.
  • Let assertions fail loudly: They are your safety rails, not an inconvenience.
  • Prefer fewer, clearer accounts over perfect, granular categorization.

Adopt these habits, and your business will run on tight feedback loops: cash visibility daily, spending drift visible weekly, and a truly boring year-end. That's the clarity and control this detox is designed to deliver.


References & Further Reading

This post is for educational purposes only and is not tax or legal advice.

Understanding Journal Entries in Beancount

· 8 min read
Mike Thrift
Mike Thrift
Marketing Manager

Journal entries are the backbone of double-entry accounting, and in Beancount, every * transaction you write is a journal entry. This guide explains the essentials—debits and credits, adjusting entries, and reversing entries—and shows how they map cleanly to Beancount's plain-text syntax. You'll learn how to keep precise books with minimal ceremony.


2025-09-02-journal-entries-in-beancount

A Quick Refresher: What Is a Journal Entry?

A journal entry is the formal, dated record of a financial transaction. It's expressed in terms of debits and credits that keep the fundamental accounting equation in balance:

Assets=Liabilities+EquityAssets = Liabilities + Equity

In a double-entry system, every transaction affects at least two accounts, and the total debits must equal the total credits. This simple rule is what makes downstream financial reports like the Profit & Loss statement and Balance Sheet trustworthy and accurate.


Debits and Credits in One Minute

The concepts of debits and credits can be confusing at first, but they boil down to a few simple rules. Think of it this way: "where did the value come from?" (credit) and "where did the value go?" (debit).

Here's a cheat sheet for how they increase the five core account types:

Account TypeIncreases With
AssetsDebit
ExpensesDebit
LiabilitiesCredit
EquityCredit
IncomeCredit

How a Journal Entry Looks in Beancount

Beancount uses simple, human-readable text directives to record transactions. Each transaction must balance to zero for every commodity (e.g., USD, EUR, AAPL stock). Beancount will throw an error if it doesn't.

Here is a basic transaction for buying coffee:

2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

Notice how the two postings (lines with accounts) sum to zero: $18.00 + (-$18.00) = 0.

You can add powerful context directly in the narration using tags (like #clientX) for filtering and links (like ^INV-2025-001) to connect related entries.

For example, here's how you can link an invoice to its payment:

; First, record the invoice you sent to the client
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; Later, record the payment and link it back to the original invoice
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

The #clientX tag lets you easily filter all transactions for this client, and the ^INV-2025-001 link creates a connection between the two entries that you can follow in reports.


Common Journal Entries (Ready to Paste)

Here are several common business transactions formatted for Beancount.

Owner Invests Cash

An owner contributes personal funds to start the business.

2025-01-01 * "Owner" "Initial capital contribution"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

Cash Sale with Sales Tax

A customer pays in cash for a product, including an 8% sales tax you must later remit to the government.

2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

Sale on Credit (Invoice) and Collection

You provide a service and invoice the client, then receive payment later.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD

2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD

Expense on Credit Card

You purchase office supplies using a company credit card.

2025-01-12 * "OfficeMax" "Supplies on credit card"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

Payroll (Simple Model)

You run payroll, recording the gross wage expense, employee tax withholdings, and the net payment from your bank.

2025-01-31 * "Payroll" "January wages and withholdings"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

Monthly Depreciation

You record the monthly depreciation expense for an asset, like a laptop.

2025-01-31 * "Depreciation" "Laptop, straight-line"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

Prepaid Expense & Monthly Amortization

You pay for a full year of insurance upfront, then recognize one month's worth of the expense.

; 1. Pay for the annual policy
2025-01-01 * "InsureCo" "Annual insurance premium"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. Recognize one month of expense at the end of January
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

Unearned Revenue & Monthly Recognition

A customer prepays for a 3-month subscription. You record the cash and then recognize one month of income.

; 1. Customer prepays for service
2025-02-01 * "Subscriber" "3-month plan prepaid"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. Recognize one month of income after delivering the service
2025-02-28 * "Recognition" "Recognize month 1 of 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

Bad-Debt Allowance and Write-Off

You set aside an allowance for potentially uncollectible invoices and later write off a specific bad invoice.

; 1. Create a provision based on 2% of Accounts Receivable
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. Write off a specific invoice that you know will not be paid
2025-04-15 * "Write-off" "Customer XYZ invoice"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

Periodic Inventory & COGS Adjustment

At the end of a period, you calculate the Cost of Goods Sold (COGS) by adjusting your inventory account.

2025-03-31 * "COGS adjustment" "Periodic inventory method"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

Adjusting Entries vs. Reversing Entries

Adjusting entries are recorded at the end of an accounting period (like a month or quarter) to properly align revenues and expenses to the period in which they were actually earned or incurred. This includes accruals, deferrals, and estimates like depreciation.

Reversing entries are optional entries made on the first day of a new period that exactly reverse a specific adjusting entry from the prior period. Their purpose is to simplify bookkeeping. By reversing an accrual, you can book the subsequent cash transaction in a standard way without having to remember to split it against the liability account.

Example: Accruing and Reversing Utilities

Let's say you need to record your January utility expense, but the bill won't arrive until February.

; 1. Accrue the estimated expense at the end of January
2025-01-31 * "Accrual" "Estimate January utilities expense"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (Optional) Reverse the accrual on the first day of the next period
2025-02-01 * "Reversal" "Undo January utilities accrual"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. Record the actual bill payment when it arrives in February
; The actual bill is for $520. Because of the reversal, you can
; book the full amount to the expense account without issue.
; The net expense for Feb will be $520 - $500 = $20.
2025-02-10 * "City Utilities" "Payment for January bill"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD

Note: The example in the outline shows splitting the final payment. The reversing entry method is an alternative that simplifies the final payment entry.


A Checklist for Every Beancount Journal Entry

Follow these steps to ensure your entries are clean and correct:

  1. Start with the date (YYYY-MM-DD) and a transaction flag (*).
  2. Add a payee and a descriptive narration. Use #tags and ^links for searchability.
  3. Include at least two posting lines that balance to zero for each commodity.
  4. Use proper account names under the five types: Assets, Liabilities, Equity, Income, Expenses.
  5. Optionally, add metadata like document: "invoices/INV-2025-001.pdf" for traceability.

Common Pitfalls (and How Beancount Helps)

  • Imbalanced Postings: If your debits and credits don't sum to zero, Beancount will refuse the entry. This is a core feature that prevents errors. You can even leave one posting amount blank, and Beancount will automatically calculate it for you.
  • Wrong Sign on an Account: It's easy to forget that Income, Equity, and Liabilities are increased with credits (which are typically negative numbers in Beancount). If you get it wrong, your reports will look strange, but the balancing rule still provides a safety net.
  • Missing Links Between Entries: Forgetting to link an invoice to its payment makes it harder to track what's outstanding. Using ^links consistently solves this by creating an auditable trail.

Where to Go Next

  • Beancount Language & Balancing Rules: Dive deeper into the official documentation.
  • Syntax Cheat Sheet: A handy reference for all Beancount directives.
  • Debits/Credits Primer: A great starting point if you're new to accounting rules.
  • Adjusting/Reversing Entries: More detailed articles on the accounting theory.

Appendix: Accounting Talk → Beancount Map

This quick translation guide can help you map accounting instructions to Beancount syntax.

Accounting InstructionBeancount Action
Debit an expensePositive amount to an Expenses: account
Credit a liabilityNegative amount to a Liabilities: account
Accrue revenueAssets:AccountsReceivable + <br> Income:* -
Defer revenueAssets:Bank:* + <br> Liabilities:Unearned:* -
Recognize deferred revenueLiabilities:Unearned:* + <br> Income:* -

With these patterns and examples, you can cleanly model nearly any business event in Beancount, ensuring your financial reports line up without any surprises.

10 Practical Steps to a Fast, Reliable Month-End Close in Beancount

· 7 min read
Mike Thrift
Mike Thrift
Marketing Manager

If your ledger lives in plain text, your month-end close can be both fast and auditable. The process doesn't need to be a frantic scramble of spreadsheets and calculators. This guide distills a clean, repeatable process tailored for Beancount and its web interface, Fava, built around balance assertions, smart imports, and lightweight checks.

Here's the checklist for a painless close:

2025-09-02-month-end-close

  1. Gather statements and import all raw transactions.
  2. Normalize payees, descriptions, and metadata.
  3. Reconcile every cash, bank, and credit account with balance assertions.
  4. Tie out transfers and inter-account moves.
  5. Update prices for investments and verify valuations.
  6. Attach or source documents (receipts, invoices) in your ledger.
  7. Run queries and dashboards for P&L and variance checks.
  8. Post accruals and adjustments as needed.
  9. Validate the ledger with automated checks.
  10. Commit, tag, and archive the month.

1. Set the Ground Rules (and Reuse Them)

A consistent close starts with a stable foundation. Your Chart of Accounts and key Beancount options should be declared centrally and rarely changed. Options like operating_currency and documents handling ensure your reports and imports behave predictably every single time.

Tip: Treat your options file as "infrastructure." Changing it can alter how your numbers are computed. Version it carefully in Git.


2. Import Everything—Then Never Hand-Type It Again

Automating your data import is the single biggest speed-up for closing your books. Use Beancount’s powerful importing tools and community-built importers to pull in bank feeds, credit card CSV/OFX files, brokerage data, and payroll reports.

The goal is a one-command import that generates balanced postings that you only need to review and commit. This eliminates manual data entry, the primary source of errors and delays.


3. Normalize Payees and Metadata Up Front

Clean data is reliable data. Standardize your payees, narration, and tags during the import process so that your searches, rules, and reports remain accurate month after month.

Beancount’s plugin system lets you add lightweight transformations and validations as your files are loaded. This is perfect for enforcing custom consistency checks or using the built-in noduplicates plugin to flag repeat transactions before they become a problem.


4. Reconcile with balance Assertions

For every account that has a statement (checking, savings, credit cards), use Beancount’s balance directive to assert the closing balance. This simple line turns reconciliation from a manual eyeball-check into a precise, automated test.

; Asserts the balance is exactly 1234.56 at the start of the day
2025-09-01 balance Assets:Bank:Checking 1234.56 USD

Because balances are checked at the beginning of the day, it's easiest to use the first day of the next month for a month-end statement. If Beancount’s calculated balance disagrees with your assertion, you’ll get a precise error and a date to begin your investigation. Always fix the source of truth (your transactions) first; don't "force" a reconcile.


5. Tie Out Inter-Account Transfers

Ensure every transfer appears on both sides of the transaction. A payment from your checking account to your credit card, for instance, should be reflected in both accounts. Mismatched transfers are a common source of reconciliation headaches.

Use the pad directive only for setting historical opening balances when you first set up an account. It’s a setup tool, not a reconciliation crutch to fix month-end differences.


6. Verify Positions and Prices for Investments

To get an accurate view of your net worth, you need up-to-date market values for your investments and foreign currencies. Use Beancount’s price directive to record these values as of your closing date.

2025-08-31 price VTI  290.14 USD
2025-08-31 price EUR 1.11 USD

Many tools can fetch these prices for you automatically. After updating them, re-run your balance sheet or net worth reports to see the valuation changes.


7. Attach Receipts and Source Documents

Maintain a clean audit trail by linking transactions to their source documents. Use the documents option in your main Beancount file to point to your archive of receipts and invoices.

option "documents" "/path/to/Finance/Documents"

If you name your files by date (e.g., 2025-08-13.vendor.receipt.pdf), Beancount and Fava can automatically discover and link them, making it easy to pull up a receipt for any transaction with a single click.


8. Review the Month with Fava and BQL

A fast feedback loop is critical. Use Fava to visually inspect your finances. Its charts and reports are perfect for slicing expenses by category, checking income trends, and spotting anomalies at a glance.

For more precise checks, use the Beancount Query Language (BQL). This query, for example, gives you a ranked breakdown of all expenses for August 2025:

SELECT
account,
ROUND(SUM(position), 2) AS total
WHERE
date >= 2025-08-01 AND date < 2025-09-01
AND account ~ 'Expenses'
GROUP BY
account
ORDER BY
total DESC;

9. Post Accruals and Adjustments

If you use accrual accounting, record your month-end adjustments as explicit, dated transactions. This can include accrued expenses (like a utility bill you haven't received yet), prepaid expense amortization, or revenue recognition. Keep them simple and well-documented in the narration so they are easy to understand during future reviews.


10. Validate, Tag, and Archive

Before you finalize the month, run a final check for structural integrity:

bean-check your-ledger.beancount

This command will catch imbalances, references to accounts you haven't opened, and other common errors. Fix anything it flags.

Once everything is correct, commit your changes to version control (like Git) with a clear message and tag, such as close-2025-08. Finally, archive your bank statements and consider the month locked.


A Simple Close Script You Can Adapt

You can automate most of these steps with a simple shell script. This turns your close into a single, repeatable command.

#!/usr/bin/env bash
set -euo pipefail

# Example: ./close.sh 2025-08
MONTH=${1:?Please provide a month in YYYY-MM format}
LEDGER=~/finance/ledger.beancount

# 1. Import new transactions
echo "Importing transactions for $MONTH..."
make import MONTH="$MONTH"

# 2. Update market prices for the last day of the month
PRICE_DATE=$(date -d "$MONTH-01 +1 month -1 day" +%F)
echo "Fetching prices for $PRICE_DATE..."
make prices DATE="$PRICE_DATE"

# 3. Validate the entire ledger
echo "Running bean-check..."
bean-check "$LEDGER"

# 4. Generate a key report (e.g., expense breakdown)
echo "Generating expense report for $MONTH..."
bean-query "$LEDGER" -f txt "
SELECT account, SUM(position)
WHERE date >= '${MONTH}-01' AND date < '${MONTH}-01' + 1 month
AND account ~ 'Expenses'
GROUP BY account ORDER BY SUM(position) DESC;
" > "reports/${MONTH}-expenses.txt"

# 5. Commit and tag the close in Git
echo "Committing and tagging the close..."
git -C ~/finance add .
git -C ~/finance commit -m "Close ${MONTH}"
git -C ~/finance tag "close-${MONTH}"

echo "Month ${MONTH} is closed and tagged."

Why This Works

This process is fast and reliable because it’s built on a few core principles:

  • Assertions, not Eyeballs: The balance directive turns reconciliation into a precise, automated check.
  • Deterministic Inputs: Automated importers and normalized metadata make your ledger reproducible and consistent.
  • Explorable Data: Fava and BQL provide powerful tools to validate results and drill into outliers instantly.
  • Auditable Changes: Adjustments are plain-text journal entries, making them easy to review and understand months or years later.

A good month-end is mostly logistics. With Beancount, you can turn it into a short, scriptable ritual: import, assert, price, query, and commit. Keep the workflow stable, and your close will stay fast—even as your financial life grows more complex.

The Best Business Lines of Credit (2025)

· 9 min read
Mike Thrift
Mike Thrift
Marketing Manager

If you want flexible working capital you can draw, repay, and reuse, a business line of credit (LOC) beats taking repeated term loans. Below are this year’s strongest options by use‑case, plus a quick way to compare costs and a simple Beancount recipe for recording draws, interest, and fees.


2025-08-27-best-business-lines-of-credit-2025

TL;DR — Best‑fit picks by scenario

  • Fast, flexible fintech line: Bluevine — up to $250k, weekly or monthly repayment, funding often within 24 hours, rates advertised “as low as 7.8% (simple interest).”
  • Fee‑based draws with multiple terms: American Express Business Blueprint® Line of Credit — line sizes 2k2k–250k; choose 1–3‑month single‑repayment loans or 6–24‑month installment loans with fixed loan fees (not APR).
  • Prime‑based bank line with clear pricing: Wells Fargo BusinessLine® / Prime Line — BusinessLine: Prime + 1.75% to +9.75%; Prime Line: Prime + 0.50% (floor 5%); typical credit limits 10k10k–150k.
  • Relationship pricing & a way to “graduate”: Bank of America — unsecured Business Advantage line (relationship discounts 0.25–0.75%); or Cash‑Secured line where your deposit sets the limit (from $1,000), helpful to build business credit.
  • Branch + national reach: Chase Business Line of Credit — online up to $250k, 5‑year revolving period then 5‑year repayment (available in 48 states).
  • **Up to 250kwithclearannualfeepolicy:U.S.BankCashFlowManagerlinesto250k with clear annual fee policy:** **U.S. Bank Cash Flow Manager** — lines to 250k; unsecured option to 100k;noannualfeeifline100k; no annual fee if line \> 50k (otherwise $150).
  • Newer businesses that need speed (know the cost): Headway Capital5k5k–100k, calculator shows starting ~3.3% monthly + 2% draw fee.
  • Fast approvals but typically expensive: OnDeck LOC — up to $200k; company‑reported average APR ~56.6% for lines (H1’25).
  • For bigger, lower‑rate, monitored lines (if you qualify): SBA lines — classic CAPLines umbrella programs and the newer 7(a) Working Capital Pilot (WCP). WCP lets lenders issue monitored revolving lines up to $5M with an SBA guaranty.

What changed or matters in 2025? 📈

Two key trends are shaping the business credit landscape this year:

  1. Prime settled lower than 2023 highs. The Wall Street Journal Prime Rate is 7.50% (as of September 2, 2025), last changed on December 19, 2024. This is the benchmark rate that directly feeds the pricing for most variable-rate bank lines of credit (which are typically priced as "Prime + a margin"). A stable, lower Prime Rate means more predictable costs for borrowers.
  2. SBA rolled out/expanded monitored working‑capital lines. The 7(a) Working Capital Pilot (WCP) program, effective August 1, 2024, continues to expand. It enables lenders to issue asset- or transaction-based monitored LOCs, which is a huge help for businesses needing financing for inventory, receivables, or specific contracts.

ProviderMax line sizeHow pricing worksNotable terms/feesBest for
Bluevine$250,000Simple‑interest rates “as low as 7.8%”; weekly or monthly repaymentsFunding often within 24 hoursFast, flexible online LOC with straightforward draws
AmEx Business Blueprint®2,0002,000–250,000Loan fee instead of interest; choose 1–3 mo. single‑repayment or 6–24 mo. installmentSee posted fee ranges by term; instant deposit to AmEx Business Checking optionPredictable fees; choose short vs. longer payback per draw
Wells Fargo BusinessLine®10,00010,000–150,000Variable Prime + 1.75% to +9.75%Unsecured revolving linePrime‑based bank line with transparent margin
Wells Fargo Prime LineVariesPrime + 0.50% (min floor 5%)Generally for stronger profilesLower‑margin option if you qualify
Chase Business LOCOnline to $250,000Variable (not publicly posted online)5‑yr revolving, then 5‑yr repayment; not in AK/HIEstablished bank LOC with long revolving window
U.S. Bank Cash Flow ManagerUp to $250,000Variable; secured & unsecured optionsUnsecured up to 100k;noannualfee100k; no annual fee \> 50k (else $150)Clear fee policy; broad branch network
PNC Unsecured LOC20,00020,000–100,000WSJ Prime + margin (variable)$175 annual feeSmaller lines; relationship banking
Headway Capital5,0005,000–100,000Starting ~3.3% monthly + 2% draw fee (state‑based)Weekly or monthlyYounger firms that need speed (mind the cost)
OnDeck LOCUp to $200,000High average APR ~56.6% (H1’25)Fast approvals; weekly payments commonShort‑term cash gaps; expensive capital
SBA CAPLines & 7(a) WCPUp to $5,000,000SBA‑capped rates via lenders; monitored linesWCP facilities up to 12 months, renewable; CAPLines maturities up to 10 yearsLarger, structured working‑capital needs with collateral

How to choose the right LOC (7 quick checks) ✅

  1. Index & Margin: If it’s a bank line priced as "Prime ± X%", check today’s Prime Rate (7.50%) and add the margin you’re offered. That’s your current variable Annual Percentage Rate (APR).
  2. Fee‑based vs. Interest‑based: Some fintechs (like AmEx Blueprint) charge a fixed "loan fee" per draw instead of interest. Compare the effective APR of that fee to interest-based offers before deciding.
  3. Annual/Draw Fees: These add to your total cost, especially if you use the line infrequently. U.S. Bank waives its 150annualfeeforlinesover150 annual fee for lines over 50k, while PNC lists a $175 fee for its unsecured LOC.
  4. Repayment Cadence: Weekly payments (common with online lenders) can smooth out cash flow but require more frequent management. Monthly payments simplify bookkeeping. Bluevine offers both weekly and monthly options.
  5. Funding Speed: If you need cash now, speed is critical. Bluevine often funds within 24 hours, and American Express offers instant deposits on draws to an AmEx Business Checking account.
  6. Eligibility & Graduation Path: If you can't qualify for an unsecured line yet, a product like Bank of America’s cash‑secured line (starting at $1,000) can help you build business credit and "graduate" to an unsecured line later.
  7. Consider SBA for Size or Structure: For larger needs tied to inventory, receivables, or contracts, the SBA's 7(a) WCP or CAPLines programs can provide larger, monitored lines at regulated rates, provided you can handle the more in-depth underwriting.

A quick cost comparison tip 🧮

Comparing offers can be tricky. Here's a simple way to think about it:

  • Prime‑based example: If a bank offers you Prime + 2.75%, your starting APR today is 10.25% (7.50% + 2.75%). Remember, this rate will float up or down if the Prime Rate changes.
  • Fee‑based example (AmEx Blueprint): A 12-month draw with a 6–18% total loan fee might seem low. However, to compare apples-to-apples, you must compute the equivalent APR on the amortizing balance. A fixed fee on the initial draw amount is not the same as an APR on a declining balance.

Beancount: How to record a line of credit

For users of the plain-text accounting tool Beancount, tracking a line of credit is straightforward. The LOC is a liability; draws increase that liability and your cash, while interest and fees are expenses. Replace the account names below to match your own ledger.

1) Draw $25,000 from your LOC to your checking account

2025-03-15 * "LOC draw"
Assets:Bank:Checking 25,000.00 USD
Liabilities:LOC:Bluevine -25,000.00 USD

2) Make a 2,300payment(2,300 payment (300 interest, $2,000 principal)

2025-04-15 * "LOC payment (principal + interest)"
Liabilities:LOC:Bluevine 2,000.00 USD
Expenses:Interest:LOC 300.00 USD
Assets:Bank:Checking -2,300.00 USD

3) Record a $150 annual fee charged to your bank account

2025-01-10 * "Annual LOC fee"
Expenses:BankFees:LOC 150.00 USD
Assets:Bank:Checking -150.00 USD

Alternative: If the annual fee is added to the line's balance instead of being debited from your bank account, the transaction would be:

2025-01-10 * "Annual LOC fee added to balance"
Expenses:BankFees:LOC 150.00 USD
Liabilities:LOC:Bluevine -150.00 USD

When an SBA-backed line makes more sense

An SBA-guaranteed line isn't for everyone, but it's a powerful tool if:

  • You need a bigger credit limit than what most fintech or bank unsecured products offer.
  • Your working capital needs are tied to collateral like accounts receivable (A/R), inventory, or signed contracts.
  • You can handle the monitoring requirements, such as submitting borrowing base certificates and regular financial reporting.

If this sounds like your business, look into the SBA CAPLines programs and the 7(a) Working Capital Pilot (WCP). These programs can facilitate lines up to $5M, and standard CAPLines can have maturities of up to 10 years.


Application checklist 📝

Be prepared. Most lenders will ask for the following:

  • Time in business, revenue, and credit score: Banks typically want 1–2+ years in business and stronger credit, while many online lenders have more flexible criteria but price for the added risk.
  • Financials: Have your recent bank statements, business tax returns, and potentially A/R aging or inventory reports ready.
  • Personal Guaranty: This is a standard requirement for most business lines of credit. It means you are personally responsible for repaying the debt if the business cannot.

Key sources


Final word

A line of credit is about control: draw what you need, when you need it. In 2025, Prime-based bank lines remain attractive for those who qualify, while fintech lines trade higher costs for incredible speed and flexibility. For larger, more complex needs, SBA-backed lines unlock structured facilities. The key is to run the numbers (always convert fees to an effective APR), understand the fee structure, and pick a repayment schedule that keeps your business financially healthy—and your Beancount ledger clean.

Recording Taxes in Beancount (The Pragmatic Way)

· 8 min read
Mike Thrift
Mike Thrift
Marketing Manager

Taxes can feel like a special, complicated beast in the world of personal finance. But what if they weren't? What if you could treat them just like any other flow of money in your ledger? Good news: you can. By treating taxes as simple movements of value, your Beancount ledger will stay clean, easy to query, and—most importantly—understandable.

Below is a practical, no-nonsense pattern you can drop into a personal or small-business Beancount file. It’s a simple system for handling paychecks, tax payments, and even those pesky refunds that cross over into the new year. We'll cover the essential accounts you need, walk through real-world examples, and show you the exact queries to run to get the answers you need.

2025-08-25-recording-taxes-in-beancount


The Core Principles

Before we dive into the code, let's agree on a few simple rules. These principles keep things logical and prevent future headaches.

  • Separate "what it is" from "when the cash moves." 🗓️ This is the most important concept. A tax expense belongs to the year you earned the income (e.g., 2024), even if you settle the bill with the IRS in April 2025. If you don't separate the timing of the expense from the timing of the cash payment, your year-over-year reports will get messy and misleading.

  • Keep your account hierarchy boring and simple. 📁 Name your accounts clearly based on the type of tax (e.g., IncomeTax, SocialSecurity). This makes your queries incredibly simple. Don't clutter account names with vendor names or form numbers like "W-2" or "1099"; use metadata and tags for those details instead.

  • Embrace accrual for year-end adjustments. ⚖️ Even for a personal ledger, using a simple accrual entry at year-end is the cleanest way to make your reports accurate. It means recognizing an expense or refund in the correct year, even if the money doesn't move until the next. It’s one small extra step that saves you from mental gymnastics later.

  • Write for your future self. 🧠 Your goal is clarity. Only add extra details, like the tax year, to an account name if it genuinely makes your queries easier. Avoid creating a new set of accounts every single year (Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal, etc.) unless you have a compelling reason. A flat structure is often easier to manage.


A Minimal Account Skeleton

Here’s a basic set of accounts to get you started. This structure is US-centric, but you can easily adapt the names for your own country's tax system. Just drop these open directives into your Beancount file.

; --- US Federal Income & Payroll Taxes ---
; For money withheld from your paycheck
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Withheld USD
; For estimated payments or tax-day bills you pay directly
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Payments USD
; For tax refunds you receive
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Refunds USD

; Your FICA contributions
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD

; --- Other Common Taxes ---
; For sales/use taxes you pay on purchases
2024-01-01 open Expenses:Taxes:Sales USD

; --- Accounts for Year-End Adjustments (Optional but Recommended!) ---
; A temporary holding account for taxes you owe but haven't paid yet
2024-01-01 open Liabilities:AccruedTaxes:Federal:Income USD
; A temporary holding account for a refund you're owed but haven't received
2024-01-01 open Assets:Tax:Receivable USD

This setup separates withheld taxes from direct payments and refunds, making it easy to see exactly where your money went. The Liabilities and Assets accounts are our secret weapon for keeping year-end reporting accurate.


Example 1: The Paycheck

Let's book a typical paycheck where taxes are withheld automatically. The key is to record your gross pay first, then show how it was split between taxes and the cash that actually landed in your bank account.

2025-07-15 * "Employer Inc." "Salary for first half of July"
Income:Work:Salary -6,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Withheld 1,200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Assets:Cash:Checking 4,341.00 USD

This single transaction tells the whole story:

  • You earned $6,000 in gross income.
  • $1,200 of it was sent to the IRS for federal income tax.
  • 372wenttoSocialSecurityand372 went to Social Security and 87 to Medicare.
  • The remaining $4,341 is what you took home.

Pro-tip: You can attach metadata from your pay stub (like pay_period_end: "2025-07-15") to the transaction for an easy audit trail.


Example 2: Filing Your Return (The Year-Crossing Problem)

Here's the scenario that trips people up: It's April 2025, and you're filing your 2024 taxes. You learn that after all your withholding, you still owe an extra $3,000.

How do you record this? You want the expense to count toward 2024, but the cash payment happens in 2025. Here are two excellent ways to handle it.

Option A: The Manual Two-Step Accrual

This method is pure Beancount, no plugins required. It's a clear, two-step process.

Step 1: Recognize the expense at the end of the tax year. On the last day of 2024, you create a "true-up" entry. No cash is moving yet; you're just acknowledging the expense and parking it in a temporary liability account.

2024-12-31 * "Federal income tax true-up for 2024"
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
Liabilities:AccruedTaxes:Federal:Income -3,000.00 USD

Now, your 2024 income statement correctly shows this $3,000 expense.

Step 2: Record the cash payment when it happens. In April 2025, when you actually send the money to the IRS, you clear out the liability.

2025-04-15 * "IRS" "Payment for 2024 tax return"
Liabilities:AccruedTaxes:Federal:Income 3,000.00 USD
Assets:Cash:Checking -3,000.00 USD

Your 2024 reports are correct, and your 2025 cash flow is correct. Perfect! This same pattern works in reverse for a refund—just use Assets:Tax:Receivable instead of the liability account.

Option B: Automate It with a Plugin

If you prefer to keep the payment in a single transaction, a fantastic community plugin called beancount_reds_plugins.effective_date can help. It lets you assign a different "effective date" to a single line item.

First, enable the plugin in your main Beancount file: plugin "beancount_reds_plugins.effective_date"

Now, you can write a single transaction. The plugin will automatically split it behind the scenes to make your reports accurate.

; One entry; the plugin handles the rest
2025-04-15 * "IRS" "Payment for 2024 tax return"
Assets:Cash:Checking -3,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
effective_date: 2024-12-31

Here, the cash portion is recorded on April 15, 2025, but the expense portion is retroactively applied to December 31, 2024. It achieves the same result as Option A with a different workflow.


What About Sales Tax?

For most personal ledgers, sales tax is simple. If you're not claiming it back, just split it out as its own expense during a purchase.

2025-07-19 * "Local Grocery Store"
Expenses:Groceries 12.32 USD
Expenses:Taxes:Sales 1.28 USD
Assets:Cash:Checking -13.60 USD

This lets you easily track how much you're spending on sales tax over the year. If you run a business that deals with VAT, you'd use a more formal system with payable and receivable accounts, but the principle is the same.


Queries You'll Actually Run

The whole point of this structure is to make getting answers easy. Here are some BQL queries to see your tax picture.

1. What was my total federal income tax for 2024?

SELECT cost(sum(position))
WHERE account ~ "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01;

2. How did that total break down between withholding, payments, and refunds?

SELECT account, cost(sum(position))
WHERE account ~ "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01
GROUP BY account
ORDER BY account;

3. Do I have any outstanding tax debts or receivables? (Useful for checking your work!)

SELECT account, units(sum(position))
WHERE account ~ "Liabilities:AccruedTaxes" OR account ~ "Assets:Tax"
GROUP BY account
ORDER BY account;

If this query returns non-zero balances, it means you have accruals you haven't settled yet.


Quick FAQ

  • Do I really need per-year accounts like Expenses:Taxes:2024? Probably not. The accrual method (or the plugin) keeps a flat account structure clean and readable. Only create per-year accounts if you find it makes your specific queries easier to write.

  • Can Beancount calculate my taxes for me? Not directly, but it can prepare the data. Some advanced users write scripts to pipe BQL query results into tax calculation software, which is great for estimating your liability during the year.

  • Is this tax advice? No. This is a bookkeeping pattern for organizing your data. The accounting is sound, but you should always consult a tax professional for advice specific to your situation.


Your Drop-In Checklist

Ready to get started?

  1. Add the account skeleton to your Beancount file (and adapt names for your country).
  2. Book paychecks by starting with gross income and splitting out the tax postings.
  3. At year-end, accrue any true-ups for payments or refunds using a liability/asset account (or use the effective_date plugin).
  4. Track refunds as receivables and clear them when the cash arrives.
  5. Run the BQL queries above to verify your totals before you file.

Keep it boring, keep it consistent, and your tax season will finally feel like just another part of your financial story—not a mystery to be solved.