Which edition of the International Building Code, Residential Code and 15 other I-Codes the ICC's adoption chart of January 2024 records for each US state
What the International Code Council's own I-Code adoption chart, published January 2024, records for each US state and territory. The ICC publishes 17 code families (IBC, IRC, IFC, IMC, IPC, IPSDC, IFGC, IgCC, IPMC, IEBC, ISPSC, ICCPC, IWUIC, IZC, ICC 700) and states adopt different editions of each, so the chart is a grid of state against code family and each record here is one state's row of it -- the chart records Ohio at IBC 2015 but IRC 2018, Texas at IBC 2012 and IRC 2012, Wyoming at IBC 2021 with the IRC adopted only locally. This is a January 2024 snapshot and not a statement of what is in force today. Fifteen states have now been checked against their own adopting regulation. Five match the chart and ten do not, and the misses do not all run the same way: Washington and Pennsylvania read 18 where the regulation adopts the 2021 edition, New Mexico and Wisconsin read 15 where it adopts 2021, Rhode Island reads 18 where it adopts 2021, New Jersey reads 21 where the subcodes are already on the 2024 editions, Iowa reads 15 where the rule adopts the 2024 editions -- three editions of drift, the widest found so far -- and New Hampshire reads 18 where the law is already on the 2024 editions. But Virginia's 21, Minnesota's 18, Nebraska's 18, Kentucky's 15 and South Carolina's 21 are all exactly right, so an old-looking year in a cell is not by itself a sign the cell is stale, and a recent-looking one is not a guarantee. For the edition actually in force, read the state's own adopting regulation -- which is what the two 'in force' columns below do, where they are present. Since 2026-09-30 some states carry two further columns that do exactly that -- 'IBC edition in force' and 'IRC edition in force', each quoted from the state's own adopting regulation and not from this chart, with the regulation named beside them -- so those pages show the chart's January 2024 value and the law side by side. Fifteen states are done. Virginia, Minnesota, Nebraska, Kentucky and South Carolina agree with the chart; Washington, Pennsylvania, New Mexico, Rhode Island and Iowa are behind it, Iowa by three editions, its cell reading 15 against a rule on the 2024 codes; New Jersey is one edition behind on both families; New Hampshire is two editions behind in the other direction, because the state moved on to the 2024 codes and the chart still reads 18; Wisconsin is two editions behind on the IBC and adopts no IRC edition at all, substituting its own Uniform Dwelling Code; Michigan is two editions behind on the IBC while its IRC column, which reads 15, is still right, because Michigan updated its building rules and left its residential rules alone; and Oregon was the same shape until 2026-10-01, when OAR 918-480-0005 moved the residential code on to the 2024 IRC, so both of Oregon's columns are now an edition behind. Michigan is the useful warning -- whether the chart is stale turns on the code family, not on the chart's own value, so a state's columns can be right and wrong at the same time. Oregon is the second warning, and a sharper one: a cell that was right in September was stale in October, because the state's residential rule is on an annual October cycle. What does not go stale at that rate is coverage -- whether a state has adopted a given code family at all, and whether statewide or only locally -- and that is what this chart is good for. Every record carries the chart's own date as 'Chart as of'. Editions are printed as two-digit years, per the chart's own key: 21 = 2021, 18 = 2018, 15 = 2015, 12 = 2012, 09 = 2009, 06 = 2006, 04 = 2004, 03 = 2003, 00 = 2000. 'X' means one or more state or local agencies have adopted an edition of that code, but it is not used as a standard for all buildings, and a code family is left blank here when the chart shows no adoption in that state. Three cells are printed with an asterisk (Hawaii IPC 'X*', Idaho ISPSC '*15', Oregon IWUIC 'X*'); the chart carries no legend for it in any of the three ways the PDF can be read, so the asterisk is reproduced as printed and not interpreted. New Jersey's fire code cell reads '15 (IBC)' -- the chart's legend glosses parentheses as a stretch code, but here the parenthetical names the code the provisions come from, so it too is reproduced as printed. American Samoa's building code cell reads '1964 UBC', an edition of the Uniform Building Code rather than an I-Code. The two energy columns (IECC-R, IECC-C) are deliberately not published here: energy-code-adoption-by-state carries those from each state's adopting regulation, which is current, whereas this chart's energy values have gone stale since January 2024. NEC/NFPA 70 is covered by nec-edition-adoption-by-state. The other 15 code families (IBC, IRC, IFC, IMC, IPC, IPSDC, IFGC, IgCC, IPMC, IEBC, ISPSC, ICCPC, IWUIC, IZC, ICC 700) are not covered anywhere else in the portfolio.
The data
| State or territory | Chart as of | IBC edition | IRC edition | IFC edition | IMC edition | IPC edition | IPSDC edition | IFGC edition | IPMC edition | IEBC edition | ISPSC edition | ICCPC edition | IWUIC edition | IZC edition | IgCC edition | ICC 700 edition | IBC edition in force (from the state's own regulation) | IRC edition in force (from the state's own regulation) | Adopting regulation |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Alabama | January 2024 | 21 | 15 | 21 | 21 | 21 | X | 21 | X | 21 | X | X | X | X | |||||
| Alaska | January 2024 | 21 | X | 21 | 21 | 21 | 21 | ||||||||||||
| American Samoa | January 2024 | 1964 UBC | |||||||||||||||||
| Arizona | January 2024 | X | X | 18 | X | X | X | X | X | X | X | X | X | X | X | X | |||
| Arkansas | January 2024 | 21 | 21 | 21 | 21 | 18 | 18 | X | X | ||||||||||
| California | January 2024 | 21 | 21 | 21 | X | 21 | X | X | |||||||||||
| Colorado | January 2024 | X | X | X | X | 21 | X | 21 | X | X | X | X | X | X | X | X | |||
| Connecticut | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | |||||||||||
| Delaware | January 2024 | X | X | 21 | 21 | X | 21 | X | X | X | X | ||||||||
| District of Columbia | January 2024 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 12 | ||||||||
| Florida | January 2024 | 21 | 21 | 21 | 21 | X | 21 | X | 21 | X | |||||||||
| Georgia | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | X | X | |||||||
| Guam | January 2024 | 09 | 09 | 09 | 09 | 09 | 09 | 09 | 09 | ||||||||||
| Hawaii | January 2024 | 18 | 18 | X* | 18 | ||||||||||||||
| Idaho | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | *15 | X | X | X | |||||||
| Illinois | January 2024 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||
| Indiana | January 2024 | 12 | 18 | 12 | 12 | 06 | 12 | ||||||||||||
| Iowa | January 2024 | 15 | 15 | 15 | 21 | X | X | X | X | 15 | X | X | 2024 | 2024 | Iowa Admin. Code r. 481—301.3(103A) (IBC), r. 481—301.8(103A) (IRC) | ||||
| Kansas | January 2024 | X | X | X | X | X | X | X | X | X | X | ||||||||
| Kentucky | January 2024 | 15 | 15 | 12 | 15 | X | 15 | 2015 | 2015 | 815 KAR 7:120 (IBC), 815 KAR 7:125 (IRC) | |||||||||
| Louisiana | January 2024 | 21 | 21 | X | 21 | 21 | 21 | X | 21 | 21 | |||||||||
| Maine | January 2024 | 15 | 15 | 15 | X | 15 | |||||||||||||
| Maryland | January 2024 | 21 | 21 | 21 | 21 | X | 21 | X | 21 | 21 | X | ||||||||
| Massachusetts | January 2024 | 15 | 15 | X | 15 | 15 | 15 | ||||||||||||
| Michigan | January 2024 | 15 | 15 | X | 15 | 15 | X | 15 | X | 15 | 15 | X | 12 | 2021 | 2015 | Mich. Admin. Code R. 408.30401 (IBC), R 408.30500 (IRC) | |||
| Minnesota | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | X | X | 2018 | 2018 | Minn. R. 1305.0011 (IBC), Minn. R. 1309.0010 (IRC) | ||||||
| Mississippi | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | X | 18 | X | X | |||||||
| Missouri | January 2024 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||
| Montana | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | |||||||||
| Nebraska | January 2024 | 18 | 18 | X | X | X | X | X | X | 18 | X | X | 2018 | 2018 | Neb. Rev. Stat. § 71-6403 | ||||
| Nevada | January 2024 | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
| New Hampshire | January 2024 | 18 | 18 | 18 | 18 | X | 18 | 18 | X | 2024 | 2024 | N.H. Rev. Stat. Ann. § 155-A:1, IV | |||||||
| New Jersey | January 2024 | 21 | 21 | 15 (IBC) | 21 | 21 | X | 21 | 2024 | 2024 | N.J.A.C. 5:23-3.14(a)1 (IBC), N.J.A.C. 5:23-3.21(a)1 (IRC) | ||||||||
| New Mexico | January 2024 | 15 | 15 | 15 | X | X | X | X | 15 | X | X | 2021 | 2021 | 14.7.2 NMAC (IBC), 14.7.3 NMAC (IRC) | |||||
| New York | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | ||||||||||
| North Carolina | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | |||||||||||
| North Dakota | January 2024 | 21 | 21 | 21 | 21 | 21 | X | X | |||||||||||
| Northern Mariana Islands | January 2024 | 18 | 18 | ||||||||||||||||
| Ohio | January 2024 | 15 | 18 | 15 | 15 | 15 | 15 | X | X | X | |||||||||
| Oklahoma | January 2024 | 18 | 18 | 18 | 18 | 18 | X | 18 | X | 18 | X | X | X | ||||||
| Oregon | January 2024 | 21 | 21 | 21 | 21 | 21 | X* | 2024 | 2024 | Or. Admin. R. 918-460-0010(2)(a) (IBC), Or. Admin. R. 918-480-0005(3)(a) (IRC) | |||||||||
| Pennsylvania | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | X | 18 | 18 | 18 | 18 | 2021 | 2021 | 34 Pa. Code § 403.21 | ||||
| Puerto Rico | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | |||||||||
| Rhode Island | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 12 | 2021 | 2021 | 510-RICR-00-00-1 § 1.2 (IBC), 510-RICR-00-00-2 § 2.2 (IRC) | |||||||
| South Carolina | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | X | X | X | X | 2021 | 2021 | S.C. Code Regs. 8–800 (IBC), 8–1200 (IRC) | |||||
| South Dakota | January 2024 | 21 | 21 | 15 | 15 | X | 21 | X | X | X | |||||||||
| Tennessee | January 2024 | 12 | 18 | 12 | 12 | 12 | 12 | 12 | 12 | X | X | X | X | ||||||
| Texas | January 2024 | 12 | 12 | X | X | X | X | X | X | X | 18 | X | X | X | X | ||||
| U.S. Virgin Islands | January 2024 | 18 | 18 | 18 | 18 | 18 | |||||||||||||
| Utah | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | X | |||||||||
| Vermont | January 2024 | 15 | X | 15 | |||||||||||||||
| Virginia | January 2024 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 21 | 2021 | 13VAC5-63-10 | |||||||
| Washington | January 2024 | 18 | 18 | 18 | 18 | X | 18 | X | 18 | 18 | X | 18 | X | 2021 | 2021 | WAC 51-50-003 (IBC), WAC 51-51-003 (IRC) | |||
| West Virginia | January 2024 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | ||||||||||
| Wisconsin | January 2024 | 15 | X | 15 | 15 | 15 | 2021 | Wis. Admin. Code SPS § 361.05(1) | |||||||||||
| Wyoming | January 2024 | 21 | X | 21 | 21 | X | X | 21 | X | 21 | X | X | X | X |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 23 sources this dataset was assembled from.
- iccsafe.orghttps://www.iccsafe.org/wp-content/uploads/Master-I-Code-Adoption-Chart-1.pdf
- legis.iowa.govhttps://www.legis.iowa.gov/docs/iac/chapter/481.301.pdf
- apps.legislature.ky.govhttps://apps.legislature.ky.gov/law/kar/titles/815/007/120/
- apps.legislature.ky.govhttps://apps.legislature.ky.gov/law/kar/titles/815/007/125/
- ars.apps.lara.state.mi.ushttps://ars.apps.lara.state.mi.us/AdminCode/DownloadAdminCodeFile?FileName=R+408.30401++to+408.30499a.pdf&ReturnHTML=True
- ars.apps.lara.state.mi.ushttps://ars.apps.lara.state.mi.us/AdminCode/DownloadAdminCodeFile?FileName=R+408.30500++to+408.30547g.pdf&ReturnHTML=True
- revisor.mn.govhttps://www.revisor.mn.gov/rules/1305.0011/
- revisor.mn.govhttps://www.revisor.mn.gov/rules/1309.0010/
- nebraskalegislature.govhttps://nebraskalegislature.gov/laws/statutes.php?statute=71-6403
- gencourt.state.nh.ushttps://www.gencourt.state.nh.us/rsa/html/XII/155-A/155-A-1.htm
- nj.govhttps://www.nj.gov/dca/codes/codreg/pdf_regs/njac_5_23_3.pdf
- srca.nm.govhttps://www.srca.nm.gov/parts/title14/14.007.0002.html
- srca.nm.govhttps://www.srca.nm.gov/parts/title14/14.007.0003.html
- secure.sos.state.or.ushttps://secure.sos.state.or.us/oard/view.action?ruleNumber=918-460-0010
- secure.sos.state.or.ushttps://secure.sos.state.or.us/oard/view.action?ruleNumber=918-480-0005
- pacodeandbulletin.govhttps://www.pacodeandbulletin.gov/Display/pacode?file=/secure/pacode/data/034/chapter403/s403.21.html
- rules.sos.ri.govhttps://rules.sos.ri.gov/regulations/part/510-00-00-1
- rules.sos.ri.govhttps://rules.sos.ri.gov/regulations/part/510-00-00-2
- scstatehouse.govhttps://www.scstatehouse.gov/coderegs/Chapter%208.pdf
- law.lis.virginia.govhttps://law.lis.virginia.gov/admincode/title13/agency5/chapter63/section10/
- app.leg.wa.govhttps://app.leg.wa.gov/WAC/default.aspx?cite=51-50-003
- app.leg.wa.govhttps://app.leg.wa.gov/WAC/default.aspx?cite=51-51-003
- docs.legis.wisconsin.govhttps://docs.legis.wisconsin.gov/document/administrativecode/SPS%20361.05
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup ibc-irc-code-edition-adoption-by-state state=Alabama
npx -y refsource lookup ibc-irc-code-edition-adoption-by-state state=Alabama
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "Which edition of the International Building Code, Residential Code and 15 other I-Codes the ICC's adoption chart of January 2024 records for each US state", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `ibc-irc-code-edition-adoption-by-state`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.