{"id":31,"date":"2026-08-29T12:44:25","date_gmt":"2026-08-29T16:44:25","guid":{"rendered":"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/"},"modified":"2026-10-27T01:01:27","modified_gmt":"2026-10-27T05:01:27","slug":"failed-florida-contractor-exam","status":"publish","type":"post","link":"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/","title":{"rendered":"Failed Florida Contractor Exam? Retake Rules and Real Cost"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>After a failed Florida contractor exam, you retake only the part you failed; passed parts stand if everything is passed within four years of your first scheduled exam. You reapply through Professional Testing, Inc. and pay $135 plus Pearson VUE&#8217;s fee per part, $175 to $295. There is no waiting period, only a 30 day application deadline.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"failed-florida-contractor-exam\" data-minutes=\"15\">\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\/failed-florida-contractor-exam\/#audio\",\"name\":\"Failed Florida Contractor Exam? Retake Rules and Real Cost, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 27 October 2026.\",\"contentUrl\":\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/failed-florida-contractor-exam-audio-202610271031.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT14M39S\",\"uploadDate\":\"2026-10-27\",\"inLanguage\":\"en-US\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Failed Florida Contractor Exam? Retake Rules and Real Cost\",\"startOffset\":0,\"endOffset\":72},{\"@type\":\"Clip\",\"name\":\"Do you have to retake every part after failing one?\",\"startOffset\":72,\"endOffset\":165,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#do-you-have-to-retake-every-part-after-failing-one\"},{\"@type\":\"Clip\",\"name\":\"What does a Florida contractor exam retake actually cost?\",\"startOffset\":165,\"endOffset\":385,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#what-does-a-florida-contractor-exam-retake-actually-cost\"},{\"@type\":\"Clip\",\"name\":\"Is there really a 30 day wait before a retake?\",\"startOffset\":385,\"endOffset\":491,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#is-there-really-a-30-day-wait-before-a-retake\"},{\"@type\":\"Clip\",\"name\":\"How long do the parts you passed stay valid?\",\"startOffset\":491,\"endOffset\":557,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#how-long-do-the-parts-you-passed-stay-valid\"},{\"@type\":\"Clip\",\"name\":\"Should you request a review of the exam you failed?\",\"startOffset\":557,\"endOffset\":633,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#should-you-request-a-review-of-the-exam-you-failed\"},{\"@type\":\"Clip\",\"name\":\"Did you run out of time or out of knowledge?\",\"startOffset\":633,\"endOffset\":734,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#did-you-run-out-of-time-or-out-of-knowledge\"},{\"@type\":\"Clip\",\"name\":\"Why do so many people run out of time on Business and Finance?\",\"startOffset\":734,\"endOffset\":811,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#why-do-so-many-people-run-out-of-time-on-business-and-financ\"},{\"@type\":\"Clip\",\"name\":\"What should you do between the result and the retake?\",\"startOffset\":811,\"endOffset\":879,\"url\":\"https:\/\/passcontractorexam.com\/articles\/failed-florida-contractor-exam\/#what-should-you-do-between-the-result-and-the-retake\"}],\"contentSize\":\"6.2 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 15 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\/failed-florida-contractor-exam-audio-202610271031.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: Failed Florida Contractor Exam? Retake Rules and Real Cost\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Failed Florida Contractor Exam? Retake Rules and Real Cost<\/a><\/li>\n<li data-start=\"72.1\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"72.1\" aria-label=\"Play from: Do you have to retake every part after failing one?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">1:12<\/span><a href=\"#do-you-have-to-retake-every-part-after-failing-one\">Do you have to retake every part after failing one?<\/a><\/li>\n<li data-start=\"164.96\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"164.96\" aria-label=\"Play from: What does a Florida contractor exam retake actually cost?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:45<\/span><a href=\"#what-does-a-florida-contractor-exam-retake-actually-cost\">What does a Florida contractor exam retake actually cost?<\/a><\/li>\n<li data-start=\"385.42\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"385.42\" aria-label=\"Play from: Is there really a 30 day wait before a retake?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">6:25<\/span><a href=\"#is-there-really-a-30-day-wait-before-a-retake\">Is there really a 30 day wait before a retake?<\/a><\/li>\n<li data-start=\"490.84\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"490.84\" aria-label=\"Play from: How long do the parts you passed stay valid?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">8:11<\/span><a href=\"#how-long-do-the-parts-you-passed-stay-valid\">How long do the parts you passed stay valid?<\/a><\/li>\n<li data-start=\"556.86\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"556.86\" aria-label=\"Play from: Should you request a review of the exam you failed?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">9:17<\/span><a href=\"#should-you-request-a-review-of-the-exam-you-failed\">Should you request a review of the exam you failed?<\/a><\/li>\n<li data-start=\"633.36\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"633.36\" aria-label=\"Play from: Did you run out of time or out of knowledge?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">10:33<\/span><a href=\"#did-you-run-out-of-time-or-out-of-knowledge\">Did you run out of time or out of knowledge?<\/a><\/li>\n<li data-start=\"733.54\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"733.54\" aria-label=\"Play from: Why do so many people run out of time on Business and Finance?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">12:14<\/span><a href=\"#why-do-so-many-people-run-out-of-time-on-business-and-financ\">Why do so many people run out of time on Business and Finance?<\/a><\/li>\n<li data-start=\"811.4\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"811.4\" aria-label=\"Play from: What should you do between the result and the retake?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">13:31<\/span><a href=\"#what-should-you-do-between-the-result-and-the-retake\">What should you do between the result and the retake?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 27 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\",\"failedfloridacontractore\",49],[4.04,\"p\",\"afterafailedfloridacontr\",137],[13.84,\"p\",\"youreapplythroughprofess\",81],[24.52,\"p\",\"thereisnowaitingperiodon\",51],[27.96,\"p\",\"onthispagetheretakefeefo\",179],[41.28,\"p\",\"thatisthewholeanswertoth\",85],[46.96,\"p\",\"youhavenotlostthepartsyo\",56],[51.92,\"p\",\"everythingbelowwaschecke\",160],[64.44,\"p\",\"whenthelastpartdoesfallt\",97],[72.1,\"h\",\"doyouhavetoretakeeverypa\",41],[74.62,\"t\",\"doiretakeeverything\",64],[82.7,\"t\",\"isthereawaitingperiod\",132],[92.18,\"t\",\"whatdoesaretakecost\",79],[106.26,\"t\",\"doireapplyfromscratch\",109],[114.66,\"t\",\"istherealimitonattempts\",109],[123.46,\"p\",\"thefirstrowistheruleitse\",26],[125.58,\"p\",\"floridaadministrativecod\",247],[144.7,\"p\",\"notethelastclauseapartyo\",89],[151.02,\"p\",\"thedbprsconstructioncand\",137],[164.96,\"h\",\"whatdoesafloridacontract\",48],[168.88,\"p\",\"almosteverypagequotes295\",32],[173.28,\"p\",\"thedepartmentsexaminatio\",156],[184.04,\"p\",\"a135registrationfeegoest\",130],[194.28,\"p\",\"pearsonvuethenchargesits\",149],[205.76,\"t\",\"contractadministrationon\",68],[216.44,\"t\",\"projectmanagementonly\",63],[226.4,\"t\",\"businessandfinanceonly\",64],[234.6,\"t\",\"tradeknowledgeonlydivisi\",70],[246.04,\"t\",\"contractadministrationan\",92],[257.88,\"t\",\"businessandfinancepluson\",78],[268.6,\"t\",\"allthreedivisioniparts\",65],[280.32,\"p\",\"everyrowisthepacksschedu\",184],[295.36,\"p\",\"sothefamous295istheprice\",63],[303.56,\"p\",\"ageneralcontractorwhodro\",63],[310.2,\"p\",\"thereisawrinkleanditisth\",43],[313.56,\"p\",\"thefeerulerule61g412009s\",144],[332.2,\"p\",\"theapplicationpackisthen\",175],[345.92,\"p\",\"believetheitemisedtotalo\",169],[356.16,\"p\",\"ourfullwalkthroughofregi\",81],[362.08,\"p\",\"beforeyoubuyawholenewpre\",233],[381.28,\"p\",\"youalreadyownthebooksand\",53],[385.42,\"h\",\"istherereallya30daywaitb\",36],[387.78,\"p\",\"noalthoughyouwillreadtha\",79],[393.5,\"p\",\"whatrule61g416009actuall\",219],[412.38,\"p\",\"thatisadeadlineinfrontof\",71],[417.62,\"p\",\"theclockstartswhenyourea\",110],[426.06,\"p\",\"therealwaitingruleisoneh\",43],[428.98,\"p\",\"theapplicationpacklistsa\",284],[449.34,\"t\",\"reviewrequestwindow\",90],[458.5,\"t\",\"noexamafterareview\",91],[469.54,\"t\",\"retakeapplicationdeadlin\",112],[481.7,\"t\",\"passeverypart\",80],[490.84,\"h\",\"howlongdothepartsyoupass\",35],[493.16,\"p\",\"fouryearscountedfromyour\",72],[497.6,\"p\",\"theapplicationpackputsit\",151],[508.44,\"p\",\"rule61g416009suppliesthe\",158],[521.6,\"p\",\"soapassedpartcannotexpir\",107],[529.76,\"p\",\"ifyourfirstexamwasawhile\",179],[542.64,\"p\",\"thenationalnasclaexamrun\",179],[556.86,\"h\",\"shouldyourequestareviewo\",41],[560.34,\"p\",\"oftenyesifyoucannottellf\",47],[563.82,\"p\",\"thecandidatebookletsaysa\",118],[572.02,\"p\",\"therequesthastobemadewit\",153],[587.38,\"p\",\"youusuallygethalftheorig\",114],[598.34,\"p\",\"areviewisalsotheonlyplac\",45],[601.5,\"p\",\"objectionsmustbewritteno\",108],[608.14,\"p\",\"thebookletputstheaverage\",106],[615.9,\"p\",\"thedepartmentsexaminatio\",100],[622.74,\"p\",\"weighitagainstthe21dayba\",135],[633.36,\"h\",\"didyourunoutoftimeorouto\",34],[635.76,\"p\",\"thisisthestepalmostevery\",65],[640.04,\"p\",\"therearebroadlytwowaysto\",70],[645.04,\"p\",\"youranoutoftime\",15],[646.12,\"p\",\"youknewwherethingswerero\",96],[652.44,\"p\",\"thisisanavigationproblem\",24],[653.92,\"p\",\"amonthiscomfortablyenoug\",86],[660.68,\"p\",\"youranoutofknowledge\",20],[662.16,\"p\",\"youreachedthequestionsyo\",69],[666.8,\"p\",\"thisisacontentproblem\",21],[668.04,\"p\",\"amonthmaybeenoughdependi\",112],[676.6,\"p\",\"behonestaboutwhichoneitw\",40],[678.84,\"p\",\"aweeklaterthememorysmoot\",103],[685.48,\"t\",\"unansweredquestionsatthe\",140],[698.0,\"t\",\"foundtherightchapterstil\",138],[709.2,\"t\",\"couldnotfindatableyoukne\",140],[720.08,\"t\",\"areferenceyouneededwasmi\",164],[733.54,\"h\",\"whydosomanypeoplerunouto\",49],[736.5,\"p\",\"becauseitgivesyoutheleas\",40],[738.7,\"p\",\"theexaminationsataglance\",129],[750.9,\"p\",\"ageneralcontractorscontr\",198],[767.78,\"p\",\"prepproviderscommonlyrep\",144],[777.38,\"p\",\"ifcalculationquestionsar\",215],[792.78,\"p\",\"passratesbypartcirculate\",108],[801.7,\"p\",\"wecouldnottracethemtoany\",146],[811.4,\"h\",\"whatshouldyoudobetweenth\",43],[814.0,\"p\",\"writedownwhathappenedwhi\",39],[816.0,\"p\",\"whichtopicsstalledyouwhe\",55],[820.4,\"p\",\"decideonareviewwithinthe\",83],[826.96,\"p\",\"reapplywithprofessionalt\",113],[835.12,\"p\",\"fixyourtabsbeforeyoufixy\",36],[837.2,\"p\",\"ifnavigationcostyoutheex\",56],[841.28,\"p\",\"seewhatyoumaymarkinyourb\",28],[842.84,\"p\",\"recheckyourreferencelist\",24],[844.36,\"p\",\"ifyourbookswerethewronge\",79],[850.36,\"p\",\"seewhichbooksyoucanbring\",24],[851.68,\"p\",\"practiseagainsttheclockn\",44],[854.56,\"p\",\"timedretrievalisthething\",35],[856.56,\"p\",\"seehowtheopenbookformata\",36],[858.68,\"p\",\"retakerulesdeadlinesandf\",80],[865.92,\"p\",\"confirmthecurrentpositio\",84],[872.28,\"p\",\"forthestructureofeachpar\",72]];\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 retake fee for every combination of parts from the DBPR application pack, the rule text that shows there is no 30 day wait, the 21 day review bar almost nobody mentions, and a calculator for your own retake.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"failed-florida-contractor-exam\" 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=\"Do you have to retake every part after failing one?\" data-section=\"#do-you-have-to-retake-every-part-after-failing-one\">\n<p class=\"msq-question\">1. You passed Business and Finance and Contract Administration but failed Project Management. What do you resit?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">All three parts<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Project Management only<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Project Management and Contract Administration<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-16-009\" target=\"_blank\" rel=\"noopener\">Rule 61G4-16.009<\/a> requires a candidate to retake only the tests they failed or failed to appear for. Passed parts stand. <a class=\"msq-section\" href=\"#do-you-have-to-retake-every-part-after-failing-one\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"a\" data-title=\"What does a Florida contractor exam retake actually cost?\" data-section=\"#what-does-a-florida-contractor-exam-retake-actually-cost\">\n<p class=\"msq-question\">2. On the DBPR application pack&#8217;s schedule, what does resitting Project Management alone cost?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">$175<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">$295<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">$415<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">examination application pack<\/a> lists a $135 registration fee plus $40 to Pearson VUE for Project Management. $295 is the total for all three Division I parts. <a class=\"msq-section\" href=\"#what-does-a-florida-contractor-exam-retake-actually-cost\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"b\" data-title=\"Is there really a 30 day wait before a retake?\" data-section=\"#is-there-really-a-30-day-wait-before-a-retake\">\n<p class=\"msq-question\">3. What does rule 61G4-16.009 actually require about timing after a failed part?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">A 30 day cooling off period after the failed exam<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">The retake application must reach the vendor at least 30 days before the exam you want<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">A 90 day wait before any retake<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-16-009\" target=\"_blank\" rel=\"noopener\">Rule 61G4-16.009<\/a> sets an application deadline counted back from the next exam, not a waiting period after the last one. <a class=\"msq-section\" href=\"#is-there-really-a-30-day-wait-before-a-retake\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"b\" data-title=\"How long do the parts you passed stay valid?\" data-section=\"#how-long-do-the-parts-you-passed-stay-valid\">\n<p class=\"msq-question\">4. When does the four year window to pass every part start?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">On the date you passed your first part<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">On your first scheduled exam date<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">On the date you apply for the licence<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">application pack<\/a> says the four year examination period begins with your first scheduled examination date, with unlimited attempts inside it. <a class=\"msq-section\" href=\"#how-long-do-the-parts-you-passed-stay-valid\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"b\" data-title=\"Should you request a review of the exam you failed?\" data-section=\"#should-you-request-a-review-of-the-exam-you-failed\">\n<p class=\"msq-question\">5. In a review session, what can you see?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">The whole exam with the correct answers<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Only the questions you answered incorrectly<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Your original exam book with your highlighting<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/const_cib.pdf\" target=\"_blank\" rel=\"noopener\">DBPR candidate booklet<\/a> limits a review to the questions the candidate answered incorrectly on their most recent exam, requested within 21 days. <a class=\"msq-section\" href=\"#should-you-request-a-review-of-the-exam-you-failed\">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\">That is the whole answer to the question most people are actually asking at midnight after a bad result. You have not lost the parts you passed and you are not starting again. Everything below was checked on 6 October 2026 against the rule text and the department&#8217;s own documents, which disagree with each other and with most prep sites in two places worth knowing about. When the last part does fall, <a href=\"https:\/\/passcontractorexam.com\/articles\/what-to-do-after-passing-the-florida-contractor-exam\/\">the licence application that follows a pass<\/a> runs on its own clock and its own fee schedule.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"do-you-have-to-retake-every-part-after-failing-one\">Do you have to retake every part after failing one?<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Question<\/th><th>Answer<\/th><\/tr><\/thead><tbody><tr><td>Do I retake everything?<\/td><td><strong>No.<\/strong> Only the parts you failed. Passed parts stand<\/td><\/tr><tr><td>Is there a waiting period?<\/td><td><strong>No waiting period<\/strong> in the rule. The retake application must reach Professional Testing at least 30 days before the exam you want<\/td><\/tr><tr><td>What does a retake cost?<\/td><td><strong>$135<\/strong> registration plus <strong>$40 or $80<\/strong> per part to Pearson VUE, so $175 to $295<\/td><\/tr><tr><td>Do I reapply from scratch?<\/td><td>You file a new examination registration with Professional Testing, not a new licence application<\/td><\/tr><tr><td>Is there a limit on attempts?<\/td><td>Unlimited attempts, but every part must be passed within four years of your first scheduled exam<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The first row is the rule itself. <a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-16-009\" target=\"_blank\" rel=\"noopener\">Florida Administrative Code rule 61G4-16.009<\/a> says a candidate &#8220;shall be required to retake only the tests on which he or she failed to achieve a passing score or failed to appear to take when scheduled&#8221;, and the department&#8217;s own answer to <a href=\"https:\/\/myfloridalicense.custhelp.com\/app\/answers\/detail\/a_id\/1402\/~\/if-i-fail-one-or-more-portions-of-the-certified-construction-contractor-license\" target=\"_blank\" rel=\"noopener\">whether you must retake every part after failing one<\/a> says the same. Note the last clause: a part you were booked for and missed counts exactly like a part you failed, fee included. The DBPR&#8217;s <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/const_cib.pdf\" target=\"_blank\" rel=\"noopener\">construction candidate booklet<\/a> adds the practical step: before you sit again, you reapply directly with <a href=\"https:\/\/www.floridaexam.com\/\" target=\"_blank\" rel=\"noopener\">Professional Testing, Inc.<\/a>, online or on 407-264-0562.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-a-florida-contractor-exam-retake-actually-cost\">What does a Florida contractor exam retake actually cost?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Almost every page quotes $295 and stops. The department&#8217;s <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">examination application pack<\/a>, the registration update dated August 2024, prints the computer based fee schedule line by line, and it explains where that number comes from. A $135 registration fee goes to Professional Testing and, in the pack&#8217;s words, &#8220;will be charged every time a registration is made for any part of your examination&#8221;. Pearson VUE then charges its own fee per part when you book: $80 for Business and Finance, $80 for a trade knowledge exam, and $40 each for Contract Administration and Project Management.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>What you are retaking<\/th><th>Professional Testing<\/th><th>Pearson VUE<\/th><th>Total<\/th><\/tr><\/thead><tbody><tr><td>Contract Administration only<\/td><td>$135<\/td><td>$40<\/td><td><strong>$175<\/strong><\/td><\/tr><tr><td>Project Management only<\/td><td>$135<\/td><td>$40<\/td><td><strong>$175<\/strong><\/td><\/tr><tr><td>Business and Finance only<\/td><td>$135<\/td><td>$80<\/td><td><strong>$215<\/strong><\/td><\/tr><tr><td>Trade knowledge only (Division II)<\/td><td>$135<\/td><td>$80<\/td><td><strong>$215<\/strong><\/td><\/tr><tr><td>Contract Administration and Project Management together<\/td><td>$135<\/td><td>$80<\/td><td><strong>$215<\/strong><\/td><\/tr><tr><td>Business and Finance plus one of those two<\/td><td>$135<\/td><td>$120<\/td><td><strong>$255<\/strong><\/td><\/tr><tr><td>All three Division I parts<\/td><td>$135<\/td><td>$160<\/td><td><strong>$295<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Every row is the pack&#8217;s schedule added up, and the combined rows assume you register the parts together on one registration, which is how the pack&#8217;s wording on the $135 reads; register them separately and you pay the $135 each time. So the famous $295 is the price of resitting all three Division I parts, not one. A general contractor who dropped only Project Management is looking at $175.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is a wrinkle, and it is the department&#8217;s, not ours. The fee rule, <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<\/a>, still sets the reexamination fee at $135 plus $80 &#8220;upon scheduling of each test to be administered&#8221;, which would make a single part $215 and all three $375. The application pack is the newer document and the one describing what Pearson VUE actually charges for computer based tests, and the candidate booklet also warns that Pearson VUE&#8217;s fees rose from 3 January 2023. Believe the itemised total on the payment screen, and if it matches neither figure, ask Professional Testing before you pay, because the pack says examination fees are non refundable and non transferable. Our <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-general-contractor-exam-registration\/\">full walk through of registration fees<\/a> sets out the first attempt side of the same arithmetic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before you buy a whole new prep package to fix one failed part, note that a course for Contract Administration and Project Management alone is listed at $395 to $695 against several thousand dollars for a full package with books, which we compare in <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-prep\/\">our look at course against self study<\/a>. You already own the books, and passed parts do not need them again.<\/p>\n\n\n\n<div class=\"msq-tool\" id=\"pce-rt-calc\">\n<h3>Retake cost calculator<\/h3>\n<p>Tick the parts you need to resit. It adds the fees printed in the DBPR application pack; it says nothing about your chances on the day.<\/p>\n<div class=\"msq-calc\">\n<label><input type=\"checkbox\" name=\"bf\" value=\"80\"> Business and Finance ($80 to Pearson VUE)<\/label>\n<label><input type=\"checkbox\" name=\"tk\" value=\"80\"> Trade knowledge ($80 to Pearson VUE)<\/label>\n<label><input type=\"checkbox\" name=\"ca\" value=\"40\"> Contract Administration ($40 to Pearson VUE)<\/label>\n<label><input type=\"checkbox\" name=\"pm\" value=\"40\"> Project Management ($40 to Pearson VUE)<\/label>\n<label>How you register them<select name=\"reg\"><option value=\"1\">Together, on one registration<\/option><option value=\"0\">Separately, one registration each<\/option><\/select><\/label>\n<div class=\"msq-calc-out\"><button type=\"button\" class=\"msq-btn\" id=\"pce-rt-go\">Add it up<\/button>\n<div id=\"pce-rt-out\" style=\"margin-top:10px;overflow-x:auto\"><\/div><\/div>\n<\/div>\n<p class=\"msq-note\">Fees from the DBPR examination application pack, August 2024 update: $135 to Professional Testing each time a registration is made, plus Pearson VUE&#8217;s fee per part. Fees change; the payment screen is the final word. Worked in your browser, nothing is stored or sent.<\/p>\n<\/div>\n<script>\n(function(){\n  var root = document.getElementById('pce-rt-calc'); if (!root) { return; }\n  var out = document.getElementById('pce-rt-out');\n  document.getElementById('pce-rt-go').addEventListener('click', function(){\n    var names = ['bf', 'tk', 'ca', 'pm'], parts = 0, vue = 0;\n    names.forEach(function(n){ var e = root.querySelector('[name=\"' + n + '\"]'); if (e && e.checked) { parts += 1; vue += parseFloat(e.value); } });\n    if (!(parts > 0)) { out.innerHTML = '<p>Tick at least one part.<\/p>'; return; }\n    var together = root.querySelector('[name=\"reg\"]').value === '1';\n    var regs = together ? 1 : parts, pti = 135 * regs, total = pti + vue;\n    out.innerHTML = '<table><thead><tr><th>Line<\/th><th>Dollars<\/th><\/tr><\/thead><tbody>'\n      + '<tr><td>Professional Testing registration, ' + regs + (regs > 1 ? ' registrations' : ' registration') + '<\/td><td>' + pti + '<\/td><\/tr>'\n      + '<tr><td>Pearson VUE, ' + parts + (parts > 1 ? ' parts' : ' part') + '<\/td><td>' + vue + '<\/td><\/tr>'\n      + '<tr><td><strong>Total<\/strong><\/td><td><strong>' + total + '<\/strong><\/td><\/tr>'\n      + '<\/tbody><\/table>';\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\/failed-florida-contractor-exam-chart.png\" alt=\"Bar chart of retake cost after a failed florida contractor exam, from 175 to 295 dollars by parts resat.\" class=\"wp-image-543\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/failed-florida-contractor-exam-chart.png 1600w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/failed-florida-contractor-exam-chart-300x169.png 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/failed-florida-contractor-exam-chart-1024x576.png 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/failed-florida-contractor-exam-chart-768x432.png 768w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/10\/failed-florida-contractor-exam-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">One trade part costs $175 to resit and all three Division I parts $295, on the DBPR application pack&#8217;s computer based fee schedule. The fee rule&#8217;s older $80 per test figure would put three parts at $375.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"is-there-really-a-30-day-wait-before-a-retake\">Is there really a 30 day wait before a retake?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No, although you will read that there is on page after page, and it is easy to see where it comes from. What <a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-16-009\" target=\"_blank\" rel=\"noopener\">rule 61G4-16.009<\/a> actually says is that a candidate who fails &#8220;must submit an application to retake the certification examination to the examination vendor no less than thirty (30) days prior to the administration of the examination the candidate wishes to take&#8221;. That is a deadline in front of the next exam, not a cooling off period behind the last one. The clock starts when you reapply, not when you failed, which is the useful part: every day you put off reapplying is a day added to the end.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The real waiting rule is one hardly anyone mentions. The <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">application pack<\/a> lists, among its application restrictions: &#8220;If you have scheduled a review, you may not take an exam within twenty-one (21) days of the review date.&#8221; Booking a review of your failed paper therefore pushes your earliest retake back by three weeks from the review itself, which matters if you were planning to do both in the same month.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Clock<\/th><th>What starts it<\/th><th>Length<\/th><th>Source<\/th><\/tr><\/thead><tbody><tr><td>Review request window<\/td><td>The date of the exam you failed<\/td><td>21 days<\/td><td><a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/const_cib.pdf\" target=\"_blank\" rel=\"noopener\">Candidate booklet<\/a><\/td><\/tr><tr><td>No exam after a review<\/td><td>The date of your scheduled review<\/td><td>21 days<\/td><td><a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">Application pack<\/a><\/td><\/tr><tr><td>Retake application deadline<\/td><td>Counted back from the exam you want<\/td><td>At least 30 days before it<\/td><td><a href=\"https:\/\/www.law.cornell.edu\/regulations\/florida\/Fla-Admin-Code-Ann-R-61G4-16-009\" target=\"_blank\" rel=\"noopener\">Rule 61G4-16.009<\/a><\/td><\/tr><tr><td>Pass every part<\/td><td>Your first scheduled exam<\/td><td>4 years<\/td><td><a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">Application pack<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-long-do-the-parts-you-passed-stay-valid\">How long do the parts you passed stay valid?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Four years, counted from your first scheduled exam rather than from the part you passed. The <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/exam_applic_pack.pdf\" target=\"_blank\" rel=\"noopener\">application pack<\/a> puts it plainly: a candidate must pass all parts &#8220;within four years from the first exam scheduled&#8221;, with &#8220;an unlimited number of attempts within the four-year period&#8221;. Rule 61G4-16.009 supplies the consequence: once the four years are up, &#8220;all past test scores of the candidate shall be considered invalid&#8221;, and the parts you passed have to be sat again with the rest. So a passed part cannot expire while you are working on the others, but a failed part left too long takes the passed ones down with it. If your first exam was a while ago, work out the date before you plan a long gap; our guide to <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-plumbing-license-exam\/\">the two papers a Florida plumbing candidate has to pass<\/a> shows how that window plays out when two exams run on different calendars. The national NASCLA exam runs the opposite way, three attempts inside one year of approval and then a forced wait until that year ends, as <a href=\"https:\/\/passcontractorexam.com\/articles\/nascla-accredited-examination-commercial-general-building-contractor\/\">the NASCLA commercial exam&#8217;s three attempt rule, worked through with dates<\/a> shows.<\/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\/08\/florida-contractor-exam-diagnosis.jpg\" alt=\"Person in a hard hat pointing at technical drawings on a wall\" class=\"wp-image-29\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-diagnosis.jpg 1200w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-diagnosis-300x157.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-diagnosis-1024x535.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-diagnosis-768x401.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-block-image__caption\">Whether you ran out of time or ran out of knowledge points to different fixes.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"should-you-request-a-review-of-the-exam-you-failed\">Should you request a review of the exam you failed?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Often, yes, if you cannot tell from memory why it went wrong. The <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/const_cib.pdf\" target=\"_blank\" rel=\"noopener\">candidate booklet<\/a> says a candidate who fails may review the questions they answered incorrectly, and only those, on their most recent exam. The request has to be made within 21 days of the exam date, through Pearson VUE online or on 888-204-6230, and the review is held at a Pearson VUE test centre under the same security as the exam. You usually get half the original exam time, so a 4.5 hour paper buys about 2 hours 15 minutes, and there is no talking or note taking of any kind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A review is also the only place to challenge a question. Objections must be written on the computer during the review session; anything submitted after you leave the room is not accepted. The booklet puts the average response at about 21 days, and the answer is simply credit or no credit for each challenged question. The department&#8217;s <a href=\"https:\/\/www2.myfloridalicense.com\/examination-information\/examination-reviews-and-hearings\/\" target=\"_blank\" rel=\"noopener\">examination review and hearing page<\/a> covers the informal review and formal hearing routes beyond that. Weigh it against the 21 day bar on sitting an exam after a review, and our <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-day-preparation-checklist\/\">Florida contractor exam day preparation checklist<\/a> sets out the rules the review room keeps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"did-you-run-out-of-time-or-out-of-knowledge\">Did you run out of time or out of knowledge?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the step almost everyone skips, and it decides whether a month is enough. There are broadly two ways to fail an open book exam, and they need opposite responses.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>You ran out of time.<\/strong> You knew where things were, roughly, but not fast enough, and you left questions unanswered or rushed the last stretch. This is a navigation problem. A month is comfortably enough to fix it, and the fix is timed retrieval practice rather than more reading.<\/li>\n\n\n<li><strong>You ran out of knowledge.<\/strong> You reached the questions, you looked things up, and you still could not resolve them. This is a content problem. A month may be enough, depending on how large the gap is, and the fix is genuinely studying the weak area rather than drilling lookup speed.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Be honest about which one it was while it is fresh. A week later the memory smooths over into I just failed, and you lose the diagnostic information that was available on the day.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>What you noticed on the day<\/th><th>Most likely kind of failure<\/th><th>Where the time before the retake should go<\/th><\/tr><\/thead><tbody><tr><td>Unanswered questions at the end, or a rushed final stretch<\/td><td>Time<\/td><td>Timed lookup drills and better tabs<\/td><\/tr><tr><td>Found the right chapter, still could not pick an answer<\/td><td>Knowledge<\/td><td>Studying the weak topic itself<\/td><\/tr><tr><td>Could not find a table you knew was in the book<\/td><td>Time, caused by navigation<\/td><td>Retabbing by question type<\/td><\/tr><tr><td>A reference you needed was missing or a different edition<\/td><td>Materials<\/td><td>Checking the current reference list before anything else<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-do-so-many-people-run-out-of-time-on-business-and-financ\">Why do so many people run out of time on Business and Finance?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because it gives you the least time per question. The Examinations at a Glance chart in the <a href=\"https:\/\/www2.myfloridalicense.com\/servop\/testing\/documents\/const_cib.pdf\" target=\"_blank\" rel=\"noopener\">candidate booklet<\/a> lists 120 scored questions in 6.5 hours for Business and Finance, about 3 minutes 15 seconds each. A general contractor&#8217;s Contract Administration and Project Management are 60 scored questions in 4.5 hours each, 4 minutes 30 seconds a question, and the building and residential versions have 50 and 45 scored questions in the same 4.5 hours. Prep providers commonly report 5 ungraded pilot questions on top of each paper, which the booklet confirms exist without giving a number, so the real clock is a little tighter. If calculation questions are where your minutes went, <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-business-finance-exam-math\/\">the math on the Business and Finance exam<\/a> has its own walkthrough, and <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-business-and-finance-exam\/\">DBPR&#8217;s own weighting of the Business and Finance exam<\/a> puts 32 percent of it on accounting, which is usually where a breakdown points first.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pass rates by part circulate at roughly 50% for Business and Finance, 55% for Contract Administration and 40% for Project Management. We could not trace them to any DBPR publication, and the department does not appear to publish pass rates by part, so treat them as a prep industry estimate rather than a statistic.<\/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\/08\/florida-contractor-exam-retake.jpg\" alt=\"Candidates sitting a written exam in a classroom\" class=\"wp-image-30\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-retake.jpg 1200w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-retake-300x157.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-retake-1024x535.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/08\/florida-contractor-exam-retake-768x401.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-block-image__caption\">Thirty days is short. It is enough to fix navigation. It is not enough to relearn a subject.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-should-you-do-between-the-result-and-the-retake\">What should you do between the result and the retake?<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Write down what happened while you remember it.<\/strong> Which topics stalled you, whether you finished, where the time went.<\/li>\n\n\n<li><strong>Decide on a review within the 21 days,<\/strong> remembering it blocks any exam for 21 days after the review date.<\/li>\n\n\n<li><strong>Reapply with Professional Testing early,<\/strong> because the 30 day deadline runs back from the exam you want, not forward from the one you failed.<\/li>\n\n\n<li><strong>Fix your tabs before you fix your knowledge.<\/strong> If navigation cost you the exam, that is the cheapest thing to repair. See <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-tabs-highlighting-notes\/\">what you may mark in your books<\/a>.<\/li>\n\n\n<li><strong>Re-check your reference list.<\/strong> If your books were the wrong edition, or you were missing one, that is a silent cause of a bad result. See <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-approved-books\/\">which books you can bring<\/a>.<\/li>\n\n\n<li><strong>Practise against the clock,<\/strong> not against the material. Timed retrieval is the thing being tested. See <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-open-book\/\">how the open book format actually works<\/a>.<\/li>\n\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Retake rules, deadlines and fees are set by the Florida DBPR and the testing vendor and can change. Confirm the current position for your licence category before making plans around a date or a figure.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">For the structure of each part and how they differ by licence, see <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-format\/\">the format of each exam<\/a>.<\/p>\n\n\n\n<div class=\"msq-tool msq-check\" data-id=\"pce-rt-steps\" data-verb=\" done\">\n<h3>After a failed part: the steps in order<\/h3>\n<p>Built from rule 61G4-16.009, the DBPR candidate booklet and the application pack. Confirm the dates against the documents for your own exam.<\/p>\n<label><input type=\"checkbox\">Wrote down which topics stalled me and whether I finished, on the day<\/label>\n<label><input type=\"checkbox\">Decided whether to request a review, inside 21 days of the exam date<\/label>\n<label><input type=\"checkbox\">Allowed for the 21 day bar on sitting any exam after a scheduled review<\/label>\n<label><input type=\"checkbox\">Reapplied with Professional Testing at least 30 days before the exam I want<\/label>\n<label><input type=\"checkbox\">Checked the itemised fee total before paying<\/label>\n<label><input type=\"checkbox\">Worked out the date four years after my first scheduled exam<\/label>\n<label><input type=\"checkbox\">Checked my books against the current approved reference list<\/label>\n<p class=\"msq-check-count\"><\/p>\n<p class=\"msq-note\">Ticks are saved on this device only.<\/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 \">If I fail one part do I have to retake all of them?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. You retake only the parts you failed. Parts you have already passed remain valid.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is there a waiting period before I can retake?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No waiting period is written into rule 61G4-16.009. The rule requires your retake application to reach Professional Testing at least 30 days before the exam you want to sit, and the application pack bars sitting any exam within 21 days of a review you have scheduled.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How much does a Florida contractor exam retake cost?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>On the DBPR application pack updated August 2024: a $135 registration fee to Professional Testing each time you register, plus Pearson VUE fees of $80 for Business and Finance or a trade knowledge exam and $40 each for Contract Administration and Project Management. One part costs $175 to $215; all three cost $295. Confirm the total when you pay, because fees change.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Which part do most people fail?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The DBPR does not publish pass rates by part in any document we could find. Figures of roughly 50% for Business and Finance, 55% for Contract Administration and 40% for Project Management circulate on prep sites and should be treated as unverified estimates.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is a month enough to prepare for a retake?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It depends on why you failed. If you ran out of time, a month is enough to fix navigation and lookup speed. If you could not answer the questions even with the books open, the gap is content and may need longer; the four year window gives you room.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Do I have to reapply for the licence?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. Retaking a failed examination part is not a new licence application. Confirm your specific situation with the DBPR if anything about your application has changed.<\/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>Exam rules, approved reference lists and fees are set by the Florida DBPR and change without notice. This page was verified in September 2026 and last rechecked on 6 October 2026 against rules 61G4-16.009 and 61G4-12.009, the DBPR construction candidate booklet effective July 2024 and the examination application pack updated August 2024. Always confirm against the current DBPR reference list for your test date. We are independent and not affiliated with, endorsed by or approved by the Florida DBPR.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You do not start again. Passed parts stand, you retake only what you failed, and there is a 30 day wait built in whether you want one or not.<\/p>\n","protected":false},"author":1,"featured_media":28,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Failed Florida Contractor Exam? Retake Rules and Real Cost","rank_math_description":"A failed Florida contractor exam means retaking only the part you failed: $175 to $295 through Professional Testing, no waiting period, four years to pass.","rank_math_focus_keyword":"failed florida contractor exam","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-31","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\/31","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=31"}],"version-history":[{"count":14,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":764,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/31\/revisions\/764"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media\/28"}],"wp:attachment":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/tags?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}