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
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
| Security | US Treasury 4.50%, matures 2026-10-15 |
| Face | $10,000.00 |
| Coupons | Feb 15 & Aug 15 (actual/actual ICMA) |
| Purchase | 2023-10-15 at clean price $9,800.00 (98.00) |
| Sale | 2024-10-16 at clean price $10,050.00 (100.50) — LT satisfied (367 days) |
| Remaining life at purchase | 3 years |
| Market-discount election | Ratable, 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
| Date | Gross coupon | Offset (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
| Bucket | Amount | Destination |
|---|---|---|
| Coupon interest (net of accrued-at-purchase) | $375.41 | Sch B line 1 |
| Accrued interest received at sale | $75.82 | Sch B line 1 |
| Market discount accreted (§1276) | $66.67 | Sch B line 1 + Form 8949 code D, (g) |
| Total interest / ordinary income | $517.90 | |
| Long-term capital gain | $183.33 | Form 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.
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.
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.
Related tax tools
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.