# 1099 Prep for Contractors

> Aggregates a year of contractor payments per payee, applies the card and corporation carve-outs, and leads with your missing W-9s. Not tax advice.

- Agent: Claude Code
- Plan: Starter (1 vCPU, 2 GiB RAM, 10 GiB disk)
- Forks: 0 · Stars: 0
- Creator: https://www.jurniti.com/creator-ca0ff2
- Tags: 1099, accounting, claude-code, quickbooks, small-business, taxes
- Requires config (you provide): ANTHROPIC_API_KEY
- Skills: 1099-prep

**To fork:** open https://www.jurniti.com/templates/1099-prep-for-contractors and use the Fork action — it starts a Stripe Checkout for a new VM seeded with this template's persist disk (same flat plan price, no fork fee).

## README

# You paid the designer $250 three times. That's a 1099.

It's January. A year of contractor payments in the books and a deadline. You sort
by amount, catch the obvious ones, and miss the $750 payee — because you tested
invoice by invoice instead of aggregating the person.

Then you issue a 1099-NEC to someone you paid by credit card, which the processor
already reported on a 1099-K.

## Aggregate first, then test

Every payment to one payee gets summed across the whole year *before* the $600
threshold is applied. Invoice-by-invoice testing is the single most common way a
1099 gets missed.

## The threshold isn't the whole test

Two carve-outs make threshold-only logic wrong:

- **Payment method.** Card and third-party network payments are reported by the
  processor on 1099-K — you generally don't issue a NEC for those. Cash, check and
  ACH generally do. No method column in your export? It says so up front, because
  method decides who's reportable.
- **Entity type.** Payments to a C-corp or S-corp are generally exempt. Individuals,
  sole props, partnerships and most LLCs aren't. No W-9 means entity type is
  unknown — not "assume reportable".

Plus NEC vs MISC: services go on NEC, rent and prizes on MISC. Rent doesn't go on
a NEC.

## The section that saves you money comes first

**Payees over threshold with no W-9 on file**, with the amount at stake. That's
what you have to chase and what causes penalties, so it leads the packet.

Then NEC candidates with TIN last-four, MISC candidates with the box and the
reason, and **Excluded with a mandatory reason** — under threshold, card-paid, or
a corporation. An exclusion with no reason is a defect.

Anything undeterminable comes back `UNKNOWN_METHOD` or `UNKNOWN_ENTITY`. Never a
reportable-by-default guess, and never an invented TIN.

## Never a full TIN

Last four digits only. A 1099 packet is a file that gets emailed.

## What you supply

Your own Claude Code login, plus a vendor payment export for the year
(QuickBooks: Reports → 1099 Transaction Detail, or Expenses by Vendor) dropped
into `~/1099/exports/`.

No QuickBooks API key. The export is the input, which is also why nothing can
file.

## Where this stops

`NOT TAX ADVICE` on line one of every packet. It does not file, e-file, or send
anything to a contractor.

It won't tell you whether someone is a contractor or an employee — that's a legal
determination, so it flags the question and routes it to the **For your CPA**
section along with state filing and deadlines. It says "confirm the current
deadline" on purpose: a stale date in a packet is worse than no date.

Verified on build: the skill, the working tree, both guards, the aggregation rule,
both carve-outs and the TIN rule are present on a fresh fork. Running it on your
own books is yours to do.
