{"product_id":"adr","title":"ADR Calculator","description":"\u003cstyle\u003e\n.adr-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  container-type: inline-size;\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.55;\n  margin: 0 auto;\n  max-width: 1200px;\n  overflow: visible;\n  padding: 24px;\n  width: 100%;\n}\n.adr-calculator,\n.adr-calculator *,\n.adr-calculator *::before,\n.adr-calculator *::after { box-sizing: border-box; }\n.adr-calculator * { min-width: 0; }\n.adr-calculator h2,\n.adr-calculator h3,\n.adr-calculator p { margin-top: 0; }\n.adr-calculator h2 { font-size: 24px; font-weight: 700; line-height: 1.25; margin-bottom: 8px; }\n.adr-calculator h3 { font-size: 18px; font-weight: 650; line-height: 1.35; margin-bottom: 12px; }\n.adr-calculator p { margin-bottom: 16px; }\n.adr-calculator a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: 2px; }\n.adr-calculator a:hover { text-decoration-thickness: 2px; }\n.adr-calculator button,\n.adr-calculator input,\n.adr-calculator select { font: inherit; }\n.adr-calculator button { cursor: pointer; }\n.adr-calculator button:focus-visible,\n.adr-calculator input:focus-visible,\n.adr-calculator select:focus-visible,\n.adr-calculator summary:focus-visible,\n.adr-calculator a:focus-visible { outline: 3px solid rgba(29,78,216,.35); outline-offset: 2px; }\n.adr-calculator .adr-header { border-bottom: 1px solid var(--border); padding-bottom: 16px; }\n.adr-calculator .adr-subtitle { color: var(--muted); margin-bottom: 16px; max-width: 780px; }\n.adr-calculator .adr-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.adr-calculator .adr-pill { align-items: center; background: var(--tint); border: 1px solid var(--border); border-radius: 999px; color: var(--muted); display: inline-flex; font-size: 13px; font-weight: 500; gap: 8px; line-height: 1.25; padding: 6px 10px; }\n.adr-calculator .adr-pill strong { color: var(--ink); font-variant-numeric: tabular-nums; }\n.adr-calculator .adr-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 0 24px; }\n.adr-calculator .adr-button { align-items: center; border: 1px solid transparent; border-radius: 6px; display: inline-flex; font-size: 15px; font-weight: 650; gap: 10px; justify-content: center; line-height: 1.2; min-height: 46px; padding: 12px 18px; text-decoration: none; white-space: nowrap; }\n.adr-calculator .adr-download { background: var(--accent); color: #ffffff; }\n.adr-calculator .adr-download:hover { background: var(--accent-hover); box-shadow: 0 2px 6px rgba(15,23,42,.14); }\n.adr-calculator .adr-download:active { background: #7c2d12; }\n.adr-calculator .adr-secondary { background: var(--surface); border-color: #cbd5e1; color: var(--ink); }\n.adr-calculator .adr-secondary:hover { background: var(--tint); border-color: #94a3b8; }\n.adr-calculator .adr-button svg { flex: 0 0 18px; height: 18px; width: 18px; }\n.adr-calculator .adr-workspace { align-items: start; display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }\n.adr-calculator .adr-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 1px 2px rgba(15,23,42,.06); padding: 20px; }\n.adr-calculator .adr-panel-intro { color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 16px; }\n.adr-calculator .adr-section-label { color: var(--primary); font-size: 13px; font-weight: 700; letter-spacing: .04em; margin-bottom: 4px; text-transform: uppercase; }\n.adr-calculator .adr-fields { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }\n.adr-calculator .adr-field { display: flex; flex-direction: column; min-width: 0; }\n.adr-calculator .adr-label { color: var(--ink); display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }\n.adr-calculator .adr-control { background: var(--surface); border: 1px solid #94a3b8; border-radius: 6px; color: var(--ink); font-size: 15px; font-weight: 400; height: 44px; line-height: 1.2; padding: 10px 12px; width: 100%; }\n.adr-calculator .adr-control:hover { border-color: #64748b; }\n.adr-calculator .adr-help { color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.4; margin: 6px 0 0; min-height: 36px; }\n.adr-calculator .adr-error { color: #b91c1c; font-size: 13px; font-weight: 600; line-height: 1.35; margin-top: 6px; min-height: 18px; }\n.adr-calculator .adr-field[aria-invalid=\"true\"] .adr-control { border-color: #b91c1c; box-shadow: 0 0 0 1px #b91c1c; }\n.adr-calculator .adr-divider { border: 0; border-top: 1px solid var(--border); margin: 20px 0; }\n.adr-calculator .adr-results { background: var(--tint); }\n.adr-calculator .adr-primary-result { background: var(--surface); border: 1px solid #bfdbfe; border-left: 4px solid var(--primary); border-radius: 6px; padding: 16px; }\n.adr-calculator .adr-result-label { color: var(--muted); font-size: 13px; font-weight: 600; margin-bottom: 4px; }\n.adr-calculator .adr-result-value { color: var(--ink); font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.15; overflow-wrap: anywhere; }\n.adr-calculator .adr-result-note { color: var(--muted); font-size: 13px; font-weight: 500; margin: 6px 0 0; }\n.adr-calculator .adr-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); margin-top: 16px; }\n.adr-calculator .adr-result-card { background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 12px; }\n.adr-calculator .adr-card-label { color: var(--muted); font-size: 13px; font-weight: 600; line-height: 1.35; margin-bottom: 4px; }\n.adr-calculator .adr-card-value { color: var(--ink); font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.25; overflow-wrap: anywhere; }\n.adr-calculator .adr-formula { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 6px; color: #1e3a8a; font-size: 13px; font-weight: 600; margin-top: 16px; padding: 10px 12px; }\n.adr-calculator .adr-live { color: transparent; font-size: 0; line-height: 0; clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }\n.adr-calculator .adr-breakdown,\n.adr-calculator .adr-chart,\n.adr-calculator .adr-table,\n.adr-calculator .adr-education { margin-top: 24px; }\n.adr-calculator .adr-snapshot-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }\n.adr-calculator .adr-snapshot-item { border: 1px solid var(--border); border-radius: 6px; padding: 14px; }\n.adr-calculator .adr-snapshot-item strong { display: block; font-size: 20px; font-variant-numeric: tabular-nums; line-height: 1.25; margin-top: 3px; overflow-wrap: anywhere; }\n.adr-calculator .adr-snapshot-item span { color: var(--muted); font-size: 13px; font-weight: 600; }\n.adr-calculator .adr-chart-card { display: flex; flex-direction: column; gap: 16px; }\n.adr-calculator .adr-chart-head { display: block; }\n.adr-calculator .adr-chart-head p { color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 0; }\n.adr-calculator .adr-chart-cluster { align-items: center; display: grid; gap: 24px; grid-template-columns: minmax(0, 520px) minmax(240px, 360px); justify-content: center; margin: 0 auto; max-width: 920px; width: 100%; }\n.adr-calculator .adr-plot-wrap { min-width: 0; width: 100%; }\n.adr-calculator .adr-svg { display: block; height: auto; max-width: 100%; width: 100%; }\n.adr-calculator .adr-chart-empty { background: var(--tint); border: 1px dashed #94a3b8; border-radius: 6px; color: var(--muted); font-size: 13px; font-weight: 600; padding: 16px; text-align: center; }\n.adr-calculator .adr-legend { display: grid; gap: 10px; min-width: 0; }\n.adr-calculator .adr-legend-row { align-items: center; display: grid; font-size: 13px; font-weight: 500; gap: 8px 12px; grid-template-columns: 12px minmax(0, max-content) max-content; justify-content: start; }\n.adr-calculator .adr-swatch { border-radius: 2px; height: 12px; width: 12px; }\n.adr-calculator .adr-legend-name { color: var(--muted); overflow-wrap: anywhere; }\n.adr-calculator .adr-legend-value { color: var(--ink); font-variant-numeric: tabular-nums; font-weight: 700; }\n.adr-calculator .adr-chart-summary { border-collapse: collapse; font-size: 13px; margin-top: 12px; width: 100%; }\n.adr-calculator .adr-chart-summary th,\n.adr-calculator .adr-chart-summary td { border-bottom: 1px solid var(--border); padding: 7px 6px; text-align: left; }\n.adr-calculator .adr-chart-summary th { color: var(--muted); font-weight: 600; }\n.adr-calculator .adr-chart-summary td:last-child { font-variant-numeric: tabular-nums; font-weight: 700; text-align: right; }\n.adr-calculator .adr-chart-callout { background: var(--tint); border: 1px solid var(--border); border-radius: 6px; color: var(--muted); font-size: 13px; font-weight: 500; margin-top: 16px; padding: 10px 12px; }\n.adr-calculator .adr-safe-stack .adr-chart-cluster { grid-template-columns: minmax(0, 560px); row-gap: 20px; }\n.adr-calculator .adr-safe-stack .adr-legend { margin-top: 0; }\n.adr-calculator .adr-safe-stack .adr-chart-callout { margin-top: 20px; }\n.adr-calculator .adr-table-overflow { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; width: 100%; }\n.adr-calculator .adr-data-table { border-collapse: separate; border-spacing: 0; font-size: 13px; min-width: 760px; width: 100%; }\n.adr-calculator .adr-data-table th,\n.adr-calculator .adr-data-table td { border-bottom: 1px solid var(--border); padding: 10px 12px; text-align: left; vertical-align: top; }\n.adr-calculator .adr-data-table th { background: #e2e8f0; color: var(--ink); font-weight: 700; white-space: nowrap; }\n.adr-calculator .adr-data-table th:first-child { border-top-left-radius: 6px; }\n.adr-calculator .adr-data-table th:last-child { border-top-right-radius: 6px; }\n.adr-calculator .adr-data-table td.adr-num { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }\n.adr-calculator .adr-data-table tbody tr:hover td { background: var(--tint); }\n.adr-calculator .adr-table-note { background: var(--tint); border: 1px solid var(--border); border-radius: 6px; color: var(--muted); font-size: 13px; font-weight: 500; margin-top: 16px; padding: 10px 12px; }\n.adr-calculator .adr-safe-table-stack .adr-table-note { margin-top: 20px; }\n.adr-calculator .adr-education { border-top: 1px solid var(--border); padding-top: 24px; }\n.adr-calculator .adr-education-grid { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }\n.adr-calculator .adr-education section { min-width: 0; }\n.adr-calculator .adr-education ul { margin: 0 0 16px; padding-left: 22px; }\n.adr-calculator .adr-education li { margin-bottom: 8px; }\n.adr-calculator .adr-equation { background: var(--tint); border-left: 4px solid var(--primary); border-radius: 0 6px 6px 0; font-size: 15px; font-weight: 700; margin: 16px 0; padding: 12px 16px; }\n.adr-calculator .adr-disclaimer { color: var(--muted); font-size: 13px; font-weight: 500; }\n@container (min-width: 900px) {\n  .adr-calculator .adr-workspace { grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); }\n  .adr-calculator .adr-education-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n}\n@container (max-width: 639px) {\n  .adr-calculator .adr-chart-cluster { align-items: start; grid-template-columns: minmax(0, 1fr); row-gap: 20px; }\n  .adr-calculator .adr-legend { justify-content: center; }\n  .adr-calculator .adr-toolbar { align-items: stretch; flex-direction: column; }\n  .adr-calculator .adr-button { width: 100%; }\n  .adr-calculator .adr-fields { grid-template-columns: minmax(0, 1fr); }\n}\n@media (max-width: 899px) {\n  .adr-calculator .adr-chart-cluster { align-items: start; grid-template-columns: minmax(0, 560px); row-gap: 20px; }\n}\n@media (max-width: 639px) {\n  .adr-calculator { padding: 16px; }\n  .adr-calculator .adr-panel { padding: 16px; }\n  .adr-calculator .adr-toolbar { align-items: stretch; flex-direction: column; }\n  .adr-calculator .adr-button { width: 100%; }\n  .adr-calculator .adr-fields { grid-template-columns: minmax(0, 1fr); }\n  .adr-calculator .adr-chart-cluster { grid-template-columns: minmax(0, 1fr); }\n  .adr-calculator .adr-legend { justify-content: start; }\n  .adr-calculator .adr-result-value { font-size: 27px; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"adr-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"adr-header\"\u003e\n    \u003ch2\u003eAverage Daily Rate (ADR) Calculator\u003c\/h2\u003e\n    \u003cp class=\"adr-subtitle\"\u003eCalculate room revenue earned per paid room sold, compare it with a property-level estimate, and test how pricing or room-volume changes affect the result.\u003c\/p\u003e\n    \u003cdiv class=\"adr-pills\" aria-label=\"Live calculator summary\"\u003e\n      \u003cspan class=\"adr-pill\"\u003eActual ADR \u003cstrong data-adr-pill=\"actual\"\u003e$0.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"adr-pill\"\u003eEstimated ADR \u003cstrong data-adr-pill=\"estimated\"\u003e$0.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"adr-pill\"\u003eDifference \u003cstrong data-adr-pill=\"difference\"\u003e$0.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"adr-pill\"\u003eRooms sold \u003cstrong data-adr-pill=\"rooms\"\u003e0\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"adr-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"adr-button adr-download\" type=\"button\" data-adr-action=\"download\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\u003e\u003cpath fill=\"currentColor\" d=\"M5 20h14v-2H5v2zm7-18a1 1 0 0 0-1 1v9.17L7.41 8.59 6 10l6 6 6-6-1.41-1.41L13 12.17V3a1 1 0 0 0-1-1z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"adr-button adr-secondary\" type=\"button\" data-adr-action=\"reset\"\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"adr-workspace\"\u003e\n    \u003csection class=\"adr-panel adr-inputs\" aria-labelledby=\"adr-input-heading\"\u003e\n      \u003cdiv class=\"adr-section-label\"\u003eInputs\u003c\/div\u003e\n      \u003ch3 id=\"adr-input-heading\"\u003eRoom revenue and inventory\u003c\/h3\u003e\n      \u003cp class=\"adr-panel-intro\"\u003eUse revenue and rooms sold from the same reporting period. Only paid room revenue and paid room-nights belong in the core ADR formula.\u003c\/p\u003e\n\n      \u003cdiv class=\"adr-fields\"\u003e\n        \u003cdiv class=\"adr-field\" data-adr-field=\"revenue\"\u003e\n          \u003clabel class=\"adr-label\" for=\"adr-revenue\"\u003eRooms revenue earned\u003c\/label\u003e\n          \u003cinput class=\"adr-control\" id=\"adr-revenue\" data-adr-input=\"revenue\" type=\"text\" inputmode=\"decimal\" value=\"$2,558,000.00\" aria-describedby=\"adr-revenue-help adr-revenue-error\"\u003e\n          \u003cp class=\"adr-help\" id=\"adr-revenue-help\"\u003eRoom-only revenue for the selected period.\u003c\/p\u003e\n          \u003cdiv class=\"adr-error\" id=\"adr-revenue-error\" data-adr-error=\"revenue\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-field\" data-adr-field=\"roomsSold\"\u003e\n          \u003clabel class=\"adr-label\" for=\"adr-rooms-sold\"\u003eNumber of rooms sold\u003c\/label\u003e\n          \u003cinput class=\"adr-control\" id=\"adr-rooms-sold\" data-adr-input=\"roomsSold\" type=\"text\" inputmode=\"numeric\" value=\"18,047\" aria-describedby=\"adr-rooms-sold-help adr-rooms-sold-error\"\u003e\n          \u003cp class=\"adr-help\" id=\"adr-rooms-sold-help\"\u003ePaid room-nights; exclude vacant, staff, and complimentary rooms.\u003c\/p\u003e\n          \u003cdiv class=\"adr-error\" id=\"adr-rooms-sold-error\" data-adr-error=\"roomsSold\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-field\" data-adr-field=\"periodDays\"\u003e\n          \u003clabel class=\"adr-label\" for=\"adr-period-days\"\u003eReporting period\u003c\/label\u003e\n          \u003cinput class=\"adr-control\" id=\"adr-period-days\" data-adr-input=\"periodDays\" type=\"text\" inputmode=\"numeric\" value=\"180\" aria-describedby=\"adr-period-days-help adr-period-days-error\"\u003e\n          \u003cp class=\"adr-help\" id=\"adr-period-days-help\"\u003eNumber of calendar days represented by the revenue and rooms sold.\u003c\/p\u003e\n          \u003cdiv class=\"adr-error\" id=\"adr-period-days-error\" data-adr-error=\"periodDays\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003chr class=\"adr-divider\"\u003e\n\n      \u003cdiv class=\"adr-section-label\"\u003eEstimated ADR\u003c\/div\u003e\n      \u003ch3\u003eProperty-level revenue estimate\u003c\/h3\u003e\n      \u003cp class=\"adr-panel-intro\"\u003eThis secondary method divides average monthly room revenue across every room and a standardized month. It is useful when room-sold records are unavailable, but it is not a substitute for paid-room ADR.\u003c\/p\u003e\n      \u003cdiv class=\"adr-fields\"\u003e\n        \u003cdiv class=\"adr-field\" data-adr-field=\"monthlyRevenue\"\u003e\n          \u003clabel class=\"adr-label\" for=\"adr-monthly-revenue\"\u003eAverage monthly room revenue\u003c\/label\u003e\n          \u003cinput class=\"adr-control\" id=\"adr-monthly-revenue\" data-adr-input=\"monthlyRevenue\" type=\"text\" inputmode=\"decimal\" value=\"$426,333.33\" aria-describedby=\"adr-monthly-revenue-help adr-monthly-revenue-error\"\u003e\n          \u003cp class=\"adr-help\" id=\"adr-monthly-revenue-help\"\u003eAverage room revenue per month, excluding non-room departments.\u003c\/p\u003e\n          \u003cdiv class=\"adr-error\" id=\"adr-monthly-revenue-error\" data-adr-error=\"monthlyRevenue\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-field\" data-adr-field=\"propertyRooms\"\u003e\n          \u003clabel class=\"adr-label\" for=\"adr-property-rooms\"\u003eRooms in the property\u003c\/label\u003e\n          \u003cinput class=\"adr-control\" id=\"adr-property-rooms\" data-adr-input=\"propertyRooms\" type=\"text\" inputmode=\"numeric\" value=\"100\" aria-describedby=\"adr-property-rooms-help adr-property-rooms-error\"\u003e\n          \u003cp class=\"adr-help\" id=\"adr-property-rooms-help\"\u003eTotal physical rooms used in the property-level estimate.\u003c\/p\u003e\n          \u003cdiv class=\"adr-error\" id=\"adr-property-rooms-error\" data-adr-error=\"propertyRooms\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-field\" data-adr-field=\"daysPerMonth\"\u003e\n          \u003clabel class=\"adr-label\" for=\"adr-days-month\"\u003eDays per month\u003c\/label\u003e\n          \u003cselect class=\"adr-control\" id=\"adr-days-month\" data-adr-input=\"daysPerMonth\" aria-describedby=\"adr-days-month-help\"\u003e\n            \u003coption value=\"0\"\u003eSelect day convention\u003c\/option\u003e\n            \u003coption value=\"30\" selected\u003e30 days (standardized)\u003c\/option\u003e\n            \u003coption value=\"30.4375\"\u003e30.4375 days (annual average)\u003c\/option\u003e\n            \u003coption value=\"31\"\u003e31 days\u003c\/option\u003e\n            \u003coption value=\"28\"\u003e28 days\u003c\/option\u003e\n          \u003c\/select\u003e\n          \u003cp class=\"adr-help\" id=\"adr-days-month-help\"\u003eChoose the day convention used for the monthly estimate.\u003c\/p\u003e\n          \u003cdiv class=\"adr-error\" data-adr-error=\"daysPerMonth\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"adr-panel adr-results\" aria-labelledby=\"adr-results-heading\"\u003e\n      \u003cdiv class=\"adr-section-label\"\u003eLive results\u003c\/div\u003e\n      \u003ch3 id=\"adr-results-heading\"\u003eADR performance snapshot\u003c\/h3\u003e\n      \u003cdiv class=\"adr-primary-result\"\u003e\n        \u003cdiv class=\"adr-result-label\"\u003eAverage daily rate\u003c\/div\u003e\n        \u003cdiv class=\"adr-result-value\" data-adr-output=\"actualAdr\"\u003e$0.00\u003c\/div\u003e\n        \u003cp class=\"adr-result-note\" data-adr-output=\"actualNote\"\u003eEnter room revenue and rooms sold.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"adr-result-grid\"\u003e\n        \u003cdiv class=\"adr-result-card\"\u003e\n          \u003cdiv class=\"adr-card-label\"\u003eEstimated ADR\u003c\/div\u003e\n          \u003cdiv class=\"adr-card-value\" data-adr-output=\"estimatedAdr\"\u003e$0.00\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-result-card\"\u003e\n          \u003cdiv class=\"adr-card-label\"\u003eActual vs. estimate\u003c\/div\u003e\n          \u003cdiv class=\"adr-card-value\" data-adr-output=\"difference\"\u003e$0.00\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-result-card\"\u003e\n          \u003cdiv class=\"adr-card-label\"\u003eAverage room revenue per day\u003c\/div\u003e\n          \u003cdiv class=\"adr-card-value\" data-adr-output=\"dailyRevenue\"\u003e$0.00\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"adr-result-card\"\u003e\n          \u003cdiv class=\"adr-card-label\"\u003eRooms sold per day\u003c\/div\u003e\n          \u003cdiv class=\"adr-card-value\" data-adr-output=\"roomsPerDay\"\u003e0.00\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"adr-formula\" data-adr-output=\"formula\"\u003eADR = Rooms revenue earned ÷ Rooms sold\u003c\/div\u003e\n      \u003cdiv class=\"adr-live\" aria-live=\"polite\" aria-atomic=\"true\" data-adr-live\u003e\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"adr-panel adr-breakdown\" aria-labelledby=\"adr-snapshot-heading\"\u003e\n    \u003cdiv class=\"adr-section-label\"\u003eBreakdown\u003c\/div\u003e\n    \u003ch3 id=\"adr-snapshot-heading\"\u003eDaily operating view\u003c\/h3\u003e\n    \u003cdiv class=\"adr-snapshot-grid\"\u003e\n      \u003cdiv class=\"adr-snapshot-item\"\u003e\n\u003cspan\u003eTotal room revenue\u003c\/span\u003e\u003cstrong data-adr-snapshot=\"revenue\"\u003e$0.00\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"adr-snapshot-item\"\u003e\n\u003cspan\u003ePaid room-nights\u003c\/span\u003e\u003cstrong data-adr-snapshot=\"rooms\"\u003e0\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"adr-snapshot-item\"\u003e\n\u003cspan\u003eReporting period\u003c\/span\u003e\u003cstrong data-adr-snapshot=\"days\"\u003e0 days\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"adr-snapshot-item\"\u003e\n\u003cspan\u003eImplied occupancy proxy\u003c\/span\u003e\u003cstrong data-adr-snapshot=\"occupancy\"\u003e0.00%\u003c\/strong\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"adr-panel adr-chart\" aria-labelledby=\"adr-chart-heading\" data-adr-chart-card\u003e\n    \u003cdiv class=\"adr-chart-card\"\u003e\n      \u003cdiv class=\"adr-chart-head\"\u003e\n        \u003cdiv class=\"adr-section-label\"\u003eComparison chart\u003c\/div\u003e\n        \u003ch3 id=\"adr-chart-heading\"\u003eActual ADR vs. property estimate\u003c\/h3\u003e\n        \u003cp data-adr-chart-intro\u003eThe chart compares paid-room ADR with the secondary monthly-revenue estimate.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"adr-chart-cluster\" data-adr-chart-cluster\u003e\n        \u003cdiv class=\"adr-plot-wrap\" data-adr-plot\u003e\u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"adr-legend\" data-adr-legend aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n          \u003cdiv data-adr-chart-table\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"adr-chart-callout\" data-adr-chart-caption\u003eEnter values above to compare the two methods.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"adr-panel adr-table\" aria-labelledby=\"adr-table-heading\" data-adr-table-card\u003e\n    \u003cdiv class=\"adr-section-label\"\u003eScenario table\u003c\/div\u003e\n    \u003ch3 id=\"adr-table-heading\"\u003eHow revenue and rooms sold move ADR\u003c\/h3\u003e\n    \u003cdiv class=\"adr-table-overflow\" data-adr-table-wrap\u003e\n      \u003ctable class=\"adr-data-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth scope=\"col\"\u003eScenario\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eRoom revenue\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eRooms sold\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eADR\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eChange vs. baseline\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody data-adr-scenarios\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"adr-table-note\" data-adr-table-note\u003eScenario rows change one driver at a time. They are sensitivity checks, not forecasts.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"adr-education\" aria-labelledby=\"adr-guide-heading\"\u003e\n    \u003ch2 id=\"adr-guide-heading\"\u003eHow to use and interpret the ADR calculator\u003c\/h2\u003e\n    \u003cdiv class=\"adr-education-grid\"\u003e\n      \u003csection\u003e\n        \u003ch3\u003eWhat average daily rate measures\u003c\/h3\u003e\n        \u003cp\u003eAverage daily rate, usually abbreviated ADR, measures the room revenue earned for each paid room-night sold during a defined period. It is one of the standard commercial metrics used by hotels, resorts, motels, hostels, serviced apartments, and short-term rental operators. The calculation focuses on room revenue and paid occupancy, so it is best viewed as a pricing and room-mix indicator rather than a complete measure of property profitability.\u003c\/p\u003e\n        \u003cdiv class=\"adr-equation\"\u003eADR = room revenue earned ÷ paid rooms sold\u003c\/div\u003e\n        \u003cp\u003eThe numerator and denominator must cover exactly the same dates. For example, a monthly room-revenue figure must be divided by room-nights sold during that same month. The denominator should exclude complimentary rooms, staff use, owner stays, vacant inventory, and rooms that generated no paid room revenue. The room-revenue input should normally exclude food and beverage, spa, parking, resort fees, and other ancillary departments so the result remains comparable.\u003c\/p\u003e\n\n        \u003ch3\u003eField-by-field input guidance\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eRooms revenue earned\u003c\/strong\u003e is the total room-only revenue for the reporting period. Enter a positive currency amount. Higher revenue raises ADR when rooms sold stays constant. Avoid mixing gross booking value with room revenue if the figure includes taxes, cleaning fees, or unrelated services.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eNumber of rooms sold\u003c\/strong\u003e is the count of paid room-nights, not simply the number of reservations. A three-night stay contributes three room-nights. More rooms sold lowers ADR when revenue stays unchanged, although total revenue may still improve.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eReporting period\u003c\/strong\u003e is the number of calendar days represented by the first two inputs. It does not change the core ADR formula, but it drives the daily revenue, rooms-sold-per-day, and occupancy-proxy outputs. Use the exact number of days in the selected reporting window.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eAverage monthly room revenue\u003c\/strong\u003e supports the secondary estimate when paid-room data is unavailable. It should be a room-only monthly average from a representative period. Seasonality can make a single month misleading, so a trailing average may be more useful for planning.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eRooms in the property\u003c\/strong\u003e is total physical room inventory used by the estimate. The estimate assumes revenue is spread across every room for every selected day, so it behaves more like room revenue per available room than true paid-room ADR.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eDays per month\u003c\/strong\u003e sets the monthly convention. Thirty days aligns with the common simplified estimate; 30.4375 represents the annual average; 28 or 31 can match a specific calendar month.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/section\u003e\n\n      \u003csection\u003e\n        \u003ch3\u003eUnderstanding each result\u003c\/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eAverage daily rate\u003c\/strong\u003e is the primary result. A higher ADR means more room revenue per paid room-night, but “higher” is not automatically better. A rate increase that sharply reduces occupancy can weaken total revenue. Compare ADR with the property’s own prior periods, budget, market segment, day-of-week pattern, and competitive set rather than relying on a universal target.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eEstimated ADR\u003c\/strong\u003e divides average monthly room revenue by rooms in the property and days in the selected month convention. Because the denominator includes all room-days rather than only paid room-nights, it is a conservative property-level revenue-density estimate. A large gap between actual ADR and this estimate often reflects less-than-full occupancy, different periods, or inconsistent revenue definitions.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eActual vs. estimate\u003c\/strong\u003e is the currency difference between the paid-room ADR and the property estimate. A positive value means actual revenue per sold room exceeds the full-inventory estimate. A negative value can occur when monthly revenue is comparatively strong, the actual period has discount-heavy room sales, or the two input sets represent different seasons.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eAverage room revenue per day\u003c\/strong\u003e spreads total room revenue across the reporting period. \u003cstrong\u003eRooms sold per day\u003c\/strong\u003e spreads paid room-nights across the same period. The \u003cstrong\u003eimplied occupancy proxy\u003c\/strong\u003e divides rooms sold per day by property rooms. It is only reliable when property rooms and the reporting-period room sales refer to the same inventory and dates.\u003c\/p\u003e\n\n        \u003ch3\u003eReading the chart and sensitivity table\u003c\/h3\u003e\n        \u003cp\u003eThe comparison chart uses the same live model as the result cards and Excel export. It displays actual ADR and the monthly-revenue estimate on a common dollar scale. The legend and compact data table show the exact plotted values. If the inputs are empty or invalid, the visual is replaced with an explanatory empty state rather than a decorative placeholder.\u003c\/p\u003e\n        \u003cp\u003eThe scenario table changes one driver at a time. Increasing revenue by 10% increases ADR by 10% when rooms sold is unchanged. Increasing rooms sold by 10% reduces ADR because the same revenue is spread across more paid room-nights. These rows help identify mathematical sensitivity; they do not model demand response, price elasticity, channel mix, cancellations, or operational constraints.\u003c\/p\u003e\n\n        \u003ch3\u003ePractical interpretation and common mistakes\u003c\/h3\u003e\n        \u003cp\u003eADR should be reviewed alongside occupancy and revenue per available room (RevPAR). The relationship is commonly expressed as RevPAR = ADR × occupancy rate. A property can report a strong ADR but weak RevPAR when too few rooms sell. Conversely, a high-occupancy period can produce disappointing ADR if heavy discounting compresses room revenue. The \u003ca href=\"https:\/\/www.costar.com\/products\/str-benchmark\/resources\/data-insights-blog\/what-average-daily-rate-adr-and-how-calculate\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCoStar\/STR explanation of ADR\u003c\/a\u003e and the \u003ca href=\"https:\/\/www.investopedia.com\/terms\/r\/revpar.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia overview of RevPAR\u003c\/a\u003e provide useful context for combining these measures.\u003c\/p\u003e\n        \u003cp\u003eCommon errors include counting reservations instead of room-nights, including complimentary rooms, mixing net and gross revenue, comparing periods with different seasonality, and using total hotel revenue rather than room revenue. For broader industry terminology, see the \u003ca href=\"https:\/\/www.investopedia.com\/terms\/a\/average-daily-rate.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia ADR guide\u003c\/a\u003e. For a formal research perspective on ADR and lodging property value, consult the \u003ca href=\"https:\/\/ecommons.cornell.edu\/entities\/publication\/4639f4df-4220-412a-b63a-a01a4d6abbad\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehospitality research record hosted by CORE\u003c\/a\u003e.\u003c\/p\u003e\n        \u003cp class=\"adr-disclaimer\"\u003eThis calculator is an analytical aid, not financial, tax, legal, accounting, or investment advice. Validate definitions against your property-management system and reporting policies before using the figures for external reporting.\u003c\/p\u003e\n      \u003c\/section\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909485797619,"sku":"adr","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/adr.webp?v=1783935486","url":"https:\/\/financialmodelslab.com\/products\/adr","provider":"Financial Models Lab","version":"1.0","type":"link"}