{"id":1115,"date":"2026-03-16T08:18:51","date_gmt":"2026-03-16T08:18:51","guid":{"rendered":"https:\/\/gqlamp.com\/?page_id=1115"},"modified":"2026-03-16T08:21:58","modified_gmt":"2026-03-16T08:21:58","slug":"solar-vs-wired-flood-light-5-year-roi-calculator","status":"publish","type":"page","link":"https:\/\/gqlamp.com\/es\/led-flood-lights\/solar-flood-lights\/solar-vs-wired-flood-light-5-year-roi-calculator\/","title":{"rendered":"Calculadora de retorno de la inversi\u00f3n solar versus luz de inundaci\u00f3n por cable \u201c5 a\u00f1os"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-a20068d\" data-block-id=\"a20068d\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-a20068d-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-8fc9a2b\" data-v=\"4\" data-block-id=\"8fc9a2b\"><style>.stk-8fc9a2b-container{margin-top:50px !important;margin-right:50px !important;margin-bottom:50px !important;margin-left:50px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-8fc9a2b-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-8fc9a2b-inner-blocks\">\n<h1>Solar vs. Wired Flood Lights: Which Has the Best ROI?<\/h1>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-32b4f22\" data-block-id=\"32b4f22\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-32b4f22-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-1e1ad31\" data-v=\"4\" data-block-id=\"1e1ad31\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-1e1ad31-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-1e1ad31-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns stk-block-columns stk-block stk-32f4e2d\" data-block-id=\"32f4e2d\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-32f4e2d-column\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-9bb879f\" data-v=\"4\" data-block-id=\"9bb879f\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-9bb879f-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-9bb879f-inner-blocks\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Solar vs. Wired Flood Light ROI Calculator<\/title>\n<style>\n\/* ============================================================\n   SCOPED STYLES \u2014 all rules prefixed with #roi-calc\n   WordPress Gutenberg Custom HTML block compatible\n   ============================================================ *\/\n\n#roi-calc *,\n#roi-calc *::before,\n#roi-calc *::after {\n  box-sizing: border-box !important;\n  margin: 0;\n  padding: 0;\n}\n\n#roi-calc {\n  font-family: 'Segoe UI', Arial, sans-serif !important;\n  color: #303030 !important;\n  background: #f5f6f8 !important;\n  max-width: 1120px !important;\n  margin: 0 auto !important;\n  padding: 0 !important;\n}\n\n\/* ---- Header ---- *\/\n#roi-calc .rc-header {\n  background: #183090 !important;\n  padding: 32px 40px 28px !important;\n  border-bottom: 4px solid #009048 !important;\n}\n\n#roi-calc .rc-header h1 {\n  font-size: 1.55rem !important;\n  font-weight: 700 !important;\n  color: #ffffff !important;\n  letter-spacing: -0.02em !important;\n  line-height: 1.25 !important;\n  margin-bottom: 6px !important;\n}\n\n#roi-calc .rc-header p {\n  font-size: 0.92rem !important;\n  color: rgba(255,255,255,0.78) !important;\n  margin: 0 !important;\n}\n\n\/* ---- Body wrapper ---- *\/\n#roi-calc .rc-body {\n  padding: 32px 40px 40px !important;\n}\n\n\/* ---- Section label ---- *\/\n#roi-calc .rc-section-label {\n  font-size: 0.72rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.1em !important;\n  text-transform: uppercase !important;\n  color: #183090 !important;\n  border-left: 3px solid #009048 !important;\n  padding-left: 10px !important;\n  margin-bottom: 18px !important;\n}\n\n\/* ---- Input grid ---- *\/\n#roi-calc .rc-input-grid {\n  display: grid !important;\n  grid-template-columns: 1fr 1fr !important;\n  gap: 16px 28px !important;\n  margin-bottom: 28px !important;\n}\n\n#roi-calc .rc-field {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 6px !important;\n}\n\n#roi-calc .rc-field label {\n  font-size: 0.82rem !important;\n  font-weight: 600 !important;\n  color: #303030 !important;\n  line-height: 1.3 !important;\n}\n\n#roi-calc .rc-field .rc-hint {\n  font-size: 0.74rem !important;\n  color: #666 !important;\n  margin-top: -3px !important;\n}\n\n#roi-calc .rc-field input,\n#roi-calc .rc-field select {\n  font-family: 'IBM Plex Mono', 'Courier New', monospace !important;\n  font-size: 0.95rem !important;\n  color: #303030 !important;\n  background: #ffffff !important;\n  border: 1.5px solid #c8cdd8 !important;\n  border-radius: 2px !important;\n  padding: 10px 12px !important;\n  outline: none !important;\n  transition: border-color 0.15s !important;\n  width: 100% !important;\n}\n\n#roi-calc .rc-field input:focus,\n#roi-calc .rc-field select:focus {\n  border-color: #183090 !important;\n  box-shadow: 0 0 0 3px rgba(24,48,144,0.12) !important;\n}\n\n#roi-calc .rc-field input[type=\"number\"]::-webkit-inner-spin-button,\n#roi-calc .rc-field input[type=\"number\"]::-webkit-outer-spin-button {\n  opacity: 1;\n}\n\n\/* ---- Divider ---- *\/\n#roi-calc .rc-divider {\n  border: none !important;\n  border-top: 1px solid #dde0e8 !important;\n  margin: 24px 0 !important;\n}\n\n\/* ---- Calculate button ---- *\/\n#roi-calc .rc-btn-row {\n  display: flex !important;\n  align-items: center !important;\n  gap: 16px !important;\n  margin-top: 8px !important;\n}\n\n#roi-calc .rc-calc-btn {\n  font-family: 'Segoe UI', Arial, sans-serif !important;\n  font-size: 1rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.04em !important;\n  color: #ffffff !important;\n  background: #183090 !important;\n  border: none !important;\n  border-radius: 2px !important;\n  padding: 14px 36px !important;\n  cursor: pointer !important;\n  transition: background 0.18s, transform 0.1s !important;\n  text-transform: uppercase !important;\n}\n\n#roi-calc .rc-calc-btn:hover {\n  background: #0f2070 !important;\n}\n\n#roi-calc .rc-calc-btn:active {\n  transform: scale(0.98) !important;\n}\n\n#roi-calc .rc-reset-link {\n  font-size: 0.83rem !important;\n  color: #666 !important;\n  cursor: pointer !important;\n  text-decoration: underline !important;\n  background: none !important;\n  border: none !important;\n}\n\n#roi-calc .rc-reset-link:hover {\n  color: #183090 !important;\n}\n\n\/* ---- Results section ---- *\/\n#roi-calc .rc-results {\n  display: none;\n  margin-top: 36px !important;\n  animation: rcFadeIn 0.35s ease !important;\n}\n\n#roi-calc .rc-results.visible {\n  display: block !important;\n}\n\n@keyframes rcFadeIn {\n  from { opacity: 0; transform: translateY(10px); }\n  to   { opacity: 1; transform: translateY(0); }\n}\n\n\/* ---- KPI cards ---- *\/\n#roi-calc .rc-kpi-row {\n  display: grid !important;\n  grid-template-columns: repeat(4, 1fr) !important;\n  gap: 12px !important;\n  margin-bottom: 32px !important;\n}\n\n#roi-calc .rc-kpi {\n  background: #ffffff !important;\n  border: 1.5px solid #dde0e8 !important;\n  border-radius: 2px !important;\n  padding: 18px 16px !important;\n  border-top: 3px solid #c8cdd8 !important;\n}\n\n#roi-calc .rc-kpi.solar {\n  border-top-color: #183090 !important;\n}\n\n#roi-calc .rc-kpi.wired {\n  border-top-color: #D81818 !important;\n}\n\n#roi-calc .rc-kpi.savings {\n  border-top-color: #009048 !important;\n  background: #f0faf4 !important;\n}\n\n#roi-calc .rc-kpi.breakeven {\n  border-top-color: #e09000 !important;\n}\n\n#roi-calc .rc-kpi-label {\n  font-size: 0.73rem !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.06em !important;\n  text-transform: uppercase !important;\n  color: #666 !important;\n  margin-bottom: 8px !important;\n  line-height: 1.4 !important;\n}\n\n#roi-calc .rc-kpi-value {\n  font-family: 'IBM Plex Mono', 'Courier New', monospace !important;\n  font-size: 1.6rem !important;\n  font-weight: 700 !important;\n  color: #303030 !important;\n  line-height: 1 !important;\n}\n\n#roi-calc .rc-kpi.savings .rc-kpi-value {\n  color: #009048 !important;\n}\n\n#roi-calc .rc-kpi.wired .rc-kpi-value {\n  color: #D81818 !important;\n}\n\n#roi-calc .rc-kpi.solar .rc-kpi-value {\n  color: #183090 !important;\n}\n\n#roi-calc .rc-kpi-sub {\n  font-size: 0.75rem !important;\n  color: #888 !important;\n  margin-top: 4px !important;\n}\n\n\/* ---- Chart ---- *\/\n#roi-calc .rc-chart-wrap {\n  background: #ffffff !important;\n  border: 1.5px solid #dde0e8 !important;\n  border-radius: 2px !important;\n  padding: 24px 24px 16px !important;\n  margin-bottom: 24px !important;\n}\n\n#roi-calc .rc-chart-title {\n  font-size: 0.82rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.06em !important;\n  text-transform: uppercase !important;\n  color: #303030 !important;\n  margin-bottom: 20px !important;\n}\n\n#roi-calc .rc-legend {\n  display: flex !important;\n  gap: 20px !important;\n  margin-bottom: 16px !important;\n}\n\n#roi-calc .rc-legend-item {\n  display: flex !important;\n  align-items: center !important;\n  gap: 7px !important;\n  font-size: 0.8rem !important;\n  font-weight: 600 !important;\n  color: #303030 !important;\n}\n\n#roi-calc .rc-legend-dot {\n  width: 12px !important;\n  height: 12px !important;\n  border-radius: 1px !important;\n  flex-shrink: 0 !important;\n}\n\n#roi-calc .rc-legend-dot.solar { background: #183090 !important; }\n#roi-calc .rc-legend-dot.wired { background: #D81818 !important; }\n\n#roi-calc .rc-chart-area {\n  display: flex !important;\n  align-items: flex-end !important;\n  gap: 10px !important;\n  height: 200px !important;\n  border-bottom: 2px solid #dde0e8 !important;\n  padding-bottom: 0 !important;\n  margin-bottom: 8px !important;\n}\n\n#roi-calc .rc-bar-group {\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: center !important;\n  gap: 4px !important;\n  flex: 1 !important;\n}\n\n#roi-calc .rc-bar-pair {\n  display: flex !important;\n  align-items: flex-end !important;\n  gap: 4px !important;\n  height: 190px !important;\n  width: 100% !important;\n  justify-content: center !important;\n}\n\n#roi-calc .rc-bar {\n  border-radius: 1px 1px 0 0 !important;\n  transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) !important;\n  min-height: 3px !important;\n  width: 40% !important;\n  position: relative !important;\n}\n\n#roi-calc .rc-bar.solar-bar {\n  background: #183090 !important;\n}\n\n#roi-calc .rc-bar.wired-bar {\n  background: #D81818 !important;\n}\n\n#roi-calc .rc-bar-label {\n  font-family: 'IBM Plex Mono', 'Courier New', monospace !important;\n  font-size: 0.72rem !important;\n  color: #666 !important;\n  text-align: center !important;\n  margin-top: 6px !important;\n}\n\n#roi-calc .rc-bar-tooltip {\n  position: absolute !important;\n  bottom: calc(100% + 4px) !important;\n  left: 50% !important;\n  transform: translateX(-50%) !important;\n  background: #303030 !important;\n  color: #fff !important;\n  font-family: 'IBM Plex Mono', 'Courier New', monospace !important;\n  font-size: 0.68rem !important;\n  padding: 3px 6px !important;\n  border-radius: 2px !important;\n  white-space: nowrap !important;\n  opacity: 0 !important;\n  pointer-events: none !important;\n  transition: opacity 0.15s !important;\n  z-index: 10 !important;\n}\n\n#roi-calc .rc-bar:hover .rc-bar-tooltip {\n  opacity: 1 !important;\n}\n\n\/* ---- Table ---- *\/\n#roi-calc .rc-table-wrap {\n  background: #ffffff !important;\n  border: 1.5px solid #dde0e8 !important;\n  border-radius: 2px !important;\n  overflow: hidden !important;\n  margin-bottom: 28px !important;\n}\n\n#roi-calc .rc-table {\n  width: 100% !important;\n  border-collapse: collapse !important;\n  font-family: 'IBM Plex Mono', 'Courier New', monospace !important;\n}\n\n#roi-calc .rc-table thead tr {\n  background: #183090 !important;\n}\n\n#roi-calc .rc-table thead th {\n  color: #ffffff !important;\n  font-size: 0.78rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.06em !important;\n  text-transform: uppercase !important;\n  padding: 12px 16px !important;\n  text-align: left !important;\n}\n\n#roi-calc .rc-table thead th:not(:first-child) {\n  text-align: right !important;\n}\n\n#roi-calc .rc-table tbody tr {\n  border-bottom: 1px solid #eef0f5 !important;\n  transition: background 0.12s !important;\n}\n\n#roi-calc .rc-table tbody tr:last-child {\n  border-bottom: none !important;\n}\n\n#roi-calc .rc-table tbody tr:hover {\n  background: #f8f9fc !important;\n}\n\n#roi-calc .rc-table tbody tr.solar-wins {\n  background: #f0faf4 !important;\n}\n\n#roi-calc .rc-table tbody tr.solar-wins:hover {\n  background: #e5f5ed !important;\n}\n\n#roi-calc .rc-table tbody td {\n  padding: 11px 16px !important;\n  font-size: 0.88rem !important;\n  color: #303030 !important;\n  vertical-align: middle !important;\n}\n\n#roi-calc .rc-table tbody td:not(:first-child) {\n  text-align: right !important;\n}\n\n#roi-calc .rc-table .col-year {\n  font-weight: 700 !important;\n  font-size: 0.82rem !important;\n  color: #183090 !important;\n}\n\n#roi-calc .rc-table .col-solar {\n  color: #183090 !important;\n  font-weight: 600 !important;\n}\n\n#roi-calc .rc-table .col-wired {\n  color: #D81818 !important;\n  font-weight: 600 !important;\n}\n\n#roi-calc .rc-table .col-diff {\n  font-weight: 700 !important;\n}\n\n#roi-calc .rc-table .col-diff.positive {\n  color: #009048 !important;\n}\n\n#roi-calc .rc-table .col-diff.negative {\n  color: #D81818 !important;\n}\n\n#roi-calc .rc-table .badge {\n  display: inline-block !important;\n  font-family: 'Segoe UI', Arial, sans-serif !important;\n  font-size: 0.66rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.06em !important;\n  text-transform: uppercase !important;\n  padding: 2px 7px !important;\n  border-radius: 1px !important;\n  margin-left: 6px !important;\n  vertical-align: middle !important;\n}\n\n#roi-calc .rc-table .badge-solar {\n  background: #183090 !important;\n  color: #fff !important;\n}\n\n#roi-calc .rc-table .badge-wired {\n  background: #D81818 !important;\n  color: #fff !important;\n}\n\n\/* ---- CTA ---- *\/\n#roi-calc .rc-cta-box {\n  background: #183090 !important;\n  border-radius: 2px !important;\n  padding: 28px 32px !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 20px !important;\n  flex-wrap: wrap !important;\n}\n\n#roi-calc .rc-cta-text h3 {\n  font-size: 1.12rem !important;\n  font-weight: 700 !important;\n  color: #ffffff !important;\n  margin-bottom: 4px !important;\n}\n\n#roi-calc .rc-cta-text p {\n  font-size: 0.85rem !important;\n  color: rgba(255,255,255,0.75) !important;\n  margin: 0 !important;\n}\n\n#roi-calc .rc-cta-btn {\n  display: inline-block !important;\n  font-family: 'Segoe UI', Arial, sans-serif !important;\n  font-size: 0.95rem !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.04em !important;\n  color: #ffffff !important;\n  background: #009048 !important;\n  border: none !important;\n  border-radius: 2px !important;\n  padding: 14px 28px !important;\n  cursor: pointer !important;\n  text-decoration: none !important;\n  text-transform: uppercase !important;\n  white-space: nowrap !important;\n  transition: background 0.18s !important;\n}\n\n#roi-calc .rc-cta-btn:hover {\n  background: #006e35 !important;\n}\n\n\/* ---- Breakeven note ---- *\/\n#roi-calc .rc-breakeven-note {\n  background: #fff9e6 !important;\n  border: 1.5px solid #f0c040 !important;\n  border-left: 4px solid #e09000 !important;\n  border-radius: 2px !important;\n  padding: 12px 16px !important;\n  font-size: 0.85rem !important;\n  color: #303030 !important;\n  margin-bottom: 20px !important;\n}\n\n#roi-calc .rc-breakeven-note strong {\n  color: #e09000 !important;\n}\n\n\/* ---- Responsive ---- *\/\n@media (max-width: 860px) {\n  #roi-calc .rc-header {\n    padding: 24px 20px 20px !important;\n  }\n\n  #roi-calc .rc-body {\n    padding: 24px 20px 32px !important;\n  }\n\n  #roi-calc .rc-input-grid {\n    grid-template-columns: 1fr !important;\n  }\n\n  #roi-calc .rc-kpi-row {\n    grid-template-columns: 1fr 1fr !important;\n  }\n\n  #roi-calc .rc-chart-area {\n    height: 150px !important;\n  }\n\n  #roi-calc .rc-bar-pair {\n    height: 140px !important;\n  }\n\n  #roi-calc .rc-cta-box {\n    flex-direction: column !important;\n    text-align: center !important;\n  }\n\n  #roi-calc .rc-cta-btn {\n    width: 100% !important;\n    text-align: center !important;\n  }\n\n  #roi-calc .rc-table thead th,\n  #roi-calc .rc-table tbody td {\n    padding: 9px 10px !important;\n    font-size: 0.8rem !important;\n  }\n}\n\n@media (max-width: 520px) {\n  #roi-calc .rc-kpi-row {\n    grid-template-columns: 1fr !important;\n  }\n\n  #roi-calc .rc-header h1 {\n    font-size: 1.2rem !important;\n  }\n}\n<\/style>\n<\/head>\n<body>\n\n<div id=\"roi-calc\">\n\n  <!-- Header -->\n  <div class=\"rc-header\">\n    <h1>Solar vs. Wired Flood Light \u2014 5-Year ROI Calculator<\/h1>\n    <p>Compare total cost of ownership, find your breakeven point, and see cumulative savings over 5 years.<\/p>\n  <\/div>\n\n  <!-- Body -->\n  <div class=\"rc-body\">\n\n    <!-- Inputs -->\n    <div class=\"rc-section-label\">Your Project Details<\/div>\n\n    <div class=\"rc-input-grid\">\n\n      <!-- 1 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-num-lights\">Number of Lights Needed<\/label>\n        <input type=\"number\" id=\"rc-num-lights\" value=\"4\" min=\"1\" max=\"500\" step=\"1\">\n      <\/div>\n\n      <!-- 2 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-solar-cost\">Cost per Solar Flood Light ($)<\/label>\n        <span class=\"rc-hint\">Purchase price per unit<\/span>\n        <input type=\"number\" id=\"rc-solar-cost\" value=\"65\" min=\"1\" step=\"1\">\n      <\/div>\n\n      <!-- 3 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-wired-cost\">Cost per Wired Flood Light ($)<\/label>\n        <span class=\"rc-hint\">Fixture purchase price per unit<\/span>\n        <input type=\"number\" id=\"rc-wired-cost\" value=\"35\" min=\"1\" step=\"1\">\n      <\/div>\n\n      <!-- 4 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-install-cost\">Electrician Install Cost per Wired Light ($)<\/label>\n        <span class=\"rc-hint\">Labor + wiring per fixture<\/span>\n        <input type=\"number\" id=\"rc-install-cost\" value=\"150\" min=\"0\" step=\"5\">\n      <\/div>\n\n      <!-- 5 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-monthly-elec\">Monthly Electricity Cost per Wired Light ($)<\/label>\n        <span class=\"rc-hint\">Estimated based on wattage &amp; local rate<\/span>\n        <input type=\"number\" id=\"rc-monthly-elec\" value=\"4.50\" min=\"0\" step=\"0.25\">\n      <\/div>\n\n      <!-- 6 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-rate-increase\">Annual Electricity Rate Increase<\/label>\n        <span class=\"rc-hint\">US avg: 3%\/yr; check local utility<\/span>\n        <select id=\"rc-rate-increase\">\n          <option value=\"0\">0% \u2014 No increase<\/option>\n          <option value=\"0.03\" selected>3% \u2014 Average (default)<\/option>\n          <option value=\"0.05\">5% \u2014 Moderate increase<\/option>\n          <option value=\"0.08\">8% \u2014 High-rate region<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- 7 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-battery-interval\">Solar Battery Replacement Interval<\/label>\n        <span class=\"rc-hint\">Most lithium batteries: 3\u20135 years<\/span>\n        <select id=\"rc-battery-interval\">\n          <option value=\"3\">Every 3 years<\/option>\n          <option value=\"5\" selected>Every 5 years (default)<\/option>\n          <option value=\"0\">No replacement needed<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- 8 -->\n      <div class=\"rc-field\">\n        <label for=\"rc-battery-cost\">Battery Replacement Cost per Light ($)<\/label>\n        <span class=\"rc-hint\">Replacement pack cost per fixture<\/span>\n        <input type=\"number\" id=\"rc-battery-cost\" value=\"12\" min=\"0\" step=\"1\">\n      <\/div>\n\n    <\/div>\n\n    <hr class=\"rc-divider\">\n\n    <div class=\"rc-btn-row\">\n      <button class=\"rc-calc-btn\" onclick=\"rcCalculate()\">Calculate ROI<\/button>\n      <button class=\"rc-reset-link\" onclick=\"rcReset()\">Reset to defaults<\/button>\n    <\/div>\n\n    <!-- Results -->\n    <div class=\"rc-results\" id=\"rc-results\">\n\n      <!-- KPI Row -->\n      <div class=\"rc-kpi-row\" id=\"rc-kpi-row\">\n        <div class=\"rc-kpi solar\">\n          <div class=\"rc-kpi-label\">Solar 5-Year Total<\/div>\n          <div class=\"rc-kpi-value\" id=\"kpi-solar-total\">\u2014<\/div>\n          <div class=\"rc-kpi-sub\">All-in cost over 5 years<\/div>\n        <\/div>\n        <div class=\"rc-kpi wired\">\n          <div class=\"rc-kpi-label\">Wired 5-Year Total<\/div>\n          <div class=\"rc-kpi-value\" id=\"kpi-wired-total\">\u2014<\/div>\n          <div class=\"rc-kpi-sub\">Fixtures + install + electricity<\/div>\n        <\/div>\n        <div class=\"rc-kpi savings\">\n          <div class=\"rc-kpi-label\">5-Year Savings with Solar<\/div>\n          <div class=\"rc-kpi-value\" id=\"kpi-savings\">\u2014<\/div>\n          <div class=\"rc-kpi-sub\">vs. going wired<\/div>\n        <\/div>\n        <div class=\"rc-kpi breakeven\">\n          <div class=\"rc-kpi-label\">Breakeven Point<\/div>\n          <div class=\"rc-kpi-value\" id=\"kpi-breakeven\">\u2014<\/div>\n          <div class=\"rc-kpi-sub\">Month solar pays off vs. wired<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Breakeven note -->\n      <div class=\"rc-breakeven-note\" id=\"rc-breakeven-note\"><\/div>\n\n      <!-- Bar Chart -->\n      <div class=\"rc-chart-wrap\">\n        <div class=\"rc-chart-title\">Cumulative Cost by Year \u2014 Solar vs. Wired<\/div>\n        <div class=\"rc-legend\">\n          <div class=\"rc-legend-item\"><div class=\"rc-legend-dot solar\"><\/div>Solar (cumulative)<\/div>\n          <div class=\"rc-legend-item\"><div class=\"rc-legend-dot wired\"><\/div>Wired (cumulative)<\/div>\n        <\/div>\n        <div class=\"rc-chart-area\" id=\"rc-chart-area\">\n          <!-- bars injected by JS -->\n        <\/div>\n        <div style=\"display:flex; gap:10px;\" id=\"rc-chart-labels\">\n          <!-- year labels injected by JS -->\n        <\/div>\n      <\/div>\n\n      <!-- Year-by-Year Table -->\n      <div class=\"rc-table-wrap\">\n        <table class=\"rc-table\">\n          <thead>\n            <tr>\n              <th>Year<\/th>\n              <th>Solar Annual Cost<\/th>\n              <th>Solar Cumulative<\/th>\n              <th>Wired Annual Cost<\/th>\n              <th>Wired Cumulative<\/th>\n              <th>Annual Difference<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody id=\"rc-table-body\">\n          <\/tbody>\n        <\/table>\n      <\/div>\n\n      <!-- CTA -->\n      <div class=\"rc-cta-box\">\n        <div class=\"rc-cta-text\">\n          <h3>Ready to make the switch to solar?<\/h3>\n          <p>Get a custom quote tailored to your property, wattage needs, and local conditions.<\/p>\n        <\/div>\n        <a href=\"#ct-popup-801\" class=\"rc-cta-btn\">Get Your Custom Solar Lighting Quote<\/a>\n      <\/div>\n\n    <\/div><!-- \/rc-results -->\n\n  <\/div><!-- \/rc-body -->\n<\/div><!-- \/roi-calc -->\n\n<script>\n(function () {\n  'use strict';\n\n  \/\/ \u2500\u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function fmt(n) {\n    return '$' + Math.round(n).toLocaleString('en-US');\n  }\n\n  function fmtDec(n) {\n    return '$' + n.toFixed(2).replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ',');\n  }\n\n  \/\/ Animated counter (count-up effect)\n  function animateCount(el, targetRaw, prefix, duration) {\n    prefix = prefix || '$';\n    duration = duration || 900;\n    var start = 0;\n    var target = Math.round(Math.abs(targetRaw));\n    var startTime = null;\n\n    function step(ts) {\n      if (!startTime) startTime = ts;\n      var progress = Math.min((ts - startTime) \/ duration, 1);\n      \/\/ ease-out\n      var eased = 1 - Math.pow(1 - progress, 3);\n      var current = Math.round(eased * target);\n      el.textContent = prefix + current.toLocaleString('en-US');\n      if (progress < 1) requestAnimationFrame(step);\n      else el.textContent = prefix + target.toLocaleString('en-US');\n    }\n    requestAnimationFrame(step);\n  }\n\n  \/\/ \u2500\u2500\u2500 Core Calculation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function calculate(inputs) {\n    var n          = inputs.numLights;\n    var solarUnit  = inputs.solarCost;\n    var wiredUnit  = inputs.wiredCost;\n    var install    = inputs.installCost;\n    var monthlyElec = inputs.monthlyElec;\n    var rateInc    = inputs.rateIncrease;      \/\/ e.g. 0.03\n    var batInterval = inputs.batteryInterval;  \/\/ 0 = no replacement\n    var batCost    = inputs.batteryCost;\n\n    \/\/ Yearly breakdown (Year 0 = initial investment; Year 1\u20135 = operating)\n    \/\/ We'll store rows for Year 0\u20135 (6 entries), then table shows 0\u20135 or 1\u20135?\n    \/\/ Spec says \"Year 1\u20135\" in the table \u2014 so:\n    \/\/   Year 0 cost = upfront (counted as part of Year 1 cumulative start)\n    \/\/   Cumulative at end of Year N = sum of all costs through year N\n\n    var solarAnnual = [];   \/\/ index 0 = year 0 (upfront), 1 = year 1 ...\n    var wiredAnnual = [];\n\n    \/\/ Year 0: upfront\n    solarAnnual[0] = n * solarUnit;\n    wiredAnnual[0] = n * (wiredUnit + install);\n\n    for (var yr = 1; yr <= 5; yr++) {\n      \/\/ Solar: battery replacement?\n      var solarYr = 0;\n      if (batInterval > 0 && yr % batInterval === 0) {\n        solarYr = n * batCost;\n      }\n      solarAnnual[yr] = solarYr;\n\n      \/\/ Wired: electricity (compounding rate increase)\n      var wiredYr = n * monthlyElec * 12 * Math.pow(1 + rateInc, yr);\n      wiredAnnual[yr] = wiredYr;\n    }\n\n    \/\/ Cumulative\n    var solarCum = [];\n    var wiredCum = [];\n    var running_s = 0, running_w = 0;\n    for (var i = 0; i <= 5; i++) {\n      running_s += solarAnnual[i];\n      running_w += wiredAnnual[i];\n      solarCum[i] = running_s;\n      wiredCum[i] = running_w;\n    }\n\n    \/\/ Breakeven (month-level)\n    \/\/ We'll compute monthly cumulative up to 60 months\n    var beMonth = null;\n    var solarRunning = solarAnnual[0];  \/\/ upfront at month 0\n    var wiredRunning = wiredAnnual[0];  \/\/ upfront at month 0\n    var solarMonthly = 0;\n\n    \/\/ Monthly electricity for wired (we'll compound yearly)\n    for (var mo = 1; mo <= 60; mo++) {\n      var yr_idx = Math.ceil(mo \/ 12);\n      var wiredMonthly = n * monthlyElec * Math.pow(1 + rateInc, yr_idx);\n\n      \/\/ Solar: battery hit at the exact month that is a multiple of 12*interval\n      var solarMoAdd = 0;\n      if (batInterval > 0 && mo % (batInterval * 12) === 0) {\n        solarMoAdd = n * batCost;\n      }\n\n      solarRunning += solarMoAdd;\n      wiredRunning += wiredMonthly;\n\n      if (beMonth === null && solarRunning <= wiredRunning) {\n        beMonth = mo;\n        break;\n      }\n    }\n\n    return {\n      solarAnnual: solarAnnual,\n      wiredAnnual: wiredAnnual,\n      solarCum: solarCum,\n      wiredCum: wiredCum,\n      solarTotal: solarCum[5],\n      wiredTotal: wiredCum[5],\n      savings: wiredCum[5] - solarCum[5],\n      breakevenMonth: beMonth\n    };\n  }\n\n  \/\/ \u2500\u2500\u2500 Render Chart \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function renderChart(data) {\n    var area   = document.getElementById('rc-chart-area');\n    var labels = document.getElementById('rc-chart-labels');\n    area.innerHTML = '';\n    labels.innerHTML = '';\n\n    \/\/ Max value for scaling\n    var maxVal = 0;\n    for (var yr = 1; yr <= 5; yr++) {\n      if (data.solarCum[yr] > maxVal) maxVal = data.solarCum[yr];\n      if (data.wiredCum[yr] > maxVal) maxVal = data.wiredCum[yr];\n    }\n    if (maxVal === 0) maxVal = 1;\n\n    var chartH = area.offsetHeight || 190;\n\n    for (var yr2 = 1; yr2 <= 5; yr2++) {\n      var sH = Math.max(3, (data.solarCum[yr2] \/ maxVal) * (chartH - 10));\n      var wH = Math.max(3, (data.wiredCum[yr2] \/ maxVal) * (chartH - 10));\n\n      var group = document.createElement('div');\n      group.className = 'rc-bar-group';\n      group.style.cssText = 'display:flex!important;flex-direction:column!important;align-items:center!important;flex:1!important;';\n\n      var pair = document.createElement('div');\n      pair.className = 'rc-bar-pair';\n      pair.style.cssText = 'display:flex!important;align-items:flex-end!important;gap:4px!important;height:' + (chartH - 10) + 'px!important;width:100%!important;justify-content:center!important;';\n\n      \/\/ Solar bar\n      var sBar = document.createElement('div');\n      sBar.className = 'rc-bar solar-bar';\n      sBar.style.cssText = 'height:0px;width:42%!important;background:#183090!important;border-radius:1px 1px 0 0!important;position:relative!important;min-height:3px!important;transition:height 0.6s cubic-bezier(0.34,1.56,0.64,1)!important;';\n      var sTip = document.createElement('div');\n      sTip.className = 'rc-bar-tooltip';\n      sTip.textContent = fmt(data.solarCum[yr2]);\n      sBar.appendChild(sTip);\n\n      \/\/ Wired bar\n      var wBar = document.createElement('div');\n      wBar.className = 'rc-bar wired-bar';\n      wBar.style.cssText = 'height:0px;width:42%!important;background:#D81818!important;border-radius:1px 1px 0 0!important;position:relative!important;min-height:3px!important;transition:height 0.6s cubic-bezier(0.34,1.56,0.64,1)!important;';\n      var wTip = document.createElement('div');\n      wTip.className = 'rc-bar-tooltip';\n      wTip.textContent = fmt(data.wiredCum[yr2]);\n      wBar.appendChild(wTip);\n\n      pair.appendChild(sBar);\n      pair.appendChild(wBar);\n      group.appendChild(pair);\n      area.appendChild(group);\n\n      \/\/ Label\n      var lbl = document.createElement('div');\n      lbl.style.cssText = 'flex:1!important;text-align:center!important;font-family:IBM Plex Mono,Courier New,monospace!important;font-size:0.72rem!important;color:#666!important;margin-top:6px!important;';\n      lbl.textContent = 'Yr ' + yr2;\n      labels.appendChild(lbl);\n\n      \/\/ Animate bars after paint\n      (function(sb, wb, sh, wh) {\n        setTimeout(function() {\n          sb.style.height = sh + 'px';\n          wb.style.height = wh + 'px';\n        }, 80);\n      })(sBar, wBar, sH, wH);\n    }\n  }\n\n  \/\/ \u2500\u2500\u2500 Render Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function renderTable(data) {\n    var tbody = document.getElementById('rc-table-body');\n    tbody.innerHTML = '';\n\n    \/\/ Year 0 row\n    var row0 = document.createElement('tr');\n    var solarWins0 = data.solarCum[0] < data.wiredCum[0];\n    if (solarWins0) row0.className = 'solar-wins';\n    var diff0 = data.wiredCum[0] - data.solarCum[0];\n    row0.innerHTML =\n      '<td class=\"col-year\">Year 0<br><small style=\"font-weight:400;color:#888;font-size:0.75rem\">Upfront<\/small><\/td>' +\n      '<td class=\"col-solar\">' + fmt(data.solarAnnual[0]) + '<\/td>' +\n      '<td class=\"col-solar\">' + fmt(data.solarCum[0]) + '<\/td>' +\n      '<td class=\"col-wired\">' + fmt(data.wiredAnnual[0]) + '<\/td>' +\n      '<td class=\"col-wired\">' + fmt(data.wiredCum[0]) + '<\/td>' +\n      '<td class=\"col-diff ' + (diff0 >= 0 ? 'positive' : 'negative') + '\">' +\n        (diff0 >= 0 ? '+' : '') + fmt(diff0) +\n        (solarWins0 ? '<span class=\"badge badge-solar\">Solar Ahead<\/span>' : '<span class=\"badge badge-wired\">Wired Ahead<\/span>') +\n      '<\/td>';\n    tbody.appendChild(row0);\n\n    for (var yr = 1; yr <= 5; yr++) {\n      var solarWins = data.solarCum[yr] < data.wiredCum[yr];\n      var diff = data.wiredCum[yr] - data.solarCum[yr];\n      var row = document.createElement('tr');\n      if (solarWins) row.className = 'solar-wins';\n\n      var batNote = '';\n      if (data.solarAnnual[yr] > 0) {\n        batNote = '<br><small style=\"font-weight:400;color:#888;font-size:0.7rem\">incl. battery<\/small>';\n      }\n\n      row.innerHTML =\n        '<td class=\"col-year\">Year ' + yr + '<\/td>' +\n        '<td class=\"col-solar\">' + fmt(data.solarAnnual[yr]) + batNote + '<\/td>' +\n        '<td class=\"col-solar\">' + fmt(data.solarCum[yr]) + '<\/td>' +\n        '<td class=\"col-wired\">' + fmtDec(data.wiredAnnual[yr]) + '<\/td>' +\n        '<td class=\"col-wired\">' + fmt(data.wiredCum[yr]) + '<\/td>' +\n        '<td class=\"col-diff ' + (diff >= 0 ? 'positive' : 'negative') + '\">' +\n          (diff >= 0 ? '+' : '') + fmt(diff) +\n          (solarWins ? '<span class=\"badge badge-solar\">Solar Ahead<\/span>' : '<span class=\"badge badge-wired\">Wired Ahead<\/span>') +\n        '<\/td>';\n      tbody.appendChild(row);\n    }\n  }\n\n  \/\/ \u2500\u2500\u2500 Main Calculate \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  window.rcCalculate = function () {\n    var numLights      = parseFloat(document.getElementById('rc-num-lights').value)     || 4;\n    var solarCost      = parseFloat(document.getElementById('rc-solar-cost').value)     || 65;\n    var wiredCost      = parseFloat(document.getElementById('rc-wired-cost').value)     || 35;\n    var installCost    = parseFloat(document.getElementById('rc-install-cost').value)   || 150;\n    var monthlyElec    = parseFloat(document.getElementById('rc-monthly-elec').value)   || 4.5;\n    var rateIncrease   = parseFloat(document.getElementById('rc-rate-increase').value)  || 0.03;\n    var batteryInterval = parseInt(document.getElementById('rc-battery-interval').value, 10);\n    var batteryCost    = parseFloat(document.getElementById('rc-battery-cost').value)   || 12;\n\n    var data = calculate({\n      numLights: numLights,\n      solarCost: solarCost,\n      wiredCost: wiredCost,\n      installCost: installCost,\n      monthlyElec: monthlyElec,\n      rateIncrease: rateIncrease,\n      batteryInterval: batteryInterval,\n      batteryCost: batteryCost\n    });\n\n    \/\/ Show results\n    var resultsEl = document.getElementById('rc-results');\n    resultsEl.classList.add('visible');\n\n    \/\/ KPI cards\n    document.getElementById('kpi-solar-total').textContent = fmt(data.solarTotal);\n    document.getElementById('kpi-wired-total').textContent = fmt(data.wiredTotal);\n\n    \/\/ Animated savings counter\n    var savingsEl = document.getElementById('kpi-savings');\n    if (data.savings > 0) {\n      animateCount(savingsEl, data.savings, '$', 900);\n    } else {\n      savingsEl.textContent = fmt(data.savings);\n    }\n\n    \/\/ Breakeven\n    var beEl = document.getElementById('kpi-breakeven');\n    var noteEl = document.getElementById('rc-breakeven-note');\n    if (data.breakevenMonth !== null) {\n      var beYr  = Math.floor(data.breakevenMonth \/ 12);\n      var beMo  = data.breakevenMonth % 12;\n      beEl.textContent = 'Mo ' + data.breakevenMonth;\n      var label = 'Month ' + data.breakevenMonth;\n      if (beYr > 0) label += ' (' + beYr + ' yr' + (beYr > 1 ? 's' : '') + (beMo > 0 ? ' ' + beMo + ' mo' : '') + ')';\n      noteEl.innerHTML = '<strong>Breakeven reached at ' + label + '.<\/strong> After this point, solar lights cost less than wired on a cumulative basis \u2014 every additional month is pure savings.';\n    } else {\n      beEl.textContent = '>60 mo';\n      noteEl.innerHTML = '<strong>Breakeven not reached within 5 years<\/strong> with these inputs. Consider reviewing your electricity cost estimate or increasing the number of lights to see a faster payback.';\n    }\n\n    \/\/ Chart\n    renderChart(data);\n\n    \/\/ Table\n    renderTable(data);\n\n    \/\/ Scroll to results\n    setTimeout(function() {\n      resultsEl.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    }, 100);\n  };\n\n  \/\/ \u2500\u2500\u2500 Reset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  window.rcReset = function () {\n    document.getElementById('rc-num-lights').value     = 4;\n    document.getElementById('rc-solar-cost').value     = 65;\n    document.getElementById('rc-wired-cost').value     = 35;\n    document.getElementById('rc-install-cost').value   = 150;\n    document.getElementById('rc-monthly-elec').value   = 4.50;\n    document.getElementById('rc-rate-increase').value  = '0.03';\n    document.getElementById('rc-battery-interval').value = '5';\n    document.getElementById('rc-battery-cost').value   = 12;\n\n    var resultsEl = document.getElementById('rc-results');\n    resultsEl.classList.remove('visible');\n  };\n\n})();\n<\/script>\n\n<\/body>\n<\/html>\n\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Solar vs. Wired Flood Light ROI Calculator Solar vs. Wired Flood Light \u2014 5-Year ROI Calculator Compare total cost of ownership, find your breakeven point, and see cumulative savings over 5 years. Your Project Details Number of Lights Needed Cost per Solar Flood Light ($) Purchase price per unit Cost per Wired Flood Light ($) [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":831,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-1115","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/pages\/1115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/comments?post=1115"}],"version-history":[{"count":0,"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/pages\/1115\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/pages\/831"}],"wp:attachment":[{"href":"https:\/\/gqlamp.com\/es\/wp-json\/wp\/v2\/media?parent=1115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}