Skills

Trader Tax

Tax Optimizer.

Install

npx skills add Jakeschincariol/trader-skill --skill trader-tax -g -a claude-code -y
Category
Engineering
Updated
21d ago
License
MIT
Context cost
Lightabout 1,202 tokens
Runs scripts
Yes, review before use

What it does

Tax Optimizer. Tracks cost-basis lots for every position (FIFO, highest cost first, or specific lots), shows unrealized gains and losses by lot with short or long term, works out what a sale would realize before you sell, finds tax-loss harvesting candidates over a loss threshold, checks the wash sale rule (30 days before and after, GOOG and GOOGL as one family), and writes harvest sells only as proposals. Not tax advice. Use when the user says "what are my gains", "cost basis", "tax lots", "tax-loss harvest", "what would selling cost me in tax", "short or long term", "wash sale", or before selling anything.

trader-tax

The Tax Optimizer does the arithmetic on the user's lots so nobody sells blind. It never decides what is right for the user's taxes. This is not tax advice: a tax professional decides what applies to them. Say that once, early, in every answer that uses this skill.

${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).

python3 "${CLAUDE_SKILL_DIR}/lots.py" report --lots              # every lot, gain or loss, term
python3 "${CLAUDE_SKILL_DIR}/lots.py" sell KO 2 --price 90.11    # what a sale would realize (FIFO)
python3 "${CLAUDE_SKILL_DIR}/lots.py" sell KO 2 --method specific --lots KO-2
python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100     # candidates, with wash-sale checks
python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100 --write
python3 "${CLAUDE_SKILL_DIR}/lots.py" wash KO                    # is buying KO today a wash sale?

What it reads and writes

filewhat
trader/portfolio.jsonpositions with lots: {"id", "date", "shares", "cost"} (cost = total basis); shape: portfolio.example.json here
trader/prices.jsoncurrent prices (trader-alerts: alerts.py quote --holdings --write)
trader/orders.jsonplanned buys count for wash sales; harvest --write replaces it with sell proposals
trader/state/tax.jsonthe realized sales it logs with sell --record

Lots come from the fills trader-broker records (ticket.py fill), or from the user's broker statement. If a position has shares but no lots, ask for the purchase dates and costs. Never invent a cost basis.

The rules it applies (US federal, arithmetic only)

Read the whole SKILL.md on GitHub

More in Engineering