The Kiddie Tax: Tracking UTMA/UGMA Investment Income in Beancount

If you’re saving for your kids in custodial accounts (UTMA/UGMA), you need to understand the Kiddie Tax - and track it properly to avoid surprises.

2026 Kiddie Tax Thresholds

Income Level Tax Treatment
First $1,350 Tax-free
Next $1,350 Child’s rate (10%)
Over $2,700 Parent’s marginal rate (up to 37%!)

This applies to children under 19, or full-time students under 24 who are dependents.

My Beancount Structure for Custodial Accounts

; Track each child's custodial account separately
2020-01-01 open Assets:Custodial:UTMA:Child1 USD
2020-01-01 open Assets:Custodial:UTMA:Child1:VTSAX VTSAX
2020-01-01 open Income:Investment:Child1:Dividends USD
2020-01-01 open Income:Investment:Child1:Interest USD
2020-01-01 open Income:Investment:Child1:CapGains USD

; Parent info for kiddie tax calculation
2020-01-01 custom "kiddie-tax-info" "Child1"
  child-name: "Emma"
  child-dob: 2015-03-20
  parent-marginal-rate: 0.32

Recording Investment Income

2026-06-15 * "Vanguard" "VTSAX dividend - Child1 UTMA"
  Assets:Custodial:UTMA:Child1    125.00 USD
  Income:Investment:Child1:Dividends    -125.00 USD
    account-type: "UTMA"
    unearned-income: TRUE
    kiddie-tax-eligible: TRUE

Annual Kiddie Tax Calculator Query

SELECT 
  sum(position) as total_unearned_income,
  CASE 
    WHEN sum(position) <= 1350 THEN 0
    WHEN sum(position) <= 2700 THEN (sum(position) - 1350) * 0.10
    ELSE 135 + (sum(position) - 2700) * 0.32
  END as estimated_tax
WHERE account ~ 'Income:Investment:Child1'
  AND year = 2026

Questions:

  1. How do you handle multiple children with different accounts?
  2. Anyone automating the Form 8615 calculation from Beancount data?

I have two kids with UTMA accounts, so I’ve developed a multi-child tracking approach.

Separate Ledger Files Per Child

; main.beancount
include "children/emma.beancount"
include "children/jacob.beancount"

Each child file contains their accounts and income sources. This makes tax time easier since each child potentially files their own return.

Tax-Efficient Investment Selection

To minimize kiddie tax, I focus on:

  1. Growth stocks (no dividends until sold)
  2. Tax-exempt muni bond funds (income not subject to kiddie tax)
  3. Index funds with low turnover (fewer capital gains distributions)
; Tax-efficient holding for child
2026-01-15 * "Vanguard" "Buy growth ETF for Emma's UTMA"
  Assets:Custodial:UTMA:Emma:VUG    50 VUG @ 350.00 USD
  Assets:Custodial:UTMA:Emma:Cash    -17500.00 USD
    strategy: "growth-no-dividend"
    kiddie-tax-consideration: "minimal unearned income"

Harvesting Losses Before 18

Here’s a strategy: if a child has gains during the year, harvest losses to offset them and stay under the $2,700 threshold:

2026-11-15 * "Vanguard" "Tax loss harvest - Emma UTMA"
  Assets:Custodial:UTMA:Emma:Cash    4500.00 USD
  Assets:Custodial:UTMA:Emma:VTI    -30 VTI {180.00 USD}
  Income:Investment:Emma:CapGains    900.00 USD
    purpose: "offset gains to stay under kiddie tax threshold"

By year-end, you can manage the unearned income to stay under $1,350 (no tax) or at least under $2,700 (child’s rate only).

Filing requirements are where many families get tripped up. Here’s the decision tree:

Does Your Child Need to File?

For 2026, a dependent child must file if:

  • Unearned income > $1,350, OR
  • Earned income > $14,600 (standard deduction), OR
  • Gross income > larger of $1,350 or earned income + $450

Form 8615 vs Form 8814

You have two options:

Form 8615 (Child’s return): Child files own return with Form 8615 attached

  • Required if unearned income > $2,700
  • More complex but sometimes better if child has earned income

Form 8814 (Parent’s return): Include child’s income on your return

  • Only for children under 19 (or under 24 if student)
  • Only if unearned income is between $1,350 and $13,500
  • Only if income is interest and dividends only (no cap gains!)
; Track which filing method to use
2026-12-31 custom "filing-requirement" "Emma"
  unearned-income: 2100.00
  earned-income: 0.00
  filing-method: "Form 8814"
  reason: "Interest/dividends only, under $13,500"

Important: I Bonds Strategy

Series I Bond interest can be deferred until redemption. For children’s accounts, consider I Bonds to control when the unearned income is recognized - ideally after they turn 19!

My kids are now 17 and 20, so I’ve been through the full kiddie tax lifecycle. Here’s what I wish I knew earlier:

The Age 18/19 Transition

When your child turns 19 (or 24 if student), kiddie tax ends. Plan for this!

; Track when kiddie tax ends
2020-01-01 custom "kiddie-tax-timeline" "Emma"
  dob: 2008-06-15
  kiddie-tax-ends: 2027-01-01  ; turning 19 in 2027
  student-extension-possible: TRUE
  
; Year before kiddie tax ends - consider recognizing gains
2026-11-01 note Assets:Custodial:UTMA:Emma "Review: harvest gains next year when kiddie tax expires"

UTMA vs 529: The Kiddie Tax Factor

I actually moved some money OUT of UTMA into 529 when my kids were young specifically to avoid kiddie tax. The 529 grows tax-deferred and distributions for education are tax-free.

The “Magic” Query

Every November, I run this to plan year-end moves:

SELECT 
  account,
  sum(position) as ytd_unearned_income,
  1350 - sum(position) as room_to_threshold,
  2700 - sum(position) as room_to_parent_rate
WHERE account ~ 'Income:Investment:.*Child'
  AND year = 2026
GROUP BY account

This tells me exactly how much room each child has before hitting the thresholds. If there’s room, I might realize some gains intentionally; if not, I hold off until January.