{"product_id":"gross-rent-multiplier","title":"Gross Rent Multiplier Calculator","description":"\u003cstyle\u003e\n.grm-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  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\n  color: var(--ink);\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  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.6;\n  container-type: inline-size;\n}\n.grm-calculator,\n.grm-calculator *,\n.grm-calculator *::before,\n.grm-calculator *::after {\n  box-sizing: border-box;\n}\n.grm-calculator * {\n  min-width: 0;\n}\n.grm-calculator h2,\n.grm-calculator h3,\n.grm-calculator p {\n  margin-top: 0;\n}\n.grm-calculator button,\n.grm-calculator input,\n.grm-calculator select {\n  font: inherit;\n}\n.grm-calculator button,\n.grm-calculator input,\n.grm-calculator a {\n  -webkit-tap-highlight-color: transparent;\n}\n.grm-calculator button:focus-visible,\n.grm-calculator input:focus-visible,\n.grm-calculator summary:focus-visible,\n.grm-calculator a:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .34);\n  outline-offset: 2px;\n}\n.grm-header {\n  padding: 24px 24px 16px;\n  border-bottom: 1px solid var(--border);\n  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n}\n.grm-header h2 {\n  margin-bottom: 4px;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n  letter-spacing: -.02em;\n}\n.grm-subtitle {\n  margin-bottom: 16px;\n  color: var(--muted);\n}\n.grm-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.grm-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  min-height: 32px;\n  padding: 4px 10px;\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  background: var(--surface);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  font-variant-numeric: tabular-nums;\n}\n.grm-pill strong {\n  color: var(--ink);\n  font-weight: 700;\n}\n.grm-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 8px;\n  padding: 16px 24px;\n  border-bottom: 1px solid var(--border);\n}\n.grm-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  min-height: 44px;\n  padding: 11px 16px;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  cursor: pointer;\n  font-weight: 650;\n  line-height: 1.2;\n  white-space: nowrap;\n  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;\n}\n.grm-button:hover {\n  box-shadow: 0 2px 5px rgba(15, 23, 42, .12);\n  transform: translateY(-1px);\n}\n.grm-button:active {\n  transform: translateY(0);\n}\n.grm-button-primary {\n  background: var(--accent);\n  color: #ffffff;\n}\n.grm-button-primary:hover {\n  background: var(--accent-hover);\n}\n.grm-button-secondary {\n  border-color: #cbd5e1;\n  background: var(--surface);\n  color: var(--ink);\n}\n.grm-button-secondary:hover {\n  background: var(--tint);\n}\n.grm-button svg {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 auto;\n  stroke: currentColor;\n}\n.grm-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 24px;\n  padding: 24px;\n  background: var(--tint);\n  border-bottom: 1px solid var(--border);\n}\n.grm-panel {\n  min-width: 0;\n  padding: 20px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);\n}\n.grm-panel h3,\n.grm-section-title {\n  margin-bottom: 16px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.grm-fields {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));\n  gap: 16px;\n  align-items: start;\n}\n.grm-field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n  min-width: 0;\n}\n.grm-label,\n.grm-legend-label {\n  display: block;\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.grm-control {\n  width: 100%;\n  min-height: 44px;\n  padding: 9px 12px;\n  border: 1px solid #94a3b8;\n  border-radius: 6px;\n  background: #ffffff;\n  color: var(--ink);\n  font-size: 15px;\n  line-height: 1.4;\n  font-variant-numeric: tabular-nums;\n  transition: border-color .15s ease, box-shadow .15s ease;\n}\n.grm-control:hover {\n  border-color: #64748b;\n}\n.grm-control:focus {\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(29, 78, 216, .14);\n  outline: none;\n}\n.grm-control[aria-invalid=\"true\"] {\n  border-color: #b91c1c;\n  box-shadow: 0 0 0 3px rgba(185, 28, 28, .12);\n}\n.grm-help,\n.grm-error,\n.grm-caption,\n.grm-note {\n  font-size: 13px;\n  font-weight: 500;\n  line-height: 1.5;\n}\n.grm-help,\n.grm-caption {\n  color: var(--muted);\n}\n.grm-error {\n  min-height: 20px;\n  color: #991b1b;\n}\n.grm-fieldset {\n  margin: 16px 0 0;\n  padding: 0;\n  border: 0;\n}\n.grm-segmented {\n  display: inline-grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  width: 100%;\n  max-width: 360px;\n  padding: 3px;\n  border: 1px solid #94a3b8;\n  border-radius: 6px;\n  background: var(--tint);\n}\n.grm-segmented input {\n  position: absolute;\n  opacity: 0;\n  pointer-events: none;\n}\n.grm-segmented label {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 38px;\n  padding: 7px 10px;\n  border-radius: 4px;\n  color: var(--muted);\n  cursor: pointer;\n  font-size: 14px;\n  font-weight: 600;\n  text-align: center;\n}\n.grm-segmented input:checked + label {\n  background: var(--surface);\n  color: var(--primary);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .12);\n}\n.grm-segmented input:focus-visible + label {\n  outline: 3px solid rgba(29, 78, 216, .34);\n  outline-offset: 1px;\n}\n.grm-formula {\n  margin-top: 16px;\n  padding: 12px;\n  border: 1px solid #bfdbfe;\n  border-radius: 6px;\n  background: #eff6ff;\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 600;\n  text-align: center;\n  font-variant-numeric: tabular-nums;\n}\n.grm-results-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));\n  gap: 12px;\n}\n.grm-result-primary {\n  grid-column: 1 \/ -1;\n  padding: 16px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.grm-result-label {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.grm-result-main {\n  margin-top: 2px;\n  color: #1e3a8a;\n  font-size: 30px;\n  line-height: 1.2;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.grm-result-interpretation {\n  margin: 6px 0 0;\n  color: #334155;\n  font-size: 13px;\n  font-weight: 500;\n}\n.grm-result-card {\n  padding: 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--surface);\n}\n.grm-result-value {\n  margin-top: 2px;\n  font-size: 20px;\n  line-height: 1.25;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.grm-status {\n  margin-top: 12px;\n  padding: 10px 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.grm-chart-section,\n.grm-table-section,\n.grm-education {\n  padding: 24px;\n  border-bottom: 1px solid var(--border);\n}\n.grm-chart-card {\n  padding: 20px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n}\n.grm-chart-heading {\n  margin-bottom: 4px;\n}\n.grm-chart-intro {\n  margin-bottom: 16px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.grm-chart-cluster {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 20px;\n  align-items: center;\n  max-width: 920px;\n  margin: 0 auto;\n}\n.grm-plot-wrap {\n  width: 100%;\n  min-width: 0;\n}\n.grm-chart-svg {\n  display: block;\n  width: 100%;\n  height: auto;\n  min-height: 280px;\n  max-height: 360px;\n  background: transparent;\n}\n.grm-chart-svg text {\n  fill: var(--muted);\n  font-family: inherit;\n  font-size: 13px;\n  font-weight: 500;\n}\n.grm-chart-svg .grm-axis-title {\n  fill: var(--ink);\n  font-weight: 600;\n}\n.grm-legend {\n  display: grid;\n  gap: 10px;\n  align-content: center;\n}\n.grm-legend-row {\n  display: grid;\n  grid-template-columns: 12px minmax(0, auto) minmax(80px, auto);\n  justify-content: start;\n  align-items: center;\n  gap: 10px;\n  width: fit-content;\n  max-width: 100%;\n  color: var(--ink);\n  font-size: 13px;\n  font-weight: 500;\n  font-variant-numeric: tabular-nums;\n}\n.grm-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n}\n.grm-legend-value {\n  font-weight: 700;\n  white-space: nowrap;\n}\n.grm-chart-callout,\n.grm-table-note {\n  margin-top: 16px;\n  padding: 10px 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  line-height: 1.5;\n}\n.grm-chart-empty[hidden],\n.grm-chart-content[hidden] {\n  display: none;\n}\n.grm-chart-empty {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 92px;\n  padding: 16px;\n  border: 1px dashed #94a3b8;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  text-align: center;\n}\n.grm-chart-summary {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n.grm-safe-stack .grm-chart-cluster {\n  grid-template-columns: minmax(0, 1fr) !important;\n  gap: 20px !important;\n  max-width: 720px;\n}\n.grm-safe-stack .grm-legend {\n  margin-top: 0;\n}\n.grm-safe-stack .grm-chart-callout {\n  margin-top: 20px;\n}\n.grm-table-wrap {\n  width: 100%;\n  overflow-x: auto;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--surface);\n}\n.grm-table {\n  width: 100%;\n  min-width: 680px;\n  border-collapse: collapse;\n  font-size: 14px;\n  font-variant-numeric: tabular-nums;\n}\n.grm-table th,\n.grm-table td {\n  padding: 11px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: right;\n  vertical-align: middle;\n}\n.grm-table th:first-child,\n.grm-table td:first-child {\n  text-align: left;\n}\n.grm-table th {\n  background: #172554;\n  color: #ffffff;\n  font-size: 13px;\n  font-weight: 700;\n  white-space: nowrap;\n}\n.grm-table tbody tr:hover {\n  background: #fafafa;\n}\n.grm-table tbody tr:last-child td {\n  border-bottom: 0;\n}\n.grm-table .grm-current-row {\n  background: #eff6ff;\n  font-weight: 700;\n}\n.grm-safe-table-stack .grm-table-note {\n  margin-top: 20px;\n}\n.grm-education {\n  border-bottom: 0;\n}\n.grm-education-inner {\n  max-width: 900px;\n}\n.grm-education h2 {\n  margin: 28px 0 10px;\n  font-size: 20px;\n  line-height: 1.35;\n  font-weight: 700;\n}\n.grm-education h2:first-child {\n  margin-top: 0;\n}\n.grm-education h3 {\n  margin: 18px 0 6px;\n  font-size: 17px;\n  line-height: 1.4;\n  font-weight: 650;\n}\n.grm-education p,\n.grm-education li {\n  color: #334155;\n}\n.grm-education ul {\n  margin: 8px 0 16px;\n  padding-left: 22px;\n}\n.grm-education a {\n  color: var(--primary);\n  font-weight: 600;\n  text-decoration: underline;\n  text-underline-offset: 2px;\n}\n.grm-education a:hover {\n  color: #1e3a8a;\n}\n.grm-disclaimer {\n  margin-top: 24px;\n  padding: 12px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n@container (min-width: 640px) {\n  .grm-chart-cluster {\n    grid-template-columns: minmax(360px, 1.35fr) minmax(230px, .65fr);\n    gap: 24px;\n    align-items: end;\n  }\n}\n@container (min-width: 900px) {\n  .grm-workspace {\n    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  }\n}\n@container (max-width: 639px) {\n  .grm-header,\n  .grm-toolbar,\n  .grm-workspace,\n  .grm-chart-section,\n  .grm-table-section,\n  .grm-education {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n  .grm-panel,\n  .grm-chart-card {\n    padding: 16px;\n  }\n  .grm-button {\n    flex: 1 1 auto;\n  }\n  .grm-button-primary {\n    flex-basis: 100%;\n  }\n  .grm-chart-svg {\n    min-height: 250px;\n  }\n  .grm-legend-row {\n    grid-template-columns: 12px minmax(0, auto);\n  }\n  .grm-legend-value {\n    grid-column: 2;\n  }\n  .grm-chart-callout,\n  .grm-table-note {\n    margin-top: 16px;\n  }\n}\n@container (max-width: 380px) {\n  .grm-header {\n    padding-top: 20px;\n  }\n  .grm-toolbar {\n    gap: 8px;\n  }\n  .grm-button {\n    width: 100%;\n  }\n  .grm-result-main {\n    font-size: 27px;\n  }\n  .grm-table {\n    min-width: 620px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"grm-calculator\" data-calculator-root\u003e\n  \u003csection class=\"grm-header\"\u003e\n    \u003ch2\u003eGross Rent Multiplier Calculator\u003c\/h2\u003e\n    \u003cp class=\"grm-subtitle\"\u003eEstimate a property's gross rent multiplier, compare its rent profile with target benchmarks, and export the current analysis to Excel.\u003c\/p\u003e\n    \u003cdiv class=\"grm-pills\" aria-label=\"Live calculator summary\"\u003e\n      \u003cspan class=\"grm-pill\"\u003eGRM \u003cstrong class=\"grm-pill-grm\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"grm-pill\"\u003eAnnual rent \u003cstrong class=\"grm-pill-rent\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"grm-pill\"\u003eRent-to-price \u003cstrong class=\"grm-pill-yield\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"grm-pill\"\u003eTarget gap \u003cstrong class=\"grm-pill-gap\"\u003e—\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"grm-toolbar\" role=\"toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"grm-button grm-button-primary grm-download\" type=\"button\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3v11m0 0 4-4m-4 4-4-4M5 19h14\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"grm-button grm-button-secondary grm-reset\" type=\"button\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 4v6h6M20 20v-6h-6M6.5 17.5A8 8 0 0 0 19 13M17.5 6.5A8 8 0 0 0 5 11\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eReset\u003c\/span\u003e\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"grm-workspace\"\u003e\n    \u003csection class=\"grm-panel\" aria-labelledby=\"grm-inputs-title\"\u003e\n      \u003ch3 id=\"grm-inputs-title\"\u003eProperty assumptions\u003c\/h3\u003e\n      \u003cdiv class=\"grm-fields\"\u003e\n        \u003cdiv class=\"grm-field\"\u003e\n          \u003clabel class=\"grm-label\" for=\"grm-property-price\"\u003eProperty price\u003c\/label\u003e\n          \u003cinput class=\"grm-control grm-currency\" id=\"grm-property-price\" name=\"grm-property-price\" type=\"text\" inputmode=\"decimal\" value=\"$1,000,000.00\" aria-describedby=\"grm-property-price-help grm-property-price-error\"\u003e\n          \u003cdiv class=\"grm-help\" id=\"grm-property-price-help\"\u003eUse the asking price or current market value.\u003c\/div\u003e\n          \u003cdiv class=\"grm-error\" id=\"grm-property-price-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-field\"\u003e\n          \u003clabel class=\"grm-label\" for=\"grm-gross-rent\"\u003eGross rental income\u003c\/label\u003e\n          \u003cinput class=\"grm-control grm-currency\" id=\"grm-gross-rent\" name=\"grm-gross-rent\" type=\"text\" inputmode=\"decimal\" value=\"$85,000.00\" aria-describedby=\"grm-gross-rent-help grm-gross-rent-error\"\u003e\n          \u003cdiv class=\"grm-help\" id=\"grm-gross-rent-help\"\u003eEnter rent before vacancy, taxes, insurance, repairs, or management costs.\u003c\/div\u003e\n          \u003cdiv class=\"grm-error\" id=\"grm-gross-rent-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-field\"\u003e\n          \u003clabel class=\"grm-label\" for=\"grm-target-grm\"\u003eTarget GRM\u003c\/label\u003e\n          \u003cinput class=\"grm-control grm-number\" id=\"grm-target-grm\" name=\"grm-target-grm\" type=\"text\" inputmode=\"decimal\" value=\"10.00\" aria-describedby=\"grm-target-grm-help grm-target-grm-error\"\u003e\n          \u003cdiv class=\"grm-help\" id=\"grm-target-grm-help\"\u003eOptional comparison benchmark for implied value and required rent.\u003c\/div\u003e\n          \u003cdiv class=\"grm-error\" id=\"grm-target-grm-error\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cfieldset class=\"grm-fieldset\"\u003e\n        \u003clegend class=\"grm-legend-label\"\u003eRental income period\u003c\/legend\u003e\n        \u003cdiv class=\"grm-segmented\"\u003e\n          \u003cinput id=\"grm-period-annual\" name=\"grm-rent-period\" type=\"radio\" value=\"annual\" checked\u003e\n          \u003clabel for=\"grm-period-annual\"\u003eAnnual\u003c\/label\u003e\n          \u003cinput id=\"grm-period-monthly\" name=\"grm-rent-period\" type=\"radio\" value=\"monthly\"\u003e\n          \u003clabel for=\"grm-period-monthly\"\u003eMonthly\u003c\/label\u003e\n        \u003c\/div\u003e\n      \u003c\/fieldset\u003e\n      \u003cdiv class=\"grm-formula\" aria-label=\"Gross rent multiplier formula\"\u003eGRM = property price ÷ annual gross rental income\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"grm-panel\" aria-labelledby=\"grm-results-title\"\u003e\n      \u003ch3 id=\"grm-results-title\"\u003eLive results\u003c\/h3\u003e\n      \u003cdiv class=\"grm-results-grid\"\u003e\n        \u003cdiv class=\"grm-result-primary\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eGross rent multiplier\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-main grm-result-grm\"\u003e—\u003c\/div\u003e\n          \u003cp class=\"grm-result-interpretation grm-result-text\"\u003eEnter a positive property price and gross rent to calculate GRM.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-result-card\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eAnnual gross rent\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-value grm-result-annual\"\u003e—\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-result-card\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eMonthly gross rent\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-value grm-result-monthly\"\u003e—\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-result-card\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eGross rent-to-price ratio\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-value grm-result-yield\"\u003e—\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-result-card\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eImplied value at target GRM\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-value grm-result-implied\"\u003e—\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-result-card\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eRent required at target GRM\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-value grm-result-required\"\u003e—\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-result-card\"\u003e\n          \u003cdiv class=\"grm-result-label\"\u003eAnnual rent gap to target\u003c\/div\u003e\n          \u003cdiv class=\"grm-result-value grm-result-gap\"\u003e—\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"grm-status\" aria-live=\"polite\"\u003eCurrent result: GRM 11.76 based on $1,000,000.00 property price and $85,000.00 annual gross rent.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"grm-chart-section\" aria-labelledby=\"grm-chart-title\"\u003e\n    \u003cdiv class=\"grm-chart-card\" data-chart-card\u003e\n      \u003ch3 class=\"grm-section-title grm-chart-heading\" id=\"grm-chart-title\"\u003eAnnual rent comparison\u003c\/h3\u003e\n      \u003cp class=\"grm-chart-intro\"\u003eCompare the property's current annual gross rent with the rent needed to reach selected GRM benchmarks.\u003c\/p\u003e\n      \u003cdiv class=\"grm-chart-empty\" hidden\u003eEnter a property price or gross rent to see the comparison.\u003c\/div\u003e\n      \u003cdiv class=\"grm-chart-content\"\u003e\n        \u003cdiv class=\"grm-chart-cluster\"\u003e\n          \u003cdiv class=\"grm-plot-wrap\"\u003e\n            \u003csvg class=\"grm-chart-svg\" viewbox=\"0 0 640 340\" role=\"img\" aria-labelledby=\"grm-chart-title grm-chart-summary\"\u003e\u003c\/svg\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"grm-legend\" aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"grm-chart-callout\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"grm-chart-summary\" id=\"grm-chart-summary\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"grm-table-section\" aria-labelledby=\"grm-table-title\" data-table-card\u003e\n    \u003ch3 class=\"grm-section-title\" id=\"grm-table-title\"\u003eGRM benchmark table\u003c\/h3\u003e\n    \u003cdiv class=\"grm-table-wrap\"\u003e\n      \u003ctable class=\"grm-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth scope=\"col\"\u003eScenario\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eGRM\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eAnnual rent needed\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eMonthly rent needed\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eImplied value at current rent\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eRent gap vs. current\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody class=\"grm-table-body\"\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"grm-table-note\"\u003eThe benchmark rows are screening scenarios, not market forecasts. Compare properties in similar locations and condition, then review operating expenses, vacancy, financing, and capital needs separately.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"grm-education\"\u003e\n    \u003cdiv class=\"grm-education-inner\"\u003e\n      \u003ch2\u003eWhat does the gross rent multiplier estimate?\u003c\/h2\u003e\n      \u003cp\u003eThe gross rent multiplier, usually shortened to GRM, compares a rental property's price with its gross annual rental income. It is a fast screening ratio rather than a complete return calculation. A GRM of 10 means the property price equals ten times one year of gross rent. The calculator divides property price by annual gross rent, then derives monthly rent, the gross rent-to-price ratio, and target-based comparison values from the same inputs.\u003c\/p\u003e\n      \u003cp\u003eGRM is most useful when comparing similar properties in the same market. A lower value generally means more gross rent relative to price, while a higher value means less gross rent relative to price. However, the ratio does not subtract vacancy, repairs, utilities, insurance, property taxes, management fees, financing costs, or major capital expenditures. Those omissions make GRM quick and consistent, but unsuitable as a stand-alone investment decision.\u003c\/p\u003e\n\n      \u003ch2\u003eHow should each input be used?\u003c\/h2\u003e\n      \u003ch3\u003eProperty price\u003c\/h3\u003e\n      \u003cp\u003eEnter the asking price, purchase price under consideration, or a credible current market value in U.S. dollars. This field is required for the main ratio. A higher price raises GRM when rent is unchanged; a lower price reduces it. Avoid mixing a future renovated value with today's rent unless the comparison is explicitly a stabilized scenario. Also avoid including closing costs or loan interest in this field, because GRM conventionally uses property value rather than total cash invested.\u003c\/p\u003e\n      \u003ch3\u003eGross rental income\u003c\/h3\u003e\n      \u003cp\u003eEnter rent collected before operating expenses. Include all recurring rental payments from every unit, but exclude refundable deposits and one-time reimbursements. Choose Annual when the figure covers twelve months, or Monthly when it represents one month. The calculator converts monthly rent to annual rent by multiplying by twelve and converts annual rent to monthly rent by dividing by twelve. Increasing rent lowers GRM and raises the gross rent-to-price ratio. Use realistic occupied rent rather than an unsupported best-case asking rent.\u003c\/p\u003e\n      \u003ch3\u003eTarget GRM\u003c\/h3\u003e\n      \u003cp\u003eThe target is an optional benchmark for scenario analysis. It does not change the property's current GRM. Instead, it calculates the property value implied by current rent at that target and the annual rent required for the current price to meet that target. A lower target requires more rent or a lower price. A higher target requires less rent or allows a higher implied price. Use a benchmark drawn from comparable local properties, not a universal rule.\u003c\/p\u003e\n\n      \u003ch2\u003eHow are the results calculated and interpreted?\u003c\/h2\u003e\n      \u003cp\u003eThe main formula is \u003cstrong\u003eproperty price divided by annual gross rent\u003c\/strong\u003e. With a $1,000,000 price and $85,000 annual rent, the GRM is approximately 11.76. The reciprocal relationship is shown as the gross rent-to-price ratio: annual rent divided by property price. In this example, that ratio is 8.50%. It is a gross income ratio, not a cap rate, because no expenses are deducted.\u003c\/p\u003e\n      \u003cp\u003eThe annual and monthly rent results simply restate the same income assumption in both periods. The implied value at target GRM multiplies annual rent by the chosen target. The rent required at target GRM divides property price by the target. The annual rent gap subtracts required rent from current annual rent. A positive gap means current rent is above the amount required to hit the target; a negative gap means rent would need to rise, price would need to fall, or both.\u003c\/p\u003e\n      \u003cp\u003eThe chart compares current annual rent with three screening levels: the selected target plus GRM 8 and GRM 12 benchmarks. Taller bars represent more annual rent required for the same property price. The accompanying legend and accessible summary use the exact same model values. The benchmark table expands the comparison by showing monthly rent needs and the property value implied by current rent at each GRM.\u003c\/p\u003e\n\n      \u003ch2\u003eWhat inputs matter most, and what mistakes should be avoided?\u003c\/h2\u003e\n      \u003cp\u003ePrice and rent have a direct inverse relationship in the formula, so even small changes can materially alter GRM. Confirm whether advertised rent is monthly or annual, whether all units are currently leased, and whether concessions or delinquency reduce actual collections. Do not compare a newly renovated property with a distressed building solely on GRM, because their maintenance and capital needs can be very different.\u003c\/p\u003e\n      \u003cul\u003e\n        \u003cli\u003eDo not treat GRM as a payback period. Gross rent is not the same as cash available to repay the purchase price.\u003c\/li\u003e\n        \u003cli\u003eDo not compare different cities or property types without adjusting for local rent levels, taxes, insurance, and condition.\u003c\/li\u003e\n        \u003cli\u003eDo not substitute scheduled rent for collectible rent when vacancy or concessions are material.\u003c\/li\u003e\n        \u003cli\u003eDo not use a low GRM to overlook deferred maintenance, legal restrictions, or unusually high operating costs.\u003c\/li\u003e\n      \u003c\/ul\u003e\n\n      \u003ch2\u003eWhat should be reviewed after GRM?\u003c\/h2\u003e\n      \u003cp\u003eAfter screening properties, build a fuller operating model that estimates vacancy, effective gross income, operating expenses, net operating income, debt service, capital expenditures, and cash reserves. The \u003ca href=\"https:\/\/www.irs.gov\/taxtopics\/tc414\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eIRS overview of rental income and expenses\u003c\/a\u003e explains common tax categories, while \u003ca href=\"https:\/\/www.huduser.gov\/portal\/datasets\/fmr.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHUD Fair Market Rent data\u003c\/a\u003e can provide a broad rent reference for U.S. markets. For transaction and market context, the \u003ca href=\"https:\/\/www.nar.realtor\/research-and-statistics\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eNational Association of Realtors research portal\u003c\/a\u003e publishes housing statistics and reports.\u003c\/p\u003e\n      \u003cp\u003eUse GRM as a first-pass comparison, then verify lease terms, occupancy, expenses, zoning, financing, and physical condition before relying on the result. A property can have an attractive GRM and still produce weak cash flow after costs. Conversely, a higher-GRM property may justify its price through stronger location, lower operating risk, better tenants, or superior long-term condition.\u003c\/p\u003e\n      \u003cdiv class=\"grm-disclaimer\"\u003eThis calculator provides general educational estimates and does not constitute financial, tax, legal, appraisal, or investment advice.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909484126451,"sku":"gross-rent-multiplier","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/gross-rent-multiplier.webp?v=1783935436","url":"https:\/\/financialmodelslab.com\/products\/gross-rent-multiplier","provider":"Financial Models Lab","version":"1.0","type":"link"}