2024 Brookline Apartment Rental Market Report - Boston Pads (2024)

Home Boston Real Estate Insights Boston Rental Market

9 minute read

2024 Brookline Apartment Rental Market Report - Boston Pads (2)

Brookline’s apartment rental market has been on a roll over the past two years. Record low apartment inventory has pushed apartment prices sky high, making Boston’s most expensive suburb even pricier for renters. Now in 2024, apartment supply figures have improved for renters, providing more options than they have seen since the pandemic ended. Still, apartment price growth is outpacing that of the city as average rent price recently eclipsed the $3,700 mark. Here are the trends influencing Brookline’s apartment rental market in 2024.

  • Apartment Supply Up In Brookline, MA
  • Brookline Average Rent Prices
  • 2024 Brookline Apartment Rental Market Forecast

Apartment Supply Up In Brookline, MA

The current real-time availability rate (RTAR) for Brookline apartments is 4.82%. That figure is up +61.74% compared to early June 2023, providing renters much more options than they were seeing this time last year. In 2023, RTAR peaked at 3.54% in late April, while this year apartment availability peaked in late May at 5.09%. The current RTAR in Brookline is even higher than that of its pre-pandemic level in June of 2019.

');}else{$("#"+chart_id).append('

');}if(value.multiaxis_combined === true){var ctx = document.getElementById(tabId).getContext("2d");var chartDataMultiAxis = value.multiaxis;const correctedMultiaxis = value.multiaxis.replace(/\n/g, "").replace(/\t/g, "").replace(/\/\/.*/g, "").replace(/,\s*}/g, "}").replace(/,\s*]/g, "]");const multiaxisObject = eval("(" + value.multiaxis + ")");var mmObj = {type: multiaxisObject.type,data: multiaxisObject.data,options: multiaxisObject.options};let abcM;if (value.annotation) {try {abcM = JSON.parse(value.annotation);} catch (error) {// alert("Error parsing annotation JSON:" + value.annotation);}}if (value.annotation) {abcM = JSON.parse(value.annotation);}// Add the parsed annotations to the chart optionsif (abcM) {if (!mmObj.options) {mmObj.options = {};}mmObj.options.annotation = {drawTime: abcM.annotation.drawTime,events: abcM.annotation.events,annotations: abcM.annotation.annotations};}const myChart = new Chart(ctx, mmObj);if ($("#" + ctabId + " table").length === 0) {if(value.wcag_table!=undefined){const tableHtml = genrateJsonTableMultiAxis(value.wcag_table);$("#" + ctabId).append(tableHtml);}}}else{var ctx = document.getElementById(tabId).getContext("2d");if(value.data_label!=undefined){var chartData = parseChartData(value);new Chart(ctx, chartData);}if ($("#" + ctabId + " table").length === 0) {// Add table generation code under chart starts from here const tableHtml = generateTableFromJSON(value.wcag_table);$("#" + ctabId).append(tableHtml);}}}else{$.each(globalJsonData, function(key, value) {var randomInt = getRandomInt(1, 1000);const tabId = "charts_tabs-" + key+"_"+randomInt;const ctabId = "charts_tab-" + key+"_"+randomInt;$(".err_chart_"+chart_number).append(value.annotation_error);const parentDiv = $("#"+chart_id);const childDiv = $("#" + chart_id).parent().find(".charts_tabs");const ulElement = childDiv.find("#mylist");ulElement.append('

  • ' + value.tab_heading + value.tab_sub_heading + '
  • ');childDiv.append('

    ');var new_name = "charts_tabs-"+key+"_"+randomInt;;var ctx = document.getElementById(new_name).getContext("2d");var chartData = parseChartData(value);new Chart(ctx, chartData);counter++;if ($("#" + ctabId + " table").length === 0) {// Add table generation code under chart starts from here const tableHtml = generateTableFromJSON(value.wcag_table);$("#" + ctabId).append(tableHtml);}});}jQuery("#" + chart_id).parent().find(".charts_tabs").tabs();});} function createChart() {}function getRandomInt(min, max) {min = Math.ceil(min);max = Math.floor(max);return Math.floor(Math.random() * (max - min + 1)) + min; }function genrateJsonTableMultiAxis(jsonData){let divClass = jsonData.show_table_class;let tableData = jsonData.table;// Create the table with the specified classlet html = "

    ";// Add header rowhtml += "";tableData[0].forEach(function(header) {html += "";});html += "";// Add data rowshtml += "";for (var i = 1; i < tableData.length; i++) {html += "";tableData[i].forEach(function(cell) {html += "";});html += "";}html += "";// Close the table and div tagshtml += "
    " + header + "
    " + cell + "

    ";return html;}function generateTableFromJSON(jsonData) {if (!jsonData) {return "";}const wcagTable = jsonData;const heading = wcagTable.heading;const rows = wcagTable.rows;const divClass = wcagTable.div_class || "";let html = "

    ";// Table headinghtml += "";html += "";html += "";if (heading.compare_value) {html += "";}html += "";// Table rowshtml += "";for (const row of rows) {html += "";html += "";html += "";if (row.compare_value) {html += "";}html += "";}html += "";html += "
    " + heading.date + "" + heading.value + "" + heading.compare_value + "
    " + row.date + "" + row.value + "" + row.compare_value + "

    ";return html;}function parseChartData(value) {const labels = JSON.parse(value.data_label.slice(7));const data = JSON.parse(value.data);const compareLocationData = JSON.parse(value.compare_location_data);const symbol = value.symbol;const percent = value.percent;const datasets = [ {label: value.dataset_compare_location_label,data: data,borderWidth: value.chart_border_width,backgroundColor: value.chart_plain_bgcolor,borderColor: value.chart_plain_border_color,pointBackgroundColor: value.chart_plain_pointbgcolor,pointBorderColor: value.chart_tab_point_border_color,pointStyle: "rectRounded",pointRadius: value.chart_plain_point_radius,pointHitRadius: value.chart_plain_point_hit_radius,pointHoverRadius: value.chart_plain_point_hover_radius,pointHoverBorderWidth: value.chart_plain_point_hover_border_width,cubicInterpolationMode: "default",spanGaps: true, },]; if (value.compare_location_label) { datasets.push({label: value.compare_location_label,data: compareLocationData,borderWidth: value.chart_comparison_border_width,fill:value.chart_comparison_fill_flag,backgroundColor: value.chart_comparison_bgcolor,borderColor: value.chart_comparison_border_color,pointRadius: value.chart_comparison_point_radius,pointHitRadius: value.chart_comparison_point_hit_radius,pointHoverRadius: value.chart_comparison_point_hover_radius,pointHoverBorderWidth: value.chart_comparison_point_hover_border_width,cubicInterpolationMode: "default",spanGaps: true, });} const chartData = { labels: labels, datasets: datasets,};let abc;if (value.annotation) {try { abc = JSON.parse(value.annotation);} catch (error) {// alert("Error parsing annotation JSON:"+ value.annotation);} }if (value.annotation) {abc = JSON.parse(value.annotation);}if(value.yaxis_label_labelString!=null){var y_label = value.yaxis_label_labelString;}else{var y_label = "";}const chartOptions = { maintainAspectRatio: false, scales: {yAxes: [ {ticks: { autoSkip: true, autoSkipPadding: 90, reverse: false, callback: function (value, index, values) {return symbol + value + percent; },},scaleLabel: { display: true, fontSize: 14, labelString: y_label,}, },],xAxes: [ {ticks: { autoSkip: true, autoSkipPadding: 5,}, },], }, legend: {display: value.xAxes_legend_display === "true",labels: { fontSize: 14,}, }, tooltips: {enabled: true,mode: "single",callbacks: { label: function (tooltipItems, data) {return symbol + tooltipItems.yLabel + percent; },}, }, // Add any other chart options here};if (abc && abc.annotation) {chartOptions.annotation = abc.annotation; }var options = { type: "line", data: chartData, options: chartOptions,};return options; } function fixInvalidCommas(dataString) {return dataString.replace(/,,/g, ",null,"); } function findInvalidCharacter(jsonString) {let position = -1;try { JSON.parse(jsonString);} catch (error) { const match = error.message.match(/position (\d+)/); if (match) {position = parseInt(match[1], 10); }}return position; }function isElementVisibleAPI(el) {const rect = el.getBoundingClientRect();const windowHeight = window.innerHeight || document.documentElement.clientHeight;const windowWidth = window.innerWidth || document.documentElement.clientWidth;return (rect.top < windowHeight &&rect.bottom > 0 &&rect.left < windowWidth &&rect.right > 0);}});

    The current real-time vacancy rate (RTVR) in Brookline, MA is 1.28%. That marks a +40.66% increase year-over-year. It is also the first time Brookline’s vacancy rate has surpassed the 1% mark since January 2022, which is when the apartment rental market began its historic run.

    ');}else{$("#"+chart_id).append('

    ');}if(value.multiaxis_combined === true){var ctx = document.getElementById(tabId).getContext("2d");var chartDataMultiAxis = value.multiaxis;const correctedMultiaxis = value.multiaxis.replace(/\n/g, "").replace(/\t/g, "").replace(/\/\/.*/g, "").replace(/,\s*}/g, "}").replace(/,\s*]/g, "]");const multiaxisObject = eval("(" + value.multiaxis + ")");var mmObj = {type: multiaxisObject.type,data: multiaxisObject.data,options: multiaxisObject.options};let abcM;if (value.annotation) {try {abcM = JSON.parse(value.annotation);} catch (error) {// alert("Error parsing annotation JSON:" + value.annotation);}}if (value.annotation) {abcM = JSON.parse(value.annotation);}// Add the parsed annotations to the chart optionsif (abcM) {if (!mmObj.options) {mmObj.options = {};}mmObj.options.annotation = {drawTime: abcM.annotation.drawTime,events: abcM.annotation.events,annotations: abcM.annotation.annotations};}const myChart = new Chart(ctx, mmObj);if ($("#" + ctabId + " table").length === 0) {if(value.wcag_table!=undefined){const tableHtml = genrateJsonTableMultiAxis(value.wcag_table);$("#" + ctabId).append(tableHtml);}}}else{var ctx = document.getElementById(tabId).getContext("2d");if(value.data_label!=undefined){var chartData = parseChartData(value);new Chart(ctx, chartData);}if ($("#" + ctabId + " table").length === 0) {// Add table generation code under chart starts from here const tableHtml = generateTableFromJSON(value.wcag_table);$("#" + ctabId).append(tableHtml);}}}else{$.each(globalJsonData, function(key, value) {var randomInt = getRandomInt(1, 1000);const tabId = "charts_tabs-" + key+"_"+randomInt;const ctabId = "charts_tab-" + key+"_"+randomInt;$(".err_chart_"+chart_number).append(value.annotation_error);const parentDiv = $("#"+chart_id);const childDiv = $("#" + chart_id).parent().find(".charts_tabs");const ulElement = childDiv.find("#mylist");ulElement.append('

  • ' + value.tab_heading + value.tab_sub_heading + '
  • ');childDiv.append('

    ');var new_name = "charts_tabs-"+key+"_"+randomInt;;var ctx = document.getElementById(new_name).getContext("2d");var chartData = parseChartData(value);new Chart(ctx, chartData);counter++;if ($("#" + ctabId + " table").length === 0) {// Add table generation code under chart starts from here const tableHtml = generateTableFromJSON(value.wcag_table);$("#" + ctabId).append(tableHtml);}});}jQuery("#" + chart_id).parent().find(".charts_tabs").tabs();});} function createChart() {}function getRandomInt(min, max) {min = Math.ceil(min);max = Math.floor(max);return Math.floor(Math.random() * (max - min + 1)) + min; }function genrateJsonTableMultiAxis(jsonData){let divClass = jsonData.show_table_class;let tableData = jsonData.table;// Create the table with the specified classlet html = "

    ";// Add header rowhtml += "";tableData[0].forEach(function(header) {html += "";});html += "";// Add data rowshtml += "";for (var i = 1; i < tableData.length; i++) {html += "";tableData[i].forEach(function(cell) {html += "";});html += "";}html += "";// Close the table and div tagshtml += "
    " + header + "
    " + cell + "

    ";return html;}function generateTableFromJSON(jsonData) {if (!jsonData) {return "";}const wcagTable = jsonData;const heading = wcagTable.heading;const rows = wcagTable.rows;const divClass = wcagTable.div_class || "";let html = "

    ";// Table headinghtml += "";html += "";html += "";if (heading.compare_value) {html += "";}html += "";// Table rowshtml += "";for (const row of rows) {html += "";html += "";html += "";if (row.compare_value) {html += "";}html += "";}html += "";html += "
    " + heading.date + "" + heading.value + "" + heading.compare_value + "
    " + row.date + "" + row.value + "" + row.compare_value + "

    ";return html;}function parseChartData(value) {const labels = JSON.parse(value.data_label.slice(7));const data = JSON.parse(value.data);const compareLocationData = JSON.parse(value.compare_location_data);const symbol = value.symbol;const percent = value.percent;const datasets = [ {label: value.dataset_compare_location_label,data: data,borderWidth: value.chart_border_width,backgroundColor: value.chart_plain_bgcolor,borderColor: value.chart_plain_border_color,pointBackgroundColor: value.chart_plain_pointbgcolor,pointBorderColor: value.chart_tab_point_border_color,pointStyle: "rectRounded",pointRadius: value.chart_plain_point_radius,pointHitRadius: value.chart_plain_point_hit_radius,pointHoverRadius: value.chart_plain_point_hover_radius,pointHoverBorderWidth: value.chart_plain_point_hover_border_width,cubicInterpolationMode: "default",spanGaps: true, },]; if (value.compare_location_label) { datasets.push({label: value.compare_location_label,data: compareLocationData,borderWidth: value.chart_comparison_border_width,fill:value.chart_comparison_fill_flag,backgroundColor: value.chart_comparison_bgcolor,borderColor: value.chart_comparison_border_color,pointRadius: value.chart_comparison_point_radius,pointHitRadius: value.chart_comparison_point_hit_radius,pointHoverRadius: value.chart_comparison_point_hover_radius,pointHoverBorderWidth: value.chart_comparison_point_hover_border_width,cubicInterpolationMode: "default",spanGaps: true, });} const chartData = { labels: labels, datasets: datasets,};let abc;if (value.annotation) {try { abc = JSON.parse(value.annotation);} catch (error) {// alert("Error parsing annotation JSON:"+ value.annotation);} }if (value.annotation) {abc = JSON.parse(value.annotation);}if(value.yaxis_label_labelString!=null){var y_label = value.yaxis_label_labelString;}else{var y_label = "";}const chartOptions = { maintainAspectRatio: false, scales: {yAxes: [ {ticks: { autoSkip: true, autoSkipPadding: 90, reverse: false, callback: function (value, index, values) {return symbol + value + percent; },},scaleLabel: { display: true, fontSize: 14, labelString: y_label,}, },],xAxes: [ {ticks: { autoSkip: true, autoSkipPadding: 5,}, },], }, legend: {display: value.xAxes_legend_display === "true",labels: { fontSize: 14,}, }, tooltips: {enabled: true,mode: "single",callbacks: { label: function (tooltipItems, data) {return symbol + tooltipItems.yLabel + percent; },}, }, // Add any other chart options here};if (abc && abc.annotation) {chartOptions.annotation = abc.annotation; }var options = { type: "line", data: chartData, options: chartOptions,};return options; } function fixInvalidCommas(dataString) {return dataString.replace(/,,/g, ",null,"); } function findInvalidCharacter(jsonString) {let position = -1;try { JSON.parse(jsonString);} catch (error) { const match = error.message.match(/position (\d+)/); if (match) {position = parseInt(match[1], 10); }}return position; }function isElementVisibleAPI(el) {const rect = el.getBoundingClientRect();const windowHeight = window.innerHeight || document.documentElement.clientHeight;const windowWidth = window.innerWidth || document.documentElement.clientWidth;return (rect.top < windowHeight &&rect.bottom > 0 &&rect.left < windowWidth &&rect.right > 0);}});

    2024 Brookline Apartment Rental Market Report - Boston Pads (2024)

    References

    Top Articles
    Latest Posts
    Article information

    Author: Neely Ledner

    Last Updated:

    Views: 5374

    Rating: 4.1 / 5 (42 voted)

    Reviews: 81% of readers found this page helpful

    Author information

    Name: Neely Ledner

    Birthday: 1998-06-09

    Address: 443 Barrows Terrace, New Jodyberg, CO 57462-5329

    Phone: +2433516856029

    Job: Central Legal Facilitator

    Hobby: Backpacking, Jogging, Magic, Driving, Macrame, Embroidery, Foraging

    Introduction: My name is Neely Ledner, I am a bright, determined, beautiful, adventurous, adventurous, spotless, calm person who loves writing and wants to share my knowledge and understanding with you.