Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Check My Sales Tax Nexus

ASecurity

See where you owe sales tax. I total revenue and transaction counts per US state from Stripe (or QuickBooks / Xero / invoices as fallback), compare each state's totals against its economic-nexus threshold for the quarter and trailing 12 months, pinpoint the month each crossed state was triggered, and flag physical-nexus states (W-2 employees, offices, inventory / FBA). I rank exposure highest-dollar first and call out the closest pre-crossing states as early warnings. I prep — you register an...

113 stars
0 votes
0 copies
0 views
Added 9/19/2026
businessgo

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add gethouston/houston --skill check-my-sales-tax-nexus --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Check My Sales Tax Nexus?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Check My Sales Tax Nexus
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gethouston-check-my-sales-tax-nexus/badge)](https://www.skillsdirectory.com/skills/gethouston-check-my-sales-tax-nexus)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: check-my-sales-tax-nexus
description: "See where you owe sales tax. I total revenue and transaction counts per US state from Stripe (or QuickBooks / Xero / invoices as fallback), compare each state's totals against its economic-nexus threshold for the quarter and trailing 12 months, pinpoint the month each crossed state was triggered, and flag physical-nexus states (W-2 employees, offices, inventory / FBA). I rank exposure highest-dollar first and call out the closest pre-crossing states as early warnings. I prep — you register and remit through Avalara, TaxJar, or the state portal directly."
version: 1
category: Bookkeeping
featured: no
image: ledger
integrations: [stripe, quickbooks, xero]
x_houston:
  created_by: houston
  skill_schema: 1
---


# Check My Sales Tax Nexus

State-by-state economic-nexus check. I total revenue and transactions per US state for the period, compare against each state's threshold, pinpoint the crossing month, and flag physical-nexus triggers (employees, offices, inventory) regardless of revenue. Exposure is ranked highest-dollar first; the three closest pre-crossing states show up as early warnings. I never register and I never remit.

## When to use

- "where do we owe sales tax" / "nexus check" / "sales-tax exposure by state".
- Quarterly  -  end of fiscal quarter.
- Company cross round-number revenue mark ($500K, $1M, $5M) or add employees in new state.

## Connections I need

I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing → I name the category, ask you to connect it from the Integrations tab, stop.

- **Stripe** (billing) — required to pull charges with billing / shipping state for revenue-by-state aggregation. Required if Stripe is your primary contract source.
- **QuickBooks Online or Xero** (accounting) — pulls invoice / customer state tags as a fallback or supplement to Stripe. Optional.

If none of the required categories are connected I stop and ask you to connect Stripe first, since most startups invoice through it.

## Information I need

I read your bookkeeping context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app > file drop > URL > paste) and wait.

- **Your company's home state** — Required. Why: physical-nexus baseline; you owe sales tax there regardless of revenue. If missing I ask: "What state is the company headquartered or incorporated in?"
- **How you bill customers and where contracts live** — Required. Why: drives the source I use for revenue-by-state. If missing I ask: "How do you invoice customers, mostly through Stripe, through QuickBooks or Xero, or somewhere else?"
- **States you already collect or file sales tax in** — Optional. Why: lets me mark already-registered states as "no action" instead of "new exposure." If missing I ask: "Are you already registered to collect sales tax anywhere? If you don't have it I keep going and flag every crossing as new."
- **Where your employees physically work** — Optional. Why: any W-2 employee in a state creates physical nexus regardless of revenue. If missing I ask: "Do you have employees working in states besides the headquarters state? If you don't have it I note it as TBD and call out physical-nexus checks for the user to confirm."

## Steps
<!-- houston-workflow:v1 -->

1. **Read context.** Load `context/bookkeeping-context.md`, `config/context-ledger.json`, `config/chart-of-accounts.json`. Required ledger: `universal.company.state`, `domains.revenue.contractSource`, `domains.tax.stateFilingFootprint`. SaaS taxability vary by state  -  compute exposure regardless of taxability posture.

2. **Determine period.** Use user `{YYYY-QN}` if given; else most recent completed fiscal quarter. Also report trailing 12-month rolling view (most state thresholds measure this).

3. **Pull revenue by ship-to state.** Source priority:
   a. **Stripe via Composio.** `composio search billing` → discover Stripe slug → pull charges in period with customer billing / shipping state. SaaS use billing address; shipped goods use ship-to. Fall back to card country + postal code if address missing.
   b. **Invoices (CSV / paste).** User provides invoice-level data with state, amount, date, customer id.
   c. **Accounting system via Composio.** QuickBooks Online / Xero customer list with state tags.
   None available → stop, ask for source. Never invent state attributions.

4. **Aggregate per state.** Sum revenue; count distinct transactions (thresholds use "separate transactions"  -  multi-line invoice = one; monthly subscription = 12 per year per customer).

5. **Compare against economic-nexus thresholds.** Use reference table (re-check current DOR guidance if cached date on ledger > 12 months old):

   | State | Threshold (OR unless noted) |
   |---|---|
   | CA | $500K revenue (no transaction count) |
   | NY | $500K revenue AND 100 transactions (both) |
   | TX | $500K revenue (no transaction count) |
   | FL | $100K revenue (no transaction count) |
   | IL | $100K OR 200 transactions |
   | MA | $100K (no transaction count) |
   | WA | $100K (no transaction count) |
   | CO | $100K (no transaction count) |
   | GA | $100K OR 200 transactions |
   | NC | $100K OR 200 transactions |
   | PA | $100K (no transaction count) |
   | OH | $100K OR 200 transactions |
   | VA | $100K OR 200 transactions |
   | MI | $100K OR 200 transactions |
   | NJ | $100K OR 200 transactions |
   | Default (all others) | $100K OR 200 transactions |

   "OR" states: cross either = nexus. "AND" states (NY): must cross both. Most measure over trailing 12 months or prior calendar year  -  note which per row.

6. **Crossing date.** For each crossed state, walk cumulative revenue + transactions month by month. Pinpoint crossing month. Most states give 30–60 day grace period to register.

7. **Physical-nexus flags.** Regardless of economic threshold:
   - Employees working in state (per `domains.payroll` / HR system  -  ask if not captured). Any W-2 employee = physical nexus.
   - Offices / leased space.
   - Inventory (including FBA warehouses).
   - Contractors: generally do NOT create nexus (1099s don't count), but some states (e.g., TX) take aggressive positions  -  flag, don't auto-conclude.
   Physical nexus require registration regardless of revenue.

8. **Rank by exposure.** Sort crossed states by cumulative revenue (descending). Each row: state; revenue in period + rolling 12m; transactions in period + rolling 12m; threshold applied; date crossed; physical-nexus flag; cumulative exposure; next action ("Register via Avalara / TaxJar / direct DOR portal" / "Engage SALT advisor" / "Already registered per `stateFilingFootprint`" / "Monitor  -  below").

9. **Write `compliance/sales-tax/{YYYY-QN}.md`.** Atomic write. Structure:
   - **Summary**  -  states crossed, physical-nexus count, total exposed revenue, already-registered vs. new crossings.
   - **Crossed states**  -  table ranked by exposure.
   - **Physical-nexus-only**  -  states with physical presence but below economic threshold.
   - **Not crossed**  -  one-liner showing 3 closest to threshold (early warning).
   - **Taxability note**  -  remind user SaaS taxability varies by state; crossing threshold ≠ every sale taxable. Need DOR guidance on specific product  -  judgment call for SALT advisor.
   - **Filing note**  -  "Prep only. Registration via Avalara / TaxJar / direct state portals. Remittance / filing is on you."

10. **Append to `outputs.json`.** Row: `{type: "sales-tax-nexus", title: "Sales-tax nexus {YYYY-QN}", summary, path, status: "draft", domain: "compliance"}`. Read-merge-write.

11. **Summarize to user.** One paragraph: # states newly crossed, total exposure, top-3 by risk, physical-nexus flags, next move per crossed state. Never register, never remit.

## Outputs

- `compliance/sales-tax/{YYYY-QN}.md` (indexed as `sales-tax-nexus`)

Attribution

gethoustongethouston
View sourceMore from gethouston →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes
View all in business →