Sample output from the Economic Nexus Threshold Analysis prompt in the Sonar AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library
Confidential · Internal

Economic Nexus Threshold Analysis

Rolling sales and transaction counts by destination state, measured the way each state actually measures them, against every state's economic-nexus threshold — where we have crossed, where we are approaching, where we are registered without cause, and where we are selling without registration.

As of Thursday, 4 September 2026 Source NetSuite production account (SuiteQL, live) Threshold reference Sales Tax Institute chart, as of 8/1/2026 Prepared by Sonar AI for Tim Dietrich

Executive summary

1,772 taxable-sales documents (invoices + cash sales) shipped to 15 states in the last 24 months were evaluated. All figures exclude 69 future-dated documents ($98.9K) that exist in the account (see flags).

Sales, trailing 12 mo
$1.75M
1,101 documents · 15 states · ex-tax
Registered nexuses
18
per subsidiary (Sub 1 & Sub 2); 6 with zero sales
Thresholds crossed
4
CA · NY · MA · KY — all registered & collecting
Approaching (≥70%)
3
CO 94% · IL 90% · IN 74–95% — all registered
Unregistered exposure
$0.8K
VA · ND (+ NM future-dated) — 3 cash sales, far below thresholds
Unattributable sales
$33.8K
2 untaxed invoices with no ship-to address
Bottom line. The registration footprint is ahead of the sales footprint: every state where an economic-nexus threshold has been crossed or is within reach is already registered and collecting. The material risks are operational, not statutory — untaxed and unattributable documents in registered states, single-customer concentration that can trip a threshold with one order (Colorado has $5,630 of headroom), six dormant registrations that still carry filing obligations, and no tax registration numbers recorded in NetSuite for any of the 38 subsidiary-nexus rows.

Key findings

1

Massachusetts & Kentucky: economic nexus established — compliant

No physical presence in either state. MA gross sales $292.8K (CY2025) / $181.6K (CY2026 YTD) vs. $100K; KY $178.8K (CY2025) vs. $100K. Both registered (nexus 11, 12), tax collected T12: MA $21.1K, KY $9.2K. KY's 2025 crossing carries the obligation through all of 2026 even though 2026 YTD ($91.4K) is under $100K.

2

California & New York: physical nexus, and economic thresholds within reach

CA (stores, LA DC, 3PL, 22 employees) is at 94% of its $500K calendar-year test and will cross in September at the current $78K/month pace. NY (Manhattan store) is at 82% of $500K over the preceding four sales-tax quarters with 282 sales (>100 test met). Registration status is unaffected — physical presence already requires it.

3

Colorado, Indiana, Illinois approaching — one order from crossing in CO

CO: a single $94,370 invoice (Mar 2026) sits at 94% of the $100K retail-sales test. IN: $74.3K CY2026 YTD (74%), $95.0K trailing-12 (95%); at the trailing-3-month pace it crosses ~Nov 2026. IL: $90.0K trailing-12 (90%) — but the Chicago DC creates physical nexus regardless. All three are registered and collecting, so crossing changes nothing except that filing frequency may step up.

4

$33,768 of untaxed invoices with no shipping address

INV762 and INV763 (Macgruber Incorporated, 2026-08-27, $16,884 each) have no ship-to or bill-to address, zero tax, and defaulted to the California nexus. They cannot be attributed to any state — if delivered into MA, KY, or another registered state they are under-collected. Highest-priority fix.

5

Illinois: half of documents carry zero tax despite registration and a DC in the state

66 of 133 trailing-12 IL documents ($10.8K, mostly cash sales) have taxtotal = 0. IL retailers with in-state presence must collect on Illinois deliveries. Either these are legitimately exempt (resale/exempt customers should have certificates on file) or a tax code is missing on the cash-sale form.

6

Six registered states with zero sales in 24 months

PA, NJ, NC, MO, MN, AK are configured as nexuses on both operating subsidiaries but have had no invoices or cash sales shipped to them. PA has a resident employee (physical nexus — registration is correct). The other five generate zero-return filing obligations and should be confirmed (trailing nexus, trade-show presence) or scheduled for de-registration.

7

Threshold exposure hinges on single customers

KY (Jones Manufacturing, 100%), IN (Recreational Outfitters, 100%), CO (Red Rivers Consulting, 100%) and MI (Blockster Inc., 100%) trailing-12 sales come from one account each. Threshold tests are volatile — one purchase order changes the answer. Michigan ($52.8K CY2026) is measured on the previous calendar year only, so no MI obligation exists for 2026 on economic grounds; collection there is voluntary-by-registration.

8

Unregistered states: three trivial untaxed cash sales

VA $699.97 (Aug 2026), ND $143.99 (Sep 2026), NM $691.99 (dated 2026-09-12, i.e. in the future). No registration, no collection, and each is <1% of the state's $100K test — correct treatment today, but these are the first out-of-footprint consumer shipments in the dataset and worth watching if eCommerce expands.

Nexus status map

Tile-grid map of the 50 states + DC. Hover a tile for the state's test, our figure, and status. Colour = status against the state's own measurement window.

Threshold crossed · registered
Threshold crossed · not registered (none)
Approaching (≥70%) · registered
Below threshold · registered
Sales, below threshold · not registered
Registered · no sales (dormant)
No sales · not registered
No state sales tax
◆ marks physical presence (location or resident employee)

Threshold dashboard — states with activity or registration

"Our figure" is measured over the state's own lookback window (e.g. NY = preceding four sales-tax quarters Sep 2025–Aug 2026; CT = 12 months ending Sep 30; IL/TX = preceding 12 months; most others = previous or current calendar year, whichever is higher). Sales = document total less tax, ex-future-dated. Sparkline = monthly sales Sep 2025 → Sep 2026 (partial).

StateStatusRegisteredPhysicalThreshold rule (window · basis)Our figureDocs% of testTrend (13 mo)Tax collected T12Customers T12

Both-conditions states (NY, CT) show the binding ratio (the lower of sales % and transactions %). Either/or states show the higher. Physical-presence states owe registration regardless of the economic test; their % is informational.

Runway to threshold

For states within reach: headroom remaining in the operative window, the trailing-3-month run-rate (Jun–Aug 2026, full months), and the implied crossing month. Run-rate projections are indicative — several of these states are single-customer.

Colorado 94% · registered

$5,630 headroom
$100,000 retail sales · previous or current calendar year
CY2026 to date
$94,370 / 1 doc
CY2025
$0
Run-rate (3 mo)
$0 / mo
Customer
Red Rivers Consulting (Sub 2)
Tax collected
$8,535.76
One additional order of any size ≥ $5,630 establishes economic nexus. Registration (nexus 18) is already in place and tax is being collected, so the effect is to make the obligation mandatory rather than voluntary; CO also requires destination-sourced local taxes — confirm the tax engine is applying city/county rates for Boulder (80302).

Indiana 74% CY · 95% T12

$25,654 headroom (CY)
$100,000 gross sales · current or preceding calendar year
CY2026 to date
$74,346 / 9 docs
CY2025
$51,217 / 11
Trailing 12 mo
$94,998 / 13
Run-rate (3 mo)
$9,742 / mo
Sep 2026 to date
$22,687
Customer
Recreational Outfitters (Sub 2)
Implied crossing ≈ November 2026 at run-rate; the $22.7K already booked in September suggests sooner. Registered (nexus 13) and collecting ($6,650 T12). No action beyond monitoring.

Illinois 90% · physical ◆

$10,030 headroom
$100,000 retail sales · preceding 12 months, reviewed quarterly (200-txn test repealed 1/1/2026)
Trailing 12 mo
$89,970 / 133 docs
12 mo to Jun 30
$84,653 / 129
Run-rate (3 mo)
$12,828 / mo
Customers T12
13
Untaxed docs T12
66 ($10,792)
Moot for registration: the Chicago Distribution Center (location 8) and a resident employee create physical nexus. The real IL issue is the 66 untaxed documents (finding 5).

California 94% CY · physical ◆

$31,231 headroom (CY)
$500,000 gross TPP sales · preceding or current calendar year
CY2026 to date
$468,769 / 313 docs
Trailing 12 mo
$560,928 / 452
Run-rate (3 mo)
$78,408 / mo
Customers T12
49
Tax collected T12
$52,753
Crosses in September 2026. Home state — SF store, LA DC, Santa Ana 3PL, 22 employees. Registered on all four subsidiaries (Parent flagged tax-exempt). Purely informational.

New York 82% · physical ◆

$88,644 headroom
$500,000 gross TPP receipts and >100 sales · immediately preceding four sales-tax quarters (Sep 2025–Aug 2026)
Preceding 4 quarters
$411,356 / 282 docs
CY2025
$320,131 / 275
Run-rate (3 mo)
$48,194 / mo
Customers T12
25
Tax collected T12
$35,872
Transactions test (>100) already met; sales test binding. Rolling window would cross around Q4 2026 — informational only given the New York Store (location 3) and a resident employee.

Massachusetts & Kentucky crossed

Obligation in force
$100,000 gross sales · previous or current calendar year (both states)
MA CY2025 / CY2026
$292,770 / $181,579
MA docs
25 / 23
KY CY2025 / CY2026
$178,754 / $91,440
KY docs
12 / 10
KY customer
Jones Manufacturing (100%)
KY's 200-transaction alternative was repealed 8/1/2026 — irrelevant here (KY is dollar-driven). Both states impose a full following-year obligation after a crossing year; KY must keep collecting through 2026 even if it finishes under $100K, and 2027 status will be decided by CY2026 sales.

Registration footprint vs. sales footprint

What NetSuite says we are registered for (nexus → subsidiarytaxregistration), overlaid with physical presence signals and 24-month sales.

Configured nexuses (18)

Nexus idStateSub 1Sub 2Sub 3Sub 4Reg. #24-mo sales
1CA✓ (exempt)✓✓✓—$835,910
5NY✓✓—$605,533
11MA✓✓—$513,641
12KY✓✓—$316,711
15IL✓✓—$140,425
13IN✓✓—$134,433
18CO✓✓—$94,370
3TX✓✓—$83,520
10MI✓✓—$52,770
16FL✓✓—$8,504
4OH✓✓—$6,070
17CT✓✓—$2,577
2PA✓✓—$0
6NJ✓✓—$0
7NC✓✓—$0
8MO✓✓—$0
9MN✓✓—$0
19AK✓✓—$0

All 38 subsidiarytaxregistration rows carry an empty taxregistrationnumber; all are effective 10/1/2024 with no end date; operating subsidiaries use tax engine id 1204. Nexus id 14 does not exist (gap in sequence — likely deleted).

Physical presence signals

StateLocationsResident employeesImplication
CA1 SF Store · 5 LA DC · 14 3PL (Santa Ana) · quarantine/RTV sites22Home state; physical nexus
NY3 New York Store1Physical nexus
IL8 Chicago DC1Physical nexus
FL12 Miami (Sub 2)1Physical nexus
PA—1Employee presence → nexus (explains dormant registration)
TX—1Employee presence → nexus

Location 15 "FBA" has no address. If inventory is held in Amazon fulfilment centres, that inventory creates physical nexus in whichever states Amazon stores it and marketplace-facilitated sales are excluded from most thresholds — neither is visible in NetSuite. See assumptions.

Sales by subsidiary (T12)

SubSalesStates
2 Subsidiary 1$1,336,565CA, NY, MA, KY, IL, MI, TX, FL, OH, CT, VA, ND + unattributed
3 Subsidiary 2$414,862CA, NY, MA, IN, CO, TX
1 Parent · 4 xElim$0—

Thresholds apply per legal entity. Splitting by subsidiary lowers every per-entity figure (e.g. MA: Sub 2 $261.6K, Sub 3 $75.4K T12 — Sub 3 alone is under the MA test). This report evaluates the consolidated figure as the conservative view; confirm with counsel whether the subsidiaries are separately registered taxpayers.

Data-quality & compliance flags

#SeverityFlagEvidenceImpact
F1HighInvoices with no shipping address and zero taxINV762 (id 42286), INV763 (id 42287) · Macgruber Incorporated · 2026-08-27 · $16,884.00 each · taxtotal = 0 · nexus defaulted to 1 (CA)$33,768 cannot be attributed to a state; potential under-collection
F2HighZero-tax documents in a registered, physical-nexus state (IL)66 of 133 IL documents T12, $10,792 sales, $0 tax — predominantly cash salesUnder-collection or missing exemption certificates
F3MediumNo tax registration numbers stored38/38 subsidiarytaxregistration.taxregistrationnumber blankCannot evidence registration from the system; SuiteTax/returns may print blank permit numbers
F4MediumDormant registrationsNJ, NC, MO, MN, AK — nexus configured, $0 sales in 24 months (PA also $0 but has an employee)Zero-return filing burden; audit attention; possible penalties for missed nil returns
F5MediumFuture-dated sales documents69 invoices/cash sales dated after 2026-09-04 (latest 2026-09-22), $98,934 ex-tax — NY 19 / $42.3K, CA 35 / $33.6K, MA 3 / $19.9K, IL 11 / $2.4K, NM 1 / $0.7KWould overstate every rolling figure if included; excluded here
F6LowZero-tax CA documents14 documents T12, $3,182 — likely exempt customersVerify certificates
F7LowWalk-in cash sales without addressCS1070/1071/1073 (2026-09-02), $386 total, taxed $33.89 at CA ratesImmaterial; consider defaulting store address on POS form
F8LowConsumer shipments into unregistered states carry nexus = 1CS1065 (VA), CS1067 (ND), CS1069 (NM) — nexus 1 (CA), tax $0Correct outcome (no CA tax on interstate shipment) but indicates NetSuite falls back to the home nexus when no match exists
F9LowReturns not nettedCustCred: CA −$108.48, MA −$154.56, NY −$152.43; CashRfnd NY −$716.39 (2025–26)Immaterial (<0.1%); gross basis is the conservative convention

Recommended actions

  1. Fix INV762 / INV763 today. Add the ship-to address, let the tax engine recompute, and issue a corrected invoice or a tax-only invoice if the goods went to a registered state. AR · this week
  2. Reconcile the 66 untaxed Illinois documents. Pull the list (query Q6), classify as (a) exempt customer with certificate, (b) resale, or (c) error. For (c), assess IL tax on the $10.8K and correct the cash-sale form's default tax code. Tax · 2 weeks
  3. Record tax registration numbers on each subsidiarytaxregistration row (Setup → Company → Subsidiaries → Tax Registrations). Add a quarterly control that no active nexus has a blank number. Tax · 2 weeks
  4. Colorado watch. Confirm destination local rates are applied on Red Rivers Consulting orders; expect the $100K test to be met on the next order and confirm the filing frequency the CO DOR assigns. Tax · on next CO order
  5. Confirm or retire the five dormant registrations (NJ, NC, MO, MN, AK). Document the basis for each (trailing nexus, inventory, trade shows). Where none exists, file final returns and close the accounts — AK in particular (ARSSTC local-only regime) is pure overhead with $0 sales. Keep PA (resident employee). Tax + Controller · this quarter
  6. Resolve the FBA question. If location 15 "FBA" holds inventory at Amazon, obtain the Inventory Event Detail report and map fulfilment-centre states — inventory creates physical nexus irrespective of sales thresholds. Ops · this quarter
  7. Decide the entity basis for threshold testing. Thresholds apply per taxpayer; this report tests consolidated. Confirm with counsel whether Subsidiary 1 and Subsidiary 2 are separate registrants and, if so, adopt per-subsidiary monitoring (query Q7 already groups by subsidiary). Controller · this quarter
  8. Institutionalise the monitor. Run the query in Ongoing monitoring on the first business day of each quarter (IL, MO, MN and TX are explicitly quarterly-review states) and refresh the threshold table against the Sales Tax Institute chart. Tax · quarterly
  9. Clean future-dated documents (F5) or confirm they are intentional (e.g., pre-billing). They distort every rolling metric in the account, not just this one. AR · this month

Methodology & assumptions

How the numbers were built

  • Population: transaction.type IN ('CustInvc','CashSale'), trandate from 2024-09-01, joined to transactionshippingaddress via t.shippingaddress = tsa.nkey. Sales orders, estimates and fulfilments are not sales for nexus purposes and are excluded.
  • Sales figure: foreigntotal − taxtotal — the document total excluding tax but including shipping & handling charges. Most states include delivery charges in gross sales; this is the conservative reading.
  • Document count = one per invoice or cash sale (the "separate transactions" a statute counts), not lines.
  • Destination = ship-to state on the document. The 5 documents with no shipping address are reported separately as unattributable and are not assigned to a state.
  • Windows (as of 2026-09-04): CY2025 = 2025-01-01→12-31; CY2026 YTD = 2026-01-01→09-04; T12 = 2025-09-05→2026-09-04; NY four quarters = 2025-09-01→2026-08-31; CT year = 2025-10-01→2026-09-04 (Sep-30 year in progress) with the prior CT year 2024-10-01→2025-09-30 also tested; MN = 2025-07-01→2026-06-30. Each state is tested on its own window; "previous or current" states use the higher of CY2025 and CY2026 YTD.
  • Future-dated documents (trandate > today) are excluded from every figure and reported in F5.
  • Status thresholds: Crossed ≥100%; Approaching ≥70%; otherwise Below. For "$X or N transactions" states the higher ratio governs; for "$X and N" states (NY, CT) the lower ratio governs.
  • Registration = the state appears as a nexus in subsidiarytaxregistration for Subsidiary 1 or Subsidiary 2 (the two operating entities). Physical presence = a location main address in the state or an active employee address in the state.
  • Aggregation was performed by SuiteQL + an in-browser reducer over the 1,841 header rows; no rows were re-keyed by hand.

Assumptions & limitations

  • Threshold basis mismatches. Statutes variously measure gross, retail or taxable sales. We measure gross (ex-tax) for every state. For "taxable sales" states (FL, ND, NM, MO, OK, AR, PA) this overstates our figure — conservative. For "retail sales" states (CO, IL, CT, MN, VA, OH) sales-for-resale would be excluded by statute; the data does not identify resale customers, so gross is used.
  • Marketplace sales (e.g., Amazon FBA) are excluded from most thresholds when the marketplace collects. Nothing in the dataset identifies channel; all sales are treated as direct.
  • Consolidated entity view. Thresholds are tested on the combined sales of Subsidiary 1 + Subsidiary 2. Per-entity testing (query Q7) gives lower figures.
  • Exempt sales are included in gross figures (correct for gross states) and identified only by taxtotal = 0, which conflates exemption with tax-code errors (see F2).
  • Returns are not netted (F9, immaterial).
  • Demo-ledger caveat: this account contains synthetic "Beg Balance" journals; they are irrelevant here because journals are not sales documents and are excluded by type.
  • Thresholds were taken from the Sales Tax Institute "Economic Nexus State by State Chart" dated 8/1/2026 and transcribed into the reference table below. They change frequently (e.g., IL repealed its 200-transaction test 1/1/2026; KY 8/1/2026; NC changed its registration timing 7/2/2026). Verify against the state DOR before acting.
  • Not legal advice. This is an analytical screen to direct professional attention; registration and de-registration decisions should be confirmed with a state-and-local tax adviser.

Appendix A — Queries used

All SuiteQL, run live against the production account on 2026-09-04. House style applied (tl.subsidiary for subsidiary; single-currency, no currency columns).

Q1 · Sales documents with ship-to state (base extract fed to the reducer — 1,841 rows)
SELECT
    t.id,
    t.type,
    TO_CHAR(t.trandate, 'YYYY-MM-DD') AS trandate,
    tsa.state,
    tsa.country,
    tsa.zip,
    t.foreigntotal,
    t.taxtotal,
    t.nexus,
    tl.subsidiary,
    t.entity
FROM transaction t
JOIN transactionline tl               ON tl.transaction = t.id AND tl.mainline = 'T'
LEFT JOIN transactionshippingaddress tsa ON tsa.nkey = t.shippingaddress
WHERE t.type IN ('CustInvc', 'CashSale')
  AND t.trandate >= TO_DATE('2024-09-01', 'YYYY-MM-DD')

The reducer bucketed each row into CY2025, CY2026 YTD, T12, prior-12, NY four-quarter, MN quarter-lagged and CT Sep-30 windows, excluded trandate > 2026-09-04, and computed sales = foreigntotal − taxtotal, document counts, tax, zero-tax documents, distinct customers, and monthly series per state.

Q2 · Ship-to address coverage by type and year
SELECT
    t.type,
    TO_CHAR(t.trandate, 'YYYY') AS yr,
    COUNT(*)                                                     AS txns,
    SUM(CASE WHEN tsa.state IS NOT NULL THEN 1 ELSE 0 END)       AS with_state,
    SUM(CASE WHEN tsa.country IS NOT NULL AND tsa.country <> 'US' THEN 1 ELSE 0 END) AS non_us,
    ROUND(SUM(t.foreigntotal), 2)                                AS total
FROM transaction t
LEFT JOIN transactionshippingaddress tsa ON tsa.nkey = t.shippingaddress
WHERE t.type IN ('CustInvc', 'CashSale')
GROUP BY t.type, TO_CHAR(t.trandate, 'YYYY')
ORDER BY t.type, TO_CHAR(t.trandate, 'YYYY')

Result: 1,841 documents 2024–2026; 5 without a state; 0 non-US.

Q3 · Configured nexuses and subsidiary tax registrations
SELECT n.id, n.description, n.country, n.state, n.taxagency, BUILTIN.DF(n.state) AS state_name
FROM nexus n
ORDER BY n.id;

SELECT str.subsidiary, str.nexus, n.state, str.istaxexempt, str.taxregistrationnumber,
       str.taxengine, str.effectivefrom, str.validuntil
FROM subsidiarytaxregistration str
JOIN nexus n ON n.id = str.nexus
ORDER BY str.subsidiary, n.state

Note: subsidiarynexus exposes only the subsidiary column in this account; subsidiarytaxregistration is the usable join.

Q4 · Physical presence — locations and employee home states
SELECT l.id, l.name, l.subsidiary, la.state, la.city
FROM location l
LEFT JOIN locationmainaddress la ON la.nkey = l.mainaddress
ORDER BY l.id;

SELECT ea.state, COUNT(DISTINCT e.id) AS employees
FROM employee e
JOIN employeeaddressbook eab                ON eab.entity = e.id
JOIN employeeaddressbookentityaddress ea    ON ea.nkey = eab.addressbookaddress
WHERE e.isinactive = 'F'
GROUP BY ea.state
ORDER BY COUNT(DISTINCT e.id) DESC
Q5 · Documents with missing ship-to state or in unregistered states
SELECT t.id, t.tranid, t.type, TO_CHAR(t.trandate, 'YYYY-MM-DD') AS trandate,
       t.foreigntotal, t.taxtotal, t.nexus, tsa.state, tsa.city, tsa.zip,
       BUILTIN.DF(t.entity) AS customer, ba.state AS bill_state
FROM transaction t
LEFT JOIN transactionshippingaddress tsa ON tsa.nkey = t.shippingaddress
LEFT JOIN transactionbillingaddress  ba  ON ba.nkey  = t.billingaddress
WHERE t.type IN ('CustInvc', 'CashSale')
  AND t.trandate >= TO_DATE('2024-09-01', 'YYYY-MM-DD')
  AND (tsa.state IS NULL OR tsa.state IN ('VA', 'ND', 'NM'))
ORDER BY t.trandate
Q6 · Zero-tax documents in registered states (work list for F2 / F6)
SELECT tsa.state, t.tranid, t.type, TO_CHAR(t.trandate, 'YYYY-MM-DD') AS trandate,
       BUILTIN.DF(t.entity) AS customer, t.foreigntotal, t.taxtotal, tl.location
FROM transaction t
JOIN transactionline tl               ON tl.transaction = t.id AND tl.mainline = 'T'
JOIN transactionshippingaddress tsa   ON tsa.nkey = t.shippingaddress
WHERE t.type IN ('CustInvc', 'CashSale')
  AND t.trandate BETWEEN TO_DATE('2025-09-05', 'YYYY-MM-DD') AND TRUNC(SYSDATE)
  AND t.taxtotal = 0
  AND tsa.state IN ('IL', 'CA', 'NY', 'MA', 'KY', 'IN', 'CO', 'MI', 'TX', 'FL', 'OH', 'CT')
ORDER BY tsa.state, t.trandate
Q7 · Top customers in near-threshold states, with per-subsidiary split
SELECT tsa.state, tl.subsidiary, BUILTIN.DF(t.entity) AS customer,
       COUNT(*) AS txns,
       ROUND(SUM(t.foreigntotal - t.taxtotal), 2) AS sales
FROM transaction t
JOIN transactionline tl               ON tl.transaction = t.id AND tl.mainline = 'T'
JOIN transactionshippingaddress tsa   ON tsa.nkey = t.shippingaddress
WHERE t.type IN ('CustInvc', 'CashSale')
  AND t.trandate BETWEEN TO_DATE('2025-09-05', 'YYYY-MM-DD') AND TRUNC(SYSDATE)
  AND tsa.state IN ('CO', 'IL', 'IN', 'NY', 'KY', 'MI', 'MA')
GROUP BY tsa.state, tl.subsidiary, BUILTIN.DF(t.entity)
ORDER BY tsa.state, SUM(t.foreigntotal - t.taxtotal) DESC
Q8 · Future-dated documents and returns
SELECT COUNT(*) AS future_txns, ROUND(SUM(t.foreigntotal - t.taxtotal), 2) AS future_sales,
       MAX(TO_CHAR(t.trandate, 'YYYY-MM-DD')) AS latest
FROM transaction t
WHERE t.type IN ('CustInvc', 'CashSale') AND t.trandate > TRUNC(SYSDATE);

SELECT t.type, tsa.state, COUNT(*) AS txns, ROUND(SUM(t.foreigntotal), 2) AS total
FROM transaction t
LEFT JOIN transactionshippingaddress tsa ON tsa.nkey = t.shippingaddress
WHERE t.type IN ('CustCred', 'CashRfnd', 'RtnAuth')
  AND t.trandate >= TO_DATE('2025-01-01', 'YYYY-MM-DD')
GROUP BY t.type, tsa.state
ORDER BY t.type, tsa.state

Appendix B — 50-state economic nexus reference

Transcribed from the Sales Tax Institute "Economic Nexus State by State Chart", as of 8/1/2026, with our status appended. "PC" = previous or current calendar year; "P" = previous calendar year; "T12" = preceding 12 months. Puerto Rico ($100K or 200, seller's fiscal year) omitted — no PR activity.

StateSales thresholdTxn thresholdRuleWindowBasisNotesOur figureStatus

Appendix C — Ongoing monitoring query

Save this in the SuiteQL Query Tool and run it quarterly. It produces the per-state figures for every window used above in one pass, relative to the run date, and includes a per-subsidiary variant via the commented line. Compare the output to the reference table (or paste both into Sonar and ask for the delta).

-- Economic nexus monitor: one row per ship-to state (and optionally subsidiary)
-- Windows are relative to SYSDATE; future-dated documents excluded.
SELECT
    tsa.state,
    -- tl.subsidiary,                                        -- uncomment for per-entity testing
    ROUND(SUM(CASE WHEN t.trandate >= TRUNC(SYSDATE, 'YYYY')
                   THEN t.foreigntotal - t.taxtotal END), 2)                       AS cy_current_sales,
    SUM(CASE WHEN t.trandate >= TRUNC(SYSDATE, 'YYYY') THEN 1 END)                 AS cy_current_docs,
    ROUND(SUM(CASE WHEN t.trandate >= ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -12)
                    AND t.trandate <  TRUNC(SYSDATE, 'YYYY')
                   THEN t.foreigntotal - t.taxtotal END), 2)                       AS cy_previous_sales,
    SUM(CASE WHEN t.trandate >= ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -12)
              AND t.trandate <  TRUNC(SYSDATE, 'YYYY') THEN 1 END)                AS cy_previous_docs,
    ROUND(SUM(CASE WHEN t.trandate > ADD_MONTHS(TRUNC(SYSDATE), -12)
                   THEN t.foreigntotal - t.taxtotal END), 2)                       AS t12_sales,
    SUM(CASE WHEN t.trandate > ADD_MONTHS(TRUNC(SYSDATE), -12) THEN 1 END)         AS t12_docs,
    ROUND(SUM(CASE WHEN t.trandate >= ADD_MONTHS(TRUNC(SYSDATE, 'Q'), -12)
                    AND t.trandate <  TRUNC(SYSDATE, 'Q')
                   THEN t.foreigntotal - t.taxtotal END), 2)                       AS last4q_sales,   -- MN / VT style
    SUM(CASE WHEN t.trandate > ADD_MONTHS(TRUNC(SYSDATE), -12)
              AND t.taxtotal = 0 THEN 1 END)                                       AS t12_zero_tax_docs,
    ROUND(SUM(CASE WHEN t.trandate > ADD_MONTHS(TRUNC(SYSDATE), -12)
                   THEN t.taxtotal END), 2)                                        AS t12_tax_collected,
    COUNT(DISTINCT CASE WHEN t.trandate > ADD_MONTHS(TRUNC(SYSDATE), -12)
                        THEN t.entity END)                                          AS t12_customers
FROM transaction t
JOIN transactionline tl                  ON tl.transaction = t.id AND tl.mainline = 'T'
LEFT JOIN transactionshippingaddress tsa ON tsa.nkey = t.shippingaddress
WHERE t.type IN ('CustInvc', 'CashSale')
  AND t.trandate >= ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -12)
  AND t.trandate <= TRUNC(SYSDATE)
  AND tl.subsidiary <> 4
GROUP BY tsa.state -- , tl.subsidiary
ORDER BY SUM(CASE WHEN t.trandate > ADD_MONTHS(TRUNC(SYSDATE), -12)
                  THEN t.foreigntotal - t.taxtotal END) DESC NULLS LAST
Suggested cadence. First business day of Jan / Apr / Jul / Oct (aligns with IL, MO, MN, TX quarterly reviews and the CT Sep-30 year-end). Add two controls: (1) any state with sales > 0 and no subsidiarytaxregistration row; (2) any registered state with t12_zero_tax_docs > 0. Both are one-line joins on this output. This can be codified as a Sonar process definition so the run, the threshold refresh and the exception list are produced together.

Appendix D — Source documents