{"id":453,"date":"2026-09-29T06:16:56","date_gmt":"2026-09-29T10:16:56","guid":{"rendered":"https:\/\/passcontractorexam.com\/articles\/?p=453"},"modified":"2026-09-29T06:25:10","modified_gmt":"2026-09-29T10:25:10","slug":"florida-electrical-license-reciprocity","status":"publish","type":"post","link":"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/","title":{"rendered":"Florida Electrical License Reciprocity: What Exists"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Florida electrical license reciprocity does not exist as a blanket agreement with any state. Instead the Electrical Contractors&#8217; Licensing Board runs two separate endorsement routes, one built on ten years of out of state experience and one on an exam it has judged equivalent to Florida&#8217;s own, and most states only clear one of the two.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"florida-electrical-license-reciprocity\" data-minutes=\"11\">\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-electrical-license-reciprocity\/#audio\",\"name\":\"Florida Electrical License Reciprocity: What Exists, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 29 September 2026.\",\"contentUrl\":\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-audio-202609291555.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT10M36S\",\"uploadDate\":\"2026-09-29\",\"inLanguage\":\"en-US\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Florida Electrical License Reciprocity: What Exists\",\"startOffset\":0,\"endOffset\":60},{\"@type\":\"Clip\",\"name\":\"Does Florida offer electrical license reciprocity with any other state?\",\"startOffset\":60,\"endOffset\":128,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/#does-florida-offer-electrical-license-reciprocity-with-any-o\"},{\"@type\":\"Clip\",\"name\":\"What is the 10 year endorsement route, and does your state qualify?\",\"startOffset\":128,\"endOffset\":287,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/#what-is-the-10-year-endorsement-route-and-does-your-state-qu\"},{\"@type\":\"Clip\",\"name\":\"10 year experience or exam equivalency: how the two routes compare\",\"startOffset\":287,\"endOffset\":339,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/#10-year-experience-or-exam-equivalency-how-the-two-routes-co\"},{\"@type\":\"Clip\",\"name\":\"What is the exam based endorsement route, and why does \u201cpartial\u201d trip people up?\",\"startOffset\":339,\"endOffset\":496,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/#what-is-the-exam-based-endorsement-route-and-why-does-partia\"},{\"@type\":\"Clip\",\"name\":\"What does electrical endorsement actually cost and require?\",\"startOffset\":496,\"endOffset\":597,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/#what-does-electrical-endorsement-actually-cost-and-require\"},{\"@type\":\"Clip\",\"name\":\"What if your state is not on either list?\",\"startOffset\":597,\"endOffset\":636,\"url\":\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-license-reciprocity\/#what-if-your-state-is-not-on-either-list\"}],\"contentSize\":\"4.4 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 11 minutes. A synthetic voice reads the article and announces each section title as it begins; tables are read row by row and the questions at the end are left out.<\/p>\n<audio class=\"msq-audio-player\" controls preload=\"metadata\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-audio-202609291555.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 Electrical License Reciprocity: What Exists\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Florida Electrical License Reciprocity: What Exists<\/a><\/li>\n<li data-start=\"60.3\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"60.3\" aria-label=\"Play from: Does Florida offer electrical license reciprocity with any other state?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">1:00<\/span><a href=\"#does-florida-offer-electrical-license-reciprocity-with-any-o\">Does Florida offer electrical license reciprocity with any other state?<\/a><\/li>\n<li data-start=\"127.84\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"127.84\" aria-label=\"Play from: What is the 10 year endorsement route, and does your state qualify?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:08<\/span><a href=\"#what-is-the-10-year-endorsement-route-and-does-your-state-qu\">What is the 10 year endorsement route, and does your state qualify?<\/a><\/li>\n<li data-start=\"287.14\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"287.14\" aria-label=\"Play from: 10 year experience or exam equivalency: how the two routes compare\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">4:47<\/span><a href=\"#10-year-experience-or-exam-equivalency-how-the-two-routes-co\">10 year experience or exam equivalency: how the two routes compare<\/a><\/li>\n<li data-start=\"339.24\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"339.24\" aria-label=\"Play from: What is the exam based endorsement route, and why does \u201cpartial\u201d trip people up?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">5:39<\/span><a href=\"#what-is-the-exam-based-endorsement-route-and-why-does-partia\">What is the exam based endorsement route, and why does \u201cpartial\u201d trip people up?<\/a><\/li>\n<li data-start=\"495.62\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"495.62\" aria-label=\"Play from: What does electrical endorsement actually cost and require?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">8:16<\/span><a href=\"#what-does-electrical-endorsement-actually-cost-and-require\">What does electrical endorsement actually cost and require?<\/a><\/li>\n<li data-start=\"596.96\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"596.96\" aria-label=\"Play from: What if your state is not on either list?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">9:57<\/span><a href=\"#what-if-your-state-is-not-on-either-list\">What if your state is not on either list?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 29 September 2026 from the article as published that day. Press a chapter to jump there; the highlighted line is what is playing. A play button sits beside every section heading, and once you scroll past this player a bar at the bottom of the screen keeps the controls in reach. Tap or click any sentence to hear the reading start from there.<\/p>\n<script>var MSQ_SENT = [[0.0,\"h\",\"floridaelectricallicense\",45],[3.88,\"p\",\"floridaelectricallicense\",78],[8.8,\"p\",\"insteadtheelectricalcont\",198],[24.08,\"p\",\"onthispagetheelectricalc\",176],[38.12,\"p\",\"thissiteisindependent\",21],[39.36,\"p\",\"itisnotaffiliatedwithore\",115],[46.52,\"p\",\"everyfigurebelowischecke\",138],[60.3,\"h\",\"doesfloridaofferelectric\",61],[64.18,\"p\",\"notheelectricalcontracto\",274],[82.74,\"p\",\"thatdoesnothappenherefor\",104],[90.02,\"p\",\"whatexistsinsteadisendor\",106],[98.02,\"p\",\"itisanarrowerthingthanah\",103],[105.42,\"p\",\"generalbuildingandreside\",172],[116.9,\"p\",\"electricalandalarmsystem\",147],[127.84,\"h\",\"whatisthe10yearendorseme\",54],[131.28,\"p\",\"underfloridastatute48951\",269],[152.56,\"p\",\"thereisnofloridaexamonth\",31],[154.48,\"p\",\"theoneextrastepisa2hourc\",78],[159.6,\"p\",\"theboardhasalreadyworked\",108],[166.88,\"p\",\"itslistlastupdated23marc\",80],[175.92,\"p\",\"amasterelectricianlicens\",176],[188.36,\"p\",\"asample\",7],[189.0,\"t\",\"california\",91],[196.36,\"t\",\"georgia\",95],[205.76,\"t\",\"northcarolina\",100],[214.32,\"t\",\"texas\",80],[220.96,\"t\",\"california\",100],[229.92,\"t\",\"newjersey\",70],[236.52,\"t\",\"puertorico\",85],[244.56,\"p\",\"threestatesgetflaggedthe\",194],[256.96,\"p\",\"newyorksgeneralelectrica\",172],[268.4,\"p\",\"thereviewrunslicensetype\",113],[278.4,\"p\",\"anywherenotlistedatallsi\",113],[287.14,\"h\",\"10yearexperienceorexameq\",55],[291.62,\"t\",\"10yearexperience\",182],[313.18,\"t\",\"examequivalency\",239],[339.24,\"h\",\"whatistheexambasedendors\",63],[343.72,\"p\",\"floridasownelectricalexa\",105],[351.44,\"p\",\"theboardhasreviewed11sta\",74],[357.16,\"p\",\"onlythreeclearbothhalves\",147],[370.48,\"p\",\"sevenmoreclearonlyonehal\",118],[378.04,\"p\",\"oneohioselectricalcontra\",90],[387.04,\"t\",\"california\",69],[396.76,\"t\",\"georgia\",68],[406.4,\"t\",\"northcarolina\",65],[414.2,\"t\",\"colorado\",73],[424.04,\"t\",\"nasclaresidentialexam\",81],[432.24,\"t\",\"nevada\",69],[439.4,\"t\",\"oklahoma\",71],[448.04,\"t\",\"southcarolina\",76],[455.8,\"t\",\"tennessee\",85],[465.28,\"t\",\"texas\",70],[471.44,\"t\",\"ohio\",69],[480.4,\"p\",\"theexammostpeopleneverth\",78],[485.44,\"p\",\"apartialresultonthislist\",117],[495.62,\"h\",\"whatdoeselectricalendors\",51],[498.9,\"p\",\"thepublishedfeeforthe10y\",68],[507.82,\"p\",\"thatsameformstillcarries\",189],[526.74,\"p\",\"accordingtothefloridasen\",73],[533.3,\"p\",\"unlessthelegislaturehasr\",145],[544.02,\"p\",\"acreditreportonthebusine\",105],[551.9,\"p\",\"acreditreportontheindivi\",49],[555.26,\"p\",\"verificationthattheoutof\",90],[561.9,\"p\",\"proofofcompletionofthe2h\",52],[565.74,\"p\",\"proofofsatisfactionofany\",74],[570.74,\"p\",\"endorsementisaboarddecis\",72],[576.14,\"p\",\"floridasgeneralguidancef\",141],[586.02,\"p\",\"theelectricalcontractors\",177],[596.96,\"h\",\"whatifyourstateisnotonei\",32],[599.56,\"p\",\"youcanstillapply\",16],[600.56,\"p\",\"theboardreviewslicensety\",157],[612.16,\"p\",\"asktheboardtoreviewyours\",208],[626.12,\"p\",\"eitherwaytheexamitselfis\",118]];\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 Electrical Contractors&#8217; Licensing Board&#8217;s own dated lists showing which out of state exams clear Florida&#8217;s in full, which clear only half, and the exact fee and paperwork for both endorsement routes.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"florida-electrical-license-reciprocity\" data-category=\"Florida contractor 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=\"Does Florida offer electrical license reciprocity with any other state?\" data-section=\"#does-florida-offer-electrical-license-reciprocity-with-any-o\">\n<p class=\"msq-question\">1. Does the Electrical Contractors&#8217; Licensing Board hold reciprocal licensing agreements with other states?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Yes, with most states<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">No, none at all<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Only with California<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The board&#8217;s own <a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/10-year_endorsement.pdf\" target=\"_blank\" rel=\"noopener\">10 year endorsement list<\/a> states plainly that it has no reciprocal agreements with any state; out of state applicants go through endorsement instead. <a class=\"msq-section\" href=\"#does-florida-offer-electrical-license-reciprocity-with-any-o\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"c\" data-title=\"What is the 10 year endorsement route, and does your state qualify?\" data-section=\"#what-is-the-10-year-endorsement-route-and-does-your-state-qu\">\n<p class=\"msq-question\">2. Under the 10 year endorsement route, what Florida exam do you have to pass?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Both halves of the Florida exam<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Only the Technical exam<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">None, only a 2 hour Florida Building Code course<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Under <a href=\"http:\/\/www.leg.state.fl.us\/statutes\/index.cfm?App_mode=Display_Statute&#038;URL=0400-0499\/0489\/Sections\/0489.511.html\" target=\"_blank\" rel=\"noopener\">Florida Statute 489.511(5)(c)<\/a>, the 10 year route requires the held license and a 2 hour Florida Building Code course, not a Florida exam. <a class=\"msq-section\" href=\"#what-is-the-10-year-endorsement-route-and-does-your-state-qu\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"a\" data-title=\"What is the exam based endorsement route, and why does \u201cpartial\u201d trip people up?\" data-section=\"#what-is-the-exam-based-endorsement-route-and-why-does-partia\">\n<p class=\"msq-question\">3. How many of the 11 exams the board has reviewed clear both halves of Florida&#8217;s exam outright?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">3<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">7<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">11<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Only California, Georgia and North Carolina clear both halves on the board&#8217;s <a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/Reciprocity-08.pdf\" target=\"_blank\" rel=\"noopener\">exam endorsement list<\/a>; the rest are Partial or not recognized. <a class=\"msq-section\" href=\"#what-is-the-exam-based-endorsement-route-and-why-does-partia\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"b\" data-title=\"What does electrical endorsement actually cost and require?\" data-section=\"#what-does-electrical-endorsement-actually-cost-and-require\">\n<p class=\"msq-question\">4. What is the current published fee for the 10 year endorsement application?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">$346.50<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">$492<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">$209<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/ECLB14_Endorsement_10year_Provision.pdf\" target=\"_blank\" rel=\"noopener\">Form ECLB 14<\/a> lists $492; a temporary halving under HB 1091 expired 1 July 2025 per the <a href=\"https:\/\/www.flsenate.gov\/Committees\/billsummaries\/2023\/html\/1091\" target=\"_blank\" rel=\"noopener\">Florida Senate&#8217;s bill summary<\/a>. <a class=\"msq-section\" href=\"#what-does-electrical-endorsement-actually-cost-and-require\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"b\" data-title=\"What if your state is not on either list?\" data-section=\"#what-if-your-state-is-not-on-either-list\">\n<p class=\"msq-question\">5. If your state&#8217;s electrical license has not been reviewed by the board yet, what can you do?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Nothing, you must move to a reviewed state<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Ask the board to review it, or sit the Florida exam directly<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Wait for reciprocity to be introduced<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The board keeps reviewing new license types and exams, with determinations on its <a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/Reciprocity-08.pdf\" target=\"_blank\" rel=\"noopener\">exam endorsement list<\/a> dated as recently as October 2025; the fallback is always sitting Florida&#8217;s own exam. <a class=\"msq-section\" href=\"#what-if-your-state-is-not-on-either-list\">Read the section<\/a><\/p>\n<\/li>\n<\/ol>\n<div class=\"msq-result\" hidden><\/div>\n<\/div>\n<\/details>\n<script>(function(){\n  if (window.__msqInit) { return; }\n  window.__msqInit = true;\n  var root = document.getElementById('ms-quiz');\n  if (!root) { return; }\n  var meta = { slug: root.getAttribute('data-slug'), category: root.getAttribute('data-category'),\n               list: root.getAttribute('data-list') || '1' };\n  function qs(el, s){ return el.querySelector(s); }\n  function qsa(el, s){ return Array.prototype.slice.call(el.querySelectorAll(s)); }\n  function track(name, params){\n    try { if (typeof gtag === 'function') { var p = params || {}; p.article = meta.slug; gtag('event', name, p); } } catch (e) {}\n  }\n  function jumpList(missed){\n    if (!missed.length) { return ''; }\n    return '<ul class=\"msq-jump\">' + missed.map(function(q){\n      return '<li><a href=\"' + q.getAttribute('data-section') + '\">' + q.getAttribute('data-title') + '<\/a><\/li>';\n    }).join('') + '<\/ul>';\n  }\n  function emailForm(){\n    return '<div class=\"msq-sub\"><p><strong>Get the next one.<\/strong> We publish new articles on ' + meta.category\n      + ' most weeks and recheck this page on Sundays. Email me when a new article goes up or this page changes.<\/p>'\n      + '<form class=\"msq-form\" method=\"post\" action=\"\/mail\/form.php\" novalidate>'\n      + '<input type=\"hidden\" name=\"list\" value=\"' + meta.list + '\">'\n      + '<input type=\"hidden\" name=\"name\" value=\"\">'\n      + '<label class=\"msq-hp\" aria-hidden=\"true\">Leave this empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>'\n      + '<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\" autocomplete=\"email\">'\n      + '<button type=\"submit\" class=\"msq-btn\">Email me the updates<\/button>'\n      + '<a href=\"#\" class=\"msq-no\">No thanks<\/a>'\n      + '<p class=\"msq-privacy\">We store your email and this page\\'s topic, nothing else. Unsubscribe any time.<\/p>'\n      + '<\/form><p class=\"msq-msg\" aria-live=\"polite\"><\/p><\/div>';\n  }\n  \/* The autoresponder always answers 200 with its own page. A \".msg.err\" box means the\n     address was rejected, \"You're subscribed\" means accepted, and a redirect only happens\n     after a successful subscribe. Same reading as the landing pages on the other sites. *\/\n  function sendForm(form){\n    return fetch(form.getAttribute('action'), { method: 'POST', body: new FormData(form), credentials: 'same-origin', redirect: 'manual' })\n      .then(function(res){\n        if (res.type === 'opaqueredirect') { return { status: 'ok' }; }\n        if (res.status === 404) { return { status: 'notlive' }; }\n        if (!res.ok) { throw new Error('HTTP ' + res.status); }\n        return res.text().then(function(t){\n          var doc = new DOMParser().parseFromString(t, 'text\/html');\n          var err = doc.querySelector('.msg.err');\n          if (err) {\n            var m = err.textContent.trim();\n            if (\/something went wrong\/i.test(m)) { throw new Error(m); }\n            return { status: 'rejected', message: m };\n          }\n          if (\/you.re subscribed\/i.test(doc.body.textContent)) { return { status: 'ok' }; }\n          return { status: 'unknown' };\n        });\n      });\n  }\n  function wireForm(sub){\n    var form = qs(sub, '.msq-form'), msg = qs(sub, '.msq-msg');\n    qs(form, '.msq-no').addEventListener('click', function(e){\n      e.preventDefault();\n      sub.innerHTML = '<p class=\"msq-msg\">No problem. The Sunday refresh keeps this page current either way.<\/p>';\n      track('quiz_email', { result: 'declined' });\n    });\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      var input = qs(form, 'input[name=email]'), btn = qs(form, '.msq-btn');\n      var email = input.value.trim(); input.value = email;\n      if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) { msg.textContent = 'That email does not look right.'; return; }\n      btn.disabled = true; btn.textContent = 'Sending';\n      function reset(){ btn.disabled = false; btn.textContent = 'Email me the updates'; }\n      sendForm(form).then(function(r){\n        if (r.status === 'ok' || r.status === 'unknown') {\n          sub.innerHTML = '<p class=\"msq-msg\"><strong>Done.<\/strong> We will email you when the next article on ' + meta.category\n            + ' goes up and when this page changes. If a confirmation email arrives, click it.<\/p>';\n          track('quiz_email', { result: r.status });\n          if (r.status === 'ok') { track('generate_lead', { method: 'quiz' }); }\n        } else if (r.status === 'notlive') {\n          msg.textContent = 'Sign up is not switched on yet for this site. Nothing was stored.'; reset();\n          track('quiz_email', { result: 'notlive' });\n        } else {\n          msg.textContent = r.message || 'Please check the email address and try again.'; reset();\n          track('quiz_email', { result: 'rejected' });\n        }\n      }).catch(function(){\n        msg.textContent = 'Could not reach the sign up service just now. Nothing was stored.'; reset();\n        track('quiz_email', { result: 'error' });\n      });\n    });\n  }\n  function finish(container, mode, score, total, missed){\n    var result = qs(container, '.msq-result');\n    track('quiz_complete', { mode: mode, score: score, total: total });\n    var h;\n    if (mode === 'pre') {\n      h = '<h3>You knew ' + score + ' of ' + total + ' before reading.<\/h3>';\n      h += (score === total) ? '<p>All of them. Read on anyway; the sections below carry the detail behind each answer.<\/p>'\n                             : '<p>The rest is below. Jump straight to what you missed:<\/p>' + jumpList(missed);\n      try { sessionStorage.setItem('msq-pre-' + meta.slug, String(score)); } catch (e) {}\n    } else {\n      var pre = null;\n      try { pre = sessionStorage.getItem('msq-pre-' + meta.slug); } catch (e) {}\n      h = '<h3>You got ' + score + ' of ' + total + '.<\/h3>';\n      if (pre !== null) { h += '<p>Before reading you had ' + pre + ' of ' + total + '.<\/p>'; }\n      if (missed.length) { h += '<p>Worth a second look:<\/p>' + jumpList(missed); }\n      h += emailForm();\n    }\n    result.innerHTML = h; result.hidden = false;\n    if (mode !== 'pre') { wireForm(qs(result, '.msq-sub')); }\n    result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n  function setup(container, mode){\n    var qEls = qsa(container, '.msq-q'), answered = 0, score = 0, missed = [];\n    qEls.forEach(function(q){\n      var answer = q.getAttribute('data-answer'), opts = qsa(q, '.msq-opt'), explain = qs(q, '.msq-explain');\n      q.removeAttribute('data-done'); explain.hidden = true; qs(explain, '.msq-verdict').textContent = '';\n      opts.forEach(function(b){ b.disabled = false; b.classList.remove('is-right', 'is-wrong'); });\n      opts.forEach(function(b){\n        b.addEventListener('click', function(){\n          if (q.getAttribute('data-done')) { return; }\n          q.setAttribute('data-done', '1');\n          var ok = b.getAttribute('data-opt') === answer;\n          opts.forEach(function(o){ o.disabled = true; if (o.getAttribute('data-opt') === answer) { o.classList.add('is-right'); } });\n          if (ok) { score += 1; } else { b.classList.add('is-wrong'); missed.push(q); }\n          qs(explain, '.msq-verdict').textContent = ok ? 'Right. ' : 'Not quite. ';\n          explain.hidden = false;\n          answered += 1;\n          track('quiz_answer', { mode: mode, question: q.getAttribute('data-q'), correct: ok ? 1 : 0 });\n          if (answered === qEls.length) { finish(container, mode, score, qEls.length, missed); }\n        });\n      });\n    });\n  }\n  var box = qs(root, '.msq-box');\n  setup(root, 'pre');\n  if (box) { box.addEventListener('toggle', function(){ if (box.open) { track('quiz_open', { mode: 'pre' }); } }); }\n  \/* The end block sits far below this script, so it does not exist yet while this runs\n     during parsing. A delegated listener finds it at click time. *\/\n  document.addEventListener('click', function(e){\n    var startBtn = (e.target && e.target.closest) ? e.target.closest('.msq-start-test') : null;\n    if (!startBtn) { return; }\n    var end = startBtn.closest('.msq-end');\n    if (!end) { return; }\n    var mount = qs(end, '.msq-mount');\n    var clone = qs(root, '.msq-body').cloneNode(true);\n    var intro = qs(clone, '.msq-intro');\n    if (intro) { intro.textContent = 'The same five questions, now that you have read the page.'; }\n    var res = qs(clone, '.msq-result'); if (res) { res.hidden = true; res.innerHTML = ''; }\n    mount.innerHTML = ''; mount.appendChild(clone);\n    setup(mount, 'test');\n    startBtn.hidden = true;\n    track('quiz_open', { mode: 'test' });\n    mount.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    var first = qs(mount, '.msq-opt'); if (first) { first.focus({ preventScroll: true }); }\n  });\n  \/* Shared tool behaviour: checklists remember their ticks on this device, and a chooser\n     shows the result for the option picked. Calculators carry their own small script. *\/\n  function initTools(){\n    qsa(document, '.msq-check').forEach(function(box){\n      var key = 'msq-check-' + meta.slug + '-' + (box.getAttribute('data-id') || 'x');\n      var boxes = qsa(box, 'input[type=checkbox]'), count = qs(box, '.msq-check-count');\n      var yes = qs(box, '.msq-verdict-yes'), no = qs(box, '.msq-verdict-no');\n      var saved = {};\n      try { saved = JSON.parse(localStorage.getItem(key) || '{}'); } catch (e) {}\n      boxes.forEach(function(cb, i){ if (saved[i]) { cb.checked = true; } });\n      function refresh(){\n        var n = boxes.filter(function(cb){ return cb.checked; }).length, state = {};\n        boxes.forEach(function(cb, i){ if (cb.checked) { state[i] = 1; } });\n        try { localStorage.setItem(key, JSON.stringify(state)); } catch (e) {}\n        if (count) { count.textContent = n + ' of ' + boxes.length + (box.getAttribute('data-verb') || ' done'); }\n        if (yes && no) { yes.hidden = n === 0; no.hidden = n !== 0; }\n      }\n      boxes.forEach(function(cb){ cb.addEventListener('change', function(){ refresh(); track('tool_check', { tool: box.getAttribute('data-id') }); }); });\n      refresh();\n    });\n    qsa(document, '.msq-choose').forEach(function(box){\n      var results = qsa(box, '.msq-choice-result');\n      qsa(box, 'input[type=radio]').forEach(function(r){\n        r.addEventListener('change', function(){\n          results.forEach(function(el){ el.hidden = el.getAttribute('data-for') !== r.value; });\n          track('tool_choose', { tool: box.getAttribute('data-id'), choice: r.value });\n        });\n      });\n    });\n  }\n  \/\/ read progress: how far down the article the reader has scrolled, fired once per quarter\n  (function(){\n    var art = root.closest('article') || root.parentNode, fired = {};\n    function check(){\n      var top = art.getBoundingClientRect().top + window.pageYOffset, h = art.offsetHeight || 1;\n      var seen = (window.pageYOffset + window.innerHeight - top) \/ h * 100;\n      [25, 50, 75, 100].forEach(function(m){ if (seen >= m && !fired[m]) { fired[m] = true; track('read_progress', { percent: m }); } });\n    }\n    window.addEventListener('scroll', check, { passive: true }); window.addEventListener('load', check);\n  })();\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initTools); } else { initTools(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This site is independent. It is not affiliated with or endorsed by the Florida Department of Business and Professional Regulation, and nothing here is legal advice. Every figure below is checked against the Electrical Contractors&#8217; Licensing Board&#8217;s own published lists and Florida Statutes 489.511, current as of 29 September 2026.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"does-florida-offer-electrical-license-reciprocity-with-any-o\">Does Florida offer electrical license reciprocity with any other state?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No. The Electrical Contractors&#8217; Licensing Board says so in its own words on both of its published lists: &#8220;At this time the Electrical Contractors&#8217; Licensing Board does not have reciprocal licensing agreements with any other state.&#8221; Reciprocity, in the strict sense, would mean Florida automatically honors a license issued elsewhere. That does not happen here for electrical work, under <a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/10-year_endorsement.pdf\" target=\"_blank\" rel=\"noopener\">the board&#8217;s current 10 year endorsement list<\/a> or <a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/Reciprocity-08.pdf\" target=\"_blank\" rel=\"noopener\">its exam endorsement list<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What exists instead is endorsement, a case by case review of your out of state license or exam against Florida&#8217;s own requirements. It is a narrower thing than a handshake agreement, and it runs under a different board than most searches on this topic expect. General, building and residential contractors answer to the <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-state-contractors-board\/\">Construction Industry Licensing Board<\/a> under Part I of Chapter 489, which does hold a small number of true reciprocal agreements for those trades. Electrical and alarm system contracting sits in Part II of the same chapter, under the separate Electrical Contractors&#8217; Licensing Board, and the CILB&#8217;s agreements do not reach it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-the-10-year-endorsement-route-and-does-your-state-qu\">What is the 10 year endorsement route, and does your state qualify?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Under <a href=\"http:\/\/www.leg.state.fl.us\/statutes\/index.cfm?App_mode=Display_Statute&amp;URL=0400-0499\/0489\/Sections\/0489.511.html\" target=\"_blank\" rel=\"noopener\">Florida Statute 489.511(5)(c)<\/a>, you qualify for this route if you have held a valid, current license to practice electrical or alarm system contracting, issued by another state or territory, for at least 10 years before the date you apply, and you apply while that license is still active or within 2 years after it was last active. There is no Florida exam on this route. The one extra step is a 2 hour course on the Florida Building Code, which can be completed online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The board has already worked through which out of state license categories are close enough to which Florida categories to count. Its list, last updated 23 March 2026, runs to 57 category matches across 38 states and territories. A Master Electrician license is the most common match, usually mapped to Florida&#8217;s Unlimited Electrical Contractor category, but the list also covers low voltage, alarm and sign specialty categories separately. A sample:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/kitchen-table-study-florida-electrical-license-reciprocity.jpg\" alt=\"An experienced electrician reviews out of state credentials for florida electrical license reciprocity at his kitchen table.\" class=\"wp-image-451\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/kitchen-table-study-florida-electrical-license-reciprocity.jpg 1376w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/kitchen-table-study-florida-electrical-license-reciprocity-300x167.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/kitchen-table-study-florida-electrical-license-reciprocity-1024x572.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/kitchen-table-study-florida-electrical-license-reciprocity-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Ten years of verified out of state experience opens up one endorsement path.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>State or territory<\/th><th>Their license<\/th><th>Florida equivalent<\/th><\/tr><\/thead><tbody><tr><td>California<\/td><td>Electrical Contractor (C-10)<\/td><td>Unlimited Electrical Contractor<\/td><\/tr><tr><td>Georgia<\/td><td>Electrical Non Restricted (Class II)<\/td><td>Unlimited Electrical Contractor<\/td><\/tr><tr><td>North Carolina<\/td><td>Unlimited Electrical Contractor<\/td><td>Unlimited Electrical Contractor<\/td><\/tr><tr><td>Texas<\/td><td>Master Electrician<\/td><td>Unlimited Electrical Contractor<\/td><\/tr><tr><td>California<\/td><td>Low Voltage Systems Contractor (C-7)<\/td><td>Limited Energy Specialty Contractor<\/td><\/tr><tr><td>New Jersey<\/td><td>Fire Alarm License<\/td><td>Alarm Contractor 1<\/td><\/tr><tr><td>Puerto Rico<\/td><td>Expert Electrician<\/td><td>Unlimited Electrical Contractor<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Three states get flagged the other way, explicitly, on the same list: Indiana, Kansas and Pennsylvania license electricians only at the local level, so the board has nothing statewide to compare and marks them not substantially similar. New York&#8217;s general electrical contractor license fails for the same structural reason, no statewide license exists to review, though New York&#8217;s fire and burglar alarm licensing does clear the alarm category. The review runs license type by license type, not state by state as a whole, which is why one state can appear on both sides of the list at once. Anywhere not listed at all simply has not been reviewed yet, and the board accepts applications to review a new state&#8217;s license on request.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"10-year-experience-or-exam-equivalency-how-the-two-routes-co\">10 year experience or exam equivalency: how the two routes compare<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Route<\/th><th>What you show<\/th><th>Florida exam<\/th><th>Extra step<\/th><th>Statute<\/th><\/tr><\/thead><tbody><tr><td>10 year experience<\/td><td>An out of state electrical or alarm license, active or active within the last 2 years, held 10 years or more<\/td><td>None<\/td><td>2 hour Florida Building Code course<\/td><td>489.511(5)(c)<\/td><\/tr><tr><td>Exam equivalency<\/td><td>A license from a state whose exam the board has reviewed against Florida&#8217;s own<\/td><td>None if fully recognized, one of two exams if partially recognized, both if not reviewed or rejected<\/td><td>None beyond the standard application<\/td><td>489.511(6)(a)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-the-exam-based-endorsement-route-and-why-does-partia\">What is the exam based endorsement route, and why does &#8220;partial&#8221; trip people up?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Florida&#8217;s own electrical exam has two halves, a Business and Finance exam and a Technical exam for the license category you want. The board has reviewed 11 state or national exams to see whether either half can be waived. Only three clear both halves outright: California&#8217;s C-10 exam, Georgia&#8217;s Class II Unrestricted exam paired with its Low Voltage Unlimited exam, and North Carolina&#8217;s Unlimited exam. Seven more clear only one half and are marked &#8220;Partial&#8221;, which means the applicant still has to sit the other Florida exam before a license issues. One, Ohio&#8217;s electrical contractor exam, was reviewed in April 2024 and rejected as not substantially similar.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>State or exam<\/th><th>Result<\/th><th>Still required<\/th><th>Reviewed<\/th><\/tr><\/thead><tbody><tr><td>California<\/td><td>Full<\/td><td>Nothing extra<\/td><td>March 2001, Nov 2019<\/td><\/tr><tr><td>Georgia<\/td><td>Full<\/td><td>Nothing extra<\/td><td>March 1998, March 2010<\/td><\/tr><tr><td>North Carolina<\/td><td>Full<\/td><td>Nothing extra<\/td><td>March 1998<\/td><\/tr><tr><td>Colorado<\/td><td>Partial<\/td><td>Florida Business exam<\/td><td>November 2019<\/td><\/tr><tr><td>NASCLA residential exam<\/td><td>Partial<\/td><td>Florida Business exam<\/td><td>May 2020<\/td><\/tr><tr><td>Nevada<\/td><td>Partial<\/td><td>Florida Technical exam<\/td><td>April 2020<\/td><\/tr><tr><td>Oklahoma<\/td><td>Partial<\/td><td>Florida Technical exam<\/td><td>April 2020<\/td><\/tr><tr><td>South Carolina<\/td><td>Partial<\/td><td>Florida Technical exam<\/td><td>April 2020<\/td><\/tr><tr><td>Tennessee<\/td><td>Partial<\/td><td>Appropriate Florida Technical exam<\/td><td>October 2025<\/td><\/tr><tr><td>Texas<\/td><td>Partial<\/td><td>Florida Business exam<\/td><td>December 2019<\/td><\/tr><tr><td>Ohio<\/td><td>Not recognized<\/td><td>Both Florida exams<\/td><td>April 2024<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The exam most people never think to check is the one they assume endorsement removes entirely. A &#8220;Partial&#8221; result on this list is a pass on half the work and a full Florida sitting on the other half, open book, same as <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-contractor-exam-open-book\/\">every exam this site covers<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-chart.png\" alt=\"Bar chart of florida electrical license reciprocity exam results: 3 full waivers, 7 partial, 1 rejected.\" class=\"wp-image-455\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-chart.png 1600w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-chart-300x169.png 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-chart-1024x576.png 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-chart-768x432.png 768w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/florida-electrical-license-reciprocity-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">Only 3 of the 11 reviewed exams clear both halves of Florida&#8217;s exam outright; Ohio is the sole rejection.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-electrical-endorsement-actually-cost-and-require\">What does electrical endorsement actually cost and require?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The published fee for the 10 year endorsement application, <a href=\"https:\/\/www2.myfloridalicense.com\/pro\/elboard\/documents\/ECLB14_Endorsement_10year_Provision.pdf\" target=\"_blank\" rel=\"noopener\">DBPR Form ECLB 14<\/a>, is $492. That same form still carries a leftover notice from HB 1091, a temporary statewide 50 percent cut to initial licensing fees that applied to Florida&#8217;s 2023 to 2024 and 2024 to 2025 fiscal years and dropped this specific fee to $346.50. According to the <a href=\"https:\/\/www.flsenate.gov\/Committees\/billsummaries\/2023\/html\/1091\" target=\"_blank\" rel=\"noopener\">Florida Senate&#8217;s own summary of that bill<\/a>, the relief expired 1 July 2025. Unless the legislature has revived it since, the full $492 is what applies now, so confirm the current figure with the board rather than trusting the printed number on an old form.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/application-fees-and-documents-florida-electrical-license-reciprocity.jpg\" alt=\"Close-up of application documents and fees required for florida electrical license reciprocity on a desk.\" class=\"wp-image-452\" srcset=\"https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/application-fees-and-documents-florida-electrical-license-reciprocity.jpg 1376w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/application-fees-and-documents-florida-electrical-license-reciprocity-300x167.jpg 300w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/application-fees-and-documents-florida-electrical-license-reciprocity-1024x572.jpg 1024w, https:\/\/passcontractorexam.com\/articles\/wp-content\/uploads\/2026\/09\/application-fees-and-documents-florida-electrical-license-reciprocity-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Applying for endorsement involves submitting specific fees and proof of exam equivalence.<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>A credit report on the business being qualified, from a nationally recognized agency, checked at local, state and federal level<\/li><li>A credit report on the individual applicant, same standard<\/li><li>Verification that the out of state license has been held for at least 10 years and was active within the last 2<\/li><li>Proof of completion of the 2 hour Florida Building Code course<\/li><li>Proof of satisfaction of any liens, judgments or bankruptcy discharge, where applicable<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Endorsement is a board decision, not a formality, and it is not automatic on either route. Florida&#8217;s general guidance for the Construction Industry Licensing Board states plainly that endorsement fees are nonrefundable if the board denies the application. The Electrical Contractors&#8217; Licensing Board&#8217;s own forms do not repeat that line for its own applicants, but nothing on them promises a refund either, so budget the fee as spent whether or not the application succeeds.<\/p>\n\n\n\n<div class=\"msq-tool msq-check\" data-id=\"pce-endorsement-check\" data-verb=\" confirmed\">\n<h3>Electrical endorsement eligibility checklist<\/h3>\n<p>Run these against the board&#8217;s own lists before you spend the application fee. This does not predict approval, only whether you meet the published conditions.<\/p>\n<label><input type=\"checkbox\">You have held an out of state electrical or alarm license for 10 years or more, or your state&#8217;s exam appears on the board&#8217;s exam endorsement list<\/label>\n<label><input type=\"checkbox\">That license is still active, or was active within the last 2 years<\/label>\n<label><input type=\"checkbox\">You have completed, or can complete, the 2 hour Florida Building Code course<\/label>\n<label><input type=\"checkbox\">You can produce a credit report on both the business and the individual applicant<\/label>\n<label><input type=\"checkbox\">You have checked whether your state&#8217;s result is Full, Partial or Not recognized, since Partial still means one Florida exam<\/label>\n<label><input type=\"checkbox\">You have budgeted the $492 fee as spent whether or not the board approves the application<\/label>\n<p class=\"msq-check-count\"><\/p>\n<p class=\"msq-note\">A clean checklist means your paperwork matches the board&#8217;s published conditions. It does not guarantee approval, which is a board decision. Ticks are saved on this device only.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-if-your-state-is-not-on-either-list\">What if your state is not on either list?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can still apply. The board reviews license types and exams individually, not once and done, and the exam list&#8217;s own determination dates run from March 1998 to October 2025, which shows it is still being added to. Ask the board to review your state&#8217;s license or exam, or route around the question entirely and take the Florida exam directly, the same path a first time applicant follows, covered in full in <a href=\"https:\/\/passcontractorexam.com\/articles\/florida-electrical-contractor-license\/\">this site&#8217;s guide to the Florida electrical contractor license<\/a>. Either way, the exam itself is open book, and knowing what you can and cannot bring into the room matters more than which state you are coming from.<\/p>\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 \">Does Florida have true reciprocity for electrical contractors?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No. The Electrical Contractors&#8217; Licensing Board states directly that it has no reciprocal licensing agreements with any state. Every out of state applicant goes through endorsement instead, either the 10 year experience route or the exam equivalency route.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How long do I need to have held my out of state license for the 10 year route?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>At least 10 years before the date you apply, and the license must be active, or have been active within the last 2 years, under Florida Statute 489.511(5)(c).<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Which states get a full exam waiver in Florida?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>As of the board&#8217;s current list, only California&#8217;s C-10 exam, Georgia&#8217;s Class II Unrestricted exam paired with Low Voltage Unlimited, and North Carolina&#8217;s Unlimited exam clear both halves of Florida&#8217;s exam.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What does a Partial result mean on the exam endorsement list?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It means only one of Florida&#8217;s two exam halves, Business and Finance or Technical, was found substantially equivalent. The applicant still has to sit the other half before a license issues.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How much does electrical endorsement cost in Florida?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The published fee is $492 for the 10 year route, Form ECLB 14. A temporary halving to $346.50 under HB 1091 expired 1 July 2025, so confirm the current figure before you apply.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What if my state isn&#8217;t reviewed yet?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>You can still apply. The board reviews license types and exams individually and keeps adding determinations, with entries on its current list dated as recently as October 2025.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"msq-end\" id=\"ms-quiz-end\">\n<p><strong>Finished the page?<\/strong> The same five questions from the top, to see what stuck.<\/p>\n<button type=\"button\" class=\"msq-btn msq-start-test\">Test Your Understanding of This Article<\/button>\n<div class=\"msq-mount\"><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Rules and fees change without notice. This page was verified on the date shown and is rechecked on the weekly refresh. If you hit something different, tell us in the comments.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Florida electrical license reciprocity does not exist as a blanket agreement. Here is what the state&#8217;s two endorsement routes actually require, dated against the board&#8217;s own lists.<\/p>\n","protected":false},"author":1,"featured_media":450,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Florida Electrical License Reciprocity: What Exists","rank_math_description":"Florida electrical license reciprocity does not exist. Two DBPR endorsement routes apply instead, ten years of experience or a dated exam waiver list.","rank_math_focus_keyword":"florida electrical license reciprocity","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-453","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\/453","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=453"}],"version-history":[{"count":3,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/453\/revisions"}],"predecessor-version":[{"id":458,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/posts\/453\/revisions\/458"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media\/450"}],"wp:attachment":[{"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/media?parent=453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/categories?post=453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/passcontractorexam.com\/articles\/wp-json\/wp\/v2\/tags?post=453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}