{"id":162,"date":"2026-09-09T01:01:16","date_gmt":"2026-09-09T05:01:16","guid":{"rendered":"https:\/\/passcontractorexam.com\/articles\/?p=162"},"modified":"2026-10-17T02:15:31","modified_gmt":"2026-10-17T06:15:31","slug":"florida-state-contractors-board","status":"publish","type":"post","link":"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/","title":{"rendered":"Florida State Contractors Board: Who Decides Your License"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>What people call the Florida state contractors board is the Construction Industry Licensing Board, an 18 member panel sitting inside the Department of Business and Professional Regulation. It splits into two divisions of nine. Department staff approve clean applications in weeks. Only flagged files reach the board, and the board meets on a published calendar, not on demand.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"florida-state-contractors-board\" data-minutes=\"17\">\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\/florida-state-contractors-board\/#audio\",\"name\":\"Florida State Contractors Board: Who Decides Your License, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 17 October 2026.\",\"contentUrl\":\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/florida-state-contractors-board-audio-202610171145.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT16M47S\",\"uploadDate\":\"2026-10-17\",\"inLanguage\":\"en-US\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Florida State Contractors Board: Who Decides Your License\",\"startOffset\":0,\"endOffset\":65},{\"@type\":\"Clip\",\"name\":\"What is the Florida state contractors board actually called?\",\"startOffset\":65,\"endOffset\":154,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#what-is-the-florida-state-contractors-board-actually-called\"},{\"@type\":\"Clip\",\"name\":\"Why do so many pages say the board has nine members?\",\"startOffset\":154,\"endOffset\":220,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#why-do-so-many-pages-say-the-board-has-nine-members\"},{\"@type\":\"Clip\",\"name\":\"Who actually decides your licence, the board or the staff?\",\"startOffset\":220,\"endOffset\":323,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#who-actually-decides-your-licence-the-board-or-the-staff\"},{\"@type\":\"Clip\",\"name\":\"What sends an application to the board instead of a staff desk?\",\"startOffset\":323,\"endOffset\":375,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#what-sends-an-application-to-the-board-instead-of-a-staff-de\"},{\"@type\":\"Clip\",\"name\":\"How much time does a board referral actually add?\",\"startOffset\":375,\"endOffset\":462,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#how-much-time-does-a-board-referral-actually-add\"},{\"@type\":\"Clip\",\"name\":\"What do people who have been through the board actually report?\",\"startOffset\":462,\"endOffset\":589,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#what-do-people-who-have-been-through-the-board-actually-repo\"},{\"@type\":\"Clip\",\"name\":\"Can the board take a licence away once you have it?\",\"startOffset\":589,\"endOffset\":713,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#can-the-board-take-a-licence-away-once-you-have-it\"},{\"@type\":\"Clip\",\"name\":\"Certified or registered: which one is the board even deciding?\",\"startOffset\":713,\"endOffset\":796,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#certified-or-registered-which-one-is-the-board-even-deciding\"},{\"@type\":\"Clip\",\"name\":\"What has changed since this was first published?\",\"startOffset\":796,\"endOffset\":907,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#what-has-changed-since-this-was-first-published\"},{\"@type\":\"Clip\",\"name\":\"What should you do before your file reaches a board agenda?\",\"startOffset\":907,\"endOffset\":1007,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/#what-should-you-do-before-your-file-reaches-a-board-agenda\"}],\"contentSize\":\"7.0 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 17 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\/10\/florida-state-contractors-board-audio-202610171145.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 State Contractors Board: Who Decides Your License\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Florida State Contractors Board: Who Decides Your License<\/a><\/li>\n<li data-start=\"64.78\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"64.78\" aria-label=\"Play from: What is the Florida state contractors board actually called?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">1:05<\/span><a href=\"#what-is-the-florida-state-contractors-board-actually-called\">What is the Florida state contractors board actually called?<\/a><\/li>\n<li data-start=\"154.12\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"154.12\" aria-label=\"Play from: Why do so many pages say the board has nine members?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:34<\/span><a href=\"#why-do-so-many-pages-say-the-board-has-nine-members\">Why do so many pages say the board has nine members?<\/a><\/li>\n<li data-start=\"219.98\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"219.98\" aria-label=\"Play from: Who actually decides your licence, the board or the staff?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">3:40<\/span><a href=\"#who-actually-decides-your-licence-the-board-or-the-staff\">Who actually decides your licence, the board or the staff?<\/a><\/li>\n<li data-start=\"322.88\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"322.88\" aria-label=\"Play from: What sends an application to the board instead of a staff desk?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">5:23<\/span><a href=\"#what-sends-an-application-to-the-board-instead-of-a-staff-de\">What sends an application to the board instead of a staff desk?<\/a><\/li>\n<li data-start=\"374.54\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"374.54\" aria-label=\"Play from: How much time does a board referral actually add?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">6:15<\/span><a href=\"#how-much-time-does-a-board-referral-actually-add\">How much time does a board referral actually add?<\/a><\/li>\n<li data-start=\"461.68\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"461.68\" aria-label=\"Play from: What do people who have been through the board actually report?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">7:42<\/span><a href=\"#what-do-people-who-have-been-through-the-board-actually-repo\">What do people who have been through the board actually report?<\/a><\/li>\n<li data-start=\"589.02\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"589.02\" aria-label=\"Play from: Can the board take a licence away once you have it?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">9:49<\/span><a href=\"#can-the-board-take-a-licence-away-once-you-have-it\">Can the board take a licence away once you have it?<\/a><\/li>\n<li data-start=\"713.04\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"713.04\" aria-label=\"Play from: Certified or registered: which one is the board even deciding?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">11:53<\/span><a href=\"#certified-or-registered-which-one-is-the-board-even-deciding\">Certified or registered: which one is the board even deciding?<\/a><\/li>\n<li data-start=\"796.42\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"796.42\" aria-label=\"Play from: What has changed since this was first published?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">13:16<\/span><a href=\"#what-has-changed-since-this-was-first-published\">What has changed since this was first published?<\/a><\/li>\n<li data-start=\"907.24\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"907.24\" aria-label=\"Play from: What should you do before your file reaches a board agenda?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">15:07<\/span><a href=\"#what-should-you-do-before-your-file-reaches-a-board-agenda\">What should you do before your file reaches a board agenda?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 17 October 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\",\"floridastatecontractorsb\",49],[3.36,\"p\",\"whatpeoplecalltheflorida\",160],[13.92,\"p\",\"itsplitsintotwodivisions\",30],[15.92,\"p\",\"departmentstaffapprovecl\",46],[19.2,\"p\",\"onlyflaggedfilesreachthe\",76],[26.32,\"p\",\"onthispagewhodecidesyour\",193],[44.6,\"p\",\"thissiteisindependent\",21],[45.8,\"p\",\"itisnotaffiliatedwithore\",108],[52.6,\"p\",\"everyrulebelowlinkstothe\",117],[64.78,\"h\",\"whatisthefloridastatecon\",51],[68.1,\"p\",\"thereisnobodyinfloridala\",37],[70.54,\"p\",\"theoneyouwantistheconstr\",147],[81.38,\"p\",\"thatphrasewithinthedepar\",55],[84.82,\"p\",\"theboardisnotaseparateag\",63],[89.9,\"p\",\"itisapanelofappointedvol\",91],[96.06,\"p\",\"thestatuteisspecificabou\",42],[99.06,\"p\",\"theboardhas18membersappo\",153],[111.1,\"p\",\"itthensplitsintwo\",17],[113.02,\"p\",\"divisionicoversgeneralbu\",55],[117.38,\"p\",\"divisioniicoversthespeci\",110],[126.06,\"p\",\"eachdivisionhasninemembe\",49],[129.78,\"p\",\"theseatsarespeltouttoofo\",225],[146.02,\"p\",\"everycontractormembermus\",111],[154.12,\"h\",\"whydosomanypagessaythebo\",41],[157.88,\"p\",\"severalpagesrankingforth\",56],[162.56,\"p\",\"thestatutesays18\",16],[164.04,\"p\",\"bothnumbersareincirculat\",82],[168.8,\"p\",\"thecorrectionchangeswhat\",49],[171.96,\"p\",\"yourapplicationisnotread\",34],[174.2,\"p\",\"itgoestothedivisioncover\",101],[180.88,\"p\",\"thegroupdecidingyourcert\",91],[187.04,\"p\",\"thatismoreusefulthanimag\",123],[195.4,\"p\",\"onemoredistinctionsavesa\",39],[198.56,\"p\",\"electricalandalarmsystem\",56],[203.48,\"p\",\"theybelongtotheelectrica\",98],[210.88,\"p\",\"samebuildingdifferentboa\",119],[219.98,\"h\",\"whoactuallydecidesyourli\",47],[224.06,\"p\",\"thisisthequestiontheoffi\",95],[229.98,\"t\",\"whetheryourapplicationis\",103],[242.18,\"t\",\"acleanapplicationwithnot\",115],[255.82,\"t\",\"whetheryourexperiencequa\",123],[268.1,\"t\",\"whetherdisclosedcriminal\",114],[282.38,\"t\",\"whetheryourfinancespass\",103],[297.74,\"t\",\"therulesfeesandapprovedr\",104],[312.26,\"p\",\"staffhandletheordinaryth\",54],[315.74,\"p\",\"noboardmemberisreadingyo\",86],[322.88,\"h\",\"whatsendsanapplicationto\",51],[326.48,\"p\",\"fourthingsmostly\",16],[327.6,\"p\",\"disclosedcriminalhistory\",42],[330.28,\"p\",\"financesbelowthethreshol\",153],[342.48,\"p\",\"experiencethatdoesnotmap\",204],[359.16,\"p\",\"andownershiporqualifiera\",63],[363.4,\"p\",\"noneoftheseisarejection\",23],[364.8,\"p\",\"eachisanotesayingahumans\",85],[370.48,\"p\",\"thecostisnotmoney\",17],[372.84,\"p\",\"itisthecalendar\",15],[374.54,\"h\",\"howmuchtimedoesaboardref\",40],[376.74,\"p\",\"theboardmeetsinmostmonth\",110],[384.1,\"p\",\"the2026calendarontheboar\",227],[404.42,\"p\",\"thesearehotelconferencer\",97],[410.42,\"p\",\"yourfileisnotreviewedwhe\",34],[412.94,\"p\",\"itisreviewedatthenextmee\",91],[419.1,\"p\",\"underneaththatcalendarsi\",63],[423.58,\"p\",\"undersection12060florida\",162],[437.18,\"p\",\"itthenhas90daysfromacomp\",117],[446.82,\"p\",\"practitionerscallitthede\",34],[448.74,\"p\",\"itisonnoneofthepagescurr\",47],[451.58,\"p\",\"thecatchaskingforacontin\",124],[461.68,\"h\",\"whatdopeoplewhohavebeent\",52],[465.08,\"p\",\"wereadfouraccountsoncont\",106],[472.4,\"p\",\"theyaretestimonynotevide\",58],[476.72,\"p\",\"theyarestilltheonlyplace\",46],[479.76,\"p\",\"afirsttimecertifiedgener\",242],[498.04,\"p\",\"theposterwantedtoknowwha\",44],[500.24,\"p\",\"anapplicantholdingaclass\",158],[514.8,\"p\",\"theposterreportedthatmem\",115],[521.92,\"p\",\"passingtheexamandbeingap\",51],[525.08,\"p\",\"alicensingconsultantpost\",85],[533.72,\"p\",\"theconsultantspointwasth\",172],[546.64,\"p\",\"thesameconsultantputacle\",154],[555.52,\"p\",\"theyagreewiththeofficial\",106],[562.36,\"p\",\"theyaddthreethingsthesta\",196],[575.36,\"p\",\"oneaccountcutsagainstthe\",114],[582.6,\"p\",\"theoldestoftheseisfrom20\",71],[589.02,\"h\",\"cantheboardtakealicencea\",40],[591.94,\"p\",\"yesandthisisthehalfofthe\",58],[595.94,\"p\",\"approvingapplicationsist\",35],[598.5,\"p\",\"disciplineisthebackdoora\",54],[602.18,\"p\",\"undersection489129florid\",277],[626.5,\"p\",\"perviolationisthephraset\",79],[631.82,\"p\",\"thegroundsinthestatutere\",320],[654.94,\"p\",\"beingdisciplinedbyacount\",107],[662.66,\"p\",\"thesectionwasamendedthis\",28],[664.26,\"p\",\"hb803onbuildingpermitsan\",113],[677.82,\"p\",\"itssummarysayscertainper\",149],[688.94,\"p\",\"thatisanarrowcarveouttie\",118],[697.98,\"p\",\"onemoredetailsitsinsecti\",177],[713.04,\"h\",\"certifiedorregisteredwhi\",51],[716.6,\"p\",\"everyargumentabouttheboa\",83],[722.16,\"p\",\"thestatutorydifferenceis\",56],[726.0,\"t\",\"whatthestatutesays\",273],[745.64,\"t\",\"whereyoucanwork\",105],[756.0,\"t\",\"whotestsyou\",101],[764.76,\"t\",\"whodecidesit\",101],[774.56,\"p\",\"ifyouarecertifiedthecilb\",35],[777.36,\"p\",\"ifyouareregisteredyourco\",48],[781.16,\"p\",\"itisthesamedistinctionth\",80],[786.48,\"p\",\"italsodecideswhatacounty\",143],[796.42,\"h\",\"whathaschangedsincethisw\",40],[798.9,\"p\",\"thestatuteeditionmovedon\",24],[800.42,\"p\",\"thelinksonthispagepointt\",113],[811.98,\"p\",\"readon27september2026its\",150],[826.02,\"p\",\"thedbprcontactdetailswhi\",170],[839.3,\"p\",\"thewarningisgone\",16],[840.3,\"p\",\"notrecheckedon27septembe\",188],[856.78,\"p\",\"checkthecalendaronthedep\",67],[860.66,\"p\",\"17october2026recheckedag\",51],[865.86,\"p\",\"sections489107and12060re\",85],[875.38,\"p\",\"hb803didbecomelawaschapt\",100],[889.54,\"p\",\"thevaguemeetingcountwasr\",141],[907.24,\"h\",\"whatshouldyoudobeforeyou\",48],[909.92,\"p\",\"mostreferralsareavoidabl\",48],[913.56,\"p\",\"maketheexperienceletters\",165],[925.36,\"p\",\"pullyourowncreditreportb\",46],[927.72,\"p\",\"discloseeverythingsincea\",96],[934.36,\"p\",\"andwritedownyoursubmissi\",96],[942.2,\"p\",\"thengoandpassthething\",21],[943.48,\"p\",\"theapplicationistheadmin\",104],[950.44,\"p\",\"ifyouhavealreadysatitand\",62],[955.44,\"p\",\"ifyouarestilldecidingwhe\",211],[969.2,\"p\",\"thedbprcustomercontactce\",263],[996.12,\"p\",\"iftheboardsdecisionissti\",152]];\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: who decides your licence, staff or board, with the statute on every row, the 30 and 90 day clocks in section 120.60, the 2026 meeting dates, the $10,000 per violation discipline power, and four dated forum accounts of the board room.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"florida-state-contractors-board\" 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=\"c\" data-title=\"What is the Florida state contractors board actually called?\" data-section=\"#what-is-the-florida-state-contractors-board-actually-called\">\n<p class=\"msq-question\">1. How many members does the Construction Industry Licensing Board have in total?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">9<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">11<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">18<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.107\" target=\"_blank\" rel=\"noopener\">Section 489.107<\/a> sets 18 members, split into two divisions of nine. Eleven is the Electrical Contractors Licensing Board. <a class=\"msq-section\" href=\"#what-is-the-florida-state-contractors-board-actually-called\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"a\" data-title=\"Why do so many pages say the board has nine members?\" data-section=\"#why-do-so-many-pages-say-the-board-has-nine-members\">\n<p class=\"msq-question\">2. How many members of a division make a quorum?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Five<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Nine<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Three<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.107\" target=\"_blank\" rel=\"noopener\">Section 489.107<\/a> says five members of each division constitute a quorum, which is why the people deciding a file can be a small group. <a class=\"msq-section\" href=\"#why-do-so-many-pages-say-the-board-has-nine-members\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"b\" data-title=\"Who actually decides your licence, the board or the staff?\" data-section=\"#who-actually-decides-your-licence-the-board-or-the-staff\">\n<p class=\"msq-question\">3. Who approves a clean application with nothing flagged?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">The full 18 member board at a hearing<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Department staff, with no board vote<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">The Governor&#8217;s office<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Ordinary applications are handled by department staff inside the deadlines in <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/120.60\" target=\"_blank\" rel=\"noopener\">section 120.60<\/a>; the board takes the judgement calls. <a class=\"msq-section\" href=\"#who-actually-decides-your-licence-the-board-or-the-staff\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"c\" data-title=\"How much time does a board referral actually add?\" data-section=\"#how-much-time-does-a-board-referral-actually-add\">\n<p class=\"msq-question\">4. Under section 120.60, what happens to a completed application the agency does not approve or deny within 90 days?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">It lapses and must be refiled<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">It goes to the next board meeting automatically<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">It is considered approved, unless a recommended order recommends denial<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/120.60\" target=\"_blank\" rel=\"noopener\">Section 120.60(1)<\/a> says such an application is considered approved unless the recommended order recommends that the agency deny the license. <a class=\"msq-section\" href=\"#how-much-time-does-a-board-referral-actually-add\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"a\" data-title=\"Can the board take a licence away once you have it?\" data-section=\"#can-the-board-take-a-licence-away-once-you-have-it\">\n<p class=\"msq-question\">5. What is the most the board may fine a licensee under section 489.129?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">$10,000 per violation<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">$5,000 per case<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">$1,000 per year<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.129\" target=\"_blank\" rel=\"noopener\">Section 489.129(1)<\/a> allows an administrative fine not to exceed $10,000 per violation, on top of suspension, revocation, restitution and costs. <a class=\"msq-section\" href=\"#can-the-board-take-a-licence-away-once-you-have-it\">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) { var skipFirst = box.hasAttribute('data-default-open'); box.addEventListener('toggle', function(){ if (!box.open) { return; } if (skipFirst) { skipFirst = false; return; } 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\">This site is independent. It is not affiliated with or endorsed by the Department of Business and Professional Regulation, and nothing here is legal advice. Every rule below links to the state text, first checked on 9 September 2026 and rechecked against the 2026 Florida Statutes on 17 October 2026.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-the-florida-state-contractors-board-actually-called\">What is the Florida state contractors board actually called?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There is no body in Florida law with that name. The one you want is the Construction Industry Licensing Board, usually shortened to CILB, and it is <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.107\" target=\"_blank\" rel=\"noopener\">created within the department<\/a> under Chapter 489, Part I of the Florida Statutes. That phrase, &#8220;within the department&#8221;, explains most of the confusion. The board is not a separate agency with its own counter and its own phone tree. It is a panel of appointed volunteers sitting inside the DBPR, and the department does the paperwork around it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The statute is specific about who those people are. The board has 18 members, appointed by the Governor and confirmed by the Senate, serving four year terms, with nobody allowed more than two consecutive terms or more than 11 years in total. It then splits in two. Division I covers general, building and residential contractors. Division II covers the specialty trades: roofing, sheet metal, air conditioning, mechanical, pools, plumbing and underground utility. Each division has nine members and each has a quorum of five. The seats are spelt out too: four general contractors, three building or residential contractors, one contractor from each of the seven specialty trades, two consumer members who have never worked in a regulated profession and two municipal or county building officials. Every contractor member must hold a board certificate and have at least five consecutive years in construction before appointment.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"627\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-checklist.jpg\" alt=\"Close up of hands holding a clipboard checklist, the paperwork a contractor licence application turns on\" class=\"wp-image-160\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-checklist.jpg 1200w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-checklist-300x157.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-checklist-1024x535.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-checklist-768x401.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-block-image__caption\">Most board referrals start with a form a clerk cannot sign off.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-do-so-many-pages-say-the-board-has-nine-members\">Why do so many pages say the board has nine members?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Several pages ranking for this search say the CILB has nine members. The statute says 18. Both numbers are in circulation because the writers looked at one division and called it the board.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The correction changes what you should expect at a hearing. Your application is not read by 18 people. It goes to the division covering your licence category, which is nine people, and that division can act with a quorum of five. The group deciding your certificate may be five contractors and a consumer member in a hotel conference room. That is more useful than imagining a full state tribunal, because it tells you the room is small and the people asking the questions build for a living.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One more distinction saves a wasted phone call. Electrical and alarm system contractors do not go to the CILB at all. They belong to the <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.507\" target=\"_blank\" rel=\"noopener\">Electrical Contractors Licensing Board<\/a>, a separate 11 member body under Part II of the same chapter. Same building, different board, and a different <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/\">out of state endorsement process<\/a> too, since the CILB&#8217;s own reciprocity agreements do not reach it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"who-actually-decides-your-licence-the-board-or-the-staff\">Who actually decides your licence, the board or the staff?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the question the official pages answer least clearly, so here is the split, with the state source on every row.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>The decision<\/th><th>Who makes it<\/th><th>Where it comes from<\/th><\/tr><\/thead><tbody><tr><td>Whether your application is complete<\/td><td>Department staff, within 30 days of receipt<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/120.60\" target=\"_blank\" rel=\"noopener\">s. 120.60(1), F.S.<\/a><\/td><\/tr><tr><td>A clean application with nothing flagged<\/td><td>Department staff. No board vote, no hearing<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/120.60\" target=\"_blank\" rel=\"noopener\">s. 120.60(1), F.S.<\/a>, 90 day limit<\/td><\/tr><tr><td>Whether your experience qualifies when it is arguable<\/td><td>Your division of the board, at a scheduled meeting<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/489.111\" target=\"_blank\" rel=\"noopener\">s. 489.111(2), F.S.<\/a><\/td><\/tr><tr><td>Whether disclosed criminal history bars you<\/td><td>Your division, on the good moral character test<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/489.111\" target=\"_blank\" rel=\"noopener\">s. 489.111(1)(b), F.S.<\/a><\/td><\/tr><tr><td>Whether your finances pass<\/td><td>A FICO score of 660, or a 14 hour approved course<\/td><td><a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-15-006\" target=\"_blank\" rel=\"noopener\">Rule 61G4-15.006, F.A.C.<\/a><\/td><\/tr><tr><td>The rules, fees and approved reference list<\/td><td>The board, by rulemaking, in Chapter 61G4<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/489.107\" target=\"_blank\" rel=\"noopener\">s. 489.107, F.S.<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Compiled from the Florida Statutes and the Florida Administrative Code, checked 9 September 2026.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Staff handle the ordinary, the board handles the judgement calls. No board member is reading your file unless something on the form asked a question a clerk cannot answer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-sends-an-application-to-the-board-instead-of-a-staff-de\">What sends an application to the board instead of a staff desk?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Four things, mostly. Disclosed criminal history, whatever the outcome. Finances below the threshold, which the rule sets as a <a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-15-006\" target=\"_blank\" rel=\"noopener\">FICO derived credit score of 660 or higher<\/a>, with a 14 hour board approved financial responsibility course as the alternative route. Experience that does not map cleanly onto one of the paths in <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.111\" target=\"_blank\" rel=\"noopener\">section 489.111<\/a>, which include four years of active experience with at least one year as a foreman, or a relevant degree plus one year, with full time counted as a minimum of 2,000 person hours. And ownership or qualifier arrangements the form cannot verify on its face.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None of these is a rejection. Each is a note saying a human should look at this, which is what a board of working contractors exists for. The cost is not money. It is the calendar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-much-time-does-a-board-referral-actually-add\">How much time does a board referral actually add?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The board meets in most months but not every month, and each meeting runs on a one day plus three day pattern in a different Florida town. The 2026 calendar on the <a href=\"https:\/\/www2.myfloridalicense.com\/construction-industry\/board-meeting-information\/\" target=\"_blank\" rel=\"noopener\">board meeting information page<\/a> lists January 12 and 14 to 16 in Destin, September 3 and 9 to 11 in Melbourne, October 12 and 14 to 16 in Sarasota, and November 9 and 11 to 13 in Safety Harbor, with agendas showing sessions in March, April, May and July in between. These are hotel conference rooms, not a Tallahassee courtroom, so if you plan to attend, the town on your notice matters. Your file is not reviewed when it is ready. It is reviewed at the next meeting it can be agendaed onto, which is why a referral costs weeks rather than hours.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"627\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-files.jpg\" alt=\"Office worker beside tall stacks of paper files, reaching for a folder in a licensing queue\" class=\"wp-image-161\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-files.jpg 1200w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-files-300x157.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-files-1024x535.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/inline-files-768x401.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-block-image__caption\">A referral does not cost money. It costs a place in the queue.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Underneath that calendar sits a deadline most applicants never hear about. Under <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/120.60\" target=\"_blank\" rel=\"noopener\">section 120.60, Florida Statutes<\/a>, the agency has 30 days from receiving your application to raise errors or omissions, and it cannot later deny you for a defect it failed to raise in that window. It then has 90 days from a completed application to approve or deny, and an application not decided inside that period is considered approved. Practitioners call it the deemer clause. It is on none of the pages currently ranking for this term. The catch: asking for a continuance at a hearing usually means waiving it, which is a trade worth understanding before you are in the room agreeing to it.<\/p>\n\n\n\n<div class=\"msq-tool\" id=\"pce-clock-calc\">\n<h3>Application clock calculator<\/h3>\n<p>Enter the date the department received your application, and the date it became complete if staff asked you for more. It works out the two dates section 120.60 sets. It does not tell you whether you will be approved.<\/p>\n<div class=\"msq-calc\">\n<label>Date received<input type=\"date\" name=\"rec\"><\/label>\n<label>Date complete (leave blank if nothing was requested)<input type=\"date\" name=\"comp\"><\/label>\n<div class=\"msq-calc-out\"><button type=\"button\" class=\"msq-btn\" id=\"pce-clock-go\">Show my dates<\/button>\n<div id=\"pce-clock-out\" style=\"margin-top:10px\"><\/div><\/div>\n<\/div>\n<p class=\"msq-note\">Calendar days from section 120.60(1), Florida Statutes, 2026 edition. Agreeing to a continuance at a hearing usually waives the 90 day clock. Worked in your browser, nothing is stored or sent.<\/p>\n<\/div>\n<script>\n(function(){\n  var root = document.getElementById('pce-clock-calc'); if (!root) { return; }\n  var out = document.getElementById('pce-clock-out');\n  function add(d, n){ var x = new Date(d.getTime()); x.setUTCDate(x.getUTCDate() + n); return x; }\n  function fmt(d){ return d.toLocaleDateString('en-US', {timeZone: 'UTC', year: 'numeric', month: 'long', day: 'numeric'}); }\n  document.getElementById('pce-clock-go').addEventListener('click', function(){\n    var r = root.querySelector('[name=\"rec\"]').value, c = root.querySelector('[name=\"comp\"]').value;\n    if (!r) { out.innerHTML = 'Enter the date received first.'; return; }\n    var rd = new Date(r + 'T00:00:00Z');\n    var cd = c ? new Date(c + 'T00:00:00Z') : rd;\n    if (rd.getTime() > cd.getTime()) { out.innerHTML = 'The completion date cannot be before the date received.'; return; }\n    out.innerHTML = '<p><strong>' + fmt(add(rd, 30)) + '<\/strong>: last day for staff to flag errors or omissions.<\/p>'\n      + '<p><strong>' + fmt(add(cd, 90)) + '<\/strong>: last day to approve or deny the completed application.<\/p>';\n  });\n})();\n<\/script>\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\/10\/florida-state-contractors-board-chart.png\" alt=\"Timeline of the Florida state contractors board application clocks, receipt, the 30 and 90 day limits and the next meeting.\" class=\"wp-image-677\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/florida-state-contractors-board-chart.png 1600w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/florida-state-contractors-board-chart-300x169.png 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/florida-state-contractors-board-chart-1024x576.png 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/florida-state-contractors-board-chart-768x432.png 768w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/florida-state-contractors-board-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">The 30 day and 90 day limits come from section 120.60(1), Florida Statutes. A referral waits for the next board meeting on the published calendar, and agreeing to a continuance usually waives the 90 day clock.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-do-people-who-have-been-through-the-board-actually-repo\">What do people who have been through the board actually report?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We read four accounts on ContractorTalk, a public trade forum, from applicants and consultants who dealt with the CILB directly. They are testimony, not evidence, and none of them is the state speaking. They are still the only place anyone describes the room.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A first time certified general contractor applicant, in a thread last active on 27 February 2026, reported being referred to Division I purely for <a href=\"https:\/\/www.contractortalk.com\/threads\/florida-cilb-%E2%80%93-application-sent-to-board-for-experience-review-not-required-to-attend.463319\/\" target=\"_blank\" rel=\"noopener\">review of experience qualifications<\/a>, with no criminal history and no enforcement issues, and told in the notice that attendance was not required. The poster wanted to know what the questions are like.<\/li><li>An applicant holding a Class A air conditioning licence from 2005 and a mechanical licence from 2013 <a href=\"https:\/\/www.contractortalk.com\/threads\/cilb-dbpr.435747\/\" target=\"_blank\" rel=\"noopener\">described passing the CGC exam in 2020<\/a> and appearing before the board on 11 February 2021. The poster reported that members asked less about his experience than about past brushes with the law, and that the application was denied. Passing the exam and being approved are two different events.<\/li><li>A licensing consultant posting on 28 July 2016 <a href=\"https:\/\/www.contractortalk.com\/threads\/fl-licensing-board-approval.288049\/\" target=\"_blank\" rel=\"noopener\">set out the mechanics of a denial<\/a>: a motion, a second, a vote. The consultant\u2019s point was that a denial follows you, because afterwards you attend a formal hearing for every future DBPR licence, and that an applicant hearing a motion for denial can ask to withdraw instead.<\/li><li>The same consultant put a clean application approved by a standard processor at two to three weeks from submission, and said board review happens only when something in the file is wrong.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They agree with the official position that staff approval is the normal path and a referral is triggered by something specific. They add three things the state pages do not: the wait for a slot is reported in weeks to a few months, attendance is often optional and applicants are genuinely unsure whether to go anyway, and a denial has a long tail no fee schedule mentions. One account cuts against the tidy version, since that applicant found the hearing went somewhere other than the ground he was referred on. The oldest of these is from 2016, so treat the timings as reported rather than official.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"can-the-board-take-a-licence-away-once-you-have-it\">Can the board take a licence away once you have it?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, and this is the half of the board\u2019s job that the licensing pages skip. Approving applications is the front door. Discipline is the back door, and the same division holds both keys. Under <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.129\" target=\"_blank\" rel=\"noopener\">section 489.129, Florida Statutes<\/a>, the board may reprimand you, put you on probation, suspend or revoke your certificate, refuse to renew it, order restitution to a consumer, require continuing education, charge you the costs of the investigation and prosecution, and impose an administrative fine &#8220;not to exceed $10,000 per violation&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per violation is the phrase that does the damage, because one bad job can produce several counts. The grounds in the statute read like a catalogue of how contracting goes wrong: getting the certificate by misrepresentation, a conviction related to contracting, lending your licence to someone unlicensed, trading under a name that is not on the licence, abandoning a job without just cause, and financial mismanagement, which covers unpaid liens and money not refunded when a job stops. Being disciplined by a county or city for a violation of the same part is a ground on its own, so a local problem can become a state one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The section was amended this year. <a href=\"https:\/\/www.flsenate.gov\/Session\/Bill\/2026\/803\" target=\"_blank\" rel=\"noopener\">HB 803, on building permits and inspections<\/a>, was approved by the Governor on 6 May 2026, became chapter 2026-63 and took effect on 1 July 2026. Its summary says certain persons are not subject to discipline for performing a job without the applicable permits and inspections where the work is otherwise authorized by law. That is a narrow carve out tied to the new permit rules, not a general amnesty for skipping permits, so read the enrolled text before relying on it. One more detail sits in <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2026\/489.107\" target=\"_blank\" rel=\"noopener\">section 489.107<\/a>: if a division cannot raise a quorum of five for a disciplinary case, it may borrow qualified members of the other division, who vote and count toward the quorum for that case only.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"certified-or-registered-which-one-is-the-board-even-deciding\">Certified or registered: which one is the board even deciding?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every argument about the board assumes you know which licence you are chasing, and many people do not. The statutory difference is short, and it decides where you can work.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Certified<\/th><th>Registered<\/th><\/tr><\/thead><tbody><tr><td>What the statute says<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/489.105\" target=\"_blank\" rel=\"noopener\">Holds a certificate of competency issued by the department<\/a> and may contract in any jurisdiction in the state without meeting local competency requirements<\/td><td><a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/489.105\" target=\"_blank\" rel=\"noopener\">Registered with the department after meeting local competency requirements<\/a>, and may contract only in those jurisdictions<\/td><\/tr><tr><td>Where you can work<\/td><td>Anywhere in Florida<\/td><td>Only where you have complied with local licensing, per <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2024\/489.117\" target=\"_blank\" rel=\"noopener\">s. 489.117, F.S.<\/a><\/td><\/tr><tr><td>Who tests you<\/td><td>The state exam route under Chapter 489, Part I<\/td><td>The local jurisdiction sets competency<\/td><\/tr><tr><td>Who decides it<\/td><td>The CILB and DBPR staff<\/td><td>The local board, with registration filed with the department<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Definitions from s. 489.105 and s. 489.117, Florida Statutes, checked 9 September 2026.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you are certified, the CILB is your board. If you are registered, your competency was judged locally. It is the same distinction that decides <a href=\"https:\/\/passcontractorexam.com\/articles\/irrigation-certification-florida\/\" target=\"_blank\" rel=\"noopener\">whether irrigation work needs a state or a local licence<\/a>. It also decides what a county asks of you at the permit counter, which is why <a href=\"https:\/\/passcontractorexam.com\/articles\/pasco-county-contractors-license\/\">Pasco County still wants a state certified license recorded with it<\/a> before your first inspection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-has-changed-since-this-was-first-published\">What has changed since this was first published?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The statute edition moved on. The links on this page point to the 2024 Florida Statutes; the current <a href=\"https:\/\/www.flsenate.gov\/Laws\/Statutes\/2025\/489.107\" target=\"_blank\" rel=\"noopener\">2025 text of section 489.107<\/a> carries an amendment by chapter 2025-40. Read on 27 September 2026, it still sets 18 members, the same two divisions, a quorum of five in each, four year terms and the two term and 11 year limits, so nothing described above changed.<\/li>\n\n<li>The DBPR contact details, which this page first printed with a warning because the department pages would not load on 9 September 2026, were confirmed on the department&#8217;s own help centre on 27 September 2026. The warning is gone.<\/li>\n\n<li>Not rechecked on 27 September 2026: the board meeting calendar, whose page refused the request, and the outcome of the 2026 session bills touching Chapter 489, such as HB 803 on section 489.129, which could not be confirmed as signed. Check the calendar on the department site before planning around a meeting date.<\/li>\n\n<li>17 October 2026: rechecked against the 2026 Florida Statutes. Sections 489.107 and 120.60 read as described above, and the board composition is now listed seat by seat. HB 803 did become law, as chapter 2026-63 from 1 July 2026, and it amended section 489.129, so a section on discipline was added. The vague meeting count was replaced by the 2026 dates on the board page, and rule 61G4-15.006 still sets the 660 score and the 14 hour course, last amended effective 5 May 2024.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-should-you-do-before-your-file-reaches-a-board-agenda\">What should you do before your file reaches a board agenda?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most referrals are avoidable and the rest are survivable. Make the experience letters specific, with dates, job values and the name of the licensed person who supervised you, because vague letters are what &#8220;review of experience qualifications&#8221; usually means. Pull your own credit report before the department does. Disclose everything, since a disclosed conviction is a conversation and an undisclosed one is a different problem. And write down your submission date, because the 30 and 90 day clocks start running whether or not anyone reminds you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then go and pass the thing. The application is the administrative half; the exam is the half people fail, and it is <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-open-book\/\" target=\"_blank\" rel=\"noopener\">open book in a way that catches people out<\/a>. If you have already sat it and lost a part, <a href=\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/\" target=\"_blank\" rel=\"noopener\">you only retake the part you failed<\/a>. If you are still deciding whether you need a licence, the line between <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-handyman-requirements\/\" target=\"_blank\" rel=\"noopener\">unlicensed handyman work and contracting<\/a> sits in the same chapter, and the full route from application to certificate is in our guide to <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-general-contractor-license\/\" target=\"_blank\" rel=\"noopener\">getting a general contractor licence in Florida<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The DBPR Customer Contact Center is on 850 487 1395, Monday to Friday, 8 a.m. to 5 p.m. Eastern, and the department&#8217;s address is 2601 Blair Stone Road, Tallahassee, FL 32399, both confirmed on 27 September 2026 on the <a href=\"https:\/\/myfloridalicense.custhelp.com\/app\/answers\/detail\/a_id\/533\/~\/how-do-i-contact-the-florida-department-of-business-&amp;-professional-regulation\" target=\"_blank\" rel=\"noopener\">DBPR help centre&#8217;s contact answer<\/a>, which adds that calls between 8 and 10 a.m. or after 3:30 p.m. tend to be answered faster. If the board&#8217;s decision is still ahead of you because the exam is, <a href=\"https:\/\/passcontractorexam.com\/articles\/what-to-do-after-passing-the-florida-contractor-exam\/\">what to do after passing the Florida contractor exam<\/a> walks through the application in the order the department wants it.<\/p>\n\n\n\n<div class=\"msq-tool msq-check\" data-id=\"pce-board-ready\" data-verb=\" done\">\n<h3>Before your file goes in<\/h3>\n<p>The four things that most often send a file to the board, turned into checks you can do first.<\/p>\n<label><input type=\"checkbox\">Experience letters carry dates, job values and the licensed supervisor&#8217;s name<\/label>\n<label><input type=\"checkbox\">Experience matches a path in section 489.111, counted at 2,000 hours a year full time<\/label>\n<label><input type=\"checkbox\">Own credit report pulled and the score checked against 660<\/label>\n<label><input type=\"checkbox\">If under 660, the 14 hour approved financial responsibility course planned<\/label>\n<label><input type=\"checkbox\">Every criminal history item disclosed, whatever the outcome<\/label>\n<label><input type=\"checkbox\">Qualifier and ownership details match the business documents<\/label>\n<label><input type=\"checkbox\">Date the department received the application written down<\/label>\n<p class=\"msq-check-count\"><\/p>\n<p class=\"msq-note\">Drawn from section 489.111 and rule 61G4-15.006. A tidy file avoids a referral more often than not, but the decision is the department&#8217;s.<\/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 \">Is the Florida state contractors board the same thing as the DBPR?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. The Department of Business and Professional Regulation is the state agency. The Construction Industry Licensing Board is an 18 member panel created within that department under section 489.107. The department employs the staff and issues the licence; the board makes rules and decides applications that staff cannot.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Do I have to attend my board meeting if I am referred?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The notice you receive says whether attendance is required. Applicants referred only for experience review have reported notices stating it was not. Since the board can ask questions nobody is there to answer, that is a decision worth taking seriously rather than by default.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How many people vote on my contractor application?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Not 18. Your file goes to the division covering your category, which has nine members, and that division can act with a quorum of five under section 489.107. Division I hears general, building and residential contractors. Division II hears the specialty trades.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What happens if the DBPR misses the 90 day deadline?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Section 120.60 says an application not approved or denied within 90 days of a completed application is considered approved, unless a recommended order recommends denial. Agreeing to a continuance at a hearing normally means waiving that clock, so understand the trade before you agree.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can a bad credit score stop me getting licensed in Florida?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Rule 61G4-15.006 requires proof of a FICO derived credit score of 660 or higher, with no unsatisfied judgments or liens. Applicants who cannot meet the score may instead complete a 14 hour financial responsibility course approved by the board.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Which board handles electrical contractors?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Not the CILB. Electrical and alarm system contractors fall under the Electrical Contractors Licensing Board, an 11 member body under Chapter 489, Part II. The two boards are separate and appoint committees that meet jointly at least twice a year.<\/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 last rechecked against the state sources on 17 October 2026. If you hit something different, tell us in the comments.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Construction Industry Licensing Board has 18 members in two divisions of nine, not the nine that ranking pages report. Here is what it decides, what department staff decide without it, and the 90 day clock nobody mentions.<\/p>\n","protected":false},"author":1,"featured_media":159,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Florida State Contractors Board: Who Decides Your License","rank_math_description":"The Florida state contractors board is the CILB, 18 members inside the DBPR. See what it decides, what staff decide, and how long each takes.","rank_math_focus_keyword":"florida state contractors board","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-162","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\/162","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=162"}],"version-history":[{"count":9,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/162\/revisions"}],"predecessor-version":[{"id":680,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/162\/revisions\/680"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media\/159"}],"wp:attachment":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media?parent=162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/categories?post=162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/tags?post=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}