1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[98989],{2647:(e,t,n)=>{n.d(t,{BV:()=>v,Bi:()=>b,Fq:()=>A,Og:()=>y,_C:()=>d,aN:()=>w,nL:()=>h,sM:()=>g,vE:()=>p,vb:()=>m,z:()=>f});var a=n(96605),r=n(22090);let o=["min","max","beds","exactBeds","baths","exactBaths","distance","area","type","features"],i=e=>new URLSearchParams(e),s=["property","propertyId","propertyAddress","propertyType","sourceUrl"],l=e=>String(e||"").trim().toLowerCase().replace(/\s+/g," "),c=e=>(e.delete("propertyAddress"),e);function u(e,t){let n=i(e);if(!t)return{params:n,sameProperty:!1};let a={id:n.get("propertyId"),address:n.get("propertyAddress"),sourceUrl:n.get("sourceUrl")},o=n.get("property");if(!(0,r.pj)(a)&&!o)return{params:n,sameProperty:!1};let c=String(t.id||t.sourcePropertyId||""),u=e=>e===c||!!t.address&&l(e)===l(t.address),d=(a.id?a.id===c:a.sourceUrl?a.sourceUrl===t.url:a.address?l(a.address)===l(t.address):u(o))&&n.getAll("propertyId").filter(Boolean).every(e=>e===c)&&n.getAll("property").filter(Boolean).every(u);if(!d)for(let e of[...r.Px,...s])n.delete(e);return{params:n,sameProperty:d}}let d=e=>null!=e&&""!==String(e).trim()&&Number.isFinite(Number(e))&&Number(e)>=0;function m(e){var t;if(!(null==e?void 0:e.slug)||!(null==(t=e.professional)?void 0:t.id))throw Error("A client journey requires its canonical school and professional.");let n="/markets/"+e.slug;return{root:n,profile:n+"/realtor/"+e.professional.id,school:e.shortName||e.school,first:e.professional.firstName||e.professional.name.split(" ")[0],market:{slug:e.slug,display_name:e.school,short_name:e.shortName||e.school,city:e.city,state:e.state}}}function p(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",a=arguments.length>3?arguments[3]:void 0,{root:r}=m(e),o=i(n),s="rent"===o.get("mode")?"rent":"buy",l="rent"===t?"rent":"buy";return"rent"===l?o.set("mode","rent"):o.delete("mode"),o.delete("property"),s!==l&&(o.delete("min"),o.delete("max")),c(o),((null==a?void 0:a.startsWith(r+"/neighborhoods/"))?a:r)+"?"+o.toString()+"#journey-results"}function b(e,t){var n,a,r,o;let s=i(e);for(let e of["max","beds","exactBeds","distance","area","property"])s.delete(e);let l=String(null!=(n=t.max)?n:"").trim(),u=String(null!=(a=t.beds)?a:""),d=String(null!=(r=t.distance)?r:""),m=String(null!=(o=t.area)?o:"").trim();return l&&s.set("max",l),u.startsWith("exact:")?(s.set("beds",u.slice(6)),s.set("exactBeds",u.slice(6))):u&&s.set("beds",u),d&&s.set("distance",d),m&&s.set("area",m),c(s),s.toString()}function f(e){let t=i(e);for(let e of[...o,"sort","property","propertyAddress"])t.delete(e);return t.toString()}function g(e,t){let n=i(f(e));for(let e of o){let a=t[e];null!=a&&""!==a&&"all"!==a&&(!Array.isArray(a)||a.length)&&n.set(e,Array.isArray(a)?a.join(","):String(a))}return n.toString()}function h(e){let t=i(e);return Object.fromEntries(o.filter(e=>t.has(e)).map(e=>[e,"features"===e?t.get(e).split(","):t.get(e)]))}function w(e){let t=i(e);return(t.get("question")||t.get("q")||"").slice(0,800)}function y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",{root:n}=m(e),a=i(t);return a.set("school",e.slug),a.set("task","invest"),a.delete("property"),c(a),(e.investmentGuidePath||n+"/guides/real-estate-guide")+"?"+a.toString()+(e.investmentGuidePath?"":"#investing")}function v(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",{root:a}=m(e),{params:r}=u(n,t);return r.delete("property"),r.delete("mode"),"rent"===t.mode&&r.set("mode","rent"),c(r),a+"/properties/"+encodeURIComponent(String(t.id))+(r.size?"?"+r:"")}function A(e,t){var n,r;let{query:o="",pathname:s=e.PAGE||"/markets/"+e.slug,property:l}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{root:d,profile:p}=m(e),b=new URL(t,"https://www.collegehousing.ai");if("https://www.collegehousing.ai"!==b.origin)return t;b.searchParams.delete("propertyAddress");let f=null==(n=/^\/markets\/([^/]+)/.exec(b.pathname))?void 0:n[1],g=null==(r=/^\/markets\/[^/]+\/realtor\/([^/]+)/.exec(b.pathname))?void 0:r[1];if(f&&f!==e.slug||g&&g!==e.professional.id||["school","market","marketSlug"].some(t=>b.searchParams.getAll(t).some(t=>t!==e.slug)))return t;let{params:h,sameProperty:w}=u(o,l);for(let e of["question","q","objective","rent","roommate",...a._t]){let t=h.get(e);null!==t&&t.length<=800&&(!b.searchParams.has(e)||w&&a._t.includes(e))&&b.searchParams.set(e,t)}b.searchParams.set("school",e.slug),b.searchParams.set("market",e.slug),b.searchParams.set("marketSlug",e.slug),b.searchParams.set("professionalId",e.professional.id),b.searchParams.set("profilePath",p),!b.searchParams.has("mode")&&["buy","rent"].includes(h.get("mode"))&&b.searchParams.set("mode",h.get("mode"));let y=s===d||s.startsWith(d+"/")?s:d,v=i(h);for(let t of(v.delete("callback"),v.delete("returnPath"),c(v),["school","market","marketSlug"]))v.has(t)&&v.set(t,e.slug);return v.has("professionalId")&&v.set("professionalId",e.professional.id),v.has("profilePath")&&v.set("profilePath",p),b.searchParams.set("returnPath",y+(v.size?"?"+v:"")+"#journey-results"),l&&(b.searchParams.set("propertyId",String(l.id)),b.searchParams.set("mode",l.mode)),b.pathname+b.search+b.hash}},34491:(e,t,n)=>{n.d(t,{F0:()=>p,Od:()=>i,Rc:()=>b,Yw:()=>s,f8:()=>d,fj:()=>f,mC:()=>u,pf:()=>m});var a=n(81075);let r=Object.freeze({downPercent:"20",rate:"7",term:"30"}),o=Object.freeze([["price","Purchase price",1,1e8],["downPercent","Down payment %",0,100],["rate","Interest rate %",0,30],["term","Loan term (years)",1,50],["taxAnnual","Property taxes / year",0,1e7],["insuranceAnnual","Home insurance / year",0,1e7],["hoa","HOA / month",0,1e6],["mortgageInsurance","Mortgage insurance / month",0,1e6]]),i=Object.freeze([["rent","Monthly rent",0,1e6],["utilities","Utilities / month",0,1e6],["rentersInsurance","Renters insurance / month",0,1e6],["parking","Parking / month",0,1e6],["otherMonthly","Other fees / month",0,1e6],["deposit","Refundable deposit",0,1e6],["moveInFees","One
1-time move-in fees",0,1e6]]);function s(e){if(null==e||"boolean"==typeof e||!["string","number"].includes(typeof e)||""===String(e).trim())return null;let t="number"==typeof e?e:Number(String(e).trim());return Number.isFinite(t)?t:null}Object.freeze([...new Set([...o,...i].map(e=>{let[t]=e;return t}))]);let l=e=>null===s(e)?"":String(e).trim();function c(e,t,n){let a=(null==e?void 0:e.details)||{};if((null==e?void 0:e[t])!==!0&&!0!==a[t])return"";for(let t of n)for(let n of[e,a]){let e=null==n?void 0:n[t];if(0===e)return"0";if(null==e)continue;let a=String(e).trim().replaceAll(",","").replace(/^\$\s*/,"").replace(/\s*(\/\s*(?:mo|month|yr|year)|per\s+(?:month|year))\s*$/i,"");if(null!==s(a)&&Number(a)>=0)return a}return""}function u(e,t){let n=t instanceof URLSearchParams?t:new URLSearchParams(t),a=String((null==e?void 0:e.id)||(null==e?void 0:e.sourcePropertyId)||""),r=[...n.getAll("propertyId"),...n.getAll("property")].filter(Boolean);return r.length?r.every(t=>t===a||!!(null==e?void 0:e.address)&&t.trim().toLowerCase()===String(e.address).trim().toLowerCase()):!!((null==e?void 0:e.url)&&n.get("sourceUrl")===e.url)}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",a=new URLSearchParams(t),s="rent"===e.mode,d=Object.fromEntries((s?i:o).map(e=>{let[t]=e;return[t,""]}));if(s?d.rent=l(e.price):Object.assign(d,r,{price:l(e.price),taxAnnual:c(e,"taxEvidenceVerified",["annualTaxes","propertyTaxesAnnual"]),insuranceAnnual:c(e,"insuranceEvidenceVerified",["annualInsurance","insuranceAnnual"]),hoa:c(e,"hoaEvidenceVerified",["monthlyHoa","hoaMonthly","hoa"]),mortgageInsurance:""}),["school","market","marketSlug"].some(e=>a.getAll(e).some(e=>e&&e!==n)))return d;if(!s)for(let e of["downPercent","rate","term"])a.has(e)&&(d[e]=a.get(e));if(u(e,a))for(let e of Object.keys(d))a.has(e)&&(d[e]=a.get(e));return d}function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"buy",n={},a={};for(let[r,l,c,u]of"rent"===t?i:o){if(!Object.hasOwn(e,r))continue;let t=e[r];if(null==t||"string"==typeof t&&!t.trim()){n[r]="";continue}let o=s(t);if(null===o||o<c||o>u){a[r]="Check ".concat(l.toLowerCase(),".");continue}n[r]=String(o)}return{inputs:n,errors:a,valid:0===Object.keys(a).length}}function p(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"buy",{inputs:n,errors:r}=m(e,t),o=e=>r[e]?null:s(n[e]);if("rent"===t){let e=[["rent","Asking rent"],["utilities","Utilities"],["rentersInsurance","Renters insurance"],["parking","Parking"],["otherMonthly","Other monthly fees"]].map(e=>{let[t,n]=e;return{key:t,label:n,value:o(t)}}),t=e.every(e=>null!==e.value),n=e.reduce((e,t)=>{var n;return e+(null!=(n=t.value)?n:0)},0),a=o("deposit"),i=o("moveInFees"),s=o("rent");return{parts:e,errors:r,complete:t,total:t?n:null,knownSubtotal:n,missing:e.filter(e=>null===e.value).map(e=>e.label),upfront:null!==s&&null!==a&&null!==i?s+a+i:null}}let i=o("price"),l=o("downPercent"),c=o("rate"),u=o("term"),d=null!==i&&null!==l?i*(1-l/100):null,p=null;if(0===d)p=0;else if(null!==d&&null!==c&&null!==u)try{p=(0,a.$1)(d,c,u)}catch(e){r.loan="Check loan assumptions."}let b=e=>null===o(e)?null:o(e)/12,f=[{key:"pi",label:"Principal & interest",value:p},{key:"taxAnnual",label:"Property taxes",value:b("taxAnnual")},{key:"insuranceAnnual",label:"Home insurance",value:b("insuranceAnnual")},{key:"hoa",label:"HOA",value:o("hoa")},{key:"mortgageInsurance",label:"Mortgage insurance",value:0===d?0:o("mortgageInsurance")}],g=f.every(e=>null!==e.value)&&0===Object.keys(r).length,h=f.reduce((e,t)=>{var n;return e+(null!=(n=t.value)?n:0)},0);return{parts:f,errors:r,complete:g,total:g?h:null,knownSubtotal:h,missing:f.filter(e=>null===e.value).map(e=>e.label),loan:d,downPayment:null!==i&&null!==l?i*l/100:null}}function b(e){let{question:t="",inputs:n={},mode:a="buy",message:r=""}=e,o=Object.entries(m(n,a).inputs).map(e=>{let[t,n]=e;return"".concat(t,"=").concat(""===n?"unknown":n)}).join("; ");return[t?"Original question: "+String(t).slice(0,800):"",o?"Visitor-entered planning scenario (not verified property facts): "+o:"",String(r||"").trim()].filter(
1Boolean).join("\n\n").slice(0,2e3)}let f=Object.freeze({price:"purchasePrice",downPercent:"downPayment",rate:"interestRate",term:"loanTerm",taxAnnual:"annualTaxes",insuranceAnnual:"annualInsurance",hoa:"monthlyHoa",mortgageInsurance:"mortgageInsurance"})},41251:(e,t,n)=>{n.d(t,{Fg:()=>b,KS:()=>g,Lx:()=>m,Xn:()=>f,eP:()=>c,hd:()=>d,pi:()=>i,s8:()=>o,wg:()=>l});var a=n(81075),r=n(34491);let o=Object.freeze({occupancy:"https://www.dscr-loan.ai/college-housing-financing",matt:"https://www.the-mortgage-mentor.com/loan-programs/",dscr:"https://griffinfunding.com/blog/dscr-loans/dscr-calculator/",fha:"https://answers.hud.gov/FHA/s/article/What-is-the-FHA-Mortgage-Insurance-Premium-structure-for-forward-mortgage-loans",equity:"https://www.consumerfinance.gov/ask-cfpb/what-is-the-difference-between-a-home-equity-loan-and-a-home-equity-line-of-credit-heloc-en-247/"}),i=Object.freeze([{id:"student-owner",label:"Student owns & lives here"},{id:"parent-owned",label:"Parent owns; student lives here"},{id:"investment",label:"Rental investment"},{id:"primary",label:"My primary residence"},{id:"undecided",label:"Still deciding"}]),s=Object.freeze([{id:"fha-family",label:"FHA \xb7 family-assisted",uses:["student-owner"],down:"3.5",term:"30",repayment:"amortizing",source:"fha",note:"For an eligible student owner-occupant with qualifying family assistance. Lender review covers occupancy, co-borrowers, credit, loan limits and condo eligibility. 3.5% is a planning illustration, not an eligibility result."},{id:"dscr",label:"DSCR rental loan",uses:["investment"],down:"25",term:"30",repayment:"amortizing",source:"dscr",note:"For a genuine non-owner-occupied rental. Gross rent divided by the full housing payment is a planning DSCR; the lender sets qualifying rent, required coverage and program terms."},{id:"portfolio",label:"Portfolio / non-QM",uses:["student-owner","parent-owned","investment","primary","undecided"],down:"20",term:"30",repayment:"amortizing",source:"matt",note:"Lender-specific portfolio, non-QM and non-warrantable-condo paths may address a property or household that does not fit a standard program. Confirm income documentation, occupancy, condo eligibility, reserves and state availability."},{id:"bank-statement",label:"Bank statement",uses:["student-owner","parent-owned","investment","primary","undecided"],down:"20",term:"30",repayment:"amortizing",source:"occupancy",note:"Alternative income documentation for eligible self
1-employed borrowers. Ownership and occupancy must fit the specific program; documentation alone does not establish approval."},{id:"equity",label:"Home equity / HELOC",uses:["student-owner","parent-owned","investment","primary","undecided"],down:"0",term:"10",repayment:"interest-only",source:"equity",note:"Uses available equity in another owned home. The illustrated draw payment is an additional obligation secured by that home; its existing mortgage is not included. A HELOC may have a variable rate and later repayment changes."},{id:"bridge",label:"Renovation / bridge",uses:["investment"],down:"25",term:"1",repayment:"interest-only",source:"occupancy",note:"Short-term investment financing. Enter the actual funded balance, term and fees. Future repair draws, extensions and a refinance are not assumed; the remaining principal is due at the stated maturity."},{id:"cash",label:"All cash",uses:["student-owner","parent-owned","investment","primary","undecided"],down:"100",term:"",repayment:"cash",source:"occupancy",note:"No loan payment. Taxes, insurance, association costs, closing costs and reserves still affect ownership."}]),l=e=>s.find(t=>t.id===e)||null,c=e=>s.filter(t=>t.uses.includes(e)),u=Object.freeze({price:[1,1e8],downPercent:[0,100],rate:[0,30],term:[1/12,50],loanBalance:[0,1e8],taxAnnual:[0,1e7],insuranceAnnual:[0,1e7],hoa:[0,1e6],mortgageInsurance:[0,1e6],rent:[0,1e6],closingCosts:[0,1e8],pointsPercent:[0,30],reserves:[0,1e8],initialRepairs:[0,1e8],vacancyPercent:[0,100],managementPercent:[0,100],maintenanceMonthly:[0,1e6],otherMonthly:[0,1e6]});function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},n={};if(!e||"object"!=typeof e||Array.isArray(e))return{values:t,errors:{inputs:"Enter a financing scenario."}};for(let[a,[o,i]]of Object.entries(u)){if(!Object.hasOwn(e,a))continue;let s=e[a];if(null==s||"string"==typeof s&&!s.trim()){t[a]="";continue}let l=(0,r.Yw)(s);if(null===l||l<o||l>i){n[a]="Enter a value from "+o+" to "+i+".";continue}t[a]=String(l)}return{values:t,errors:n}}function m(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"undecided",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",s=(0,r.f8)(t,n,a),c=l(i),d=new URLSearchParams(n),m=Object.fromEntries(Object.keys(u).map(e=>[e,""]));for(let t of["price","taxAnnual","insuranceAnnual","hoa","mortgageInsurance"])m[t]=null!=(e=s[t])?e:"";c&&(m.downPercent=c.down,m.term=c.term);let p=!["school","market","marketSlug"].some(e=>d.getAll(e).some(e=>e&&e!==a));return p&&d.has("rate")&&(m.rate=s.rate),p&&d.has("downPercent")&&(m.downPercent=s.downPercent),p&&d.has("term")&&(m.term=s.term),"cash"===i&&(m.downPercent="100"),{use:o,programId:i,repayment:(null==c?void 0:c.repayment)||"amortizing",financeUpfront:!0,inputs:m}}function p(e,t){return"cash"===e.id?"cash":"fha-family"===e.id?"amortizing":["amortizing","interest-only"].includes(t)?t:e.repayment}function b(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=l(e.programId),{values:n,errors:o}=d(e.inputs),i=e=>(0,r.Yw)(n[e]);if(!t||!t.uses.includes(e.use))return{ready:!1,errors:{program:"Choose a financing path for the intended use."},parts:[],missing:["Financing path"],total:null,knownSubtotal:null,loan:null,cashNeeded:null,dscr:null,cashFlow:null};let s=p(t,e.repayment),c=i("price"),u="cash"===t.id?100:i("downPercent"),m="equity"===t.id||"bridge"===t.id?i("loanBalance"):null!==c&&null!==u?c*(1-u/100):null,b="fha-family"===t.id&&null!==m?Math.floor((.0175*m+1e-8)*100)/100:"fha-family"===t.id?null:0,f=null===m?null:m+("fha-family"===t.id&&!1!==e.financeUpfront?b:0),g=i("rate"),h=i("term"),w=null;if(0===f)w=0;else if(null!==f&&null!==g){if("interest-only"===s)w=f*g/1200;else if(null!==h&&Number.isInteger(Math.round(12*h*1e8)/1e8))try{w=(0,a.$1)(f,g,h)}catch(e){o.term="Enter a valid amortizing term."}}if("cash"!==s&&null===h&&(o.term="Enter a repayment or maturity period."),"cash"===s)for(let e of["rate","term","loanBalance","mortgageInsurance"])delete o[e];let y="cash"===s?0:i("mortgageInsurance"),v=[{key:"debt",label:"interest-only"===s?"Interest during initial period":"Principal & interest",value:w},{key:"taxAnnual",label:"Property taxes",value:null===i("taxAnnual")?null:i("taxAnnual")/12},{key:"insuranceAnnual",label:"Property insurance",value:null===i("insuranceAnnual")?null:i("insuranceAnnual")/12},{key:"hoa",label:"Association / HOA",value:i("hoa")},{key:"mortgageInsurance",label:"Mortgage insurance",value:y}],A=v.filter(e=>null===e.value).map(e=>e.label),P=0===A.length&&0===Object.keys(o).length,k=v.filter(e=>null!==e.value),j=k.length?k.reduce((e,t)=>
1e+t.value,0):null,S=P?j:null,C=null===c||null===m?null:Math.max(0,c-m),U=i("closingCosts"),B="cash"===t.id?0:i("pointsPercent"),O=i("reserves"),x=i("initialRepairs"),_=[C,U,B,O,x,b,m].every(e=>null!==e)?C+U+m*B/100+O+x+(!1===e.financeUpfront?b:0):null,I=i("rent"),q=i("vacancyPercent"),F=i("managementPercent"),M=i("maintenanceMonthly"),T=i("otherMonthly"),E="dscr"===t.id&&null!==S&&S>0&&null!==I?I/S:null,N="investment"===e.use&&null!==S&&[I,q,F,M,T].every(e=>null!==e)?I*(1-q/100)*(1-F/100)-S-M-T:null;return{ready:P,programId:t.id,repayment:s,errors:o,parts:v,missing:A,total:S,knownSubtotal:j,loan:f,baseLoan:m,upfront:b,downCash:C,cashNeeded:_,dscr:E,cashFlow:N,balloon:"interest-only"===s?f:null,term:h}}function f(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=l(e.programId);if(!t||!t.uses.includes(e.use))return null;let{values:n,errors:a}=d(e.inputs);if(Object.keys(a).length)return null;let r={use:e.use,programId:t.id,repayment:p(t,e.repayment),financeUpfront:!1!==e.financeUpfront,inputs:n};return{...r,results:b(r),sourceDate:"2026-09-14",source:o[t.source],status:"VISITOR_PLANNING_ASSUMPTIONS"}}function g(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!0!==e.virtualTourVerified)return null;try{let t=new URL(e.virtualTourUrl);return"https:"!==t.protocol||t.username||t.password?null:t.href}catch(e){return null}}},49431:e=>{e.exports=JSON.parse('[{"id":"73531585","mode":"buy","address":"566 Commonwealth Avenue, Unit 703","city":"Boston","area":"Fenway","beds":1,"baths":1,"sqft":850,"price":569000,"status":"Active","type":"Co-op","distance":0.4,"lat":42.3487326,"lng":-71.0988907,"url":"https://www.compass.com/homedetails/566-Commonwealth-Ave-Unit-703-Boston-MA-02215/1YFEP3_pid/","photos":["/images/bu-blueprint/73531585-0.webp","/images/bu-blueprint/73531585-1.webp","/images/bu-blueprint/73531585-2.webp","/images/bu-blueprint/73531585-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-22","updatedAt":"2026-09-03T16:53:58.555000+00:00","sourcePhotos":["https://www.compass.com/m/e1282ccfa3eae095fe449c1c298d8b2d7b1281f327b2b8e882572ff956d18b4b/origin.jpg","https://www.compass.com/m/8c1474e722860a274461aa80c1c28a6eb5f3f96d2062324b2e51a4ce7508abeb/origin.jpg","https://www.compass.com/m/34a2b8c3a1368b68714d5d5ac7ac87bf5d644b8c28a6e1421bae8d87ce7fbb7e/origin.jpg","https://www.compass.com/m/9a90adbc47a4df404377e7e39ed32648526f60e23836d392950652a8774682ea/origin.jpg"]},{"id":"73516154","mode":"buy","address":"257 Northampton Street, Unit 510","city":"Boston","area":"South End","beds":1,"baths":1,"sqft":819,"price":765000,"status":"Active","type":"Condo","distance":1.4,"lat":42.33956329999999,"lng":-71.0815792,"url":"https://www.compass.com/homedetails/257-Northampton-St-Unit-510-Boston-MA-02118/1YE5QY_pid/","photos":["/images/bu-blueprint/73516154-0.webp","/images/bu-blueprint/73516154-1.webp","/images/bu-blueprint/73516154-2.webp","/images/bu-blueprint/73516154-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-22","updatedAt":"2026-09-04T07:05:52.839000+00:00","sourcePhotos":["https://www.compass.com/m/e030bf667e81c6dcf7f295ab149d3eecb5d89a59f569a17c0e7d35f712766190/origin.jpg","https://www.compass.com/m/8f3ec7ffad61a9656ffa3c000e7cd5cbdd110fbb84bd7c2adc4aee5c68ba84e7/origin.jpg","https://www.compass.com/m/8070ec0ef973b36519f3b697b1e3b87d69dd9fe5eb987e516b4006b13545ae79/origin.jpg","https://www.compass.com/m/21522a62089752f53013db62960c724bf8da65a33c14214e7b1c4acb921e7706/origin.jpg"]},{"id":"73560653","mode":"buy","address":"17 Chestnut Avenue, Unit 3","city":"Boston","area":"Jamaica Plain","beds":2,"baths":2,"sqft":1238,"price":775000,"status":"Active","type":"Condo","distance":2,"lat":42.3218727,"lng":-71.10240300000001,"url":"https://www.compass.com/homedetails/17-Chestnut-Ave-Unit-3-Boston-MA-02130/1YIUNO_pid/","photos":["/images/bu-blueprint/73560653-0.webp","/images/bu-blueprint/73560653-1.webp","/images/bu-blueprint/73560653-2.webp","/images/bu-blueprint/73560653-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-22","updatedAt":"2026-09-03T17:00:39.405000+00:00","sourcePhotos":["https://www.compass.com/m/40db65235a970b197b8b0e4a29cda602651c9c60d7002e468c6904e590ec2f77/origin.jpg","https://www.compass.com/m/c6f0c8ab41bbca7c4425dc26259e7c45f35f79c8f5c8e2d528eaab25e73336bc/origin.jpg","https://www.compass.com/m/140597962d2070f47debd82c491a5b9fdc1c51879f04c7d00e9d643c43a42495/origin.jpg","https://www.compass.com/m/bc38f7c36a248623d3cb144e4fb7b05c4d6eb1f9e9929da8fed53ab140edcf89/origin.jpg"]},{"id":"73336080","mode":"buy","address":"466 Commonwealth Avenue, Unit 502","city":"Boston","area":"Fe
1nway","beds":1,"baths":1,"sqft":695,"price":695000,"status":"Under Agreement","type":"Condo","distance":0.6,"lat":42.3485819,"lng":-71.0930924,"url":"https://www.compass.com/homedetails/466-Commonwealth-Ave-Unit-502-Boston-MA-02215/1YNVLK_pid/","photos":["/images/bu-blueprint/73336080-0.webp","/images/bu-blueprint/73336080-1.webp","/images/bu-blueprint/73336080-2.webp","/images/bu-blueprint/73336080-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-22","updatedAt":"2025-03-08T08:33:42.815000+00:00","sourcePhotos":["https://www.compass.com/m/8d68c5bc5679f279bdb3e668d507eda464e4b0cc_img_0_1a622/origin.jpg","https://www.compass.com/m/8d68c5bc5679f279bdb3e668d507eda464e4b0cc_img_1_c9d11/origin.jpg","https://www.compass.com/m/8d68c5bc5679f279bdb3e668d507eda464e4b0cc_img_2_1147c/origin.jpg","https://www.compass.com/m/8d68c5bc5679f279bdb3e668d507eda464e4b0cc_img_3_a1637/origin.jpg"]},{"id":"73524551","mode":"buy","address":"21 Father Francis Gilday Street, Unit 314","city":"Boston","area":"South End","beds":2,"baths":2,"sqft":1058,"price":1150000,"status":"Under Agreement","type":"Condo","distance":1.9,"lat":42.3374578,"lng":-71.0732484,"url":"https://www.compass.com/homedetails/21-Father-Francis-Gilday-St-Unit-314-Boston-MA-02118/1YDLGG_pid/","photos":["/images/bu-blueprint/73524551-0.webp","/images/bu-blueprint/73524551-1.webp","/images/bu-blueprint/73524551-2.webp","/images/bu-blueprint/73524551-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-22","updatedAt":"2026-09-05T00:33:19.879000+00:00","sourcePhotos":["https://www.compass.com/m/318d575a579b4e5014bf8dc2100a3b9f52d96bbdf5d9bbf18e3d2d79db246341/origin.jpg","https://www.compass.com/m/f4eba5ec66ac74b95bcf3a7ba2c90a41c75d32efedd1032f633454fc8d6f7411/origin.jpg","https://www.compass.com/m/b9f6eecdb2c4d7ae884c51ef4cd6041bd884d65c08174b3833b473bbe77e0777/origin.jpg","https://www.compass.com/m/24d869e81a2c1f05e61379d0555c4f4b3e50424d95202c1ecfefa80a29209cdf/origin.jpg"]},{"id":"73570825","mode":"rent","address":"5 Winchester Street, Unit 202","city":"Brookline","area":"North Brookline","beds":2,"baths":1,"sqft":680,"price":3300,"status":"Active","type":"Apartment","distance":1.2,"lat":42.3417649,"lng":-71.124738,"url":"https://www.compass.com/homedetails/5-Winchester-St-Unit-202-Brookline-MA-02446/1YHTPJ_pid/","photos":["/images/bu-blueprint/73570825-0.webp","/images/bu-blueprint/73570825-1.webp","/images/bu-blueprint/73570825-2.webp","/images/bu-blueprint/73570825-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-05","updatedAt":"2026-09-05T07:08:45.059000+00:00","sourcePhotos":["https://www.compass.com/m/79f16e12f8f994c7904a45339cbe1bacee35cb5041020ef3e7d28b4a93a773f3/origin.jpg","https://www.compass.com/m/a8e340ae621e50781425696bcb0f5df5de41c51e55e5436fd0d3d35d61b55a61/origin.jpg","https://www.compass.com/m/38024f2c0e418bc43054086e41f9f314d7ce1a74bd82ca19d8445a630ae259d1/origin.jpg","https://www.compass.com/m/e65d592650eb44b31c60136a781786705883cf0341312feb7967e1a9c70f807b/origin.jpg"]},{"id":"73570834","mode":"rent","address":"53 Rutland Square, Unit 2","city":"Boston","area":"South End","beds":2,"baths":1,"sqft":690,"price":5500,"status":"Active","type":"Condominium","distance":1.5,"lat":42.3424041,"lng":-71.0784803,"url":"https://www.compass.com/homedetails/53-Rutland-Square-Unit-2-Boston-MA-02118/1YBGFL_pid/","photos":["/images/bu-blueprint/73570834-0.webp","/images/bu-blueprint/73570834-1.webp","/images/bu-blueprint/73570834-2.webp","/images/bu-blueprint/73570834-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-05","updatedAt":"2026-09-05T07:08:45.060000+00:00","sourcePhotos":["https://www.compass.com/m/15c272abe0a65ef60744afe1e92dee56a51fcd849aac9ab0e8ce32cdea3dd244/origin.jpg","https://www.compass.com/m/ac08a6a66c11f49a46b6cb183a1deecfdfeb696a17e4129ba2f990108bae28f6/origin.jpg","https://www.compass.com/m/3882fbd9450df846f8f2d2d9d70a9f940d45cbfd8a3d4c19d34209e3c1508bc5/origin.jpg","https://www.compass.com/m/cecbece8bbe788ca3c94d2014e47d2b8b1ea37f2a30d55d8416a3da41218ed35/origin.jpg"]},{"id":"73556705","mode":"rent","address":"173 Davis Avenue, Unit 4","city":"Brookline","area":"Brookline Hills","beds":3,"baths":2.5,"sqft":1600,"price":5000,"status":"Active","type":"Apartment","distance":1.6,"lat":42.3325569,"lng":-71.1263305,"url":"https://www.compass.com/homedetails/173-Davis-Ave-Unit-4-Brookline-MA-02445/1Z6YB7_pid/","photos":["/images/bu-blueprint/73556705-0.webp","/images/bu-blueprint/73556705-1.webp","/images/bu-blueprint/73556705-2.webp","/images/bu-blueprint/73556705-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-05","updatedAt":"2026-09-03T17:13:15.318000+00:00","sourcePhotos":["https://www.compass.com/m/21425b11d933a4dd02f50da4e7058da468e13155c77eb554609eb90f70340640/origin.jpg","https://www.compass.com/m/11f940d827d3cbf41750b503e8d3c2fb455be83524b157c3f1c5c43e8321dc79/origin.jpg","https://www.compass.com/m/8e4bc7a456a82149aada9a4f8cecb772dc3cd6bec555483c5a3a3d41d0a4956f/origin.jpg","https://www.compass.com/m/5e3defb730392d2afa0dded35adbcde5221d968f25a9206c955f2cc7179e76c9/origin.jpg"]},{"id":"73570838","mode":"rent","address":"17 Chestnut Avenue, Unit 3","city":"Boston","area":"Jamaica Plain","beds":2,"baths":2,"sqft":1238,"price":4200,"status":"Active","type":"Condominium","distance":2,"lat":42.321851,"lng":-71.1024003,"url":"https://www.compass.com/homedetails/17-Chestnut-Ave-Unit-3-Boston-MA-02130/2185232985181921785_lid/","photos":["/images/bu-blueprint/73570838-0.webp","/images/bu-blueprint/73570838-1.webp","/images/bu-blueprint/73570838-2.webp","/images/bu-blueprint/73570838-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-05","updatedAt":"2026-09-05T07:08:45.060000+00:00","sourcePhotos":["https://www.compass.com/m/c1e25b69f900f4d9fd16d79a74abd18293bf8202f68db193fd225a0062eeed2c/origin.jpg","https://www.compass.com/m/ff3f1a2b5724b302b76674c
1a1fb1f67a177f7695d2a068236c5964dd06740ebf/origin.jpg","https://www.compass.com/m/e3dbe9b5fa1ad59aa68d38b1ed3b93b150544f64750c63fe3064b91e0bc99f65/origin.jpg","https://www.compass.com/m/6d57a41c40253f91b0139a5913594652be9cd294a46aa2372b2b89b4a5f27f8a/origin.jpg"]},{"id":"73571940","mode":"rent","address":"55 Colborne Road, Unit 6","city":"Boston","area":"Brighton","beds":1,"baths":1,"sqft":600,"price":2500,"status":"New","type":"Condominium","distance":2.2,"lat":42.3443152,"lng":-71.1471029,"url":"https://www.compass.com/homedetails/55-Colborne-Rd-Unit-6-Boston-MA-02135/1Z8E0K_pid/","photos":["/images/bu-blueprint/73571940-0.webp","/images/bu-blueprint/73571940-1.webp","/images/bu-blueprint/73571940-2.webp","/images/bu-blueprint/73571940-3.webp"],"attribution":"Frank Carroll Homes Team \xb7 Compass","checkedAt":"2026-09-05","updatedAt":"2026-09-04T12:58:27.626000+00:00","sourcePhotos":["https://www.compass.com/m/cdf8a116c3f09f58962898ae9217290fce54947a7f00a1012c7d7c9470321ed5/origin.jpg","https://www.compass.com/m/3f4539bcf3d18b24720086081a42162dc3562943d082605803d72f95a5b79458/origin.jpg","https://www.compass.com/m/b7a5c02bceadd46f507f97da92fbd59f74df88bcbed3661b19552d5e0b3e75f5/origin.jpg","https://www.compass.com/m/7965bfc256957fa6a680c424221fc8bdfb081da5db28a80604b8a8d9a9beb45d/origin.jpg"]}]')},60512:(e,t,n)=>{n.d(t,{Ux:()=>o,kQ:()=>s,tX:()=>i});var a=n(34363),r=n(49431);let o=a,i=[...a,...r.filter(e=>!a.some(t=>t.id===e.id&&t.mode===e.mode))];function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a;return Object.fromEntries(["buy","rent"].map(t=>{let n=e.filter(e=>e.mode===t),a=n.map(e=>e.price);return[t,{count:n.length,min:a.length?Math.min(...a):0,max:a.length?Math.max(...a):0,median:(e=>{let t=[...e].sort((e,t)=>e-t),n=t.length;return n?(t[Math.floor((n-1)/2)]+t[Math.ceil((n-1)/2)])/2:0})(a)}]}))}},62619:(e,t,n)=>{n.d(t,{U:()=>o});var a=n(84975),r=n(2647);function o(e){var t,n;let{client:o,form:i,property:s,query:l="",pathname:c=o.PAGE,expert:u="frank",decisionInputs:d,financingScenario:m}=e,p=o.PAGE||"/markets/"+o.slug,b=o.leadContextKey||("boston-university"===o.slug?"buContext":"clientContext"),f={expert:u,sourcePage:c,decision:!!(d||m),decisionInputs:d,financingScenario:m,mode:s.mode,origin:"unavailable"===s.availabilityStatus?"client-similar-property-request":"client-property-details",search:(0,r.nL)(l)},g=(0,a.B)({form:i,context:f,property:s,source:o.leadSource||("boston-university"===o.slug?"bu_profile":(null==(t=o.professional)?void 0:t.id)?"client_profile":"market_conversion"),page:p,contextKey:b,searchParams:l});Object.assign(g[b],{sourcePage:c,market:o.slug,assignedRealtor:null==(n=o.professional)?void 0:n.id}),"market_conversion"===g.source&&(g.timeline="planning-ahead",g.message=["Property: "+s.id+" \xb7 "+s.area,g.message].filter(Boolean).join("\n\n"));let h=(0,r.aN)(l);return h&&(g.message=["Original question: "+h,g.message].filter(Boolean).join("\n\n")),g}}
1,64423:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var a=n(95155),r=n(54400),o=n(17236),i=n(60512),s=n(53458);let l=Object.freeze({slug:"boston-university",display_name:"Boston University",short_name:"BU",city:"Boston",state:"MA"}),c=o["frank-carroll"],u=e=>{let t=(0,s.C)(e);return t&&"unavailable"!==t.availabilityStatus?{id:String(t.id),market:l.slug,mode:t.mode,area:t.area||"Campus area",city:t.city||l.city,state:l.state,price:t.price,beds:t.beds,baths:t.baths,sqft:t.sqft,type:t.type,distance:t.distance,photos:(t.photos||[]).slice(0,12),features:t.features||{},availableFrom:t.availableFrom||null,lat:t.lat,lng:t.lng,checkedAt:t.reviewedAt||t.verifiedAt||t.checkedAt,url:t.url,attribution:t.attribution,availabilityStatus:t.availabilityStatus||"unconfirmed"}:null},d=i.tX.map(u).filter(Boolean),m=Object.freeze({published:!0,hero:"/images/bu-blueprint/campus.webp",heroPosition:"65% 40%",school:{slug:l.slug,name:l.display_name,shortName:l.short_name,city:l.city,state:l.state},professional:{...c,photo:c.headshot,href:"/markets/boston-university/realtor/frank-carroll"},inventory:d});function p(e){let{anchorId:t="bu-properties",contextPath:n="/markets/boston-university",initialMode:o="buy",initialFilters:i=null,initialProperty:s=null,originatingQuestion:c="",syncUrl:p=!1,canonicalUrl:b=!1,inventoryRows:f=null,onModeChange:g=null}=e,h=Array.isArray(f)?f.map(u).filter(Boolean):d,w=Array.isArray(f)?{...m,inventory:h}:m;return(0,a.jsx)(r.A,{markets:[l],initialWorkspace:w,anchorId:t,contextPath:n,syncUrl:p,canonicalUrl:b,initialMode:o,initialFilters:i,initialProperty:s,originatingQuestion:c,showSchoolCue:!1,modeTabs:!0,calculatorPresentation:"canonical",onModeChange:g})}},84975:(e,t,n)=>{n.d(t,{B:()=>i,S:()=>s});var a=n(54481),r=n(34491),o=n(41251);function i(e){var t,n,i;let{form:s,context:l,property:c,source:u,page:d,contextKey:m,searchParams:p=""}=e,b="matt"!==l.expert&&"on"===s.get("loanOfficerFollowUp"),f=[s.get("preferredTime"),s.get("timeZone")].filter(Boolean).join(" \xb7 ").slice(0,60),g=l.question||new URLSearchParams(p).get("question")||new URLSearchParams(p).get("q")||"",h=(0,a.dx)(s,null==d||null==(t=d.match(/\/markets\/([^/]+)/))?void 0:t[1]),w="buy"===c.mode&&l.financingScenario?(0,o.Xn)(l.financingScenario):null,y=w?"Financing path: "+(0,o.wg)(w.programId).label+"; use="+w.use+"; repayment="+w.repayment+"; inputs="+JSON.stringify(w.inputs)+"; estimatedMonthly="+String(null!=(n=w.results.total)?n:"incomplete")+"; cashNeeded="+String(null!=(i=w.results.cashNeeded)?i:"incomplete"):"",v=[b?"Loan officer follow-up: REQUESTED by visitor.":"Loan officer follow-up: not requested.",l.decision?[y,(0,r.Rc)({question:g,inputs:l.decisionInputs,mode:c.mode,message:h})].filter(Boolean).join("\n\n").slice(0,2e3):h].filter(Boolean).join("\n\n").slice(0,2e3);return{source:u,page:d,name:s.get("name"),email:s.get("email"),phone:s.get("phone"),goal:l.goal||("matt"===l.expert?"finance":"rent"===c.mode?"rental":"buy"),timeline:"market_conversion"===u?"planning-ahead":s.get("timeline"),message:v,consent:"on"===s.get("consent"),companyWebsite:s.get("companyWebsite"),[m]:{expert:l.expert||"frank",loanOfficerFollowUp:b,propertyId:c.id,propertyProof:c.propertyProof||void 0,mode:c.mode,origin:l.origin||"property-inquiry",sourcePage:l.sourcePage||d,question:String(g).slice(0,800),preferredContact:[s.get("preferredDay"),f].filter(Boolean).join(" \xb7 "),preferredDay:s.get("preferredDay"),preferredTime:f,search:l.search||null,scenario:l.scenario||null,...l.decision?{paymentScenario:(0,r.pf)(l.decisionInputs,c.mode).inputs}:{},...w?{financingScenario:w}:{},utm:Object.fromEntries([...new URLSearchParams(p)].filter(e=>{let[t]=e;return["utm_source","utm_medium","utm_campaign","utm_content","utm_term"].includes(t)}))}}}async function s(e){let t,n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fetch;try{t=await a("/api/public-leads",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch(e){throw Error("Your request could not be saved. Please check your connection and try again, or use the direct contact details.")}try{n=await t.json()}catch(e){}if(!t.ok||(null==n?void 0:n.ok)!==!0)throw Error(429===t.status?"You have sent several requests recently. Please wait a few minutes or use the direct contact details.":"Your request could not be saved. Please try again or use the direct contact details.");return n}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.