{"product_id":"ctr","title":"CTR Calculator","description":"\u003cstyle\u003e\n.ctr-calculator {\n  --ink: #0f172a;\n  --muted: #475569;\n  --border: #e2e8f0;\n  --surface: #ffffff;\n  --tint: #f8fafc;\n  --primary: #1d4ed8;\n  --accent: #c2410c;\n  --accent-hover: #9a3412;\n  --chart-1: #1e40af;\n  --chart-2: #0d9488;\n  --chart-3: #7c3aed;\n  --chart-4: #be185d;\n  --chart-5: #334155;\n  color: var(--ink);\n  background: var(--surface);\n  container-type: inline-size;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  margin: 0 auto;\n  max-width: 1200px;\n  overflow-wrap: anywhere;\n  padding: 24px;\n  width: 100%;\n}\n.ctr-calculator,\n.ctr-calculator *,\n.ctr-calculator *::before,\n.ctr-calculator *::after {\n  box-sizing: border-box;\n}\n.ctr-calculator [hidden] {\n  display: none !important;\n}\n.ctr-calculator a {\n  color: var(--primary);\n  text-decoration-thickness: 1px;\n  text-underline-offset: 2px;\n}\n.ctr-calculator a:hover {\n  text-decoration-thickness: 2px;\n}\n.ctr-calculator button,\n.ctr-calculator input,\n.ctr-calculator select {\n  font: inherit;\n}\n.ctr-calculator button,\n.ctr-calculator select {\n  cursor: pointer;\n}\n.ctr-calculator button:focus-visible,\n.ctr-calculator input:focus-visible,\n.ctr-calculator select:focus-visible,\n.ctr-calculator summary:focus-visible,\n.ctr-calculator a:focus-visible {\n  outline: 3px solid #1d4ed8;\n  outline-offset: 2px;\n}\n.ctr-calculator input:disabled {\n  background: #eef2f7;\n  color: #334155;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.ctr-calculator .ctr-header,\n.ctr-calculator .ctr-toolbar,\n.ctr-calculator .ctr-workspace,\n.ctr-calculator .ctr-breakdown,\n.ctr-calculator .ctr-chart,\n.ctr-calculator .ctr-table-section,\n.ctr-calculator .ctr-advanced,\n.ctr-calculator .ctr-education,\n.ctr-calculator .ctr-input-card,\n.ctr-calculator .ctr-results-card,\n.ctr-calculator .ctr-card,\n.ctr-calculator .ctr-chart-card,\n.ctr-calculator .ctr-table-card,\n.ctr-calculator .ctr-field,\n.ctr-calculator .ctr-result-item,\n.ctr-calculator .ctr-legend,\n.ctr-calculator .ctr-legend-row,\n.ctr-calculator .ctr-chart-cluster,\n.ctr-calculator .ctr-chart-visual,\n.ctr-calculator .ctr-chart-data,\n.ctr-calculator .ctr-table-wrap,\n.ctr-calculator .ctr-table-note,\n.ctr-calculator .ctr-callout,\n.ctr-calculator .ctr-summary-pills,\n.ctr-calculator .ctr-pill,\n.ctr-calculator .ctr-toolbar-actions,\n.ctr-calculator .ctr-form-grid,\n.ctr-calculator .ctr-results-grid,\n.ctr-calculator .ctr-primary-result,\n.ctr-calculator .ctr-interpretation,\n.ctr-calculator .ctr-validation,\n.ctr-calculator .ctr-empty-state,\n.ctr-calculator .ctr-education-grid,\n.ctr-calculator .ctr-formula-box,\n.ctr-calculator .ctr-section-heading,\n.ctr-calculator .ctr-section-copy,\n.ctr-calculator .ctr-helper,\n.ctr-calculator .ctr-label,\n.ctr-calculator .ctr-button,\n.ctr-calculator .ctr-icon,\n.ctr-calculator .ctr-chart-caption,\n.ctr-calculator .ctr-table-empty,\n.ctr-calculator .ctr-status-badge {\n  min-width: 0;\n}\n.ctr-calculator .ctr-header {\n  border-bottom: 1px solid var(--border);\n  padding-bottom: 20px;\n}\n.ctr-calculator .ctr-title {\n  color: var(--ink);\n  font-size: 24px;\n  font-weight: 700;\n  line-height: 1.2;\n  margin: 0;\n}\n.ctr-calculator .ctr-subtitle {\n  color: var(--muted);\n  margin: 8px 0 0;\n  max-width: 760px;\n}\n.ctr-calculator .ctr-summary-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 16px;\n}\n.ctr-calculator .ctr-pill {\n  align-items: center;\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  color: #334155;\n  display: inline-flex;\n  font-size: 13px;\n  font-weight: 600;\n  gap: 6px;\n  line-height: 1.3;\n  padding: 6px 10px;\n}\n.ctr-calculator .ctr-pill strong,\n.ctr-calculator .ctr-numeric,\n.ctr-calculator td.ctr-number,\n.ctr-calculator .ctr-primary-value,\n.ctr-calculator .ctr-result-value,\n.ctr-calculator .ctr-legend-value,\n.ctr-calculator .ctr-legend-percent {\n  font-variant-numeric: tabular-nums;\n}\n.ctr-calculator .ctr-toolbar {\n  align-items: center;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 12px;\n  justify-content: flex-start;\n  padding: 20px 0;\n}\n.ctr-calculator .ctr-toolbar-actions {\n  align-items: center;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 12px;\n}\n.ctr-calculator .ctr-button {\n  align-items: center;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  display: inline-flex;\n  font-size: 15px;\n  font-weight: 700;\n  gap: 10px;\n  justify-content: center;\n  line-height: 1.2;\n  min-height: 46px;\n  padding: 12px 18px;\n  text-decoration: none;\n  white-space: nowrap;\n}\n.ctr-calculator .ctr-button-primary {\n  background: var(--accent);\n  color: #ffffff;\n}\n.ctr-calculator .ctr-button-primary:hover,\n.ctr-calculator .ctr-button-primary:active {\n  background: var(--accent-hover);\n  box-shadow: 0 2px 4px rgba(15, 23, 42, .14);\n}\n.ctr-calculator .ctr-button-secondary {\n  background: var(--surface);\n  border-color: #64748b;\n  color: var(--ink);\n}\n.ctr-calculator .ctr-button-secondary:hover,\n.ctr-calculator .ctr-button-secondary:active {\n  background: var(--tint);\n  border-color: #64748b;\n}\n.ctr-calculator .ctr-icon {\n  display: block;\n  flex: 0 0 auto;\n  height: 20px;\n  width: 20px;\n}\n.ctr-calculator .ctr-workspace {\n  display: grid;\n  gap: 24px;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n}\n.ctr-calculator .ctr-input-card,\n.ctr-calculator .ctr-results-card,\n.ctr-calculator .ctr-chart-card,\n.ctr-calculator .ctr-table-card,\n.ctr-calculator .ctr-advanced,\n.ctr-calculator .ctr-education {\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n  padding: 20px;\n}\n.ctr-calculator .ctr-section-heading {\n  color: var(--ink);\n  font-size: 18px;\n  font-weight: 650;\n  line-height: 1.3;\n  margin: 0;\n}\n.ctr-calculator .ctr-section-copy {\n  color: var(--muted);\n  font-size: 14px;\n  margin: 6px 0 0;\n}\n.ctr-calculator .ctr-form-grid {\n  display: grid;\n  gap: 16px;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  margin-top: 20px;\n}\n.ctr-calculator .ctr-field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n}\n.ctr-calculator .ctr-field-wide {\n  grid-column: 1 \/ -1;\n}\n.ctr-calculator .ctr-label {\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.ctr-calculator .ctr-input,\n.ctr-calculator .ctr-select {\n  background: var(--surface);\n  border: 1px solid #64748b;\n  border-radius: 6px;\n  color: var(--ink);\n  font-size: 15px;\n  font-weight: 400;\n  height: 46px;\n  line-height: 1.2;\n  padding: 10px 12px;\n  width: 100%;\n}\n.ctr-calculator .ctr-input:hover,\n.ctr-calculator .ctr-select:hover {\n  border-color: #64748b;\n}\n.ctr-calculator .ctr-input[aria-invalid=\"true\"] {\n  border-color: #b91c1c;\n  box-shadow: 0 0 0 1px #b91c1c;\n}\n.ctr-calculator .ctr-helper {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  line-height: 1.4;\n  min-height: 36px;\n}\n.ctr-calculator .ctr-validation {\n  background: #fff7ed;\n  border: 1px solid #fdba74;\n  border-radius: 6px;\n  color: #7c2d12;\n  display: none;\n  font-size: 13px;\n  font-weight: 600;\n  margin-top: 16px;\n  padding: 10px 12px;\n}\n.ctr-calculator .ctr-validation.ctr-visible {\n  display: block;\n}\n.ctr-calculator .ctr-primary-result {\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  margin-top: 20px;\n  padding: 20px;\n}\n.ctr-calculator .ctr-primary-label {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  margin: 0;\n  text-transform: uppercase;\n  letter-spacing: .04em;\n}\n.ctr-calculator .ctr-primary-value {\n  color: var(--ink);\n  font-size: 30px;\n  font-weight: 700;\n  line-height: 1.15;\n  margin: 6px 0 0;\n}\n.ctr-calculator .ctr-primary-detail {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  margin: 8px 0 0;\n}\n.ctr-calculator .ctr-results-grid {\n  display: grid;\n  gap: 12px;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  margin-top: 12px;\n}\n.ctr-calculator .ctr-result-item {\n  border-bottom: 1px solid var(--border);\n  padding: 12px 0;\n}\n.ctr-calculator .ctr-result-label {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.ctr-calculator .ctr-result-value {\n  color: var(--ink);\n  font-size: 20px;\n  font-weight: 700;\n  line-height: 1.25;\n  margin-top: 4px;\n}\n.ctr-calculator .ctr-status-badge {\n  border-radius: 999px;\n  display: inline-block;\n  font-size: 13px;\n  font-weight: 700;\n  line-height: 1.2;\n  margin-top: 6px;\n  padding: 5px 9px;\n}\n.ctr-calculator .ctr-status-good {\n  background: #dcfce7;\n  color: #166534;\n}\n.ctr-calculator .ctr-status-watch {\n  background: #fef3c7;\n  color: #854d0e;\n}\n.ctr-calculator .ctr-status-neutral {\n  background: #e2e8f0;\n  color: #334155;\n}\n.ctr-calculator .ctr-interpretation {\n  background: #eff6ff;\n  border: 1px solid #bfdbfe;\n  border-radius: 6px;\n  color: #1e3a8a;\n  font-size: 14px;\n  margin-top: 16px;\n  padding: 12px;\n}\n.ctr-calculator .ctr-advanced {\n  margin-top: 24px;\n  padding: 0;\n}\n.ctr-calculator .ctr-advanced summary {\n  color: var(--ink);\n  cursor: pointer;\n  font-size: 15px;\n  font-weight: 700;\n  padding: 16px 20px;\n}\n.ctr-calculator .ctr-advanced-content {\n  border-top: 1px solid var(--border);\n  padding: 16px 20px 20px;\n}\n.ctr-calculator .ctr-breakdown,\n.ctr-calculator .ctr-chart,\n.ctr-calculator .ctr-table-section {\n  margin-top: 24px;\n}\n.ctr-calculator .ctr-chart-card,\n.ctr-calculator .ctr-table-card {\n  margin-top: 0;\n}\n.ctr-calculator .ctr-chart-header {\n  margin-bottom: 16px;\n}\n.ctr-calculator .ctr-chart-cluster {\n  align-items: center;\n  display: grid;\n  gap: 24px;\n  grid-template-columns: minmax(240px, 320px) minmax(0, max-content);\n  justify-content: center;\n  margin: 0 auto;\n  max-width: 760px;\n}\n.ctr-calculator .ctr-chart-visual {\n  align-items: center;\n  display: flex;\n  justify-content: center;\n  min-height: 260px;\n  width: 100%;\n}\n.ctr-calculator .ctr-chart-svg {\n  display: block;\n  height: auto;\n  max-width: 320px;\n  overflow: visible;\n  width: min(100%, 320px);\n}\n.ctr-calculator .ctr-chart-svg text {\n  font-family: Arial, Helvetica, sans-serif;\n}\n.ctr-calculator .ctr-empty-state {\n  align-items: center;\n  background: var(--tint);\n  border: 1px dashed #64748b;\n  border-radius: 6px;\n  color: var(--muted);\n  display: flex;\n  font-size: 14px;\n  justify-content: center;\n  min-height: 88px;\n  padding: 16px;\n  text-align: center;\n  width: 100%;\n}\n.ctr-calculator .ctr-legend {\n  display: grid;\n  gap: 10px;\n  justify-content: start;\n  width: max-content;\n  max-width: 100%;\n}\n.ctr-calculator .ctr-legend-row {\n  align-items: center;\n  display: grid;\n  font-size: 13px;\n  font-weight: 600;\n  gap: 8px 12px;\n  grid-template-columns: 12px minmax(110px, auto) auto auto;\n  justify-content: start;\n  line-height: 1.35;\n  max-width: 100%;\n}\n.ctr-calculator .ctr-legend-swatch {\n  border-radius: 3px;\n  height: 12px;\n  width: 12px;\n}\n.ctr-calculator .ctr-legend-label {\n  color: var(--ink);\n}\n.ctr-calculator .ctr-legend-value,\n.ctr-calculator .ctr-legend-percent {\n  color: #334155;\n  white-space: nowrap;\n}\n.ctr-calculator .ctr-chart-data {\n  margin-top: 16px;\n}\n.ctr-calculator .ctr-chart-caption,\n.ctr-calculator .ctr-table-note,\n.ctr-calculator .ctr-callout {\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  margin-top: 16px;\n  padding: 10px 12px;\n}\n.ctr-calculator .ctr-safe-stack .ctr-chart-cluster {\n  gap: 16px;\n  grid-template-columns: minmax(0, 1fr);\n}\n.ctr-calculator .ctr-safe-stack .ctr-chart-visual,\n.ctr-calculator .ctr-safe-stack .ctr-legend {\n  justify-self: center;\n}\n.ctr-calculator .ctr-safe-stack .ctr-chart-caption {\n  margin-top: 20px;\n}\n.ctr-calculator .ctr-table-wrap {\n  margin-top: 16px;\n  overflow-x: auto;\n  width: 100%;\n}\n.ctr-calculator table {\n  border-collapse: collapse;\n  font-size: 13px;\n  min-width: 680px;\n  width: 100%;\n}\n.ctr-calculator th,\n.ctr-calculator td {\n  border-bottom: 1px solid var(--border);\n  padding: 10px 12px;\n  text-align: left;\n  vertical-align: top;\n}\n.ctr-calculator th {\n  background: var(--tint);\n  color: var(--ink);\n  font-weight: 700;\n  white-space: nowrap;\n}\n.ctr-calculator td.ctr-number,\n.ctr-calculator th.ctr-number {\n  text-align: right;\n}\n.ctr-calculator tbody tr:hover {\n  background: #f8fafc;\n}\n.ctr-calculator .ctr-table-empty {\n  color: var(--muted);\n  padding: 16px 12px;\n  text-align: center;\n}\n.ctr-calculator .ctr-safe-table-stack .ctr-table-note {\n  margin-top: 20px;\n}\n.ctr-calculator .ctr-education {\n  margin-top: 24px;\n}\n.ctr-calculator .ctr-education-grid {\n  display: grid;\n  gap: 24px;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  margin-top: 20px;\n}\n.ctr-calculator .ctr-education h3 {\n  color: var(--ink);\n  font-size: 16px;\n  font-weight: 700;\n  line-height: 1.35;\n  margin: 22px 0 8px;\n}\n.ctr-calculator .ctr-education h3:first-child {\n  margin-top: 0;\n}\n.ctr-calculator .ctr-education p,\n.ctr-calculator .ctr-education ul {\n  color: #334155;\n  margin: 0 0 12px;\n}\n.ctr-calculator .ctr-education ul {\n  padding-left: 20px;\n}\n.ctr-calculator .ctr-education li {\n  margin-bottom: 8px;\n}\n.ctr-calculator .ctr-formula-box {\n  background: #eff6ff;\n  border: 1px solid #bfdbfe;\n  border-radius: 6px;\n  color: #1e3a8a;\n  font-size: 16px;\n  font-weight: 700;\n  margin: 16px 0;\n  padding: 14px;\n  text-align: center;\n}\n@container (max-width: 899px) {\n  .ctr-calculator .ctr-workspace {\n    grid-template-columns: minmax(0, 1fr);\n  }\n}\n@container (max-width: 639px) {\n  .ctr-calculator .ctr-chart-cluster {\n    gap: 16px;\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .ctr-calculator .ctr-chart-visual,\n  .ctr-calculator .ctr-legend {\n    justify-self: center;\n  }\n}\n@media (max-width: 899px) {\n  .ctr-calculator .ctr-workspace {\n    grid-template-columns: minmax(0, 1fr);\n  }\n}\n@media (max-width: 639px) {\n  .ctr-calculator {\n    padding: 16px;\n  }\n  .ctr-calculator .ctr-input-card,\n  .ctr-calculator .ctr-results-card,\n  .ctr-calculator .ctr-chart-card,\n  .ctr-calculator .ctr-table-card,\n  .ctr-calculator .ctr-education {\n    padding: 16px;\n  }\n  .ctr-calculator .ctr-form-grid,\n  .ctr-calculator .ctr-results-grid,\n  .ctr-calculator .ctr-education-grid {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .ctr-calculator .ctr-field-wide {\n    grid-column: auto;\n  }\n  .ctr-calculator .ctr-toolbar-actions,\n  .ctr-calculator .ctr-button {\n    width: 100%;\n  }\n  .ctr-calculator .ctr-chart-cluster {\n    gap: 16px;\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .ctr-calculator .ctr-chart-visual,\n  .ctr-calculator .ctr-legend {\n    justify-self: center;\n  }\n  .ctr-calculator .ctr-legend-row {\n    gap: 6px 8px;\n    grid-template-columns: 12px minmax(92px, auto) auto auto;\n  }\n}\n@media (max-width: 380px) {\n  .ctr-calculator {\n    padding: 12px;\n  }\n  .ctr-calculator .ctr-input-card,\n  .ctr-calculator .ctr-results-card,\n  .ctr-calculator .ctr-chart-card,\n  .ctr-calculator .ctr-table-card,\n  .ctr-calculator .ctr-education {\n    padding: 14px;\n  }\n  .ctr-calculator .ctr-title {\n    font-size: 22px;\n  }\n  .ctr-calculator .ctr-primary-value {\n    font-size: 28px;\n  }\n  .ctr-calculator .ctr-legend-row {\n    grid-template-columns: 12px minmax(0, 1fr) auto;\n  }\n  .ctr-calculator .ctr-legend-percent {\n    grid-column: 2 \/ -1;\n    padding-left: 0;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"ctr-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"ctr-header\"\u003e\n    \u003ch2 class=\"ctr-title\"\u003eClick-Through Rate Calculator\u003c\/h2\u003e\n    \u003cp class=\"ctr-subtitle\"\u003eCalculate CTR, clicks, or impressions from any two known values, then compare performance with a practical target.\u003c\/p\u003e\n    \u003cdiv class=\"ctr-summary-pills\" aria-label=\"Live campaign summary\"\u003e\n      \u003cspan class=\"ctr-pill\"\u003eCTR \u003cstrong class=\"ctr-numeric\" data-ctr-pill-ctr\u003e9.09%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"ctr-pill\"\u003eClicks \u003cstrong class=\"ctr-numeric\" data-ctr-pill-clicks\u003e500\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"ctr-pill\"\u003eImpressions \u003cstrong class=\"ctr-numeric\" data-ctr-pill-impressions\u003e5,500\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"ctr-pill\"\u003eTarget \u003cstrong class=\"ctr-numeric\" data-ctr-pill-target\u003e2.00%\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"ctr-toolbar\"\u003e\n    \u003cdiv class=\"ctr-toolbar-actions\"\u003e\n      \u003cbutton class=\"ctr-button ctr-button-primary\" type=\"button\" data-ctr-download\u003e\n        \u003csvg class=\"ctr-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\u003e\n          \u003cpath fill=\"currentColor\" d=\"M11 3a1 1 0 0 1 2 0v9.17l2.59-2.58A1 1 0 1 1 17 11l-4.29 4.29a1 1 0 0 1-1.42 0L7 11a1 1 0 0 1 1.41-1.41L11 12.17V3ZM5 16a1 1 0 0 1 1 1v2h12v-2a1 1 0 1 1 2 0v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1Z\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eDownload Excel\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cbutton class=\"ctr-button ctr-button-secondary\" type=\"button\" data-ctr-reset\u003eReset\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"ctr-workspace\"\u003e\n    \u003csection class=\"ctr-input-card\" aria-labelledby=\"ctr-inputs-heading\"\u003e\n      \u003ch3 class=\"ctr-section-heading\" id=\"ctr-inputs-heading\"\u003eCampaign inputs\u003c\/h3\u003e\n      \u003cp class=\"ctr-section-copy\"\u003eChoose the value to calculate. The other two fields remain editable.\u003c\/p\u003e\n      \u003cdiv class=\"ctr-form-grid\"\u003e\n        \u003cdiv class=\"ctr-field ctr-field-wide\"\u003e\n          \u003clabel class=\"ctr-label\" for=\"ctr-solve-for\"\u003eSolve for\u003c\/label\u003e\n          \u003cselect class=\"ctr-select\" id=\"ctr-solve-for\" data-ctr-solve\u003e\n            \u003coption value=\"ctr\"\u003eClick-through rate (CTR)\u003c\/option\u003e\n            \u003coption value=\"clicks\"\u003eNumber of clicks\u003c\/option\u003e\n            \u003coption value=\"impressions\"\u003eAd impressions\u003c\/option\u003e\n          \u003c\/select\u003e\n          \u003cspan class=\"ctr-helper\"\u003eThe selected field is calculated automatically from the other two values.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-field\"\u003e\n          \u003clabel class=\"ctr-label\" for=\"ctr-impressions\"\u003eAd impressions\u003c\/label\u003e\n          \u003cinput class=\"ctr-input\" id=\"ctr-impressions\" data-ctr-impressions inputmode=\"decimal\" autocomplete=\"off\" value=\"5,500\" aria-describedby=\"ctr-impressions-help\"\u003e\n          \u003cspan class=\"ctr-helper\" id=\"ctr-impressions-help\"\u003eTotal times the ad, listing, or message was displayed.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-field\"\u003e\n          \u003clabel class=\"ctr-label\" for=\"ctr-clicks\"\u003eNumber of clicks\u003c\/label\u003e\n          \u003cinput class=\"ctr-input\" id=\"ctr-clicks\" data-ctr-clicks inputmode=\"decimal\" autocomplete=\"off\" value=\"500\" aria-describedby=\"ctr-clicks-help\"\u003e\n          \u003cspan class=\"ctr-helper\" id=\"ctr-clicks-help\"\u003eUse the same reporting period and click definition as impressions.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-field ctr-field-wide\"\u003e\n          \u003clabel class=\"ctr-label\" for=\"ctr-rate\"\u003eClick-through rate (CTR)\u003c\/label\u003e\n          \u003cinput class=\"ctr-input\" id=\"ctr-rate\" data-ctr-rate inputmode=\"decimal\" autocomplete=\"off\" value=\"9.09%\" aria-describedby=\"ctr-rate-help\" disabled\u003e\n          \u003cspan class=\"ctr-helper\" id=\"ctr-rate-help\"\u003eCTR equals clicks divided by impressions, expressed as a percentage.\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-validation\" data-ctr-validation role=\"alert\"\u003e\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"ctr-results-card\" aria-labelledby=\"ctr-results-heading\"\u003e\n      \u003ch3 class=\"ctr-section-heading\" id=\"ctr-results-heading\"\u003eLive results\u003c\/h3\u003e\n      \u003cp class=\"ctr-section-copy\"\u003eAll outputs update as you type.\u003c\/p\u003e\n      \u003cdiv class=\"ctr-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n        \u003cp class=\"ctr-primary-label\" data-ctr-primary-label\u003eClick-through rate\u003c\/p\u003e\n        \u003cp class=\"ctr-primary-value\" data-ctr-primary-value\u003e9.09%\u003c\/p\u003e\n        \u003cp class=\"ctr-primary-detail\" data-ctr-primary-detail\u003e500 clicks from 5,500 impressions\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-results-grid\"\u003e\n        \u003cdiv class=\"ctr-result-item\"\u003e\n          \u003cdiv class=\"ctr-result-label\"\u003eCalculated CTR\u003c\/div\u003e\n          \u003cdiv class=\"ctr-result-value\" data-ctr-result-rate\u003e9.09%\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-result-item\"\u003e\n          \u003cdiv class=\"ctr-result-label\"\u003eClicks per 1,000 impressions\u003c\/div\u003e\n          \u003cdiv class=\"ctr-result-value\" data-ctr-clicks-per-thousand\u003e90.91\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-result-item\"\u003e\n          \u003cdiv class=\"ctr-result-label\"\u003eClicks required at target\u003c\/div\u003e\n          \u003cdiv class=\"ctr-result-value\" data-ctr-target-clicks\u003e110\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-result-item\"\u003e\n          \u003cdiv class=\"ctr-result-label\"\u003eDifference from target\u003c\/div\u003e\n          \u003cdiv class=\"ctr-result-value\" data-ctr-target-gap\u003e+7.09 pp\u003c\/div\u003e\n          \u003cspan class=\"ctr-status-badge ctr-status-good\" data-ctr-status\u003eAbove target\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-interpretation\" data-ctr-interpretation\u003eYour current CTR is 7.09 percentage points above the 2.00% target.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003cdetails class=\"ctr-advanced\" open\u003e\n    \u003csummary\u003eBenchmark and planning assumption\u003c\/summary\u003e\n    \u003cdiv class=\"ctr-advanced-content\"\u003e\n      \u003cdiv class=\"ctr-form-grid\"\u003e\n        \u003cdiv class=\"ctr-field ctr-field-wide\"\u003e\n          \u003clabel class=\"ctr-label\" for=\"ctr-target-rate\"\u003eTarget CTR\u003c\/label\u003e\n          \u003cinput class=\"ctr-input\" id=\"ctr-target-rate\" data-ctr-target inputmode=\"decimal\" autocomplete=\"off\" value=\"2.00%\" aria-describedby=\"ctr-target-help\"\u003e\n          \u003cspan class=\"ctr-helper\" id=\"ctr-target-help\"\u003eOptional planning benchmark. Use a comparable channel, campaign type, audience, placement, and reporting window.\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003csection class=\"ctr-breakdown\" aria-labelledby=\"ctr-breakdown-heading\"\u003e\n    \u003cdiv class=\"ctr-chart-card\" data-ctr-chart-card\u003e\n      \u003cdiv class=\"ctr-chart-header\"\u003e\n        \u003ch3 class=\"ctr-section-heading\" id=\"ctr-breakdown-heading\"\u003eEngagement breakdown\u003c\/h3\u003e\n        \u003cp class=\"ctr-section-copy\" data-ctr-chart-interpretation\u003e500 clicked impressions and 5,000 non-clicked impressions.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-chart-cluster\"\u003e\n        \u003cdiv class=\"ctr-chart-visual\" data-ctr-chart-visual\u003e\n          \u003csvg class=\"ctr-chart-svg\" data-ctr-chart-svg viewbox=\"0 0 320 320\" role=\"img\" aria-labelledby=\"ctr-chart-title ctr-chart-desc\"\u003e\n            \u003ctitle id=\"ctr-chart-title\"\u003eClicked and non-clicked impression breakdown\u003c\/title\u003e\n            \u003cdesc id=\"ctr-chart-desc\" data-ctr-chart-desc\u003e500 clicked impressions and 5,000 non-clicked impressions, totaling 5,500 impressions.\u003c\/desc\u003e\n            \u003cg data-ctr-chart-arcs\u003e\u003c\/g\u003e\n            \u003ctext x=\"160\" y=\"148\" text-anchor=\"middle\" fill=\"#475569\" font-size=\"13\" font-weight=\"600\"\u003eTOTAL IMPRESSIONS\u003c\/text\u003e\n            \u003ctext x=\"160\" y=\"178\" text-anchor=\"middle\" fill=\"#0f172a\" font-size=\"24\" font-weight=\"700\" data-ctr-chart-total\u003e5,500\u003c\/text\u003e\n          \u003c\/svg\u003e\n          \u003cdiv class=\"ctr-empty-state\" data-ctr-chart-empty hidden\u003eEnter impressions and clicks to see the engagement breakdown.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"ctr-legend\" data-ctr-legend aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-chart-data\"\u003e\n        \u003cdiv class=\"ctr-table-wrap\"\u003e\n          \u003ctable aria-label=\"Engagement breakdown data\"\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth scope=\"col\"\u003eCategory\u003c\/th\u003e\n                \u003cth class=\"ctr-number\" scope=\"col\"\u003eImpressions\u003c\/th\u003e\n                \u003cth class=\"ctr-number\" scope=\"col\"\u003eShare\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody data-ctr-breakdown-body\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-chart-caption\" data-ctr-chart-caption\u003eThe ring uses the same current-state values shown in the legend and data table.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"ctr-table-section\" aria-labelledby=\"ctr-scenarios-heading\"\u003e\n    \u003cdiv class=\"ctr-table-card\" data-ctr-table-card\u003e\n      \u003ch3 class=\"ctr-section-heading\" id=\"ctr-scenarios-heading\"\u003eScenario comparison\u003c\/h3\u003e\n      \u003cp class=\"ctr-section-copy\"\u003eSee how common traffic or engagement changes affect CTR while holding other factors constant.\u003c\/p\u003e\n      \u003cdiv class=\"ctr-table-wrap\" data-ctr-table-wrap\u003e\n        \u003ctable aria-label=\"CTR scenario comparison\"\u003e\n          \u003cthead\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"col\"\u003eScenario\u003c\/th\u003e\n              \u003cth class=\"ctr-number\" scope=\"col\"\u003eImpressions\u003c\/th\u003e\n              \u003cth class=\"ctr-number\" scope=\"col\"\u003eClicks\u003c\/th\u003e\n              \u003cth class=\"ctr-number\" scope=\"col\"\u003eCTR\u003c\/th\u003e\n              \u003cth class=\"ctr-number\" scope=\"col\"\u003eVs. target\u003c\/th\u003e\n            \u003c\/tr\u003e\n          \u003c\/thead\u003e\n          \u003ctbody data-ctr-scenario-body\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"ctr-table-note\" data-ctr-table-note\u003eScenario rows are directional planning checks, not forecasts. They isolate one change at a time so the effect on CTR is easy to interpret.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"ctr-education\" aria-labelledby=\"ctr-guide-heading\"\u003e\n    \u003ch3 class=\"ctr-section-heading\" id=\"ctr-guide-heading\"\u003eHow to calculate and interpret click-through rate\u003c\/h3\u003e\n    \u003cdiv class=\"ctr-education-grid\"\u003e\n      \u003cdiv\u003e\n        \u003ch3\u003eWhat this calculator estimates\u003c\/h3\u003e\n        \u003cp\u003eClick-through rate, usually abbreviated as CTR, measures the share of recorded impressions that produced a click. It is a compact engagement metric used for search ads, display ads, social placements, listings, emails, push messages, and other digital experiences with a measurable click action. This calculator solves for any one of the three linked values: CTR, clicks, or impressions.\u003c\/p\u003e\n        \u003cdiv class=\"ctr-formula-box\"\u003eCTR = clicks ÷ impressions × 100\u003c\/div\u003e\n        \u003cp\u003eThe formula is simple, but the underlying definitions matter. A campaign can appear stronger or weaker when platforms count impressions, all clicks, link clicks, unique clicks, or delivered messages differently. Keep the numerator and denominator from the same platform report, date range, audience, placement, and attribution setup.\u003c\/p\u003e\n\n        \u003ch3\u003eField-by-field instructions\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eSolve for:\u003c\/strong\u003e choose CTR when impressions and clicks are known, clicks when impressions and a target or observed CTR are known, or impressions when clicks and CTR are known. The selected result field becomes read-only so it cannot conflict with the two drivers.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eAd impressions:\u003c\/strong\u003e enter the total number of eligible displays. This field is required when solving for CTR or clicks. More impressions lower CTR when clicks stay unchanged, but they increase expected clicks when CTR is held constant. Do not mix impressions from one date range with clicks from another.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eNumber of clicks:\u003c\/strong\u003e enter the click count that matches your chosen reporting definition. This field is required when solving for CTR or impressions. More clicks increase CTR when impressions stay unchanged. For advertising reports, check whether you are using link clicks, all clicks, or unique clicks.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eClick-through rate:\u003c\/strong\u003e enter a percentage when solving for clicks or impressions. The calculator accepts values such as 2, 2%, or 2.00%. A zero rate cannot be used to solve for impressions because dividing clicks by zero would be undefined.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eTarget CTR:\u003c\/strong\u003e add an optional benchmark for planning. It drives the target-click calculation, status badge, comparison text, and scenario table. A useful target should come from a comparable channel and campaign objective rather than a universal internet-wide average.\u003c\/li\u003e\n        \u003c\/ul\u003e\n\n        \u003ch3\u003eReading the live results\u003c\/h3\u003e\n        \u003cp\u003eThe primary result changes with the selected solve mode. Calculated CTR is the exact click-to-impression ratio expressed as a percentage. Clicks per 1,000 impressions restates the same rate as an expected count, which can be easier to compare with traffic volume. Clicks required at target equals impressions multiplied by the target rate and is rounded up to a whole click for planning. Difference from target is shown in percentage points, not as a relative percent change.\u003c\/p\u003e\n        \u003cp\u003eA positive target gap means the observed CTR is above the benchmark; a negative gap means it is below. Zero means the current result exactly matches the entered target. A high CTR can indicate strong relevance or an effective call to action, but it does not prove that clicks converted, generated profit, or came from the intended audience.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003ch3\u003eHow to interpret the chart and table\u003c\/h3\u003e\n        \u003cp\u003eThe engagement ring splits total impressions into clicked and non-clicked impressions when the click count does not exceed impressions. The legend, chart, and data table all use the same computed values. If clicks exceed impressions, the calculator hides the ring because repeated clicks can make a one-click-per-impression breakdown misleading; the numerical CTR results remain available.\u003c\/p\u003e\n        \u003cp\u003eThe scenario table begins with the current campaign. The “10% more clicks” row isolates an engagement improvement at the same impression volume. The “10% fewer impressions” row shows how CTR rises when clicks are unchanged but reach is lower. The target row shows the whole-number clicks needed to meet the benchmark at the current impression count. These are sensitivity checks, not predictions.\u003c\/p\u003e\n\n        \u003ch3\u003eWhat usually changes CTR\u003c\/h3\u003e\n        \u003cp\u003eCTR often responds to audience relevance, keyword or placement intent, creative clarity, offer strength, call-to-action visibility, ad position, device mix, frequency, and campaign maturity. A higher CTR is generally favorable when traffic quality remains stable. However, expanding into broader audiences may lower CTR while still producing more total conversions. Likewise, a narrow retargeting audience may show a high CTR but limited scale.\u003c\/p\u003e\n        \u003cp\u003eUse CTR alongside downstream metrics such as conversion rate, cost per click, cost per acquisition, revenue per visitor, and return on ad spend. Google defines CTR as clicks divided by impressions in its \u003ca href=\"https:\/\/support.google.com\/google-ads\/answer\/2615875?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGoogle Ads help documentation\u003c\/a\u003e. Meta also distinguishes link click-through rate in its \u003ca href=\"https:\/\/www.facebook.com\/business\/help\/877711998984611\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ebusiness metrics guidance\u003c\/a\u003e. For email, the denominator may be delivered emails rather than ad impressions; Mailchimp discusses this distinction in its \u003ca href=\"https:\/\/mailchimp.com\/resources\/email-marketing-benchmarks\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eemail benchmark resources\u003c\/a\u003e.\u003c\/p\u003e\n\n        \u003ch3\u003eCommon mistakes and edge cases\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003eComparing CTR across unlike channels, objectives, geographies, placements, or attribution windows.\u003c\/li\u003e\n          \u003cli\u003eTreating percentage-point change as relative percentage change. Moving from 2% to 3% is a one-point increase but a 50% relative increase.\u003c\/li\u003e\n          \u003cli\u003eUsing clicks from a longer date range than impressions, which can produce an impossible or misleading rate.\u003c\/li\u003e\n          \u003cli\u003eAssuming every click belongs to a unique person. One user may click more than once, depending on platform reporting.\u003c\/li\u003e\n          \u003cli\u003eOptimizing only for CTR and ignoring conversion quality, costs, margin, or post-click behavior.\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cp\u003eFor practical analysis, segment results by campaign, ad group, creative, audience, placement, device, and time period. Compare like with like, investigate material changes, and test one major variable at a time. The calculator supports planning and reporting but does not provide personalized marketing, financial, legal, or investment advice.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909485502707,"sku":"ctr","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/ctr.webp?v=1783935475","url":"https:\/\/financialmodelslab.com\/products\/ctr","provider":"Financial Models Lab","version":"1.0","type":"link"}