{"id":464,"date":"2026-09-30T02:34:48","date_gmt":"2026-09-30T06:34:48","guid":{"rendered":"https:\/\/passcontractorexam.com\/articles\/?p=464"},"modified":"2026-10-01T01:09:08","modified_gmt":"2026-10-01T05:09:08","slug":"residential-contractor-license-florida","status":"publish","type":"post","link":"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/","title":{"rendered":"Florida Residential Contractor License: The CRC Rules"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>A Florida residential contractor license, the CRC, limits you to one, two or three family homes up to two habitable stories under Florida Statutes 489.105. You still sit all three Division I exams, still need experience in specific structural categories, and the fees run within a few dollars of the general contractor license.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"residential-contractor-license-florida\" data-minutes=\"8\">\n<style>.msq-audio{margin:1.25em 0 1.75em;padding:16px 18px;background:#F3F1EC;border:1px solid #D9D3C7;border-radius:12px}\n.msq-audio-lead{margin:0 0 8px;font-size:.95em}.msq-audio audio{width:100%;margin:0 0 12px;display:block}\n.msq-toc-title{margin:0 0 6px;font-weight:700}.msq-toc ol{margin:0;padding:0;list-style:none}\n.msq-toc li{display:flex;gap:10px;align-items:center;padding:6px 6px;border-bottom:1px solid #D9D3C7;border-radius:8px}\n.msq-toc li:last-child{border-bottom:0}.msq-toc li.is-active{background:#fff}\n.msq-toc-play{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:0;background:#24405E;color:#fff;font:inherit;font-size:.72em;line-height:30px;padding:0;cursor:pointer}\n.msq-toc-play.is-playing{background:#C4540E}\n.msq-toc-time{flex:0 0 auto;min-width:3.1em;font-variant-numeric:tabular-nums;color:#4C5561;font-size:.9em}\n.msq-toc a{color:#1B1F24;text-decoration:none;line-height:1.35}.msq-toc li.is-active a{font-weight:700;color:#24405E}\n.msq-audio-note{margin:10px 0 0;font-size:.82em;color:#4C5561}\nh2.wp-block-heading[id]{scroll-margin-top:24px}\n.msq-hplay{display:inline-block;vertical-align:middle;width:26px;height:26px;margin:0 0 0 10px;border-radius:50%;border:0;background:#24405E;cursor:pointer;padding:0;position:relative;top:-2px}\n.msq-hplay::before{content:'\u25b6\ufe0e';display:block;color:#fff;font-size:11px;line-height:26px;text-align:center}\n.msq-hplay.is-playing{background:#C4540E}.msq-hplay.is-playing::before{content:'\u2016';font-size:13px;font-weight:700}\n.msq-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:#FFFFFF;border-top:1px solid #D9D3C7;box-shadow:0 -4px 16px rgba(0,0,0,.08);font-size:.92em;color:#1B1F24;transition:transform .2s ease}\n.msq-bar.is-hidden{transform:translateY(130%)}\n.msq-bar-play{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#24405E;color:#fff;font:inherit;font-weight:700;padding:8px 14px 8px 12px;cursor:pointer;white-space:nowrap}\n.msq-bar-play.is-playing{background:#C4540E}\n.msq-bar-icon::before{content:'\u25b6\ufe0e';font-size:12px}.msq-bar-play.is-playing .msq-bar-icon::before{content:'\u2016';font-size:14px;font-weight:700}\n.msq-bar-chapter{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.msq-bar-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#4C5561;font-size:.9em}\n.msq-bar-rate,.msq-bar-close{flex:0 0 auto;border:1px solid #D9D3C7;background:#fff;color:#1B1F24;font:inherit;font-size:.85em;line-height:1;border-radius:8px;padding:7px 9px;cursor:pointer}\n.msq-bar-close::before{content:'\u2715'}\n.msq-bar.msq-bar-pill{left:auto;right:14px;bottom:14px;padding:6px;padding-bottom:6px;border:1px solid #D9D3C7;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.15)}\n.msq-bar.msq-bar-pill .msq-bar-chapter,.msq-bar.msq-bar-pill .msq-bar-time,.msq-bar.msq-bar-pill .msq-bar-rate{display:none}\nbody.msq-has-bar{padding-bottom:76px}\n@media (max-width:600px){.msq-bar-time{display:none}.msq-bar{gap:8px;padding-left:10px;padding-right:10px}}\n.msq-s.msq-now{background:#F3F1EC;box-shadow:0 2px 0 #24405E;border-radius:2px}\ntr.msq-now td,tr.msq-now th{background:#F3F1EC;box-shadow:inset 0 -2px 0 #24405E}\n@media (hover:hover){.msq-s,tr[data-i]{cursor:pointer}.msq-s:hover{background:#F3F1EC}}<\/style>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"AudioObject\",\"@id\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/#audio\",\"name\":\"Florida Residential Contractor License: The CRC Rules, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 30 September 2026.\",\"contentUrl\":\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-audio-202609301208.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT8M15S\",\"uploadDate\":\"2026-09-30\",\"inLanguage\":\"en-US\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Florida Residential Contractor License: The CRC Rules\",\"startOffset\":0,\"endOffset\":61},{\"@type\":\"Clip\",\"name\":\"What can a Florida residential contractor actually build?\",\"startOffset\":61,\"endOffset\":121,\"url\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/#what-can-a-florida-residential-contractor-actually-build\"},{\"@type\":\"Clip\",\"name\":\"How is a CRC different from a CBC or a CGC?\",\"startOffset\":121,\"endOffset\":214,\"url\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/#how-is-a-crc-different-from-a-cbc-or-a-cgc\"},{\"@type\":\"Clip\",\"name\":\"What experience actually counts toward a CRC?\",\"startOffset\":214,\"endOffset\":351,\"url\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/#what-experience-actually-counts-toward-a-crc\"},{\"@type\":\"Clip\",\"name\":\"How many exams, and what do they cost?\",\"startOffset\":351,\"endOffset\":426,\"url\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/#how-many-exams-and-what-do-they-cost\"},{\"@type\":\"Clip\",\"name\":\"Which license should you actually apply for?\",\"startOffset\":426,\"endOffset\":495,\"url\":\"https:\/\/passcontractorexam.com\/articles\/residential-contractor-license-florida\/#which-license-should-you-actually-apply-for\"}],\"contentSize\":\"3.5 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 8 minutes. A synthetic voice reads the article and announces each section title as it begins; tables are read row by row and the questions at the end are left out.<\/p>\n<audio class=\"msq-audio-player\" controls preload=\"metadata\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-audio-202609301208.mp3\"><\/audio>\n<nav class=\"msq-toc\" aria-label=\"In this article\"><p class=\"msq-toc-title\">In this article<\/p>\n<ol>\n<li data-start=\"0.0\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"0.0\" aria-label=\"Play from: Florida Residential Contractor License: The CRC Rules\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Florida Residential Contractor License: The CRC Rules<\/a><\/li>\n<li data-start=\"60.86\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"60.86\" aria-label=\"Play from: What can a Florida residential contractor actually build?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">1:01<\/span><a href=\"#what-can-a-florida-residential-contractor-actually-build\">What can a Florida residential contractor actually build?<\/a><\/li>\n<li data-start=\"121.28\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"121.28\" aria-label=\"Play from: How is a CRC different from a CBC or a CGC?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:01<\/span><a href=\"#how-is-a-crc-different-from-a-cbc-or-a-cgc\">How is a CRC different from a CBC or a CGC?<\/a><\/li>\n<li data-start=\"213.54\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"213.54\" aria-label=\"Play from: What experience actually counts toward a CRC?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">3:34<\/span><a href=\"#what-experience-actually-counts-toward-a-crc\">What experience actually counts toward a CRC?<\/a><\/li>\n<li data-start=\"351.12\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"351.12\" aria-label=\"Play from: How many exams, and what do they cost?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">5:51<\/span><a href=\"#how-many-exams-and-what-do-they-cost\">How many exams, and what do they cost?<\/a><\/li>\n<li data-start=\"425.66\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"425.66\" aria-label=\"Play from: Which license should you actually apply for?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">7:06<\/span><a href=\"#which-license-should-you-actually-apply-for\">Which license should you actually apply for?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 30 September 2026 from the article as published that day. Press a chapter to jump there; the highlighted line is what is playing. A play button sits beside every section heading, and once you scroll past this player a bar at the bottom of the screen keeps the controls in reach. Tap or click any sentence to hear the reading start from there.<\/p>\n<script>var MSQ_SENT = [[0.0,\"h\",\"floridaresidentialcontra\",46],[4.56,\"p\",\"afloridaresidentialcontr\",126],[19.28,\"p\",\"youstillsitallthreedivis\",141],[28.84,\"p\",\"onthispagethestatuteword\",167],[41.96,\"p\",\"residentialisthesmallest\",117],[49.92,\"p\",\"thescopetestisnotaboutbu\",143],[60.86,\"h\",\"whatcanafloridaresidenti\",49],[64.54,\"p\",\"thecategoryisdefinedinla\",104],[72.86,\"p\",\"acontractorwhoseservices\",233],[91.02,\"p\",\"readitslowlybecausetwoli\",43],[93.94,\"p\",\"thebuildingcountstopsatt\",188],[108.74,\"p\",\"acrccoversahouseaduplexa\",71],[114.9,\"p\",\"itdoesnotcoverafourplexa\",68],[121.28,\"h\",\"howisacrcdifferentfromac\",32],[125.96,\"p\",\"floridaissuesthreecertif\",116],[134.4,\"t\",\"certifiedgeneralcontract\",112],[150.96,\"t\",\"certifiedbuildingcontrac\",128],[167.32,\"t\",\"certifiedresidentialcont\",146],[187.32,\"p\",\"acbcsoundslikethesafermi\",120],[197.28,\"p\",\"forsomeonewhoonlyeverbui\",87],[204.52,\"p\",\"ourfullbreakdownofwhatag\",101],[213.54,\"h\",\"whatexperienceactuallyco\",38],[216.62,\"p\",\"thefouryearfigurethatcir\",68],[221.74,\"p\",\"floridaadministrativecod\",237],[240.98,\"p\",\"afouryearconstructionrel\",42],[244.34,\"p\",\"oneyearasaforemanpluscol\",58],[247.9,\"p\",\"oneyearasaworkeroneyeara\",60],[252.18,\"p\",\"twoyearsasaworkeroneyear\",60],[255.74,\"p\",\"threeyearsasaworkerpluso\",59],[258.9,\"p\",\"anupgradefromanexistingn\",46],[263.02,\"p\",\"separatelyandthisisthepa\",160],[276.74,\"p\",\"theruleisreportedtorequi\",163],[290.94,\"p\",\"runningajobsitewritingbi\",135],[301.9,\"p\",\"oneapplicantwhohadspenty\",398],[331.3,\"p\",\"ifyouarerelyingontheeduc\",108],[339.42,\"p\",\"ourguidetothefullflorida\",147],[351.12,\"h\",\"howmanyexamsandwhatdothe\",29],[353.44,\"p\",\"aresidentialapplicantsit\",168],[365.0,\"p\",\"thereisnoseparateeasierr\",39],[367.68,\"t\",\"examinationdevelopmentfe\",58],[375.16,\"t\",\"examinationadministratio\",82],[384.84,\"t\",\"applicationprocessing\",53],[391.6,\"t\",\"initiallicensure\",80],[400.4,\"p\",\"forthevendorsideofbookin\",217],[416.64,\"p\",\"ifthemathsonthebusinessa\",131],[425.66,\"h\",\"whichlicenseshouldyouact\",37],[428.18,\"p\",\"workouttheceilingonyoura\",121],[436.78,\"p\",\"ifeverythingyoubuildorpl\",173],[450.38,\"p\",\"ifafourplexasmallcommerc\",158],[463.14,\"p\",\"certifiedisalsoonlyhalft\",177],[476.22,\"p\",\"whichevercategoryyouchoo\",82],[481.18,\"p\",\"buildingafourplexonacrco\",179]];\n(function(){\n  function init(){\n  var root = document.querySelector('.msq-audio'); if (!root) { return; }\n  var audio = root.querySelector('audio'), items = Array.prototype.slice.call(root.querySelectorAll('.msq-toc li'));\n  var starts = items.map(function(li){ return parseFloat(li.getAttribute('data-start')) || 0; });\n  var names = items.map(function(li){ return li.querySelector('a').textContent; });\n  var anchors = items.map(function(li){ var h = li.querySelector('a').getAttribute('href') || ''; return (h.charAt(0) === '#' && h !== '#top') ? document.getElementById(h.slice(1)) : null; });\n  var article = root.getAttribute('data-article') || location.pathname, minutes = root.getAttribute('data-minutes') || '';\n  var marks = {}, started = false, pausedAt = -1, closed = false, ended = false;\n  var RATES = [1, 1.25, 1.5], rate = 1;\n  try { var saved = parseFloat(localStorage.getItem('msq-audio-rate')); if (RATES.indexOf(saved) >= 0) { rate = saved; } } catch (e) {}\n  audio.playbackRate = rate;\n  function track(name, extra){ try { if (typeof gtag === 'function') { var p = { article: article }; for (var k in extra) { p[k] = extra[k]; } gtag('event', name, p); } } catch (e) {} }\n  function current(){ var t = audio.currentTime, idx = 0; for (var i = 0; starts.length > i; i += 1) { if (t + 0.25 >= starts[i]) { idx = i; } } return idx; }\n  function onScreen(){\n    var line = window.innerHeight \/ 3, idx = 0;\n    for (var i = 0; anchors.length > i; i += 1) { var el = anchors[i]; if (el && line >= el.getBoundingClientRect().top) { idx = i; } }\n    return idx;\n  }\n  function fmt(s){ s = Math.max(0, Math.round(s || 0)); var m = Math.floor(s \/ 60), r = s % 60; return m + ':' + (10 > r ? '0' : '') + r; }\n  function play(from, source){\n    if (from !== null) { audio.currentTime = from; }\n    var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n    track(from === null ? 'audio_resume' : 'audio_chapter', { chapter: names[current()], start: Math.round(audio.currentTime), source: source });\n  }\n  var hbtns = anchors.map(function(el, i){\n    if (!el) { return null; }\n    var b = document.createElement('button'); b.type = 'button'; b.className = 'msq-hplay'; b.setAttribute('aria-label', 'Play this section: ' + names[i]);\n    b.addEventListener('click', function(){\n      if (!audio.paused && current() === i) { audio.pause(); track('audio_pause', { source: 'heading' }); return; }\n      play(starts[i], 'heading');\n    });\n    el.appendChild(b); return b;\n  });\n  var bar = document.createElement('div'); bar.className = 'msq-bar msq-bar-pill is-hidden'; bar.setAttribute('role', 'region'); bar.setAttribute('aria-label', 'Audio player');\n  var playBtn = document.createElement('button'); playBtn.type = 'button'; playBtn.className = 'msq-bar-play';\n  var icon = document.createElement('span'); icon.className = 'msq-bar-icon'; icon.setAttribute('aria-hidden', 'true');\n  var label = document.createElement('span'); label.className = 'msq-bar-label';\n  playBtn.appendChild(icon); playBtn.appendChild(label);\n  var chap = document.createElement('span'); chap.className = 'msq-bar-chapter';\n  var clock = document.createElement('span'); clock.className = 'msq-bar-time';\n  var rateBtn = document.createElement('button'); rateBtn.type = 'button'; rateBtn.className = 'msq-bar-rate'; rateBtn.setAttribute('aria-label', 'Playback speed');\n  var closeBtn = document.createElement('button'); closeBtn.type = 'button'; closeBtn.className = 'msq-bar-close'; closeBtn.setAttribute('aria-label', 'Close the audio bar');\n  bar.appendChild(playBtn); bar.appendChild(chap); bar.appendChild(clock); bar.appendChild(rateBtn); bar.appendChild(closeBtn);\n  document.body.appendChild(bar);\n  function showRate(){ rateBtn.textContent = (rate === 1 ? '1' : String(rate)) + 'x'; }\n  showRate();\n  rateBtn.addEventListener('click', function(){\n    rate = RATES[(RATES.indexOf(rate) + 1) % RATES.length]; audio.playbackRate = rate; showRate();\n    try { localStorage.setItem('msq-audio-rate', String(rate)); } catch (e) {}\n    track('audio_rate', { rate: rate });\n  });\n  closeBtn.addEventListener('click', function(){\n    closed = true; if (!audio.paused) { audio.pause(); } paint(); track('audio_bar_close', {});\n  });\n  function mode(){\n    if (!audio.paused) { return 'pause'; }\n    if (ended) { return 'again'; }\n    if (!started) { return 'listen'; }\n    return (pausedAt === onScreen()) ? 'resume' : 'section';\n  }\n  playBtn.addEventListener('click', function(){\n    var m = mode();\n    if (m === 'pause') { audio.pause(); track('audio_pause', { source: 'bar' }); return; }\n    if (m === 'again') { ended = false; play(0, 'bar'); return; }\n    if (m === 'resume') { play(null, 'bar'); return; }\n    play(starts[onScreen()], 'bar');\n  });\n  function paint(){\n    var idx = current(), playing = !audio.paused, m = mode();\n    items.forEach(function(li, i){\n      var on = (i === idx) && playing, b = li.querySelector('.msq-toc-play'), a = li.querySelector('a');\n      li.classList.toggle('is-active', on); b.classList.toggle('is-playing', on);\n      b.textContent = on ? '\u2016' : '\u25b6\ufe0e';\n      b.setAttribute('aria-label', (on ? 'Pause: ' : 'Play from: ') + a.textContent);\n    });\n    hbtns.forEach(function(b, i){ if (b) { var on = (i === idx) && playing; b.classList.toggle('is-playing', on); b.setAttribute('aria-label', (on ? 'Pause this section: ' : 'Play this section: ') + names[i]); } });\n    playBtn.classList.toggle('is-playing', playing);\n    label.textContent = m === 'pause' ? 'Pause' : m === 'again' ? 'Play again' : m === 'resume' ? 'Resume' : m === 'section' ? 'Play this section' : 'Listen, ' + minutes + ' min';\n    playBtn.setAttribute('aria-label', label.textContent);\n    chap.textContent = started ? names[(playing || m === 'resume') ? idx : onScreen()] : '';\n    clock.textContent = started ? fmt(audio.currentTime) + ' \/ ' + fmt(audio.duration) : '';\n    bar.classList.toggle('msq-bar-pill', !started);\n    var show = !closed && (started || 0 > root.getBoundingClientRect().bottom);\n    bar.classList.toggle('is-hidden', !show);\n    document.body.classList.toggle('msq-has-bar', show);\n  }\n  root.addEventListener('click', function(e){\n    var b = e.target.closest ? e.target.closest('.msq-toc-play') : null; if (!b) { return; }\n    var li = b.parentNode, s = parseFloat(b.getAttribute('data-start')) || 0;\n    if (!audio.paused && current() === items.indexOf(li)) { audio.pause(); track('audio_pause', { source: 'index' }); return; }\n    play(s, 'index');\n  });\n  audio.addEventListener('play', function(){ ended = false; closed = false; if (!started) { started = true; track('audio_play', { minutes: Math.round((audio.duration || 0) \/ 60) }); } paint(); });\n  audio.addEventListener('pause', function(){ pausedAt = current(); paint(); });\n  audio.addEventListener('timeupdate', function(){\n    paint();\n    if (audio.duration > 0) {\n      var pct = Math.floor(audio.currentTime \/ audio.duration * 100);\n      [25, 50, 75].forEach(function(m){ if (pct >= m && !marks[m]) { marks[m] = true; track('audio_progress', { percent: m }); } });\n    }\n  });\n  audio.addEventListener('ended', function(){ ended = true; track('audio_complete', {}); paint(); });\n  var ticking = false;\n  function onScroll(){ if (ticking) { return; } ticking = true; setTimeout(function(){ ticking = false; paint(); }, 80); }\n  window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', onScroll);\n  paint();\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\n(function(){\n  function start(){\n    var root = document.querySelector('.msq-audio'), audio = root ? root.querySelector('audio') : null;\n    var map = (typeof MSQ_SENT !== 'undefined') ? MSQ_SENT : [];\n    if (!root || !audio || !map.length) { return; }\n    var scope = root.closest('main') || root.closest('article') || root.closest('.entry-content') || document.body;\n    var SKIP = '.msq-audio,.msq,.msq-tool,.msq-end,.msq-bar,script,style,noscript,figcaption,#rank-math-faq,.rank-math-block,nav,header,footer';\n    function norm(s){ return s.toLowerCase().replace(\/[^a-z0-9]+\/g, ''); }\n    var nodes = [], stream = '', walker = document.createTreeWalker(scope, NodeFilter.SHOW_TEXT, null), n;\n    while ((n = walker.nextNode())) {\n      var el = n.parentElement; if (!el || el.closest(SKIP)) { continue; }\n      var raw = n.nodeValue, keep = [], norms = '';\n      for (var i = 0; raw.length > i; i += 1) { var c = raw.charAt(i).toLowerCase(); if (\/[a-z0-9]\/.test(c)) { keep.push(i); norms += c; } }\n      if (!norms) { continue; }\n      nodes.push({ node: n, a: stream.length, b: stream.length + norms.length, keep: keep });\n      stream += norms;\n    }\n    var segs = [], cursor = 0, lastRow = null;\n    map.forEach(function(m, idx){\n      var kind = m[1], f = m[2], len = m[3];\n      if (kind === 't') {\n        var rows = scope.querySelectorAll('tr'), after = !lastRow;\n        for (var r = 0; rows.length > r; r += 1) {\n          var tr = rows[r];\n          if (!after) { if (tr === lastRow) { after = true; } continue; }\n          var cell = tr.querySelector('td,th');\n          if (cell && norm(cell.textContent).indexOf(f) === 0) { tr.setAttribute('data-i', idx); lastRow = tr; break; }\n        }\n        return;\n      }\n      var p = stream.indexOf(f, cursor); if (0 > p) { return; }\n      segs.push({ i: idx, a: p, b: Math.min(p + len, stream.length) }); cursor = p + len;\n    });\n    var si = 0;\n    nodes.forEach(function(nd){\n      var frag = document.createDocumentFragment(), raw = nd.node.nodeValue, rawPos = 0, any = false;\n      for (var k = si; segs.length > k; k += 1) {\n        var sg = segs[k]; if (sg.a >= nd.b) { break; } if (nd.a >= sg.b) { continue; }\n        var s = Math.max(sg.a, nd.a), e = Math.min(sg.b, nd.b);\n        var rs = nd.keep[s - nd.a], re2 = nd.keep[e - nd.a - 1] + 1;\n        if (rs > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos, rs))); }\n        var span = document.createElement('span'); span.className = 'msq-s'; span.setAttribute('data-i', sg.i); span.textContent = raw.slice(rs, re2);\n        frag.appendChild(span); rawPos = re2; any = true;\n        if (sg.b > nd.b) { break; }\n      }\n      while (segs.length > si && nd.b >= segs[si].b) { si += 1; }\n      if (!any) { return; }\n      if (raw.length > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos))); }\n      nd.node.parentNode.replaceChild(frag, nd.node);\n    });\n    var starts = map.map(function(m){ return m[0]; }), curIdx = -1, lastUser = 0, timer = null, autoUntil = 0, dragging = false;\n    function idxAt(t){ var lo = 0, hi = starts.length; while (hi > lo + 1) { var mid = (lo + hi) >> 1; if (t + 0.15 >= starts[mid]) { lo = mid; } else { hi = mid; } } return (t + 0.15 >= starts[0]) ? lo : -1; }\n    function setNow(i){\n      if (i === curIdx) { return; }\n      Array.prototype.forEach.call(scope.querySelectorAll('.msq-now'), function(el){ el.classList.remove('msq-now'); });\n      curIdx = i; if (0 > i) { return; }\n      var els = scope.querySelectorAll('[data-i=\"' + i + '\"]'); if (!els.length) { return; }\n      Array.prototype.forEach.call(els, function(el){ el.classList.add('msq-now'); });\n      var r = els[0].getBoundingClientRect(), now = Date.now();\n      if (!dragging && now > lastUser + 2500 && (80 > r.top || r.bottom > window.innerHeight - 140)) {\n        var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n        autoUntil = now + (reduce ? 400 : 1600);\n        els[0].scrollIntoView({ block: 'center', behavior: reduce ? 'auto' : 'smooth' });\n      }\n    }\n    function tick(){ if (!audio.paused) { setNow(idxAt(audio.currentTime)); } }\n    function userScrolled(){ lastUser = Date.now(); }\n    ['wheel', 'touchmove', 'keydown'].forEach(function(ev){ window.addEventListener(ev, userScrolled, { passive: true }); });\n    window.addEventListener('scroll', function(){ if (Date.now() > autoUntil) { userScrolled(); } }, { passive: true });\n    window.addEventListener('mousedown', function(e){ if (e.clientX >= document.documentElement.clientWidth) { dragging = true; userScrolled(); } }, { passive: true });\n    window.addEventListener('mouseup', function(){ if (dragging) { dragging = false; userScrolled(); } }, { passive: true });\n    audio.addEventListener('play', function(){ if (timer) { clearInterval(timer); } timer = setInterval(tick, 150); tick(); });\n    audio.addEventListener('pause', function(){ if (timer) { clearInterval(timer); timer = null; } });\n    scope.addEventListener('click', function(e){\n      if (e.target.closest('a, button, input, select, textarea, label, summary, .msq, .msq-tool, .msq-end, .msq-audio, .msq-bar')) { return; }\n      var sel = window.getSelection ? String(window.getSelection()) : '';\n      if (sel && sel.trim()) { return; }\n      var el = e.target.closest('[data-i]'); if (!el) { return; }\n      var i = parseInt(el.getAttribute('data-i'), 10); if (isNaN(i)) { return; }\n      if (!audio.paused && i === curIdx) { return; }\n      lastUser = Date.now();\n      audio.currentTime = starts[i];\n      var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n      try { if (typeof gtag === 'function') { gtag('event', 'audio_chapter', { article: location.pathname, source: 'sentence', start: Math.round(starts[i]) }); } } catch (err) {}\n    });\n    audio.addEventListener('seeked', tick);\n    audio.addEventListener('ended', function(){ setNow(-1); });\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"msq-hook wp-block-paragraph\">On this page: the statute wording that sets a CRC&#8217;s scope, the six ways to qualify on experience and which structural categories actually count, and the real three exam fee math against the general license.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"residential-contractor-license-florida\" data-category=\"licensing\" data-list=\"1\">\n<style>.msq,.msq-hook,.msq-box,.msq-end,.msq-tool{--msq-accent:#24405E;--msq-accent-text:#FFFFFF;--msq-line:#D9D3C7;--msq-warn:#C4540E;--msq-muted:#4C5561;--msq-tint:#F3F1EC;--msq-base:#FFFFFF}\n.msq{margin:1.25em 0 1.75em}\n.msq-hook{border-left:3px solid var(--msq-accent);padding:6px 14px;color:var(--msq-muted);font-size:.97em}\n.msq-box{background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px;padding:0}\n.msq-box>summary{cursor:pointer;list-style:none;padding:14px 18px;font-weight:700;color:var(--msq-accent)}\n.msq-box>summary::-webkit-details-marker{display:none}\n.msq-box>summary::before{content:\"+\";display:inline-block;width:1.1em;font-weight:800}\n.msq-box[open]>summary::before{content:\"\\00d7\"}\n.msq-body{padding:2px 18px 18px}\n.msq-intro{margin:0 0 12px;font-size:.95em;color:var(--msq-muted)}\n.msq-list{margin:0;padding:0;list-style:none}\n.msq-q{margin:0 0 18px;padding:0}\n.msq-question{font-weight:700;margin:0 0 8px}\n.msq-options{display:flex;flex-direction:column;gap:8px}\n.msq-opt{text-align:left;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;padding:10px 12px;font:inherit;font-size:.95em;color:inherit;cursor:pointer;line-height:1.35}\n.msq-opt:hover{border-color:var(--msq-accent)}\n.msq-opt[disabled]{cursor:default}\n.msq-opt.is-right{border-color:var(--msq-accent);background:var(--msq-line);font-weight:700}\n.msq-opt.is-wrong{border-color:var(--msq-warn);color:var(--msq-warn)}\n.msq-explain{margin:8px 0 0;font-size:.92em;padding:10px 12px;border-left:3px solid var(--msq-accent);background:var(--msq-base);border-radius:0 8px 8px 0}\n.msq-explain[hidden]{display:none}\n.msq-verdict{font-weight:700}\n.msq-result{margin-top:14px;padding:14px 16px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:10px}\n.msq-result[hidden]{display:none}\n.msq-result h3{margin:0 0 6px;font-size:1.1em}\n.msq-result p{margin:0 0 8px}\n.msq-jump{margin:0 0 8px;padding-left:1.2em}\n.msq-form{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n.msq-form input[type=email]{flex:1 1 220px;padding:10px 12px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-btn{background:var(--msq-accent);color:var(--msq-accent-text);border:0;border-radius:8px;padding:11px 18px;font:inherit;font-weight:700;cursor:pointer}\n.msq-btn:hover{filter:brightness(.92)}\n.msq-btn[disabled]{opacity:.7;cursor:default}\n.msq-no{font-size:.9em;color:var(--msq-muted);margin-left:4px}\n.msq-privacy{margin:6px 0 0;font-size:.82em;color:var(--msq-muted);flex-basis:100%}\n.msq-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}\n.msq-msg{margin:8px 0 0;font-size:.92em}\n.msq-end{margin:1.5em 0;padding:18px;border:1px solid var(--msq-accent);border-radius:12px;text-align:center;background:var(--msq-tint)}\n.msq-end p{margin:0 0 12px}\n.msq-end .msq-body{text-align:left;padding:16px 0 0}\n.msq-end .msq-start-test[hidden]{display:none}\n.msq-tool{margin:1.5em 0;padding:18px 20px;background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px}\n.msq-tool h3{margin:0 0 6px;font-size:1.15em}\n.msq-tool p{margin:0 0 10px}\n.msq-tool .msq-note{font-size:.85em;color:var(--msq-muted);margin:10px 0 0}\n.msq-check label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--msq-line);cursor:pointer;line-height:1.4}\n.msq-check label:last-of-type{border-bottom:0}\n.msq-check input{margin-top:5px;flex:0 0 auto;width:18px;height:18px;accent-color:var(--msq-accent)}\n.msq-check-count{font-weight:700;margin:10px 0 0}\n.msq-verdict-box{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:var(--msq-base);border-left:3px solid var(--msq-warn)}\n.msq-verdict-box[hidden]{display:none}\n.msq-calc{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}\n.msq-calc label{display:flex;flex-direction:column;gap:4px;font-size:.92em}\n.msq-calc input,.msq-calc select{padding:8px 10px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-calc-out{grid-column:1 \/ -1;margin-top:6px;padding:12px 14px;background:var(--msq-base);border-radius:8px;border:1px solid var(--msq-line)}\n.msq-calc-out strong{font-size:1.15em}\n.msq-choose label{display:block;padding:9px 12px;margin:0 0 8px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;cursor:pointer}\n.msq-choose input{margin-right:8px;accent-color:var(--msq-accent)}\n.msq-choice-result{margin-top:10px;padding:12px 14px;background:var(--msq-base);border-left:3px solid var(--msq-accent);border-radius:0 8px 8px 0}\n.msq-choice-result[hidden]{display:none}\n@media (max-width:600px){.msq-calc{grid-template-columns:1fr}}\nh2.wp-block-heading[id]{scroll-margin-top:24px}<\/style>\n<noscript><style>.msq-explain{display:block !important}<\/style><\/noscript>\n<details class=\"msq-box\">\n<summary>Think you already know this? Five questions, one minute.<\/summary>\n<div class=\"msq-body\">\n<p class=\"msq-intro\">Every answer is on this page. Answer from what you know now; the page fills in the rest.<\/p>\n<ol class=\"msq-list\">\n<li class=\"msq-q\" data-q=\"1\" data-answer=\"b\" data-title=\"What can a Florida residential contractor actually build?\" data-section=\"#what-can-a-florida-residential-contractor-actually-build\">\n<p class=\"msq-question\">1. Under Florida Statutes 489.105, what is the largest building a CRC covers?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">A fourplex<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">A triplex<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">A small commercial building<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Section 489.105(3)(c) limits a residential contractor to one, two or three family residences, so a triplex is inside scope and a fourplex is not. <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2025\/489.105\" target=\"_blank\" rel=\"noopener\">Florida Statutes 489.105<\/a> <a class=\"msq-section\" href=\"#what-can-a-florida-residential-contractor-actually-build\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"c\" data-title=\"How is a CRC different from a CBC or a CGC?\" data-section=\"#how-is-a-crc-different-from-a-cbc-or-a-cgc\">\n<p class=\"msq-question\">2. Which Division I license has no height or unit limit at all?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">CRC<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">CBC<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">CGC<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The certified general contractor license is unlimited as to the type of work, while a CBC stops at three stories and a CRC at two habitable stories. <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2025\/489.105\" target=\"_blank\" rel=\"noopener\">Florida Statutes 489.105<\/a> <a class=\"msq-section\" href=\"#how-is-a-crc-different-from-a-cbc-or-a-cgc\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"b\" data-title=\"What experience actually counts toward a CRC?\" data-section=\"#what-experience-actually-counts-toward-a-crc\">\n<p class=\"msq-question\">3. Which of these best satisfies the structural experience the rule asks for?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Writing bids and managing subcontractors<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Framing, foundation or masonry work in the applicant&#8217;s own category<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Any four years in the construction industry<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Rule 61G4-15.001 asks for experience in specific structural categories such as foundation, masonry, demolition, column erection and framing, not general business or supervisory activity on its own. <a href=\"https:\/\/flrules.org\/gateway\/ruleno.asp?id=61G4-15.001\" target=\"_blank\" rel=\"noopener\">Rule 61G4-15.001, Florida Administrative Code<\/a> <a class=\"msq-section\" href=\"#what-experience-actually-counts-toward-a-crc\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"c\" data-title=\"How many exams, and what do they cost?\" data-section=\"#how-many-exams-and-what-do-they-cost\">\n<p class=\"msq-question\">4. How many Division I exam parts does a CRC candidate sit?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">One<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Two<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Three<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Business and Finance, Contract Administration and Project Management, the same three parts a CGC or CBC candidate sits. <a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-12-009\" target=\"_blank\" rel=\"noopener\">Rule 61G4-12.009, Florida Administrative Code<\/a> <a class=\"msq-section\" href=\"#how-many-exams-and-what-do-they-cost\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"b\" data-title=\"Which license should you actually apply for?\" data-section=\"#which-license-should-you-actually-apply-for\">\n<p class=\"msq-question\">5. What happens if you build a project outside your license&#8217;s statutory scope?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Nothing, as long as the license is current<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">It is treated as unlicensed activity for that job<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">The license automatically upgrades<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Florida treats work outside a license&#8217;s statutory category as unlicensed activity for that scope of work, even when the contractor holds a genuine, current license. <a href=\"https:\/\/www2.myfloridalicense.com\/construction-industry\/\" target=\"_blank\" rel=\"noopener\">Construction Industry Licensing Board, DBPR<\/a> <a class=\"msq-section\" href=\"#which-license-should-you-actually-apply-for\">Read the section<\/a><\/p>\n<\/li>\n<\/ol>\n<div class=\"msq-result\" hidden><\/div>\n<\/div>\n<\/details>\n<script>(function(){\n  if (window.__msqInit) { return; }\n  window.__msqInit = true;\n  var root = document.getElementById('ms-quiz');\n  if (!root) { return; }\n  var meta = { slug: root.getAttribute('data-slug'), category: root.getAttribute('data-category'),\n               list: root.getAttribute('data-list') || '1' };\n  function qs(el, s){ return el.querySelector(s); }\n  function qsa(el, s){ return Array.prototype.slice.call(el.querySelectorAll(s)); }\n  function track(name, params){\n    try { if (typeof gtag === 'function') { var p = params || {}; p.article = meta.slug; gtag('event', name, p); } } catch (e) {}\n  }\n  function jumpList(missed){\n    if (!missed.length) { return ''; }\n    return '<ul class=\"msq-jump\">' + missed.map(function(q){\n      return '<li><a href=\"' + q.getAttribute('data-section') + '\">' + q.getAttribute('data-title') + '<\/a><\/li>';\n    }).join('') + '<\/ul>';\n  }\n  function emailForm(){\n    return '<div class=\"msq-sub\"><p><strong>Get the next one.<\/strong> We publish new articles on ' + meta.category\n      + ' most weeks and recheck this page on Sundays. Email me when a new article goes up or this page changes.<\/p>'\n      + '<form class=\"msq-form\" method=\"post\" action=\"\/mail\/form.php\" novalidate>'\n      + '<input type=\"hidden\" name=\"list\" value=\"' + meta.list + '\">'\n      + '<input type=\"hidden\" name=\"name\" value=\"\">'\n      + '<label class=\"msq-hp\" aria-hidden=\"true\">Leave this empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>'\n      + '<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\" autocomplete=\"email\">'\n      + '<button type=\"submit\" class=\"msq-btn\">Email me the updates<\/button>'\n      + '<a href=\"#\" class=\"msq-no\">No thanks<\/a>'\n      + '<p class=\"msq-privacy\">We store your email and this page\\'s topic, nothing else. Unsubscribe any time.<\/p>'\n      + '<\/form><p class=\"msq-msg\" aria-live=\"polite\"><\/p><\/div>';\n  }\n  \/* The autoresponder always answers 200 with its own page. A \".msg.err\" box means the\n     address was rejected, \"You're subscribed\" means accepted, and a redirect only happens\n     after a successful subscribe. Same reading as the landing pages on the other sites. *\/\n  function sendForm(form){\n    return fetch(form.getAttribute('action'), { method: 'POST', body: new FormData(form), credentials: 'same-origin', redirect: 'manual' })\n      .then(function(res){\n        if (res.type === 'opaqueredirect') { return { status: 'ok' }; }\n        if (res.status === 404) { return { status: 'notlive' }; }\n        if (!res.ok) { throw new Error('HTTP ' + res.status); }\n        return res.text().then(function(t){\n          var doc = new DOMParser().parseFromString(t, 'text\/html');\n          var err = doc.querySelector('.msg.err');\n          if (err) {\n            var m = err.textContent.trim();\n            if (\/something went wrong\/i.test(m)) { throw new Error(m); }\n            return { status: 'rejected', message: m };\n          }\n          if (\/you.re subscribed\/i.test(doc.body.textContent)) { return { status: 'ok' }; }\n          return { status: 'unknown' };\n        });\n      });\n  }\n  function wireForm(sub){\n    var form = qs(sub, '.msq-form'), msg = qs(sub, '.msq-msg');\n    qs(form, '.msq-no').addEventListener('click', function(e){\n      e.preventDefault();\n      sub.innerHTML = '<p class=\"msq-msg\">No problem. The Sunday refresh keeps this page current either way.<\/p>';\n      track('quiz_email', { result: 'declined' });\n    });\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      var input = qs(form, 'input[name=email]'), btn = qs(form, '.msq-btn');\n      var email = input.value.trim(); input.value = email;\n      if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) { msg.textContent = 'That email does not look right.'; return; }\n      btn.disabled = true; btn.textContent = 'Sending';\n      function reset(){ btn.disabled = false; btn.textContent = 'Email me the updates'; }\n      sendForm(form).then(function(r){\n        if (r.status === 'ok' || r.status === 'unknown') {\n          sub.innerHTML = '<p class=\"msq-msg\"><strong>Done.<\/strong> We will email you when the next article on ' + meta.category\n            + ' goes up and when this page changes. If a confirmation email arrives, click it.<\/p>';\n          track('quiz_email', { result: r.status });\n          if (r.status === 'ok') { track('generate_lead', { method: 'quiz' }); }\n        } else if (r.status === 'notlive') {\n          msg.textContent = 'Sign up is not switched on yet for this site. Nothing was stored.'; reset();\n          track('quiz_email', { result: 'notlive' });\n        } else {\n          msg.textContent = r.message || 'Please check the email address and try again.'; reset();\n          track('quiz_email', { result: 'rejected' });\n        }\n      }).catch(function(){\n        msg.textContent = 'Could not reach the sign up service just now. Nothing was stored.'; reset();\n        track('quiz_email', { result: 'error' });\n      });\n    });\n  }\n  function finish(container, mode, score, total, missed){\n    var result = qs(container, '.msq-result');\n    track('quiz_complete', { mode: mode, score: score, total: total });\n    var h;\n    if (mode === 'pre') {\n      h = '<h3>You knew ' + score + ' of ' + total + ' before reading.<\/h3>';\n      h += (score === total) ? '<p>All of them. Read on anyway; the sections below carry the detail behind each answer.<\/p>'\n                             : '<p>The rest is below. Jump straight to what you missed:<\/p>' + jumpList(missed);\n      try { sessionStorage.setItem('msq-pre-' + meta.slug, String(score)); } catch (e) {}\n    } else {\n      var pre = null;\n      try { pre = sessionStorage.getItem('msq-pre-' + meta.slug); } catch (e) {}\n      h = '<h3>You got ' + score + ' of ' + total + '.<\/h3>';\n      if (pre !== null) { h += '<p>Before reading you had ' + pre + ' of ' + total + '.<\/p>'; }\n      if (missed.length) { h += '<p>Worth a second look:<\/p>' + jumpList(missed); }\n      h += emailForm();\n    }\n    result.innerHTML = h; result.hidden = false;\n    if (mode !== 'pre') { wireForm(qs(result, '.msq-sub')); }\n    result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n  function setup(container, mode){\n    var qEls = qsa(container, '.msq-q'), answered = 0, score = 0, missed = [];\n    qEls.forEach(function(q){\n      var answer = q.getAttribute('data-answer'), opts = qsa(q, '.msq-opt'), explain = qs(q, '.msq-explain');\n      q.removeAttribute('data-done'); explain.hidden = true; qs(explain, '.msq-verdict').textContent = '';\n      opts.forEach(function(b){ b.disabled = false; b.classList.remove('is-right', 'is-wrong'); });\n      opts.forEach(function(b){\n        b.addEventListener('click', function(){\n          if (q.getAttribute('data-done')) { return; }\n          q.setAttribute('data-done', '1');\n          var ok = b.getAttribute('data-opt') === answer;\n          opts.forEach(function(o){ o.disabled = true; if (o.getAttribute('data-opt') === answer) { o.classList.add('is-right'); } });\n          if (ok) { score += 1; } else { b.classList.add('is-wrong'); missed.push(q); }\n          qs(explain, '.msq-verdict').textContent = ok ? 'Right. ' : 'Not quite. ';\n          explain.hidden = false;\n          answered += 1;\n          track('quiz_answer', { mode: mode, question: q.getAttribute('data-q'), correct: ok ? 1 : 0 });\n          if (answered === qEls.length) { finish(container, mode, score, qEls.length, missed); }\n        });\n      });\n    });\n  }\n  var box = qs(root, '.msq-box');\n  setup(root, 'pre');\n  if (box) { box.addEventListener('toggle', function(){ if (box.open) { track('quiz_open', { mode: 'pre' }); } }); }\n  \/* The end block sits far below this script, so it does not exist yet while this runs\n     during parsing. A delegated listener finds it at click time. *\/\n  document.addEventListener('click', function(e){\n    var startBtn = (e.target && e.target.closest) ? e.target.closest('.msq-start-test') : null;\n    if (!startBtn) { return; }\n    var end = startBtn.closest('.msq-end');\n    if (!end) { return; }\n    var mount = qs(end, '.msq-mount');\n    var clone = qs(root, '.msq-body').cloneNode(true);\n    var intro = qs(clone, '.msq-intro');\n    if (intro) { intro.textContent = 'The same five questions, now that you have read the page.'; }\n    var res = qs(clone, '.msq-result'); if (res) { res.hidden = true; res.innerHTML = ''; }\n    mount.innerHTML = ''; mount.appendChild(clone);\n    setup(mount, 'test');\n    startBtn.hidden = true;\n    track('quiz_open', { mode: 'test' });\n    mount.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    var first = qs(mount, '.msq-opt'); if (first) { first.focus({ preventScroll: true }); }\n  });\n  \/* Shared tool behaviour: checklists remember their ticks on this device, and a chooser\n     shows the result for the option picked. Calculators carry their own small script. *\/\n  function initTools(){\n    qsa(document, '.msq-check').forEach(function(box){\n      var key = 'msq-check-' + meta.slug + '-' + (box.getAttribute('data-id') || 'x');\n      var boxes = qsa(box, 'input[type=checkbox]'), count = qs(box, '.msq-check-count');\n      var yes = qs(box, '.msq-verdict-yes'), no = qs(box, '.msq-verdict-no');\n      var saved = {};\n      try { saved = JSON.parse(localStorage.getItem(key) || '{}'); } catch (e) {}\n      boxes.forEach(function(cb, i){ if (saved[i]) { cb.checked = true; } });\n      function refresh(){\n        var n = boxes.filter(function(cb){ return cb.checked; }).length, state = {};\n        boxes.forEach(function(cb, i){ if (cb.checked) { state[i] = 1; } });\n        try { localStorage.setItem(key, JSON.stringify(state)); } catch (e) {}\n        if (count) { count.textContent = n + ' of ' + boxes.length + (box.getAttribute('data-verb') || ' done'); }\n        if (yes && no) { yes.hidden = n === 0; no.hidden = n !== 0; }\n      }\n      boxes.forEach(function(cb){ cb.addEventListener('change', function(){ refresh(); track('tool_check', { tool: box.getAttribute('data-id') }); }); });\n      refresh();\n    });\n    qsa(document, '.msq-choose').forEach(function(box){\n      var results = qsa(box, '.msq-choice-result');\n      qsa(box, 'input[type=radio]').forEach(function(r){\n        r.addEventListener('change', function(){\n          results.forEach(function(el){ el.hidden = el.getAttribute('data-for') !== r.value; });\n          track('tool_choose', { tool: box.getAttribute('data-id'), choice: r.value });\n        });\n      });\n    });\n  }\n  \/\/ read progress: how far down the article the reader has scrolled, fired once per quarter\n  (function(){\n    var art = root.closest('article') || root.parentNode, fired = {};\n    function check(){\n      var top = art.getBoundingClientRect().top + window.pageYOffset, h = art.offsetHeight || 1;\n      var seen = (window.pageYOffset + window.innerHeight - top) \/ h * 100;\n      [25, 50, 75, 100].forEach(function(m){ if (seen >= m && !fired[m]) { fired[m] = true; track('read_progress', { percent: m }); } });\n    }\n    window.addEventListener('scroll', check, { passive: true }); window.addEventListener('load', check);\n  })();\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initTools); } else { initTools(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Residential is the smallest of the three statewide construction licenses, and the one most people underestimate before they qualify for it. The scope test is not about budget or complexity, it is a statute definition with two numbers in it, and the experience the board wants is narrower than most applicants expect.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-can-a-florida-residential-contractor-actually-build\">What can a Florida residential contractor actually build?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The category is defined in law, not by custom or convention, which is why the exact wording matters more here than in most trades.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>A contractor whose services are limited to construction, remodeling, repair, or improvement of one-family, two-family, or three-family residences not exceeding two habitable stories above no more than one uninhabitable story and accessory use structures in connection therewith.<\/p><cite><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2025\/489.105\" target=\"_blank\" rel=\"noopener\">Section 489.105(3)(c), Florida Statutes<\/a><\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Read it slowly, because two limits are doing the work. The building count stops at three units under one roof, a fourplex is outside the category entirely, and the habitable count stops at two stories above a single uninhabitable one, a garage or storage level below the living floors. A CRC covers a house, a duplex, a triplex and the garage, pool cage or shed that goes with it. It does not cover a fourplex, a condo tower or a commercial build, no matter how small.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-is-a-crc-different-from-a-cbc-or-a-cgc\">How is a CRC different from a CBC or a CGC?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Florida issues three certified Division I licenses, and the difference between them is the scope definition, not the difficulty of the exam.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>License<\/th><th>Scope<\/th><th>Height or unit limit<\/th><th>Statute<\/th><\/tr><\/thead><tbody><tr><td>Certified General Contractor (CGC)<\/td><td>Any building, commercial or residential<\/td><td>Unlimited<\/td><td>s. 489.105(3)(a), F.S.<\/td><\/tr><tr><td>Certified Building Contractor (CBC)<\/td><td>Commercial buildings and residential buildings<\/td><td>Up to three stories<\/td><td>s. 489.105(3)(b), F.S.<\/td><\/tr><tr><td>Certified Residential Contractor (CRC)<\/td><td>One, two or three family residences<\/td><td>Two habitable stories over one uninhabitable story<\/td><td>s. 489.105(3)(c), F.S.<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Scope quoted from <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2025\/489.105\" target=\"_blank\" rel=\"noopener\">Florida Statutes 489.105<\/a>, current 2026 edition. Each licence also carries a remodelling and repair allowance for work that does not affect structural members, regardless of the building&#8217;s size.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A CBC sounds like the safer middle choice, and for a builder who genuinely works across commercial and residential jobs under three stories it is. For someone who only ever builds houses, it buys height the CRC does not use and skips none of the paperwork. Our full breakdown of <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-general-contractor-license\/\">what a general contractor license actually permits<\/a> goes through the CGC and CBC side in more detail, and if your work sometimes crosses into a single trade such as roofing, plumbing or air conditioning rather than building a whole structure, our map of <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-license-types\/\">every Florida contractor license type<\/a> covers the Division II categories these three Division I licenses do not reach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-experience-actually-counts-toward-a-crc\">What experience actually counts toward a CRC?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The four year figure that circulates everywhere is real but incomplete on its own. <a href=\"https:\/\/flrules.org\/gateway\/ruleno.asp?id=61G4-15.001\" target=\"_blank\" rel=\"noopener\">Florida Administrative Code rule 61G4-15.001<\/a> sets out six separate qualification paths, combinations of field experience, supervisory time and college credit, and a residential applicant has to fit one of them exactly rather than simply totalling four years of any construction work.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A four year construction related degree, on its own.<\/li>\n\n\n<li>One year as a foreman plus college credit covering the remaining time.<\/li>\n\n\n<li>One year as a worker, one year as a foreman, plus two years of college credit.<\/li>\n\n\n<li>Two years as a worker, one year as a foreman, plus one year of college credit.<\/li>\n\n\n<li>Three years as a worker plus one year as a foreman, with no college credit.<\/li>\n\n\n<li>An upgrade from an existing, narrower four year licence.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Separately, and this is the part almost nobody applying for the first time expects, the board wants that experience concentrated in specific structural work, not general contracting activity. The rule is reported to require experience in at least three of five listed categories: foundation and slab work, masonry walls, structural demolition, column erection and structural wood framing. Running a jobsite, writing bids, managing subcontractors and pulling permits, the day to day of actually operating as a builder, does not on its own satisfy this test. One applicant who had spent years as an owner operator, on site daily, doing exactly that kind of work, found this out from a more experienced contractor on a trade forum in 2023: an operations heavy background was not what the form was asking for, and the fix was to point at the specific framing, slab and demolition work already sitting inside his own remodel jobs, sorted correctly against the five categories, rather than assuming years in charge would carry the application on its own.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are relying on the education substitution, get the credits assessed before you build a timeline around a number from a forum. Our guide to the <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-license-requirements\/\">full Florida contractor license checklist<\/a> covers financial responsibility, insurance and the background check side, which apply the same way to a CRC as to a CGC.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/framing-experience-residential-contractor-license-florida.jpg\" alt=\"A carpenter pointing at wooden wall framing to demonstrate residential contractor license florida experience.\" class=\"wp-image-463\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/framing-experience-residential-contractor-license-florida.jpg 1376w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/framing-experience-residential-contractor-license-florida-300x167.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/framing-experience-residential-contractor-license-florida-1024x572.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/framing-experience-residential-contractor-license-florida-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Documenting structural framing experience is critical for your license application.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-many-exams-and-what-do-they-cost\">How many exams, and what do they cost?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A residential applicant sits the same three Division I exams as a general or building candidate: Business and Finance, Contract Administration and Project Management, all open book and multiple choice. There is no separate, easier residential paper.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Component<\/th><th>Amount<\/th><th>When it is paid<\/th><\/tr><\/thead><tbody><tr><td>Examination development fee<\/td><td>$135<\/td><td>On scheduling<\/td><\/tr><tr><td>Examination administration<\/td><td>$80 per test, three tests<\/td><td>On scheduling each test<\/td><\/tr><tr><td>Application processing<\/td><td>$40<\/td><td>After you pass<\/td><\/tr><tr><td>Initial licensure<\/td><td>$200, or $100 in the second year of the biennium<\/td><td>On approval<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-12-009\" target=\"_blank\" rel=\"noopener\">Rule 61G4-12.009, Florida Administrative Code<\/a>. The often quoted $335 application and examination figure assumes two tests, our own registration guide worked out the arithmetic against a three part Division I exam and it comes to $415 before the licensure fee, not $335.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For the vendor side of booking the three tests, our walkthrough of <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-general-contractor-exam-registration\/\">Florida general contractor exam registration<\/a> covers Professional Testing, Inc. and Pearson VUE step by step, and applies the same way whichever of the three Division I licences you are sitting for. If the maths on the Business and Finance paper is what worries you, <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-business-finance-exam-math\/\">what an open book will not do for you<\/a> goes through the calculations that have to be done by hand.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/exam-prep-books-residential-contractor-license-florida.jpg\" alt=\"Exam prep books and study materials for obtaining a residential contractor license florida.\" class=\"wp-image-462\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/exam-prep-books-residential-contractor-license-florida.jpg 1376w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/exam-prep-books-residential-contractor-license-florida-300x167.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/exam-prep-books-residential-contractor-license-florida-1024x572.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/exam-prep-books-residential-contractor-license-florida-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Passing multiple exams is a key step to licensing.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-chart.png\" alt=\"Bar chart of Florida residential contractor license exam and application fees by component\" class=\"wp-image-467\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-chart.png 1600w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-chart-300x169.png 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-chart-1024x576.png 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-chart-768x432.png 768w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/residential-contractor-license-florida-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">Exam development, three tests at 80 dollars administration each, application processing and initial licensure, from rule 61G4-12.009, Florida Administrative Code.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"which-license-should-you-actually-apply-for\">Which license should you actually apply for?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Work out the ceiling on your actual pipeline before you pick a category, because upgrading later means qualifying again rather than filing a form. If everything you build or plan to build is a single family home, a duplex or a triplex under two habitable stories, the CRC gets you licensed on a narrower and, on the experience side, more specific test than the CGC. If a fourplex, a small commercial job or a third story is plausible within the next few years, the CBC buys that room for the same exam and a fee difference measured in tens of dollars, not hundreds. Certified is also only half the decision: our guide to <a href=\"https:\/\/passcontractorexam.com\/articles\/registered-vs-certified-contractor-florida\/\">registered against certified in Florida<\/a> covers the local alternative, which trades statewide reach for a narrower and usually faster route in a single county.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whichever category you choose, the category is the one the board holds you to on every job afterward. Building a fourplex on a CRC, or a commercial tenant buildout on a CBC, is <a href=\"https:\/\/www2.myfloridalicense.com\/construction-industry\/\" target=\"_blank\" rel=\"noopener\">unlicensed activity<\/a> for that scope of work even though the licence is real, and it carries the same exposure as having no licence at all for that job.<\/p>\n\n\n\n<div class=\"msq-tool msq-choose\" data-id=\"crc-license-fit\">\n<h3>Which of the three Division I licenses fits your work?<\/h3>\n<p>Pick the description closest to what you actually build. This tests only the statutory scope definitions, not your eligibility to apply.<\/p>\n<label><input type=\"radio\" name=\"crc-license-fit\" value=\"house\">A single house, a duplex or a triplex, no more than two habitable stories<\/label>\n<label><input type=\"radio\" name=\"crc-license-fit\" value=\"mixed\">Commercial buildings or residential buildings up to three stories, or occasional small commercial work<\/label>\n<label><input type=\"radio\" name=\"crc-license-fit\" value=\"any\">Anything above three stories, or a genuine mix across residential, commercial and everything between<\/label>\n<div class=\"msq-choice-result\" data-for=\"house\" hidden><strong>Certified Residential Contractor (CRC).<\/strong> Section 489.105(3)(c) covers this directly, on the exam and fees common to all three Division I licenses.<\/div>\n<div class=\"msq-choice-result\" data-for=\"mixed\" hidden><strong>Certified Building Contractor (CBC).<\/strong> Section 489.105(3)(b) covers commercial and residential work up to three stories, for the same exam and close to the same fee as a CRC.<\/div>\n<div class=\"msq-choice-result\" data-for=\"any\" hidden><strong>Certified General Contractor (CGC).<\/strong> Section 489.105(3)(a) is unlimited as to the type of work, the only one of the three with no height or unit cap.<\/div>\n<p class=\"msq-note\">This chooser reads the statute&#8217;s own scope tests. It does not assess your experience, your finances or your eligibility to apply.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently asked questions<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-q-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can a residential contractor build a duplex or a triplex?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. The CRC statute covers one, two or three family residences directly, so a duplex or triplex is inside the scope. A fourplex or larger building is not, regardless of how similar the construction looks.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does a CRC let me take on any commercial work?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. Section 489.105(3)(c) limits the category to residential construction, remodeling, repair and improvement plus accessory structures. Commercial work, including a small retail buildout, sits outside the scope even if the CRC exam itself never asks about it.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can I upgrade from a CRC to a CGC later?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Rule 61G4-15.001 lists an upgrade from an existing four year license as one of the qualification paths, so the credential itself helps. You still requalify on experience and sit the exam again for the broader category, rather than converting the CRC automatically.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does remodeling experience count toward the four years?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It can, but the board weighs it against the same structural categories as new construction, foundation, masonry, framing, demolition and column erection. A remodeling background heavy in finishes and light on structural work may not clear the bar on its own.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is the CRC exam easier than the CGC exam?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. Both sit the same three Division I papers, Business and Finance, Contract Administration and Project Management, at the same open book format and the same passing score. The difference between the licenses is scope, not exam difficulty.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What happens if I build outside my license&#8217;s scope?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Working outside your category&#8217;s statutory scope is treated as unlicensed activity for that job, even though your license is genuine and current. It carries the same enforcement exposure as having no license at all for that specific piece of work.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"msq-end\" id=\"ms-quiz-end\">\n<p><strong>Finished the page?<\/strong> The same five questions from the top, to see what stuck.<\/p>\n<button type=\"button\" class=\"msq-btn msq-start-test\">Test Your Understanding of This Article<\/button>\n<div class=\"msq-mount\"><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Rules and fees change without notice. This page was verified on the date shown and is rechecked on the weekly refresh. If you hit something different, tell us in the comments.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Florida residential contractor license, the CRC, covers homes up to two habitable stories under Florida Statutes 489.105, and needs experience in specific structural categories, not just four years on any jobsite.<\/p>\n","protected":false},"author":1,"featured_media":461,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Florida Residential Contractor License: The CRC Rules","rank_math_description":"A Florida residential contractor license, the CRC, covers homes up to two stories and needs specific structural experience, not just four years on any job.","rank_math_focus_keyword":"residential contractor license florida","rank_math_canonical_url":"","rank_math_breadcrumb_title":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_facebook_image":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_twitter_image":"","rank_math_pillar_content":"","rank_math_robots":[],"rank_math_advanced_robots":[]},"categories":[4],"tags":[],"class_list":["post-464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-licensing"],"_links":{"self":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/comments?post=464"}],"version-history":[{"count":5,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/464\/revisions"}],"predecessor-version":[{"id":482,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/464\/revisions\/482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media\/461"}],"wp:attachment":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media?parent=464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/categories?post=464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/tags?post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}