business-obligations 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/COVERAGE.md +16 -74
  3. package/README.md +25 -19
  4. package/data/cities/AK.json +0 -1
  5. package/data/cities/AL.json +4 -20
  6. package/data/cities/AR.json +0 -1
  7. package/data/cities/AZ.json +1 -16
  8. package/data/cities/CA.json +15 -164
  9. package/data/cities/CO.json +0 -12
  10. package/data/cities/CT.json +0 -5
  11. package/data/cities/DC.json +0 -1
  12. package/data/cities/DE.json +57 -1
  13. package/data/cities/FL.json +19 -146
  14. package/data/cities/GA.json +3 -27
  15. package/data/cities/HI.json +0 -1
  16. package/data/cities/IA.json +0 -3
  17. package/data/cities/ID.json +0 -3
  18. package/data/cities/IL.json +0 -7
  19. package/data/cities/IN.json +0 -4
  20. package/data/cities/KS.json +0 -5
  21. package/data/cities/KY.json +2 -9
  22. package/data/cities/LA.json +4 -13
  23. package/data/cities/MA.json +0 -6
  24. package/data/cities/MD.json +1 -8
  25. package/data/cities/ME.json +11 -1
  26. package/data/cities/MI.json +6 -24
  27. package/data/cities/MN.json +0 -3
  28. package/data/cities/MO.json +5 -27
  29. package/data/cities/MS.json +0 -1
  30. package/data/cities/MT.json +0 -1
  31. package/data/cities/NC.json +9 -18
  32. package/data/cities/ND.json +0 -1
  33. package/data/cities/NE.json +0 -2
  34. package/data/cities/NH.json +1 -8
  35. package/data/cities/NJ.json +19 -28
  36. package/data/cities/NM.json +0 -3
  37. package/data/cities/NV.json +0 -5
  38. package/data/cities/NY.json +561 -20
  39. package/data/cities/OH.json +6 -27
  40. package/data/cities/OK.json +0 -2
  41. package/data/cities/OR.json +0 -6
  42. package/data/cities/PA.json +2 -10
  43. package/data/cities/RI.json +0 -1
  44. package/data/cities/SC.json +2 -16
  45. package/data/cities/SD.json +0 -1
  46. package/data/cities/TN.json +0 -6
  47. package/data/cities/TX.json +62 -74
  48. package/data/cities/UT.json +0 -4
  49. package/data/cities/VA.json +7 -57
  50. package/data/cities/VT.json +28 -1
  51. package/data/cities/WA.json +5 -62
  52. package/data/cities/WI.json +0 -4
  53. package/data/cities/WV.json +1 -3
  54. package/data/cities/WY.json +11 -1
  55. package/data/counties/AK.json +14 -5
  56. package/data/counties/AL.json +99 -54
  57. package/data/counties/AR.json +3 -24
  58. package/data/counties/AZ.json +16 -33
  59. package/data/counties/CA.json +420 -214
  60. package/data/counties/CO.json +57 -60
  61. package/data/counties/CT.json +3 -6
  62. package/data/counties/DC.json +1 -8
  63. package/data/counties/DE.json +2 -4
  64. package/data/counties/FL.json +2155 -238
  65. package/data/counties/GA.json +155 -51
  66. package/data/counties/HI.json +1 -2
  67. package/data/counties/IA.json +2 -4
  68. package/data/counties/ID.json +2 -16
  69. package/data/counties/IL.json +24 -21
  70. package/data/counties/IN.json +83 -45
  71. package/data/counties/KS.json +2 -16
  72. package/data/counties/KY.json +63 -18
  73. package/data/counties/LA.json +108 -54
  74. package/data/counties/MA.json +9 -18
  75. package/data/counties/MD.json +119 -37
  76. package/data/counties/ME.json +1 -2
  77. package/data/counties/MI.json +9 -18
  78. package/data/counties/MN.json +5 -10
  79. package/data/counties/MO.json +67 -41
  80. package/data/counties/MS.json +13 -5
  81. package/data/counties/MT.json +26 -1
  82. package/data/counties/NC.json +119 -61
  83. package/data/counties/ND.json +26 -1
  84. package/data/counties/NE.json +2 -16
  85. package/data/counties/NH.json +2 -4
  86. package/data/counties/NJ.json +15 -30
  87. package/data/counties/NM.json +1 -3
  88. package/data/counties/NV.json +34 -18
  89. package/data/counties/NY.json +2052 -63
  90. package/data/counties/OH.json +80 -38
  91. package/data/counties/OK.json +27 -18
  92. package/data/counties/OR.json +122 -32
  93. package/data/counties/PA.json +810 -88
  94. package/data/counties/RI.json +1 -2
  95. package/data/counties/SC.json +31 -67
  96. package/data/counties/SD.json +26 -1
  97. package/data/counties/TN.json +86 -54
  98. package/data/counties/TX.json +36 -193
  99. package/data/counties/UT.json +40 -23
  100. package/data/counties/VA.json +177 -44
  101. package/data/counties/VT.json +26 -1
  102. package/data/counties/WA.json +21 -73
  103. package/data/counties/WI.json +4 -8
  104. package/data/counties/WV.json +0 -1
  105. package/data/counties/WY.json +51 -1
  106. package/data/states/AK.json +30 -49
  107. package/data/states/AL.json +25 -31
  108. package/data/states/AR.json +44 -78
  109. package/data/states/AZ.json +33 -47
  110. package/data/states/CA.json +35 -43
  111. package/data/states/CO.json +29 -39
  112. package/data/states/CT.json +32 -51
  113. package/data/states/DC.json +37 -58
  114. package/data/states/DE.json +57 -85
  115. package/data/states/FL.json +56 -74
  116. package/data/states/GA.json +39 -53
  117. package/data/states/HI.json +25 -33
  118. package/data/states/IA.json +41 -67
  119. package/data/states/ID.json +26 -44
  120. package/data/states/IL.json +59 -83
  121. package/data/states/IN.json +43 -73
  122. package/data/states/KS.json +48 -81
  123. package/data/states/KY.json +27 -47
  124. package/data/states/LA.json +36 -56
  125. package/data/states/MA.json +48 -78
  126. package/data/states/MD.json +28 -48
  127. package/data/states/ME.json +29 -49
  128. package/data/states/MI.json +40 -64
  129. package/data/states/MN.json +45 -79
  130. package/data/states/MO.json +39 -56
  131. package/data/states/MS.json +30 -48
  132. package/data/states/MT.json +51 -75
  133. package/data/states/NC.json +42 -67
  134. package/data/states/ND.json +41 -75
  135. package/data/states/NE.json +38 -65
  136. package/data/states/NH.json +29 -49
  137. package/data/states/NJ.json +29 -47
  138. package/data/states/NM.json +38 -53
  139. package/data/states/NV.json +44 -65
  140. package/data/states/NY.json +40 -61
  141. package/data/states/OH.json +43 -56
  142. package/data/states/OK.json +34 -45
  143. package/data/states/OR.json +38 -56
  144. package/data/states/PA.json +48 -81
  145. package/data/states/RI.json +32 -44
  146. package/data/states/SC.json +39 -49
  147. package/data/states/SD.json +30 -49
  148. package/data/states/TN.json +48 -74
  149. package/data/states/TX.json +39 -58
  150. package/data/states/UT.json +26 -44
  151. package/data/states/VA.json +51 -85
  152. package/data/states/VT.json +37 -48
  153. package/data/states/WA.json +41 -60
  154. package/data/states/WI.json +27 -34
  155. package/data/states/WV.json +44 -70
  156. package/data/states/WY.json +29 -46
  157. package/dist/chunk-CXDYGHHR.js +41 -0
  158. package/dist/cli.js +22679 -11016
  159. package/dist/index.cjs +22727 -11013
  160. package/dist/index.d.cts +37 -6
  161. package/dist/index.d.ts +37 -6
  162. package/dist/index.js +22671 -11005
  163. package/dist/naics-Bx_gqRs8.d.cts +15 -0
  164. package/dist/naics-s8xAGsWH.d.ts +15 -0
  165. package/dist/naics.cjs +94 -0
  166. package/dist/naics.d.cts +20 -0
  167. package/dist/naics.d.ts +20 -0
  168. package/dist/naics.js +31 -0
  169. package/dist/{types-dcI6srbz.d.cts → types-XrYIhYQD.d.cts} +119 -58
  170. package/dist/{types-dcI6srbz.d.ts → types-XrYIhYQD.d.ts} +119 -58
  171. package/package.json +12 -2
  172. package/schema/business-profile.schema.json +6 -11
  173. package/schema/changes.schema.json +42 -11
  174. package/schema/cities.schema.json +113 -0
  175. package/schema/common.schema.json +135 -0
  176. package/schema/compliance-result.schema.json +25 -95
  177. package/schema/counties.schema.json +104 -0
  178. package/schema/duties-items.schema.json +12 -0
  179. package/schema/employer-items.schema.json +12 -0
  180. package/schema/industry-items.schema.json +12 -0
  181. package/schema/local-item.schema.json +230 -0
  182. package/schema/professions.schema.json +61 -0
  183. package/schema/state.schema.json +402 -223
package/CHANGELOG.md CHANGED
@@ -5,6 +5,122 @@ project follows [Semantic Versioning](https://semver.org/) with the data-aware p
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.5.0] - 2026-10-16
9
+
10
+ ### Added
11
+
12
+ - **data:** freelance contract laws, contractor classification and breach notification
13
+ - **data:** New York charity registration and CHAR500, and waste combustion permits
14
+ - **data:** New York title agents, notaries, opticians and wider NAICS reach
15
+ - federal ACA reporting, EEO-1 and OSHA recordkeeping by headcount
16
+ - unclaimed property holder reports for every state
17
+ - **data:** NYC individual DCWP licences for tow, process, pedicab and ticket staff
18
+ - state employer mandates: retirement plan registration, E-Verify and harassment training
19
+ - **data:** NYC hotel, newsstand, stoop line stand and horse drawn cab licences
20
+ - **data:** remaining NYC DOHMH permits and registrations
21
+ - **data:** NYC DOB trade licences and the remaining FDNY permits
22
+ - **data:** NYC DOB, FDNY and cooling tower obligations
23
+ - **data:** NYC licence fees and the missing TLC, pool and FDNY items
24
+ - **data:** county food establishment health permits for six large counties
25
+ - **data:** New York City licences by NAICS code (DCWP, DOHMH, TLC)
26
+ - **data:** Alabama county and Louisiana parish sales tax returns
27
+ - **data:** local payroll taxes: Pennsylvania, Kentucky and Oregon
28
+ - **data:** Pennsylvania and Ohio county lodging tax returns
29
+ - **data:** California county transient occupancy tax returns
30
+ - **data:** New York lodging taxes for Otsego, Albany, Chemung and Tioga
31
+ - **data:** New York controlled substance activity licence
32
+ - **data:** New York college alcohol permit, real estate course approval and tour bus licence
33
+ - **data:** Indiana county innkeeper's tax returns
34
+ - **data:** Nevada, Kentucky and Louisiana county lodging tax returns
35
+ - **data:** New York bait, wildlife, preserve, tax preparer and ATV dealer items
36
+ - **data:** Tennessee county hotel/motel occupancy tax returns
37
+ - **data:** Florida counties: tourist development tax, business tax receipts, all 67 counties
38
+ - **data:** Virginia county and city business property returns and licenses
39
+ - **data:** Georgia county property tax returns, occupation tax and hotel tax
40
+ - **data:** Maryland county hotel tax returns
41
+ - **data:** business personal property returns for 32 more counties
42
+ - **data:** South Carolina and Alabama county lodging tax returns
43
+ - **data:** New York mold licensing and OPWDD operating certificate
44
+ - **data:** New York insurer annual statement
45
+ - **data:** New York professional entity and geologist items
46
+ - **data:** New York livestock dealer, fur breeder, dispatch, mass gathering and film permits
47
+ - **data:** New York mortgage servicer, fund raiser, gaming supplier and lab items
48
+ - **data:** New York telephone, manufactured home park and ELAP items
49
+ - **data:** New York assisted living, service bureau and SLA permit items
50
+ - **data:** New York hospice, snowmobile dealer, guide and SLA permit items
51
+ - **data:** New York farm dealer, nursery, labor and tramway items
52
+ - **data:** New York alcohol, opioid, TNC and tire fee tax filings
53
+ - **data:** New York DMV boat dealer, salvage pool and wholesale dealer items
54
+ - **data:** New York DEC waste, water well and CAFO permits
55
+ - **data:** New York DEC fishing, wildlife, fuel and pesticide permits
56
+ - **data:** New York Department of State licensing items
57
+ - **data:** New York nursing home operating certificate
58
+ - **data:** New York banking, meat, DFS, PBM and professions items
59
+ - **data:** New York apparel registration and model management items
60
+ - **data:** New York fishing, charter boat, bail enforcement and bottled water items
61
+ - **data:** New York firearms dealer, DFS finance and pet dealer items
62
+ - **data:** New York construction, elevator, cable and redemption-centre items
63
+ - **data:** New York industry rules, batch 9 (4 items)
64
+ - **data:** New York industry rules, batch 8 (8 items)
65
+ - **data:** New York industry rules, batch 7 (10 items)
66
+ - **data:** New York industry rules, batch 6 (12 items)
67
+ - **data:** New York industry rules, batch 5 (11 items)
68
+ - **data:** New York industry rules, batch 4 (15 items)
69
+ - **data:** New York industry rules, batch 3 (11 items)
70
+ - **data:** New York industry rules, batch 2 (13 items)
71
+ - **data:** state industry rules by NAICS code, New York batch 1
72
+ - **data:** New York county MCTMT payroll tax and home improvement licenses
73
+ - NAICS code as the main way to say what the business does
74
+ - **data:** New York county lodging taxes, batch F
75
+ - **data:** New York cities, batch 6 (6 cities)
76
+ - **data:** New York county lodging taxes, batch E
77
+ - **data:** New York cities, batch 5 (10 cities)
78
+ - **data:** New York county lodging taxes, batch D
79
+ - **data:** New York cities, batch 4 (9 cities)
80
+ - **data:** New York county lodging taxes, batch C
81
+ - **data:** New York cities, batch 3 (10 cities)
82
+ - **data:** New York county lodging taxes, batch B
83
+ - **data:** New York cities, batch 2 (10 cities)
84
+ - **data:** New York county lodging taxes, batch A
85
+ - **data:** New York cities, batch 1 (10 cities)
86
+ - **data:** New York counties, batch 3 of 3
87
+ - **data:** New York counties, batch 2 of 3
88
+ - **data:** New York counties, batch 1 of 3
89
+ - **data:** seed local data for the states that had none
90
+
91
+ ### Fixed
92
+
93
+ - **data:** give deadlines that were text only a machine-readable date
94
+ - **data:** repair dead NYC source links and cover the last DOB and DCWP licences
95
+ - **data:** drop unused shared note code that fails the data test
96
+ - biennial report due dates, rule-change relevance, new-business playground views
97
+ - corporate estimated-tax dates, leap-year last day, launch date validation
98
+ - enforce appliesWhen on seeded city and county items
99
+ - **data:** a county is none only when every county-level obligation was checked
100
+ - **data:** seed missing cities and counties (local coverage bot)
101
+ - **data:** remove notes that only restate the item; fix a broken deadline note
102
+
103
+ ### Changed
104
+
105
+ - make the core bundle tree-shakable
106
+
107
+ ## [0.4.0] - 2026-10-16
108
+
109
+ ### Breaking changes
110
+
111
+ - **data:** one fee source (feeDetail, text generated); required fields where data always has them
112
+ - **data:** store fees, state codes, withholding and enum values once
113
+
114
+ ### Added
115
+
116
+ - **data:** sourceUrl may be a list of official pages
117
+ - **data:** stricter, documented state schema in a logical key order; fewer stored duplicates
118
+ - **data:** iCalendar rrule as the single source for schedules; schemas for city, county and profession data
119
+
120
+ ### Fixed
121
+
122
+ - **data:** write each deadline date once, in the rrule
123
+
8
124
  ## [0.3.1] - 2026-10-16
9
125
 
10
126
  ### Fixed
package/COVERAGE.md CHANGED
@@ -1,79 +1,21 @@
1
1
  # Coverage
2
2
 
3
- <!-- Generated by scripts/coverage.mjs from data/; do not edit by hand. -->
3
+ What the bundled data covers and how well each part was checked is recorded in the data itself. This page explains
4
+ where to look; it holds no figures of its own, so it cannot go out of date.
4
5
 
5
- What the bundled data covers and how well each part was checked. "Checked" means confirmed against an official
6
- page on the date shown; everything not listed as checked is compiled from public knowledge. See
7
- [CONTRIBUTING.md](CONTRIBUTING.md) to improve a row.
6
+ | Question | Look at |
7
+ | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
8
+ | When was a state last checked, and what could not be confirmed? | [`data/states/<XX>.json`](data/states), `verification.checkedOn` and `verification.unconfirmed` |
9
+ | Which entity reports does a state have? | The `llcReport`, `corpReport`, `lpReport` and `llpReport` keys of the same file |
10
+ | Which cities are seeded, and with what? | [`data/cities/<XX>.json`](data/cities): `items` (rules), `status` (`none` or `unverified` when empty), `checkedOn` |
11
+ | Which counties? | [`data/counties/<XX>.json`](data/counties), same shape. `none` means every county-level obligation was checked; a partial check is `unverified` and the note says what was covered |
12
+ | Which large cities and counties are still missing? | Compare [`data/top-cities.json`](data/top-cities.json) and [`data/top-counties.json`](data/top-counties.json) with the folders above |
13
+ | How is each answer sourced? | `provenance` on every returned item (`checked`, `compiled` or `unconfirmed`, with sources and dates) |
8
14
 
9
- - **Jurisdictions:** 51 (50 states and DC)
10
- - **States with unconfirmed fields:** 1
11
- - **Seeded cities:** 307: 165 with city-specific rules, 25 checked with no general city license or tax, 117 researched but unconfirmed (all other cities get the state's local licensing regime named for the city and county)
12
- - **Seeded counties:** 312: 145 with county-specific filings (mainly business personal property returns), the rest researched but unconfirmed or with nothing county-level
13
- - **300 largest counties** (approximate): 297 of 300 covered
14
- - **300 largest cities** (2020 census; ranks beyond 100 are approximate): 300 of 300 covered
15
+ "Checked" means confirmed against an official page on the date shown. Everything not marked checked is compiled from
16
+ public knowledge. An entry with `status: "unverified"` was researched but no official page confirmed either way; one
17
+ with `status: "none"` has an official page saying there is nothing.
15
18
 
16
- | State | Checked on | Entity reports | DBA level | Gross-receipts / margin tax | UI data year | Seeded cities | Unconfirmed fields |
17
- | ----- | ---------- | ------------------ | --------- | --------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
18
- | AK | 2026-10-13 | LLC, CORP | checked | text | 2026 | Anchorage | — |
19
- | AL | 2026-10-13 | none | checked | text | 2026 | Birmingham, Huntsville, Mobile, Montgomery | — |
20
- | AR | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Little Rock | — |
21
- | AZ | 2026-10-13 | CORP, LLP | checked | text | 2026 | Chandler, Gilbert, Glendale, Mesa, Peoria, Phoenix, Scottsdale, Surprise, Tempe, Tucson | — |
22
- | CA | 2026-10-13 | LLC, CORP | checked | text | 2026 | Anaheim, Antioch, Bakersfield, Berkeley, Burbank, Carlsbad, Chico, Chula Vista, Clovis, Concord, Corona, Costa Mesa, Daly City, Downey, El Monte, Elk Grove, Escondido, Fairfield, Fremont, Fresno, Fullerton, Garden Grove, Glendale, Hayward, Huntington Beach, Inglewood, Irvine, Jurupa Valley, Lancaster, Long Beach, Los Angeles, Menifee, Murrieta, Norwalk, Oakland, Oceanside, Ontario, Orange, Oxnard, Palmdale, Pomona, Rancho Cucamonga, Richmond, Riverside, Roseville, Sacramento, Salinas, San Diego, San Francisco, San Jose, San Mateo, Santa Ana, Santa Clara, Santa Clarita, Santa Maria, Santa Rosa, Simi Valley, Stockton, Sunnyvale, Temecula, Thousand Oaks, Torrance, Vacaville, Vallejo, Ventura, Victorville, Visalia | — |
23
- | CO | 2026-10-13 | LLC, CORP | checked | text | 2026 | Arvada, Aurora, Boulder, Centennial, Colorado Springs, Denver, Fort Collins, Greeley, Lakewood, Pueblo, Thornton, Westminster | — |
24
- | CT | 2026-10-13 | LLC, CORP | checked | text | 2026 | Bridgeport, Hartford, New Haven, Stamford, Waterbury | — |
25
- | DC | 2026-10-13 | LLC, CORP | checked | text | 2026 | Washington | — |
26
- | DE | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | — | — |
27
- | FL | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Cape Coral, Clearwater, Coral Springs, Davie, Fort Lauderdale, Gainesville, Hialeah, Hollywood, Jacksonville, Lakeland, Miami, Miramar, Orlando, Palm Bay, Pembroke Pines, Pompano Beach, St. Petersburg, Tallahassee, Tampa, West Palm Beach | — |
28
- | GA | 2026-10-13 | LLC, CORP | checked | text | 2026 | Athens, Atlanta, Augusta, Columbus, Sandy Springs, Savannah | — |
29
- | HI | 2026-10-13 | LLC, CORP | checked | text | 2026 | Honolulu | — |
30
- | IA | 2026-10-13 | LLC, CORP, LP | checked | text | 2026 | Cedar Rapids, Davenport, Des Moines | — |
31
- | ID | 2026-10-13 | LLC, CORP | checked | text | 2026 | Boise, Meridian, Nampa | — |
32
- | IL | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Aurora, Chicago, Joliet, Naperville, Peoria, Rockford, Springfield | — |
33
- | IN | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Evansville, Fort Wayne, Indianapolis, South Bend | — |
34
- | KS | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Kansas City, Olathe, Overland Park, Topeka, Wichita | — |
35
- | KY | 2026-10-13 | LLC, CORP | checked | text | 2026 | Lexington, Louisville | — |
36
- | LA | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | Baton Rouge, Lafayette, New Orleans, Shreveport | — |
37
- | MA | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Boston, Cambridge, Lowell, Quincy, Springfield, Worcester | — |
38
- | MD | 2026-10-13 | LLC, CORP | checked | text | 2026 | Baltimore | — |
39
- | ME | 2026-10-13 | LLC, CORP | checked | text | 2026 | — | — |
40
- | MI | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | Ann Arbor, Detroit, Flint, Grand Rapids, Lansing, Sterling Heights, Warren | — |
41
- | MN | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Minneapolis, Rochester, Saint Paul | — |
42
- | MO | 2026-10-13 | CORP, LLP | checked | text | 2026 | Columbia, Independence, Kansas City, Lee's Summit, Springfield, St. Louis | — |
43
- | MS | 2026-10-13 | LLC, CORP | checked | text | 2026 | Jackson | — |
44
- | MT | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Billings | — |
45
- | NC | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | Cary, Charlotte, Concord, Durham, Fayetteville, Greensboro, Raleigh, Wilmington, Winston-Salem | — |
46
- | ND | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Fargo | — |
47
- | NE | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | Lincoln, Omaha | — |
48
- | NH | 2026-10-13 | LLC, CORP | checked | text | 2026 | Manchester | — |
49
- | NJ | 2026-10-13 | LLC, CORP | checked | text | 2026 | Edison, Elizabeth, Jersey City, Newark, Paterson | — |
50
- | NM | 2026-10-13 | CORP, LLP | checked | text | 2026 | Albuquerque, Las Cruces, Rio Rancho | — |
51
- | NV | 2026-10-13 | LLC, CORP | checked | structured | 2026 | Henderson, Las Vegas, North Las Vegas, Reno, Sparks | — |
52
- | NY | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | Albany, Buffalo, New York, Rochester, Syracuse, Yonkers | — |
53
- | OH | 2026-10-13 | LLP | checked | structured | 2026 | Akron, Cincinnati, Cleveland, Columbus, Dayton, Toledo | — |
54
- | OK | 2026-10-13 | LP | checked | text | 2026 | Oklahoma City, Tulsa | — |
55
- | OR | 2026-10-13 | LLC, CORP | checked | structured | 2026 | Bend, Eugene, Gresham, Hillsboro, Portland, Salem | — |
56
- | PA | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Allentown, Philadelphia, Pittsburgh | — |
57
- | RI | 2026-10-13 | LLC, CORP | checked | text | 2026 | Providence | — |
58
- | SC | 2026-10-13 | CORP, LLP | checked | text | 2026 | Charleston, Columbia | — |
59
- | SD | 2026-10-13 | LLC, CORP | checked | text | 2026 | Sioux Falls | — |
60
- | TN | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Chattanooga, Clarksville, Knoxville, Memphis, Murfreesboro, Nashville | lpReport.fee |
61
- | TX | 2026-10-13 | LLC, CORP | checked | structured | 2026 | Abilene, Allen, Arlington, Austin, Beaumont, Brownsville, Carrollton, College Station, Corpus Christi, Dallas, Denton, Edinburg, El Paso, Fort Worth, Frisco, Garland, Grand Prairie, Houston, Irving, Killeen, Laredo, Lewisville, Lubbock, McAllen, McKinney, Mesquite, Midland, Mission, Odessa, Pasadena, Pearland, Plano, Richardson, Round Rock, San Angelo, San Antonio, Sugar Land, Tyler, Waco, Wichita Falls | — |
62
- | UT | 2026-10-13 | LLC, CORP | checked | text | 2026 | Provo, Salt Lake City, West Jordan, West Valley City | — |
63
- | VA | 2026-10-13 | LLC, CORP, LP, LLP | checked | text | 2026 | Alexandria, Chesapeake, Hampton, Newport News, Norfolk, Richmond, Roanoke, Virginia Beach | — |
64
- | VT | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | — | — |
65
- | WA | 2026-10-13 | LLC, CORP | checked | text | 2026 | Bellevue, Bellingham, Everett, Pasco, Renton, Seattle, Spokane, Tacoma, Vancouver | — |
66
- | WI | 2026-10-13 | LLC, CORP | checked | text | 2026 | Green Bay, Kenosha, Madison, Milwaukee | — |
67
- | WV | 2026-10-13 | LLC, CORP, LLP | checked | text | 2026 | Charleston, Huntington | — |
68
- | WY | 2026-10-13 | LLC, CORP | checked | text | 2026 | — | — |
69
-
70
- ## Columns
71
-
72
- - **Entity reports:** report types with a state-specific rule (LLC, corporation, LP, LLP). Entities without one fall
73
- back to the corporation report.
74
- - **DBA level:** whether the trade-name filing level and office were checked.
75
- - **Gross-receipts / margin tax:** `structured` states expose a threshold and rate and compare it with
76
- `annualRevenue`; others are described in text only.
77
- - **UI data year:** year of the unemployment-insurance wage base and rates (U.S. DOL, Significant Provisions of
78
- State Unemployment Insurance Laws).
79
- - **Unconfirmed fields:** fields the last review could not confirm; the best estimate is used.
19
+ To get counts and a per-state table straight from the JSON, run `npm run coverage` (or `npm run coverage -- --json`
20
+ for machine-readable output). Nothing is generated or committed. To improve an entry, see
21
+ [CONTRIBUTING.md](../../CONTRIBUTING.md).
package/README.md CHANGED
@@ -87,7 +87,7 @@ Every item says **why** it applies (`reason`), **who** to deal with (`authority`
87
87
  ## Why trust it (and when not to)
88
88
 
89
89
  - **Honest about its confidence.** Each state records what was checked against official pages and on what date; what
90
- could not be confirmed is listed, not hidden. See [COVERAGE.md](https://github.com/Alisa007/business-obligations/blob/main/packages/core/COVERAGE.md), generated from the data.
90
+ could not be confirmed is listed, not hidden. See [COVERAGE.md](https://github.com/Alisa007/business-obligations/blob/main/packages/core/COVERAGE.md) for where that is recorded in the JSON.
91
91
  - **Specific, not generic.** All 50 states and DC have their own filing agency, report fees and deadlines, unemployment
92
92
  insurance parameters, workers' compensation triggers and licensing authorities. Twenty-six cities are seeded
93
93
  with local requirements; the rest get the state's local licensing regime.
@@ -204,22 +204,23 @@ are introspectable with `listRules()`, which returns each rule's id, description
204
204
 
205
205
  Machine-readable: [`schema/business-profile.schema.json`](https://github.com/Alisa007/business-obligations/blob/main/packages/core/schema/business-profile.schema.json).
206
206
 
207
- | Field | Notes |
208
- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
209
- | `entityType` | `sole_proprietorship`, `partnership`, `llc`, `pllc`, `lp`, `llp`, `c_corp`, `s_corp`, `pc`, `benefit_corp`, `nonprofit` |
210
- | `zip`, `city`, `county` | required; state is derived from ZIP unless `state` is given |
211
- | `state`, `formationState` | operating state, state of formation |
212
- | `multistate` | `[{ state, employeeCount?, hasProperty?, salesUsd? }]`; employees/property trigger registration, sales trigger economic-nexus sales tax |
213
- | `llcTaxClassification`, `sCorpElection` | federal tax treatment of LLC/PLLC, or S election for `pc`/`benefit_corp` |
214
- | `formationDate`, `fiscalYearEndMonth` | enable anniversary-based due dates; non-calendar fiscal years |
215
- | `industry` | `general`, `retail`, `restaurant`, `construction`, `healthcare`, `real_estate`, `professional_services`, `transportation`, `alcohol`, `childcare`, `cannabis` |
216
- | `alcoholActivity` | required for `alcohol`: `manufacture`, `import`, `wholesale`, `retail` |
217
- | `cannabisActivity` | required for `cannabis`: `cultivation`, `manufacturing`, `retail`, `distribution`, `testing` |
218
- | `commercialVehicles` | required for `transportation`: `{ interstate, grossWeightLbs?, passengerCapacity?, carriesHazmat?, forHire? }` |
219
- | `employeeCount`, `annualPayroll`, `priorYearPayrollTaxLiability` | payroll, workers' comp, paid leave/sick leave, deposit schedule |
220
- | `largestContractorPaymentUsd` | 1099-NEC when ≥ $2,000 |
221
- | `annualNetIncome`, `annualRevenue` | estimated tax; California LLC fee |
222
- | `sellsTaxableGoods`, `homeBased`, `usesTradeName`, `isFormed`, `hasTaxExemptStatus`, `profession` | flags |
207
+ | Field | Notes |
208
+ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
209
+ | `entityType` | `sole_proprietorship`, `partnership`, `llc`, `pllc`, `lp`, `llp`, `c_corp`, `s_corp`, `pc`, `benefit_corp`, `nonprofit` |
210
+ | `zip`, `city`, `county` | required; state is derived from ZIP unless `state` is given |
211
+ | `state`, `formationState` | operating state, state of formation |
212
+ | `multistate` | `[{ state, employeeCount?, hasProperty?, salesUsd? }]`; employees/property trigger registration, sales trigger economic-nexus sales tax |
213
+ | `llcTaxClassification`, `sCorpElection` | federal tax treatment of LLC/PLLC, or S election for `pc`/`benefit_corp` |
214
+ | `formationDate`, `fiscalYearEndMonth` | enable anniversary-based due dates; non-calendar fiscal years |
215
+ | `naics` | 2 to 6 digit NAICS code of the main activity; sets `industry` (and the alcohol activity or profession where the code says so). Search the 1,012 six-digit codes with `import { searchNaics } from "business-obligations/naics"` |
216
+ | `industry` | `general`, `retail`, `restaurant`, `construction`, `healthcare`, `real_estate`, `professional_services`, `transportation`, `alcohol`, `childcare`, `cannabis` |
217
+ | `alcoholActivity` | required for `alcohol`: `manufacture`, `import`, `wholesale`, `retail` |
218
+ | `cannabisActivity` | required for `cannabis`: `cultivation`, `manufacturing`, `retail`, `distribution`, `testing` |
219
+ | `commercialVehicles` | required for `transportation`: `{ interstate, grossWeightLbs?, passengerCapacity?, carriesHazmat?, forHire? }` |
220
+ | `employeeCount`, `annualPayroll`, `priorYearPayrollTaxLiability` | payroll, workers' comp, paid leave/sick leave, deposit schedule |
221
+ | `largestContractorPaymentUsd` | 1099-NEC when ≥ $2,000 |
222
+ | `annualNetIncome`, `annualRevenue` | estimated tax; California LLC fee |
223
+ | `sellsTaxableGoods`, `homeBased`, `usesTradeName`, `isFormed`, `hasTaxExemptStatus`, `profession` | flags |
223
224
 
224
225
  ## What is covered
225
226
 
@@ -231,10 +232,15 @@ Machine-readable: [`schema/business-profile.schema.json`](https://github.com/Ali
231
232
  workers' comp thresholds (including hours and payroll tests), paid leave and paid sick leave, general state
232
233
  licenses, DBA filing level and office, LLC publication, workplace notices, professional boards (attorney, CPA,
233
234
  physician, architect, engineer) and industry licensing authorities including cannabis regulators.
235
+ - **Industry licences by NAICS code (New York, about 200 items):** give `naics` and the plan adds the state licences,
236
+ permits, registrations and recurring filings that apply to that line of business, each with its official page and
237
+ the date it was checked. The items live in `data/industries/NY.json` and show only when the business's code starts
238
+ with one of the item's NAICS prefixes. A code with no item has not been found to need a state licence, which is not
239
+ the same as verified none. Other states are added the same way (see CONTRIBUTING).
234
240
  - **City (seeded):** the 300 largest US cities (2020 census, ranks beyond 100 approximate) are all covered, in `data/cities/<STATE>.json`: some
235
241
  with city-specific taxes and licenses, some checked and found to have no general city license or tax
236
242
  (`status: "none"`), and some researched but not confirmed from an official page (`status: "unverified"`).
237
- [`COVERAGE.md`](https://github.com/Alisa007/business-obligations/blob/main/packages/core/COVERAGE.md) lists them. Every other city returns the state's typical local licensing regime,
243
+ The JSON in [`data/cities`](https://github.com/Alisa007/business-obligations/tree/main/packages/core/data/cities) lists them (see [`COVERAGE.md`](https://github.com/Alisa007/business-obligations/blob/main/packages/core/COVERAGE.md)). Every other city returns the state's typical local licensing regime,
238
244
  named for the city and county you pass in. City data is one file per state and looked up by an index, so adding
239
245
  thousands more is a data change; to keep the bundle small you can also load city data yourself and add it with
240
246
  `seededCityRule(indexCities(seeds))`.
@@ -413,7 +419,7 @@ It sets no cookies, records no sessions and respects Do Not Track. It is off unl
413
419
 
414
420
  ## Size
415
421
 
416
- The core bundle is about 115 KB gzipped with all 51 jurisdictions' data. ZIP lookup (about 305 KB gzipped) lives in the
422
+ The core bundle is about 122 KB gzipped with all 51 jurisdictions' data. ZIP lookup (about 305 KB gzipped) lives in the
417
423
  separate `business-obligations/zip` entry and is only loaded when you import it. `npm run size` enforces the budgets.
418
424
 
419
425
  ## Extending
@@ -1,6 +1,5 @@
1
1
  [
2
2
  {
3
- "state": "AK",
4
3
  "city": "Anchorage",
5
4
  "status": "unverified",
6
5
  "note": "Whether the Municipality requires a general business license was not confirmed; the state business license applies.",
@@ -1,6 +1,5 @@
1
1
  [
2
2
  {
3
- "state": "AL",
4
3
  "city": "Birmingham",
5
4
  "counties": ["Jefferson", "Shelby"],
6
5
  "items": [
@@ -10,15 +9,14 @@
10
9
  "category": "license",
11
10
  "authority": "City of Birmingham Finance Department, Tax and License Administration Division",
12
11
  "description": "Businesses in Birmingham need a city business license. The license year runs January 1 to December 31 and licenses expire on December 31.",
13
- "frequency": "annual",
14
- "deadline": "Licenses expire December 31",
12
+ "rrule": "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=31",
13
+ "deadlineNote": "licenses expire",
15
14
  "url": "https://birminghamal.gov/2024/08/09/the-city-of-birmingham-encourages-businesses-to-enroll-in-new-business-tax-and-license-system",
16
15
  "appliesTo": ["all"]
17
16
  }
18
17
  ]
19
18
  },
20
19
  {
21
- "state": "AL",
22
20
  "city": "Huntsville",
23
21
  "counties": ["Madison", "Limestone"],
24
22
  "items": [
@@ -28,13 +26,7 @@
28
26
  "category": "license",
29
27
  "authority": "City of Huntsville Finance Department",
30
28
  "description": "Licenses expire December 31; renewal is due January 31, a 15% penalty applies from February 1 and 30% from March 1 (insurance licenses are due the last day of February).",
31
- "frequency": "annual",
32
- "deadline": "January 31",
33
- "due": {
34
- "type": "fixed",
35
- "month": 1,
36
- "day": 31
37
- },
29
+ "rrule": "FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=31",
38
30
  "url": "https://www.huntsvilleal.gov/?p=121",
39
31
  "appliesTo": ["all"]
40
32
  }
@@ -42,7 +34,6 @@
42
34
  "checkedOn": "2026-10-13"
43
35
  },
44
36
  {
45
- "state": "AL",
46
37
  "city": "Mobile",
47
38
  "counties": ["Mobile"],
48
39
  "items": [
@@ -52,13 +43,7 @@
52
43
  "category": "license",
53
44
  "authority": "City of Mobile Revenue Department",
54
45
  "description": "Licenses expire December 31, are due January 1 and become delinquent after January 31; a 15% penalty applies in February and 30% from March 1.",
55
- "frequency": "annual",
56
- "deadline": "January 1 (delinquent after January 31)",
57
- "due": {
58
- "type": "fixed",
59
- "month": 1,
60
- "day": 31
61
- },
46
+ "rrule": "FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=31",
62
47
  "url": "https://www.cityofmobile.gov/business-license-overview/",
63
48
  "appliesTo": ["all"]
64
49
  }
@@ -66,7 +51,6 @@
66
51
  "checkedOn": "2026-10-13"
67
52
  },
68
53
  {
69
- "state": "AL",
70
54
  "city": "Montgomery",
71
55
  "counties": ["Montgomery"],
72
56
  "items": [
@@ -1,6 +1,5 @@
1
1
  [
2
2
  {
3
- "state": "AR",
4
3
  "city": "Little Rock",
5
4
  "status": "unverified",
6
5
  "note": "The Treasury page still shows an old renewal date (January 1, 2024); the current date was not confirmed.",
@@ -1,6 +1,5 @@
1
1
  [
2
2
  {
3
- "state": "AZ",
4
3
  "city": "Chandler",
5
4
  "counties": ["Maricopa"],
6
5
  "items": [
@@ -18,7 +17,6 @@
18
17
  "checkedOn": "2026-10-13"
19
18
  },
20
19
  {
21
- "state": "AZ",
22
20
  "city": "Gilbert",
23
21
  "counties": ["Maricopa"],
24
22
  "items": [
@@ -36,7 +34,6 @@
36
34
  "checkedOn": "2026-10-13"
37
35
  },
38
36
  {
39
- "state": "AZ",
40
37
  "city": "Glendale",
41
38
  "counties": ["Maricopa"],
42
39
  "items": [
@@ -54,7 +51,6 @@
54
51
  "checkedOn": "2026-10-13"
55
52
  },
56
53
  {
57
- "state": "AZ",
58
54
  "city": "Mesa",
59
55
  "counties": ["Maricopa"],
60
56
  "items": [
@@ -72,7 +68,6 @@
72
68
  "checkedOn": "2026-10-13"
73
69
  },
74
70
  {
75
- "state": "AZ",
76
71
  "city": "Peoria",
77
72
  "counties": ["Maricopa", "Yavapai"],
78
73
  "items": [
@@ -90,7 +85,6 @@
90
85
  "checkedOn": "2026-10-13"
91
86
  },
92
87
  {
93
- "state": "AZ",
94
88
  "city": "Phoenix",
95
89
  "counties": ["Maricopa"],
96
90
  "items": [
@@ -107,7 +101,6 @@
107
101
  ]
108
102
  },
109
103
  {
110
- "state": "AZ",
111
104
  "city": "Scottsdale",
112
105
  "status": "unverified",
113
106
  "note": "Only the state-administered TPT license was confirmed from the city's pages; a separate city business registration was not.",
@@ -117,7 +110,6 @@
117
110
  "checkedOn": "2026-10-13"
118
111
  },
119
112
  {
120
- "state": "AZ",
121
113
  "city": "Surprise",
122
114
  "counties": ["Maricopa"],
123
115
  "items": [
@@ -135,7 +127,6 @@
135
127
  "checkedOn": "2026-10-13"
136
128
  },
137
129
  {
138
- "state": "AZ",
139
130
  "city": "Tempe",
140
131
  "counties": ["Maricopa"],
141
132
  "items": [
@@ -145,13 +136,8 @@
145
136
  "category": "license",
146
137
  "authority": "City of Tempe Financial Services, Sales Tax and Licensing",
147
138
  "description": "The general business license (effective August 1, 2025) applies to businesses with a permanent Tempe location, including those with no TPT license; the first renewal is due before January 1, 2027 and annually after that. Regulatory licenses are separate.",
148
- "frequency": "annual",
139
+ "rrule": "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=31",
149
140
  "deadline": "Before January 1 each year (first renewal before January 1, 2027)",
150
- "due": {
151
- "type": "fixed",
152
- "month": 12,
153
- "day": 31
154
- },
155
141
  "url": "https://www.tempe.gov/government/financial-services/sales-tax-licensing/general-business-license",
156
142
  "appliesTo": ["all"]
157
143
  }
@@ -159,7 +145,6 @@
159
145
  "checkedOn": "2026-10-13"
160
146
  },
161
147
  {
162
- "state": "AZ",
163
148
  "city": "Tucson",
164
149
  "counties": ["Pima"],
165
150
  "items": [