US tax year 2026 · IRC §1276 / §171 / §1272 · Form 8949 code D

Bond Tax Report

Built for the bond investor who holds multiple positions across brokers and needs accurate tax accounting on accrued interest, market discount, premium amortization, OID, and disposal — without unpicking five 1099-INTs and a 1099-B by hand.

Accrued interest split from cap gain
Market discount (§1276) accretion
Premium amortization (§171) election
OID (§1272) accrual schedule
Imports bonds from:
Interactive Brokers Fidelity Schwab Vanguard Trading 212 DeGiro Trade Republic
US TREASURY 4.5% · MATURES 2026-10-15 · FACE $10,000 INPUTS FACE $10,000.00 · 4.5% semi-annual COUPON $225.00 every Feb 15 / Aug 15 PURCHASE · 2023-10-15 Clean $9,800.00 + accrued $74.59 Total paid: $9,874.59 SALE · 2024-10-16 · LT satisfied Clean $10,050.00 + accrued $75.82 Total received: $10,125.82 DAY-COUNT 61/184 paid · 62/184 received · actual/actual ICMA ELECTION Ratable, recognize at disposal (§1276 default) 2024 TAX BUCKETS COUPON INTEREST (NET OF ACCRUED PAID) $150.41 (Feb 15) + $225.00 (Aug 15) $375.41 → Schedule B line 1 ACCRUED INTEREST RECEIVED AT SALE 62/184 of $225 (Aug 15 → Oct 16) $75.82 → Schedule B line 1 MARKET DISCOUNT ACCRETED (§1276) $200 over 3 yr × 1 yr held = ratable share $66.67 → Sch B + Form 8949 code D in (f), $66.67 in (g) LONG-TERM CAPITAL GAIN $10,050 − $9,800 − $66.67 (held 367 days) $183.33 → Form 8949 Part II → Schedule D Total interest / ordinary income $517.90 Long-term capital gain $183.33 GRAND TOTAL 2024 $701.23

Five tax buckets a 1099-B alone cannot produce. Ties to the cent.

Bond Tax Report: Accrued Interest, Market Discount, Premium Amortization, and OID Done Right

A bond is not a stock. Coupon interest, accrued interest paid at purchase, accrued interest received at sale, market discount accreted at disposal, OID accrued annually, and capital gain on the clean price are six different tax buckets on a single lot. We split them lot-by-lot across every connected broker, write the Form 8949 row with code D, and tie the totals to Schedule B line 1.

Who this page is for

US bond investors holding taxable Treasuries, corporates, or international bonds across one or more brokers.

The typical reader: a US taxpayer with a Treasury ladder at Fidelity, a corporate bond at Schwab, and maybe a few gilts or Bunds at Interactive Brokers. The 1099-INT shows coupons received; the 1099-B shows a clean-price gain on the sale. Neither separately reports the accrued interest paid at purchase, the market discount that accretes into ordinary income, the §171 premium election, or the OID schedule on a discount Treasury. Six tax buckets on one lot, three forms, none of them quite right out of the box. If you own bonds and you want the report you can actually file, this is the page.

The five bond tax problems brokers do not solve for you

1. Accrued interest at purchase is interest income, not basis.

When you buy a bond between coupon dates the price you pay includes accrued interest owed to the seller. The IRS treats that payment as a return-of-capital reducing your next coupon — it does not adjust your cost basis. Most 1099-INTs lump the full coupon into interest income and leave you to subtract the accrued portion yourself. See IRS Pub. 550, "Accrued interest on bonds."

2. Market discount (IRC §1276) is ordinary income, not capital gain.

Bought a bond at 98? That two-point discount accretes over the remaining life and taxes as interest income on sale or maturity, not long-term capital gain. The accreted amount goes on Schedule B line 1 and as a code-D adjustment in column (f) of Form 8949 with a negative offset in column (g). The 1099-B alone treats the entire price gain as capital gain — wrong.

3. Bond premium amortization (IRC §171) is an election, not automatic.

Bought at 102? You can elect under §171 to amortize the two-point premium against interest income each year, which simultaneously reduces both interest income and cost basis. The election applies to every current and future taxable bond you hold, is made by attaching a statement to your year-one return, and is essentially irrevocable. Without the election, the premium only shows up as a smaller capital gain when you sell.

4. OID (IRC §1272) accrues annually without any cash.

Zero-coupon Treasuries, STRIPS, and original-issue discount corporate bonds accrete OID into interest income every year — even though no coupon is paid. The 1099-OID reports the annual accrual; basis steps up by the same amount so the maturity proceeds do not double-count. Sell early and you need the full constant-yield schedule.

5. Coupons accrue daily but pay semi-annually.

A $225 semi-annual coupon may already include $112 of interest earned but unpaid at year-end. The applicable day-count convention — actual/actual ICMA for Treasuries, 30/360 for most US corporates, actual/365 for gilts — governs the split. ChatGPT does not know your bond's day-count basis. We do.

How it works

The flow is one connect, one engine, one report. Nothing leaves your hands. Brokers connect read-only, the QuantLib bond engine reconstructs each lot, and the final artifact is the Form 8949 + Schedule B + PDF audit pack ready to file.

Connect → Reconstruct → Download Form 8949 + Sch B

1
Connect your brokers via SnapTrade, read-only — Interactive Brokers, Fidelity, Schwab, Vanguard, Trading 212, DeGiro, Trade Republic, and more. CSV / Activity Statement / 1099-B import for any broker we do not sync directly. We never have permission to execute trades.
2
The QuantLib bond engine reconstructs each lot — accrued interest at purchase under the bond's day-count convention, the §171 election status, the §1276 market-discount accretion schedule (ratable or constant-yield), the §1272 OID schedule, and the holding period. Multi-currency bonds (gilts in GBP, Bunds in EUR) translate at the payment-date FX rate.
3
Download Form 8949 + Schedule B with code-D adjustments pre-applied — the Form 8949 row carries code D in column (f) and the accreted market discount in column (g); the same dollar amount appears as ordinary interest on Schedule B line 1. A PDF audit pack with per-lot accretion schedules and source documents accompanies the return.

Worked example: 5-year US Treasury, purchased mid-coupon, sold one year later

One Treasury lot, the whole story. The arithmetic ties to the cent.

The bond and the two trades

SecurityUS Treasury 4.50%, matures 2026-10-15
Face$10,000.00
CouponsFeb 15 & Aug 15 (actual/actual ICMA)
Purchase2023-10-15 at clean price $9,800.00 (98.00)
Sale2024-10-16 at clean price $10,050.00 (100.50) — LT satisfied (367 days)
Remaining life at purchase3 years
Market-discount electionRatable, recognize at disposal (§1276 default)

Step 1 — Accrued at purchase (61 days into the period)

Days from last coupon (2023-08-15) to purchase = 61. Days in coupon period (2023-08-15 → 2024-02-15) = 184. Semi-annual coupon = $10,000 × 4.5% / 2 = $225.00. Accrued paid to seller = $225 × 61/184 = $74.59. Total cash out at settlement = $9,800 + $74.59 = $9,874.59 (dirty price). The $74.59 is not added to cost basis; it sits as a return-of-capital offsetting the next coupon.

Step 2 — 2024 coupons received

Coupon income, net of accrued-at-purchase offset

DateGross couponOffset (accrued paid)Taxable interest
2024-02-15$225.00−$74.59$150.41
2024-08-15$225.00$225.00
Subtotal$375.41

Step 3 — Market discount accreted at disposal

Bond bought at 98 of face = $200 of market discount over the 3-year remaining life. Held one year → ratable share is $200 × 1/3 = $66.67. That amount reclasses from capital gain into ordinary interest at sale. On Form 8949 it appears as code D in column (f) with $66.67 as a negative adjustment in column (g); the same $66.67 hits Schedule B line 1.

Step 4 — Long-term capital gain on the clean price

$10,050.00 clean proceeds − $9,800.00 cost basis − $66.67 market-discount adjustment = $183.33 long-term gain. Held 367 days → LT treatment. Form 8949 Part II, code D in column (f), $66.67 in column (g), $183.33 in column (h). Flows to Schedule D line 8b/10.

Step 5 — Accrued at sale (62 days into the period)

Days from last coupon (2024-08-15) to sale (2024-10-16) = 62. Buyer reimburses you for $225 × 62/184 = $75.82. That $75.82 is ordinary interest on Schedule B line 1, not part of the clean-price gain calculation.

Step 6 — Summary

2024 tax buckets, where each goes

BucketAmountDestination
Coupon interest (net of accrued-at-purchase)$375.41Sch B line 1
Accrued interest received at sale$75.82Sch B line 1
Market discount accreted (§1276)$66.67Sch B line 1 + Form 8949 code D, (g)
Total interest / ordinary income$517.90
Long-term capital gain$183.33Form 8949 Part II → Sch D
GRAND TOTAL 2024 taxable$701.23

Reconciliation — the arithmetic ties

$250 price gain ($10,050 clean − $9,800 clean) + $450 of coupons received in 2024 ($225 × 2) + $1.23 off-cycle accrued differential (62/184 received vs 61/184 paid on a $225 coupon → $75.82 − $74.59 = $1.23) = $701.23. Allocation across buckets: $517.90 ordinary + $183.33 LT = $701.23. The total agrees both ways — verifiable on a four-function calculator.

Why this matters even when the dollars look small

A 1099-B alone reports proceeds $10,050, basis $9,800, gain $250 — all long-term capital gain. No code-D split, no separation of the accrued interest received at sale, no recognition of the §1276 market discount. At a 24% ordinary bracket vs 15% long-term, misclassifying $66.67 of ordinary income as LT capital gain understates tax by about $6 on this single bond. Across a 30-rung Treasury ladder the misclassification compounds into hundreds of dollars, and the IRS expects the correct classification regardless of dollar size.

See your own bond tax buckets, lot by lot

Connect your brokers (or import a CSV / 1099) and we will reconstruct every bond lot with the Form 8949 row + Schedule B line ready to file.

Start free

How AllInvestView compares

Honest comparison — not all-green by default. On TIPS we mirror what the broker-supplied 1099-OID already reports (both "Yes"). The moat is the §1276 / §171 election handling, the multi-broker bond consolidation, and the international-bond reference data.

Capability AllInvestView Broker 1099-B TurboTax CSV CPA + Excel
Accrued interest at purchase split from basis
Market discount accretion (Form 8949 code D)
Premium amortization election (§171)
OID accretion schedule (§1272)
Bond ladder visualization, per-rung tax impact
Multi-broker consolidation (Treasuries + corporates)
Coupon income with foreign WHT credit (Form 1116)
Tax-exempt vs taxable interest separation
Constant-yield (YTM) vs straight-line accretion election
Redemption at maturity vs sale before maturity
International bonds (gilts, Bunds, Bonos, OATs, BTPs)
Coupon-strips and zero-coupon (OID)
TIPS inflation adjustments
Output 8949 + Sch B + PDF audit 1099-B / INT / OID TurboTax CSV CPA export

Generic AI dashboards that read accounts via Plaid cannot model bond tax — Plaid returns current balances and recent activity, not the per-lot accrued-interest split, the §1276 accretion schedule, or the §171 election state across multi-year lots that the IRS expects.

International bonds we handle

We carry reference data for the most commonly held non-US sovereign and Eurobond instruments. Coupons translate to USD at the payment-date FX rate. Withholding tax flows to Form 1116 with the applicable treaty rate.

UK gilts

UK "accrued income scheme" follows the same accrued-at-purchase pattern as US Treasuries. GBP coupons translate at payment-date rate. Cross-link: bond investing guide.

German Bunds

German Stueckzinsen works exactly like US accrued interest at purchase. EUR coupons translate at payment-date FX rate. Foreign WHT typically zero on Bunds under the US-DE treaty.

Spanish Bonos / French OATs / Italian BTPs

Eurobond-style coupons with treaty-rate WHT. We hold ISIN-level reference data for the full Iberian and core-EU sovereign curve. WHT credit flows to Form 1116.

Eurobonds via Euroclear

Eurobonds typically arrive on the US 1099 as "unknown" instruments. We carry ISIN reference data for the most common Eurobond issuers so coupons, accrued interest, and disposal land in the right buckets.

Ready to generate your own Form 8949 + Schedule B for bonds?

Free 14-day trial. Read-only broker access. No card to start. Cancel anytime.

Connect your brokers

Frequently asked questions

IRS-cited: §1276 · §171 · §1272 · §1278(b) · Pub 550 · Pub 1212 · Form 1116

Coupon interest goes on Schedule B line 1. Accrued interest paid at purchase offsets the next coupon (it is not added to cost basis). Accrued interest received at sale is also Schedule B line 1. Market discount accreted under IRC §1276 and OID accrued under §1272 flow to Schedule B even without cash. Tax-exempt muni interest goes on Form 1040 line 2a and Schedule B line 2. The Schedule D only sees the capital-gain piece of the bond sale; bonds always touch both forms.

Accrued interest is the daily coupon earned between the last coupon date and sale, taxed as ordinary income. Capital gain is the price movement — the clean-price proceeds minus adjusted basis, net of market-discount and premium adjustments. The buyer reimburses you for accrued interest separately from the clean price, so only the clean price feeds the Form 8949 gain calculation. Our realized gains calculator shows the gain side; the bond tax report adds the interest side.

Yes, annually, without cash. The broker issues Form 1099-OID. Under IRC §1272 the accrued OID for the year is interest income, and basis steps up by the same amount so maturity proceeds do not double-count. STRIPS, Treasury bills over a year, and zero-coupon corporates all follow this rule. Sell early and you need the full constant-yield schedule — we keep it lot-by-lot.

Yes, under IRC §171. The election applies to all current and future taxable bonds you hold and is made by attaching a statement to the year-one return. Amortization reduces both interest income and cost basis each year. The election is essentially irrevocable (IRS consent required to revoke). We model it on a portfolio-wide basis and warn before the year-one statement is filed.

If you buy a bond below adjusted issue price (or face for non-OID bonds), the discount is market discount. Under IRC §1276 you choose: accrue ratably (or by constant-yield method under the §1278(b) election) into interest income each year, or recognize the entire accrued amount as ordinary interest at disposal. Most retail filers default to recognition at disposal. The Form 8949 row carries code D with the accreted amount in column (g).

Code D in column (f) flags an accrued-market-discount adjustment. The accreted discount appears as a negative adjustment in column (g), reducing the long-term capital gain in column (h). The same dollar amount is reported separately as ordinary interest on Schedule B line 1. The mechanics are identical for short-term and long-term lots. Full Form 8949 column-by-column mechanics — Box A–F selection, every code, totals to Schedule D line 16 — in our Form 8949 generator →.

We hold reference data for UK gilts, German Bunds, French OATs, Spanish Bonos, Italian BTPs, and Eurobonds settled through Euroclear. GBP and EUR coupons translate to USD at the payment-date FX rate. The UK accrued income scheme and German Stueckzinsen follow the same accrued-at-purchase pattern as US Treasuries. Foreign withholding tax flows to Form 1116 with the treaty rate applied.

Yes. Tax-exempt muni interest goes on Form 1040 line 2a and Schedule B line 2. It is not federally taxed but is required for the AMT preference calculation, the Social Security taxability formula, and several state tax computations. Interest from private-activity bonds is a specific AMT preference item — flagged separately in the report.

TIPS pay a fixed real coupon on an inflation-adjusted principal balance. Both the coupon and the annual principal accrual are interest income in the year accrued — so-called phantom income, even though only the coupon is paid in cash. The 1099-OID reports both components. Basis steps up by the inflation accrual so the eventual sale or maturity does not double-tax. We mirror this with the running ledger lot-by-lot.

The bond tax report sits inside a wider family of US tax tools. If you also hold equities across multiple brokers, the parent multi-broker tax report consolidates the equity side; Schedule D portfolio tracker handles the parent form; the Form 8949 generator covers Box A–F selection and every adjustment code in detail; and the realized gains calculator answers the "what is my realized gain for period X across all brokers?" question that bonds and equities share.

Disclaimer: This page is informational and educational. It does not constitute tax, legal, or financial advice. AllInvestView is a calculation tool that produces tax reports from your transaction data; it does not replace a qualified tax professional. The §1276 market-discount accrual method (ratable vs constant-yield under §1278(b)), the §171 premium election (essentially irrevocable once made), and AMT preference treatment of private-activity bond interest are areas where the right answer depends on your full return — always review generated reports and consult a CPA for complex situations.

Every bond, every bucket, every broker.

Private by default. Read-only broker access. No AI training on your portfolio. Generate Form 8949 with code D and Schedule B line 1 in minutes.

AllInvestView Team

We are financial engineers and DIY investors building the portfolio tracker we wanted for ourselves. AllInvestView ships a QuantLib bond engine alongside the cross-broker FIFO ledger so a Treasury, a Bund, and a corporate land in the right tax buckets at year end.

Bond tax report Free 14-day trial
Start free