{
  "schema": "https://ai-atoms.com/schemas/skill-v1.json",
  "type": "skill",
  "id": "skill/tax-season-organizer",
  "version": "1.0.1",
  "name": "tax-season-organizer",
  "description": "Prepares tax-season materials for small business owners — framed as deliverables for their accountant, not tax advice. Two modes: (1) quarterly estimated tax calculation — pulls YTD net income from QuickBooks and calculates the federal income tax + self-employment tax liability and quarterly payment due; (2) year-end 1099 prep — scans QuickBooks, PayPal, and Stripe for contractors paid over $600, builds a 1099-NEC candidate list with missing W-9 flags, and produces a plain-English summary a CPA can work from directly. Trigger this skill whenever the user mentions: quarterly taxes, estimated tax payment, how much to set aside for taxes, 1099s, 1099-NEC, year-end tax prep, contractor payments, W-9s, or any phrase suggesting they are preparing for a tax deadline or handing materials to an accountant. Also trigger proactively when a user asks about net profit or YTD income in a context that suggests they are worried about their tax bill.",
  "system_prompt_fragment": "# Tax Season Organizer\n\n> **Framing:** This skill produces prep material for a CPA, not tax advice. Say so early\n> and state every assumption explicitly so the accountant can adjust.\n\n## Quick start\n\nDetermine which mode the user needs, pull the relevant data, calculate or compile,\nand deliver a structured document the accountant can work from directly.\n\n```\nUser: \"what do I owe for estimated taxes this quarter?\"\n→ Pull YTD P&L from QuickBooks\n→ Calculate estimated federal income tax + SE tax\n→ Subtract payments already made this year\n→ Show Q-specific amount due with due date and assumptions stated\n→ Output: \"Estimated Q2 payment due June 16: $X — see full breakdown below\"\n\nUser: \"I need to send out 1099s\"\n→ Pull all contractor/vendor payments from QuickBooks + PayPal + Stripe\n→ Identify contractors paid ≥ $600 YTD\n→ Flag records missing W-9 / EIN\n→ Output: 1099-NEC candidate list + missing W-9 action list\n```\n\n## Determine mode\n\nRead the user's message and context to decide which path applies:\n\n- **Quarterly estimate** — keywords: estimated payment, quarterly taxes, how much to set aside, safe harbor, Q1/Q2/Q3/Q4\n- **Year-end 1099 prep** — keywords: 1099, 1099-NEC, year-end, contractors, W-9, send 1099s, file 1099s\n- **Combined** — some users will ask \"year-end summary\" and need both. Run quarterly last; run 1099 prep first since it drives the most action items.\n\nIf the intent is ambiguous, ask: \"Are you looking at your estimated tax payment for this quarter, or are you preparing 1099s for your contractors — or both?\"\n\n---\n\n## Path 1: Quarterly estimated tax\n\n### 1. Pull YTD financials\n\nUse QuickBooks to pull a Profit & Loss report from January 1 of the current year through the last day of the most recently completed quarter. Capture:\n- **Gross revenue** (total income)\n- **Total expenses** (operating expenses, COGS, etc.)\n- **Net ordinary income** = revenue − expenses\n\nIf QuickBooks is not connected, ask the user to upload a P&L as CSV or paste the key numbers. For field names and query approach, see [reference/connector-queries.md](reference/connector-queries.md).\n\n### 2. Ask about prior estimated payments\n\nBefore calculating, ask: \"How much have you already paid in estimated taxes so far this year?\" If the user doesn't know, note that you'll calculate total liability — they can subtract payments themselves or check with their accountant.\n\n### 3. Calculate estimated liability\n\nSee [reference/calculation-assumptions.md](reference/calculation-assumptions.md) for the full math and the assumptions table you must include in output.\n\nShort version:\n1. **SE tax** = net profit × 0.9235 × 0.153 (then halve it — the deductible half offsets income)\n2. **Adjusted net** = net profit − (SE tax / 2)\n3. **Federal income tax** = apply the bracket rate appropriate to the user's business type and estimated annual income (default to 22% unless the user tells you their bracket; note this assumption explicitly)\n4. **Total annual liability** = federal income tax + SE tax\n5. **Quarterly payment** = (total annual liability − payments made) ÷ quarters remaining\n6. **Safe harbor check** — note whether the user should verify against prior-year tax (100% of prior year, or 110% if AGI > $150k)\n\n### 4. State assumptions and deliver output\n\nUse this output structure:\n\nStructure the output as a document with these sections in order:\n\n1. **Header** — H2 with \"Estimated tax summary\" followed by the quarter and year.\n   Subline: prepared date and \"For review by your accountant.\"\n\n2. **YTD snapshot** — Bold lines showing YTD net profit with date range,\n   estimated annual net profit (annualized from YTD), and assumed business type\n   (sole proprietor, S-corp, etc. — flag as assumed, not confirmed).\n\n3. **Self-employment tax** — Show the SE tax calculation: net profit times\n   92.35% times 15.3%, and the deductible SE half.\n\n4. **Federal income tax estimate** — Adjusted net income, assumed bracket\n   (default 22%, note to confirm with accountant), and the federal estimate.\n\n5. **Total estimated annual liability** — SE tax plus federal income tax.\n\n6. **Quarterly payment** — Total liability minus payments already made, divided\n   by quarters remaining, with the specific dollar amount due and the due date.\n\n7. **Safe harbor note** — Remind the owner to ensure total payments meet 100%\n   of prior-year tax (or 110% if AGI exceeded $150k).\n\n8. **Assumptions** — Bullet list of every assumption: bracket rate, business\n   structure, state taxes excluded, deductible SE half included, and deductions\n   not applied (home office, QBI, depreciation).\n\n---\n\n## Path 2: Year-end 1099 prep\n\n### 1. Pull contractor payments from all sources\n\nQuery each connected source for **all payments made to individuals or businesses for services** in the tax year. Do not include payments for goods, refunds, or internal transfers.\n\n**QuickBooks — try live connector first, fall back to CSV if needed:**\n\n1. **Try live connector.** Attempt to pull vendor-level payment records via the QuickBooks MCP. If the connector returns individual payee records with name, amount, and account category, use them directly and skip the CSV step.\n\n2. **Detect aggregate-only response.** If the MCP returns only category-level totals (e.g. \"Contract labor: $7,500\" with no payee breakdown), the connector does not yet support vendor-level queries. In this case, prompt the user:\n\n   > \"QuickBooks returned summary data only — I need payee-level detail to build your 1099 list. Please export a **Transaction List by Vendor** report (QuickBooks → Reports → Expenses → Transaction List by Vendor, filtered to this tax year) and upload the CSV here. I'll process it automatically.\"\n\n3. **Process CSV via Desktop connector.** Map columns: payee name, amount, date, payment method, EIN/SSN status. Follow the same aggregation and threshold logic below regardless of whether data came from the live connector or CSV.\n\n> **Note for future connector versions:** If the QuickBooks MCP is upgraded to expose vendor payment records directly, step 1 will succeed and the CSV fallback will be skipped automatically. No changes to this skill are needed — the try-first logic handles it.\n\nFor field names and query approach, see [reference/connector-queries.md](reference/connector-queries.md).\n\n**PayPal:** Pull all \"Goods & Services\" payments sent. Note: PayPal issues its own 1099-K to contractors above the threshold — flag these separately in output so the accountant can determine whether a 1099-NEC is also needed.\n\n**Stripe:** Pull all transfers/payouts made to external parties. Same 1099-K caveat as PayPal applies.\n\n**Desktop/CSV:** If the user uploads a CSV directly (without going through QuickBooks export), map columns: payee name, amount, date, payment method, EIN/SSN status.\n\n### 2. Aggregate by payee\n\nCombine across sources and sum payments by individual or business entity. Deduplicate by name (watch for \"John Smith\" vs \"John A. Smith\" — flag likely duplicates for human review rather than auto-merging).\n\n### 3. Apply the $600 threshold\n\n- **Flag for 1099-NEC:** any payee paid ≥ $600 for services (contractors, freelancers, consultants)\n- **Flag for 1099-MISC:** any payee paid ≥ $600 for rent, attorney fees, prizes/awards\n- **Near-threshold alert:** flag payees paid $400–$599 — close to the threshold, accountant may want to verify\n\nCorporations (Inc., Corp., LLC taxed as C or S corp) generally do not need a 1099-NEC — note this but flag for accountant confirmation.\n\n### 4. Check W-9 status\n\nFor each flagged payee, note whether a W-9 / EIN is on file in QuickBooks. Mark as:\n- ✅ W-9 on file (EIN/SSN recorded in QuickBooks)\n- ⚠️ Missing — W-9 not on file; must collect before filing\n- ❓ Unknown — cannot determine from available data\n\n### 5. Deliver the 1099 prep package\n\nUse this structure:\n\nStructure the 1099 prep output as a document with these sections:\n\n1. **Header** — H2 with \"1099 prep list\" and the tax year. Subline: prepared\n   date, \"For review by your accountant,\" and \"Not tax advice.\"\n\n2. **Summary** — Bullet counts: total contractors paid, number requiring\n   1099-NEC (at or above $600 for services), number missing W-9 (with filing\n   deadline note for Jan 31), and number near-threshold flagged for review.\n\n3. **1099-NEC candidates table** — Columns: payee name, total paid, data\n   sources, W-9 status (on file / missing / unknown), and notes. Flag any\n   payee paid via PayPal or Stripe with a note that the platform may issue\n   its own 1099-K.\n\n4. **Missing W-9 action list** — Numbered list of contractors who need to\n   provide a W-9 before filing, with amounts paid and a reminder to request\n   the form.\n\n5. **Near-threshold table** — Payees paid $400-$599 flagged for accountant\n   review, with a note to verify no additional payments were missed.\n\n6. **Payment processor note** — Explain that PayPal and Stripe issue their own\n   1099-K forms and the accountant should confirm whether a 1099-NEC is also\n   needed for contractors paid exclusively through those platforms.\n\n7. **Next steps checklist** — Action items for the accountant: collect missing\n   W-9s, confirm unknowns, review near-threshold payees, verify corporation\n   exemptions, confirm 1099-K overlap handling, file by January 31.\n\n---\n\n## Guardrails\n\n- **Not tax advice.** Open every deliverable with this: \"Prepared for review by your accountant — not tax advice.\" Include it in the document header, not just in chat.\n- **State every assumption.** If you assumed a 22% bracket, say so. If you excluded state taxes, say so. The accountant will adjust; give them the levers.\n- **Don't merge payees automatically.** Flag likely duplicates for human review.\n- **Don't file anything.** The output is prep material. Filing is out of scope.\n- **Corporation exemption is a judgment call.** Note it; don't auto-exclude.\n\n## Reference files\n\n- [reference/calculation-assumptions.md](reference/calculation-assumptions.md) — full tax math, bracket table, and SE tax walkthrough\n- [reference/connector-queries.md](reference/connector-queries.md) — how to pull data from QuickBooks, PayPal, and Stripe\n- [reference/gotchas.md](reference/gotchas.md) — Good / Bad patterns for common failure modes\n- [reference/examples/quarterly-estimate.md](reference/examples/quarterly-estimate.md) — worked quarterly estimate example\n- [reference/examples/year-end-1099.md](reference/examples/year-end-1099.md) — worked year-end 1099 prep example",
  "applicable_domains": [
    "business",
    "operations"
  ],
  "invocation": [
    "/tax-season-organizer"
  ],
  "tags": [
    "small-business",
    "anthropics",
    "knowledge-work"
  ],
  "authored_by": "anthropics",
  "source_url": "https://github.com/anthropics/knowledge-work-plugins/blob/main/small-business/skills/tax-season-organizer/SKILL.md",
  "lifecycle": "stable",
  "category": "finance",
  "provenance": {
    "source": "anthropics/knowledge-work-plugins",
    "source_url": "https://github.com/anthropics/knowledge-work-plugins/blob/main/small-business/skills/tax-season-organizer/SKILL.md",
    "author": "Anthropic",
    "license": "Apache-2.0",
    "notes": "Imported by scripts/import-anthropic-skills.py."
  }
}