Qualified vs Ordinary Dividends: Tax Implications and Beancount Categorization

Understanding the Tax Treatment of Dividends in Your Beancount Ledger

As a tax professional (IRS Enrolled Agent), I see a lot of confusion around how dividends are taxed and how to properly categorize them in plain-text accounting systems. This post aims to be a definitive reference for the Beancount community on qualified vs. ordinary dividends, their tax implications, and how to structure your ledger for painless tax filing.

The Two Types of Dividends

The IRS distinguishes between two categories of dividends, and they are taxed very differently:

Qualified Dividends are taxed at the preferential long-term capital gains rates:

  • 0% for taxable income up to $48,350 (single) / $96,700 (married filing jointly) in 2025
  • 15% for income up to $533,400 (single) / $600,050 (MFJ)
  • 20% for income above those thresholds
  • Plus the potential 3.8% Net Investment Income Tax (NIIT) if your modified AGI exceeds $200,000 (single) / $250,000 (MFJ)

Ordinary (Nonqualified) Dividends are taxed at your marginal income tax rate, which ranges from 10% to 37%.

What Makes a Dividend “Qualified”?

Three requirements must be met:

  1. Paid by a U.S. corporation or qualifying foreign entity. Most major foreign companies traded on U.S. exchanges through ADRs qualify, but companies in some countries (certain tax havens) do not.

  2. Holding period requirement. You must have held the stock for more than 60 days during the 121-day period beginning 60 days before the ex-dividend date. For preferred stock, it is 90 days out of a 181-day period.

  3. Not specifically excluded. Dividends from REITs, money market funds, tax-exempt organizations, and employee stock options are generally NOT qualified.

Beancount Account Structure for Tax-Accurate Categorization

Here is the account hierarchy I recommend to my clients who use Beancount:

; === Qualified Dividend Income ===
2024-01-01 open Income:Dividends:Qualified       USD
2024-01-01 open Income:Dividends:Qualified:AAPL  USD
2024-01-01 open Income:Dividends:Qualified:MSFT  USD
2024-01-01 open Income:Dividends:Qualified:JNJ   USD

; === Ordinary Dividend Income ===
2024-01-01 open Income:Dividends:Ordinary         USD
2024-01-01 open Income:Dividends:Ordinary:JEPI    USD
2024-01-01 open Income:Dividends:Ordinary:HYG     USD

; === REIT Dividends (Ordinary, but 199A eligible) ===
2024-01-01 open Income:Dividends:REIT              USD
2024-01-01 open Income:Dividends:REIT:O             USD
2024-01-01 open Income:Dividends:REIT:VNQ           USD

; === Return of Capital (not currently taxable) ===
2024-01-01 open Income:Dividends:ReturnOfCapital    USD

; === Foreign Tax Withheld ===
2024-01-01 open Expenses:Taxes:Foreign:Withholding  USD

Mapping to 1099-DIV Boxes

This is where things get practical. Your 1099-DIV from your broker maps directly to your Beancount accounts:

1099-DIV Box Description Beancount Account
Box 1a Total ordinary dividends Sum of Ordinary + REIT + portion of Qualified
Box 1b Qualified dividends Income:Dividends:Qualified:*
Box 3 Nondividend distributions Income:Dividends:ReturnOfCapital
Box 5 Section 199A dividends Income:Dividends:REIT:*
Box 7 Foreign tax paid Expenses:Taxes:Foreign:Withholding

Example Transactions

Apple dividend (qualified):

2025-02-14 * "Apple Inc" "Quarterly dividend - qualified"
  Assets:Investments:Schwab:Cash        96.00 USD
  Income:Dividends:Qualified:AAPL     -96.00 USD

JEPI distribution (primarily ordinary):

2025-02-03 * "JPMorgan Equity Premium Income ETF" "Monthly distribution"
  Assets:Investments:Schwab:Cash       187.50 USD
  Income:Dividends:Ordinary:JEPI     -187.50 USD

International ETF with foreign tax withholding:

2025-03-28 * "Vanguard FTSE All-World ex-US" "Quarterly dividend with foreign tax"
  Assets:Investments:Vanguard:Cash          142.30 USD
  Expenses:Taxes:Foreign:Withholding         15.80 USD
  Income:Dividends:Qualified:VXUS          -158.10 USD

REIT dividend (ordinary, 199A eligible):

2025-01-15 * "Realty Income Corp" "Monthly dividend - REIT ordinary"
  Assets:Investments:Fidelity:Cash       52.70 USD
  Income:Dividends:REIT:O              -52.70 USD

Return of Capital: The Hidden Complexity

Some distributions, particularly from REITs and MLPs, include a return of capital component. This is NOT current income — it reduces your cost basis in the shares. In Beancount, you would handle this by reducing the asset cost basis:

2025-03-15 * "Realty Income Corp" "Distribution - return of capital portion"
  Assets:Investments:Fidelity:Cash       8.40 USD
  Income:Dividends:ReturnOfCapital      -8.40 USD

Note that in a pure accounting sense, you would ideally adjust the cost basis of your shares. However, most Beancount users I work with find it simpler to track return of capital as a separate income category and handle the basis adjustment at sale time. The key is that you have a record of all return of capital received per position.

FIRE Planning Implications

For those pursuing FIRE, the qualified vs. ordinary distinction has a massive impact on your after-tax income:

  • A $50,000 dividend income at the 0% qualified rate = $50,000 after tax
  • A $50,000 dividend income at the 22% ordinary rate = $39,000 after tax

That is an $11,000/year difference, which means you need roughly $314,000 less in your portfolio if your dividends are qualified. Structure your portfolio and your Beancount accounts to make this distinction crystal clear.

Year-End Reconciliation Checklist

  1. Compare your Beancount totals against each 1099-DIV
  2. Verify the qualified/ordinary split matches Box 1b vs. Box 1a
  3. Confirm foreign tax paid matches Box 7
  4. Check Section 199A dividends against Box 5
  5. Review return of capital (Box 3) and adjust basis records

I am happy to answer any questions about specific dividend tax situations. Getting this right in your Beancount ledger saves enormous headaches during tax season.

Tina, this is exactly the reference I needed. Your 1099-DIV mapping table is going straight into my Beancount documentation folder.

I have a follow-up question about the timing problem with qualified vs. ordinary categorization. Throughout the year, when I receive a dividend from VTI, I do not actually know the qualified/ordinary split yet. Vanguard does not publish the exact breakdown until their year-end tax supplement, which sometimes does not come out until mid-February.

Currently I am booking everything as qualified during the year and then doing a reclassification entry in January. Here is what that looks like:

; Year-end reclassification based on Vanguard tax supplement
2025-12-31 * "Year-end reclassification" "VTI qualified to ordinary adjustment"
  Income:Dividends:Qualified:VTI    412.80 USD
  Income:Dividends:Ordinary:VTI   -412.80 USD

Is this approach acceptable from a tax reporting standpoint? Or should I be using last year’s percentages as estimates throughout the year and then true up?

Also, your point about the $314K portfolio difference between qualified and ordinary income is staggering. I ran my own numbers and found that by shifting just 15% of my JEPI allocation into SCHD, I could save roughly $2,800/year in taxes while only reducing my current income by about $1,200. The tax alpha is real, and seeing it clearly in my Beancount reports is what made me realize the optimization opportunity.

One more question: for the Foreign Tax Credit, do you recommend claiming it as a credit (Form 1116) or a deduction? My foreign tax paid is around $800/year from VXUS. I have heard that below a certain threshold you can claim the credit without filing Form 1116.

Excellent write-up, Tina. The 1099-DIV box mapping is something I wish I had when I started with Beancount.

I want to add a practical tip for the community about automating the year-end reconciliation. I wrote a simple bean-query that generates a report matching the 1099-DIV format:

bean-query ledger.beancount "
  SELECT
    sum(position) as amount,
    account
  WHERE account ~ 'Income:Dividends'
    AND year = 2025
  GROUP BY account
  ORDER BY account
"

This gives you a clean breakdown by category that you can compare line-by-line against your 1099-DIV. I run this every February and it takes about 10 minutes to reconcile each brokerage account.

On the Return of Capital point: I handle this slightly differently. Instead of using a separate income account, I actually reduce the cost basis of my holdings using Beancount’s lot reduction syntax. For a REIT that returns capital, I book it as:

2025-03-15 * "Realty Income" "Return of capital portion"
  Assets:Investments:Fidelity:Cash     8.40 USD
  Assets:Investments:Fidelity:O       -0.1234 O {68.08 USD}  ; reduce basis
  Income:CapitalGains:Long             0.00 USD               ; plug

This way, when I eventually sell the shares, the capital gain is automatically calculated correctly because the cost basis has been properly reduced. It is more complex to book, but it pays off at sale time. Tina, what are your thoughts on this approach vs. the separate income account method?

One thing I want to raise that often gets overlooked: estimated tax payments on dividend income. If you are building toward FIRE and your dividend income is growing year over year, you can easily trip the IRS underpayment penalty. The safe harbor is either 100% of prior year tax (110% if AGI exceeds $150K) or 90% of current year tax.

I track estimated payments in Beancount like this:

2024-01-01 open Expenses:Taxes:Estimated:Federal   USD
2024-01-01 open Expenses:Taxes:Estimated:State      USD
2024-01-01 open Assets:Taxes:Federal:Prepaid         USD

2025-04-15 * "IRS" "Q1 estimated tax payment"
  Assets:Bank:Checking                  -2500.00 USD
  Assets:Taxes:Federal:Prepaid           2500.00 USD

; At year-end, reclassify to actual tax expense
2025-12-31 * "Year-end" "Reclassify estimated payments to tax expense"
  Assets:Taxes:Federal:Prepaid         -10000.00 USD
  Expenses:Taxes:Estimated:Federal      10000.00 USD

This gives me a clear picture of cash flow impact. For FIRE planners, it is not just about gross dividend income — it is about what lands in your pocket after the IRS takes its cut. And if you are in the accumulation phase with earned income plus growing dividend income, your effective tax rate on those dividends is almost certainly at the higher brackets, not the favorable 0% rate you might enjoy post-FIRE.

That is actually a key insight: the tax rate on your dividends might be very different pre-FIRE vs. post-FIRE. Worth modeling both scenarios in your Beancount projections.

Great questions from everyone. Let me address the key follow-ups.

@finance_fred on the timing of qualified/ordinary classification: Your year-end reclassification approach is perfectly fine. The IRS cares about the annual totals on your tax return, not how you categorized things throughout the year. Using last year’s percentages as estimates is also fine — either method works as long as you true up before filing.

On the Foreign Tax Credit question: Great news — if your total foreign taxes paid are $300 or less ($600 for married filing jointly), you can claim the credit directly on Form 1040 without filing Form 1116. Since your VXUS foreign tax is around $800, you would need Form 1116. However, it is almost always better to take the credit rather than the deduction. A $800 credit reduces your tax bill by $800. A $800 deduction only reduces your taxable income by $800, saving you about $176 at the 22% bracket. Always take the credit.

@bookkeeper_bob on estimated payments: Spot on. The pre-FIRE vs. post-FIRE tax rate difference is something most FIRE bloggers do not emphasize enough. A married couple with no earned income and $50,000 in qualified dividends could pay literally $0 in federal income tax (the standard deduction covers about $30,000, and the remaining amount falls in the 0% qualified dividend bracket). That same $50,000 in qualified dividends during the accumulation phase with a $150K salary is taxed at 15%. The difference is roughly $7,500/year — a meaningful amount that your Beancount ledger should help you plan for.

One additional point on REIT dividends I want to clarify: The Section 199A deduction (20% deduction on qualified business income including REIT dividends) is currently set to expire after 2025 unless Congress extends it. This is worth watching because it significantly affects the after-tax yield on REITs. If it expires, REIT ordinary dividends lose that 20% deduction and become fully taxable at your marginal rate.