$4,200/mo
4 Beds
1 Bath
Available: 09/01/2024
Union Square, Somerville, MA
Good Deal
$439 below market
No Fee
Heat & Hot Water Included
Amenities & Apartment Information
Building
Parking: Street
Unit
Cat Friendly
In-Unit Laundry
Hardwood
Dishwasher
Refrigerator
Property Description
Beautiful 4 Bed 1 Bath in Somerville
Half Security and No Broker Fee
Pets Allowed
In unit Laundry
Hardwood Floors
Stainless Steel Appliances
Utilities Included in RentTransportation Options
117 Summer St Bus Stop 0.0 mi (1 min away)
Avon St @ School St Bus Stop 0.1 mi (3 min away)
Summer St opp Carter Terr Bus Stop 0.1 mi (3 min away)
Summer St @ School St Bus Stop 0.1 mi (3 min away)
Nearby Places
Cummings School Library
Dosa-N-Curry
Man-o-Salwa
Momo and Curry
Veggie Crust (Meatless Everyday)
Show more
Price Comparison
This apartment is 9.46% less expensive than the average price of $4,639 for 4 bedroom apartments in Somerville. It's rare to find an apartment this far below the average rent price in Somerville. Units like this rent quickly. Contact Boston Pads now to see this apartment or request a rental application.
Average Rent Prices for 4 Bedroom Apartments in Somerville
');}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('
');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 = "
" + header + " | ";});html += "
---|
" + cell + " | ";});html += "
";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 = "
" + heading.date + " | ";html += "" + heading.value + " | ";if (heading.compare_value) {html += "" + heading.compare_value + " | ";}html += "
---|---|---|
" + row.date + " | ";html += "" + row.value + " | ";if (row.compare_value) {html += "" + row.compare_value + " | ";}html += "
";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);}});