December 15, 2025
Strong home-buying demand boosts builders’ business outlook to the highest level since June 2022

Strong home-buying demand boosts builders’ business outlook to the highest level since June 2022

Strong home-buying demand boosts builders’ business outlook to the highest level since June 2022 – MarketWatch

Object.keys(e[t]||{}),executeQueue(e){try{t[e]&&t[e].forEach((e=>this.execute(…e))),delete t[e]}catch(e){console.error(e)}},execute(){var[t,i,r,n]=arguments,s=e[t][i],u=e=>e,c=[];return”function”!=typeof s?s:(r&&(“function”==typeof r?(u=r,n&&Array.isArray(n)&&(c=n)):Array.isArray(r)&&(c=r)),u(s.apply(null,c)))},__reset(){var i=e=>Object.keys(e).forEach((t=>delete e[t]));i(e),i(t)},hasSubscription(e){return this.getSubscribedElements().indexOf(e)>-1},hasSubscribedFunction(e,t){return this.getSubscribedFunctions(e).indexOf(t)>-1},uniqueFucntionsUnderSubscription(t,i){const{__ace:r=(()=>({}))}=window;let n={};return Object.keys(i).forEach((s=>{e[t][s]?r(“log”,”log”,[{type:”warning”,initiator:”page”,message:”You are trying to subscribe the function “+s+” under the “+t+” namespace again. Use another name.”}]):n[s]=i[s]})),n},addSubscription(t,i){if(this.hasSubscription(t)){const r=this.uniqueFucntionsUnderSubscription(t,i);e[t]={…e[t],…r}}else e[t]=i;return e},subscribe(t,i,r){if(r)return e[t]=i,e;if(!i||”object”!=typeof i)throw new Error(“Missing third parameter. You must provide an object.”);return this.addSubscription(t,i),this.executeQueue(t),e},globalMessaging(){var[e,t,…i]=arguments;if(!e&&!t)return this.getSubscribedElements();if(e&&”string”==typeof e&&!t)return this.getSubscribedFunctions(e);if(“string”!=typeof e||”string”!=typeof t)throw new Error(“First and second argument must be String types”);if(this.hasSubscribedFunction(e,t))return this.execute(e,t,…i);this.addToExecutionQueue(e,t,…i)}},window.__ace=i.globalMessaging.bind(i),window.__ace.subscribe=i.subscribe.bind(i)}();var googletag=googletag||{};googletag.cmd=googletag.cmd||[];function _typeof(e){return(_typeof=”function”==typeof Symbol&&”symbol”==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&”function”==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?”symbol”:typeof e})(e)}!function(){for(var e,t,n=[],r=window,o=r;o;){try{if(o.frames.__tcfapiLocator){e=o;break}}catch(e){}if(o===r.top)break;o=r.parent}e||(function e(){var t=r.document,n=!!r.frames.__tcfapiLocator;if(!n)if(t.body){var o=t.createElement(“iframe”);o.style.cssText=”display:none”,o.name=”__tcfapiLocator”,t.body.appendChild(o)}else setTimeout(e,5);return!n}(),r.__tcfapi=function(){for(var e=arguments.length,r=new Array(e),o=0;o3&&2===parseInt(r[1],10)&&”boolean”==typeof r[3]&&(t=r[3],”function”==typeof r[2]&&r[2](“set”,!0)):”ping”===r[0]?”function”==typeof r[2]&&r[2]({gdprApplies:t,cmpLoaded:!1,cmpStatus:”stub”}):n.push(r)},r.addEventListener(“message”,(function(e){var t=”string”==typeof e.data,n={};if(t)try{n=JSON.parse(e.data)}catch(e){}else n=e.data;var r=”object”===_typeof(n)?n.__tcfapiCall:null;r&&window.__tcfapi(r.command,r.version,(function(n,o){var a={__tcfapiReturn:{returnValue:n,success:o,callId:r.callId}};e&&e.source&&e.source.postMessage&&e.source.postMessage(t?JSON.stringify(a):a,”*”)}),r.parameter)}),!1))}(),function(){var e=!1,t=window,n=document;function r(e){var n=”string”==typeof e.data;try{var r=n?JSON.parse(e.data):e.data;if(r.__cmpCall){var o=r.__cmpCall;t.__uspapi(o.command,o.parameter,(function(t,r){var a={__cmpReturn:{returnValue:t,success:r,callId:o.callId}};e.source.postMessage(n?JSON.stringify(a):a,”*”)}))}}catch(r){}}!function e(){if(!t.frames.__uspapiLocator)if(n.body){var r=n.body,o=n.createElement(“iframe”);o.style.cssText=”display:none”,o.name=”__uspapiLocator”,r.appendChild(o)}else setTimeout(e,5)}(),”function”!=typeof __uspapi&&(t.__uspapi=function(){var t=arguments;if(__uspapi.a=__uspapi.a||[],!t.length)return __uspapi.a;”ping”===t[0]?t[2]({gdprAppliesGlobally:e,cmpLoaded:!1},!0):__uspapi.a.push([].slice.apply(t))},__uspapi.msgHandler=r,t.addEventListener(“message”,r,!1))}(),function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){“undefined”!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:”Module”}),Object.defineProperty(e,”__esModule”,{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&”object”==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,”default”,{enumerable:!0,value:e}),2&t&&”string”!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,”a”,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=”/”,n(n.s=0)}([function(e,t,n){“use strict”;n.r(t);var r=function(){var e=window.djcmp,t=void 0===e?{}:e;if(!t._params){var n=document.querySelector(“#djcmp”),r=n&&n.getAttribute(“data-params”);t._params=r&&JSON.parse(r)}return t._params||{}},o=function(){return!(-1!==(document&&document.cookie||””).indexOf(“gdprApplies=false”))},a=function(){return window&&window.djcmp&&window.djcmp.tcData&&window.djcmp.tcData.gdprApplies},i=function(){var e=a();return”boolean”==typeof e?e:null},p=function(e,t){if(r().gdprApplies)return!0;switch(e){case”cookieOnly”:return o();case”serviceOnly”:return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=r().geoServiceUrl;if(t){var n=””.concat(t,”/geolocation-services/gdpr”);fetch(n).then((function(e){return e.json()})).then((function(t){var n=t.applies;e(n)})).catch((function(){e(null)}))}else”function”==typeof e&&e(null)}(t);case”tcfapiOnly”:return”function”==typeof t?function(e){var t=a();return”boolean”==typeof t?e(t):window.__tcfapi(“getTCData”,2,(function(t){var n=”boolean”!=typeof t.gdprApplies||t.gdprApplies;e(n)}))}(t):i();case”cookieFirst”:return-1!==(document&&document.cookie||””).indexOf(“gdprApplies=”)?o():i();default:return function(){var e=a();return”boolean”==typeof e?e:o()}()}},c=function(e){return!!r().ccpaApplies};!function(){var e=[];function t(){e.push(arguments)}window.djcmp||(t.gdprApplies=p,t.ccpaApplies=c,t.queue=e,window.djcmp=t)}()}]); ]]]]]]]]>]]]]]]>]]]]>]]> {}),performance:d}=window,o=e=>{const d=(t(“page”)||[]).indexOf(“setPerfMark”)>-1?”page”:”ace”;t(d,”setPerfMark”,[e,{isNewRelicEnabled:!0,justNewRelic:!1}])};e.cmd.push((()=>{const s={gptSlotRequested:!1,gptSlotRenderEnded:!1,gptSlotOnload:!1};window.adslots=window.adslots||{},window.adslots.spaAdtechPerfObj=s,t(“dataLayer”,”setData”,[{spaAdtechPerfObj:s}]),e.pubads().addEventListener(“slotRequested”,(()=>{const{spaAdtechPerfObj:e={}}=window.adslots,{gptSlotRequested:t}=e;t||(d.clearMarks(“gpt-slotRequested”),o(“gpt-slotRequested”),window.adslots.spaAdtechPerfObj.gptSlotRequested=!0)})),e.pubads().addEventListener(“slotRenderEnded”,(()=>{const{spaAdtechPerfObj:e={}}=window.adslots,{gptSlotRenderEnded:t}=e;t||(d.clearMarks(“gpt-slotRenderEnded”),o(“gpt-slotRenderEnded”),window.adslots.spaAdtechPerfObj.gptSlotRenderEnded=!0)})),e.pubads().addEventListener(“slotOnload”,(()=>{const{spaAdtechPerfObj:e={}}=window.adslots,{gptSlotOnload:t}=e;t||(d.clearMarks(“gpt-slotOnload”),o(“gpt-slotOnload”),window.adslots.spaAdtechPerfObj.gptSlotOnload=!0)}))}))})(); ]]]]]]]]>]]]]]]>]]]]>]]> {const{moatEnabled:t,adId:o,slot:d,requestAd:m}=e,s=a[o]&&a[o].slot||d;if(n.getEntriesByName(“moat-ace-firstAdItem”).length||i(“ace”,”setPerfMark”,[“moat-ace-firstAdItem”,{isNewRelicEnabled:!0}]),t&&”function”==typeof r&&r(s),!s)throw new ReferenceError(`slot ${o} is not defined`);m(s,e)})),window.moatQueue=null};((t=e)=>{if(“function”!=typeof t)throw new TypeError(“moatYieldReady must be a function”);window.moatYieldReady=t})()}(); ]]]]]]]]>]]]]]]>]]]]>]]> {function a(a,e){window.apstag._Q.push([a,e])}window.apstag||(window.apstag={init(){a(“i”,arguments)},fetchBids(){a(“f”,arguments)},setDisplayBids(){},targetingKeys:()=>[],_Q:[]})})(); ]]]]]]]]>]]]]]]>]]]]>]]> {n.d(t,{P_:()=>f,Mt:()=>p,C5:()=>s,DL:()=>m,OP:()=>_,lF:()=>E,Yu:()=>y,Dg:()=>g,CX:()=>c,GE:()=>b,sU:()=>j});var r=n(8632),i=n(9567);const o={beacon:r.ce.beacon,errorBeacon:r.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error(“All info objects require an agent identifier!”);if(!a[e])throw new Error(“Info for “.concat(e,” was never set”));return a[e]}function c(e,t){if(!e)throw new Error(“All info objects require an agent identifier!”);a[e]=(0,i.D)(t,o),(0,r.Qy)(e,a[e],”info”)}var d=n(7056);const u=()=>{const e={blockSelector:”[data-nr-block]”,maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:”*”,maskAllInputs:!0,get blockClass(){return”nr-block”},get ignoreClass(){return”nr-ignore”},get maskTextClass(){return”nr-mask”},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=”,”.concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={…t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},l={};function f(e){if(!e)throw new Error(“All configuration objects require an agent identifier!”);if(!l[e])throw new Error(“Configuration for “.concat(e,” was never set”));return l[e]}function g(e,t){if(!e)throw new Error(“All configuration objects require an agent identifier!”);l[e]=(0,i.D)(t,u()),(0,r.Qy)(e,l[e],”config”)}function p(e,t){if(!e)throw new Error(“All configuration objects require an agent identifier!”);var n=f(e);if(n){for(var r=t.split(“.”),i=0;i{n.d(t,{D:()=>i});var r=n(50);function i(e,t){try{if(!e||”object”!=typeof e)return(0,r.Z)(“Setting a Configurable requires an object as input”);if(!t||”object”!=typeof t)return(0,r.Z)(“Setting a Configurable requires a model to set its initial properties”);const n=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(n).length?e:n;for(let a in o)if(void 0!==e[a])try{“object”==typeof e[a]&&”object”==typeof t[a]?n[a]=i(e[a],t[a]):n[a]=e[a]}catch(e){(0,r.Z)(“An error occurred while setting a property of a Configurable”,e)}return n}catch(e){(0,r.Z)(“An error occured while setting a Configurable”,e)}}},6818:(e,t,n)=>{n.d(t,{Re:()=>i,gF:()=>o,q4:()=>r});const r=”1.236.0″,i=”PROD”,o=”CDN”},385:(e,t,n)=>{n.d(t,{FN:()=>a,IF:()=>d,Nk:()=>l,Tt:()=>s,_A:()=>o,il:()=>r,pL:()=>c,v6:()=>i,w1:()=>u});const r=”undefined”!=typeof window&&!!window.document,i=”undefined”!=typeof WorkerGlobalScope&&(“undefined”!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||”undefined”!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=r?window:”undefined”!=typeof WorkerGlobalScope&&(“undefined”!=typeof self&&self instanceof WorkerGlobalScope&&self||”undefined”!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=””+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&”undefined”==typeof SharedWorker,d=(()=>{const e=navigator.userAgent.match(/Firefox[/s](d+.d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),u=Boolean(r&&window.document.documentMode),l=!!navigator.sendBeacon},1117:(e,t,n)=>{n.d(t,{w:()=>o});var r=n(50);const i={agentIdentifier:””,ee:void 0};class o{constructor(e){try{if(“object”!=typeof e)return(0,r.Z)(“shared context requires an object as input”);this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,n]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=n)}))}catch(e){(0,r.Z)(“An error occured while setting SharedContext”,e)}}}},8e3:(e,t,n)=>{n.d(t,{L:()=>u,R:()=>c});var r=n(2177),i=n(1284),o=n(4322),a=n(3325);const s={};function c(e,t){const n={staged:!1,priority:a.p[t]||0};d(e),s[e].get(t)||s[e].set(t,n)}function d(e){e&&(s[e]||(s[e]=new Map))}function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:””,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:”feature”;if(d(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const n=[…s[e]];function a(t){const n=e?r.ee.get(e):r.ee,a=o.X.handlers;if(n.backlog&&a){var s=n.backlog[t],c=a[t];if(c){for(var d=0;s&&d{let[t,n]=e;return n.staged}))&&(n.sort(((e,t)=>e[1].priority-t[1].priority)),n.forEach((e=>{let[t]=e;a(t)})))}function l(e,t){var n=e[1];(0,i.D)(t[n],(function(t,n){var r=e[0];if(n[0]===r){var i=n[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,n)=>{n.d(t,{ee:()=>d});var r=n(8632),i=n(2210),o=n(1284),a=n(5763),s=”nr@context”;let c=(0,r.fP)();var d;function u(){}function l(){return new u}function f(){d.aborted=!0,d.backlog={}}c.ee?d=c.ee:(d=function e(t,n){var r={},c={},g={},p=!1;try{p=16===n.length&&(0,a.OP)(n).isolatedBacklog}catch(e){}var h={on:b,addEventListener:b,removeEventListener:y,emit:m,get:A,listeners:w,context:v,buffer:x,abort:f,aborted:!1,isBuffering:D,debugId:n,backlog:p?{}:t&&”object”==typeof t.backlog?t.backlog:{}};return h;function v(e){return e&&e instanceof u?e:e?(0,i.X)(e,s,l):l()}function m(e,n,r,i,o){if(!1!==o&&(o=!0),!d.aborted||i){t&&o&&t.emit(e,n,r);for(var a=v(r),s=w(e),u=s.length,l=0;lr,p:()=>i});var r=n(2177).ee.get(“handle”);function i(e,t,n,i,o){o?(o.buffer([e],i),o.emit(e,t,n)):(r.buffer([e],i),r.emit(e,t,n))}},4322:(e,t,n)=>{n.d(t,{X:()=>o});var r=n(5546);o.on=a;var i=o.handlers={};function o(e,t,n,o){a(o||r.E,i,e,t,n)}function a(e,t,n,i,o){o||(o=”feature”),e||(e=r.E);var a=t[o]=t[o]||{};(a[n]=a[n]||[]).push([e,i])}},3239:(e,t,n)=>{n.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var r=n(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};r._A.addEventListener(“test”,null,e),r._A.removeEventListener(“test”,null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(n,r))}function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(n,r))}},4402:(e,t,n)=>{n.d(t,{Rl:()=>a,ky:()=>s});var r=n(385);const i=”xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx”;function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=r._A?.crypto||r._A?.msCrypto;let t,n=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split(“”).map((e=>”x”===e?o(t,++n).toString(16):”y”===e?(3&o()|8).toString(16):e)).join(“”)}function s(e){const t=r._A?.crypto||r._A?.msCrypto;let n,i=0;t&&t.getRandomValues&&(n=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s{n.d(t,{Bq:()=>r,Hb:()=>o,oD:()=>i});const r=”NRBA”,i=144e5,o=18e5},7894:(e,t,n)=>{function r(){return Math.round(performance.now())}n.d(t,{z:()=>r})},50:(e,t,n)=>{function r(e,t){“function”==typeof console.warn&&(console.warn(“New Relic: “.concat(e)),t&&console.warn(t))}n.d(t,{Z:()=>r})},2587:(e,t,n)=>{n.d(t,{N:()=>c,T:()=>d});var r=n(2177),i=n(5546),o=n(8e3),a=n(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const n=r.ee.get(t);e&&”object”==typeof e&&(Object.entries(e).forEach((e=>{let[t,r]=e;void 0===d[t]&&(s[t]?s[t].forEach((e=>{r?(0,i.p)(“feat-“+t,[],void 0,e,n):(0,i.p)(“block-“+t,[],void 0,e,n),(0,i.p)(“rumresp-“+t,[Boolean(r)],void 0,e,n)})):r&&(0,i.p)(“feat-“+t,[],void 0,void 0,n),d[t]=Boolean(r))})),Object.keys(s).forEach((e=>{void 0===d[e]&&(s[e]?.forEach((t=>(0,i.p)(“rumresp-“+e,[!1],void 0,t,n))),d[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const d={}},2210:(e,t,n)=>{n.d(t,{X:()=>i});var r=Object.prototype.hasOwnProperty;function i(e,t,n){if(r.call(e,t))return e[t];var i=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,n)=>{n.d(t,{D:()=>r});const r=(e,t)=>Object.entries(e||{}).map((e=>{let[n,r]=e;return t(n,r)}))},4351:(e,t,n)=>{n.d(t,{P:()=>o});var r=n(2177);const i=()=>{const e=new WeakSet;return(t,n)=>{if(“object”==typeof n&&null!==n){if(e.has(n))return;e.add(n)}return n}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{r.ee.emit(“internal-error”,[e])}catch(e){}}}},3960:(e,t,n)=>{n.d(t,{K:()=>a,b:()=>o});var r=n(3239);function i(){return”undefined”==typeof document||”complete”===document.readyState}function o(e,t){if(i())return e();(0,r.bP)(“load”,e,t)}function a(e){if(i())return e();(0,r.iz)(“DOMContentLoaded”,e)}},8632:(e,t,n)=>{n.d(t,{EZ:()=>d,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>u,mF:()=>s});var r=n(7894),i=n(385);const o={beacon:”bam.nr-data.net”,errorBeacon:”bam.nr-data.net”};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,n){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,r.z)(),date:new Date}),i.initializedAgents={…o,[e]:{…s,[n]:t}},i}function d(e,t){a()[e]=t}function u(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,…t}}(),function(){let e=a();const t=e.init||{};e.init={…t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={…t}}(),a()}},7956:(e,t,n)=>{n.d(t,{N:()=>i});var r=n(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,r.iz)(“visibilitychange”,(function(){if(t)return void(“hidden”==document.visibilityState&&e());e(document.visibilityState)}),n,i)}},3081:(e,t,n)=>{n.d(t,{gF:()=>o,mY:()=>i,t9:()=>r,vz:()=>s,xS:()=>a});const r=n(3325).D.metrics,i=”sm”,o=”cm”,a=”storeSupportabilityMetrics”,s=”storeEventMetrics”},7633:(e,t,n)=>{n.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>r});const r=n(3325).D.pageViewEvent,i=”firstbyte”,o=”domcontent”,a=”windowload”},9251:(e,t,n)=>{n.d(t,{t:()=>r});const r=n(3325).D.pageViewTiming},5938:(e,t,n)=>{n.d(t,{W:()=>o});var r=n(5763),i=n(2177);class o{constructor(e,t,n){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,r.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=n,this.blocked=!1}}},9144:(e,t,n)=>{n.d(t,{j:()=>v});var r=n(3325),i=n(5763),o=n(5546),a=n(2177),s=n(7894),c=n(8e3),d=n(3960),u=n(385),l=n(50),f=n(3081),g=n(8632);function p(){const e=(0,g.gG)();[“setErrorHandler”,”finished”,”addToTrace”,”inlineHit”,”addRelease”,”addPageAction”,”setCurrentRouteName”,”setPageViewName”,”setCustomAttribute”,”interaction”,”noticeError”,”setUserId”].forEach((t=>{e[t]=function(){for(var n=arguments.length,r=new Array(n),i=0;i1?n-1:0),i=1;i{e.exposed&&e.api[t]&&o.push(e.api[t](…r))})),o.length>1?o:o[0]}(t,…r)}}))}var h=n(2587);function v(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},v=arguments.length>2?arguments[2]:void 0,m=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:A={loaderType:v},exposed:x=!0}=t;const D=(0,g.gG)();y||(b=D.init,y=D.info,w=D.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,A),y.jsAttributes??={},u.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),p();const _=function(e,t){t||(0,c.R)(e,”api”);const g={};var p=a.ee.get(e),h=p.get(“tracer”),v=”api-“,m=v+”ixn-“;function b(t,n,r,o){const a=(0,i.C5)(e);return null===n?delete a.jsAttributes[t]:(0,i.CX)(e,{…a,jsAttributes:{…a.jsAttributes,[t]:n}}),A(v,r,!0,o||null===n?”session”:void 0)(t,n)}function y(){}[“setErrorHandler”,”finished”,”addToTrace”,”inlineHit”,”addRelease”].forEach((e=>g[e]=A(v,e,!0,”api”))),g.addPageAction=A(v,”addPageAction”,!0,r.D.pageAction),g.setCurrentRouteName=A(v,”routeName”,!0,r.D.spa),g.setPageViewName=function(t,n){if(“string”==typeof t)return”/”!==t.charAt(0)&&(t=”/”+t),(0,i.OP)(e).customTransaction=(n||”http://custom.transaction”)+t,A(v,”setPageViewName”,!0)()},g.setCustomAttribute=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(“string”==typeof e){if([“string”,”number”].includes(typeof t)||null===t)return b(e,t,”setCustomAttribute”,n);(0,l.Z)(“Failed to execute setCustomAttribute.nNon-null value must be a string or number type, but a type of was provided.”))}else(0,l.Z)(“Failed to execute setCustomAttribute.nName must be a string type, but a type of was provided.”))},g.setUserId=function(e){if(“string”==typeof e||null===e)return b(“enduser.id”,e,”setUserId”,!0);(0,l.Z)(“Failed to execute setUserId.nNon-null value must be a string type, but a type of was provided.”))},g.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var n={},i=this,a=”function”==typeof t;return(0,o.p)(m+”tracer”,[(0,s.z)(),e,n],i,r.D.spa,p),function(){if(h.emit((a?””:”no-“)+”fn-start”,[(0,s.z)(),i,a],n),a)try{return t.apply(this,arguments)}catch(e){throw h.emit(“fn-err”,[arguments,this,”string”==typeof e?new Error(e):e],n),e}finally{h.emit(“fn-end”,[(0,s.z)()],n)}}}};function A(e,t,n,i){return function(){return(0,o.p)(f.xS,[“API/”+t+”/called”],void 0,r.D.metrics,p),i&&(0,o.p)(e+t,[(0,s.z)(),…arguments],n?null:this,i,p),n?void 0:this}}function x(){n.e(439).then(n.bind(n,7438)).then((t=>{let{setAPI:n}=t;n(e),(0,c.L)(e,”api”)})).catch((()=>(0,l.Z)(“Downloading runtime APIs failed…”)))}return[“actionText”,”setName”,”setAttribute”,”save”,”ignore”,”onEnd”,”getContext”,”end”,”get”].forEach((e=>{w[e]=A(m,e,void 0,r.D.spa)})),g.noticeError=function(e,t){“string”==typeof e&&(e=new Error(e)),(0,o.p)(f.xS,[“API/noticeError/called”],void 0,r.D.metrics,p),(0,o.p)(“err”,[e,(0,s.z)(),!1,t],void 0,r.D.jserrors,p)},u.il?(0,d.b)((()=>x()),!0):x(),g}(e,m);return(0,g.Qy)(e,_,”api”),(0,g.Qy)(e,x,”exposed”),(0,g.EZ)(“activatedFeatures”,h.T),_}},3325:(e,t,n)=>{n.d(t,{D:()=>r,p:()=>i});const r={ajax:”ajax”,jserrors:”jserrors”,metrics:”metrics”,pageAction:”page_action”,pageViewEvent:”page_view_event”,pageViewTiming:”page_view_timing”,sessionReplay:”session_replay”,sessionTrace:”session_trace”,spa:”spa”},i={[r.pageViewEvent]:1,[r.pageViewTiming]:2,[r.metrics]:3,[r.jserrors]:4,[r.ajax]:5,[r.sessionTrace]:6,[r.pageAction]:7,[r.spa]:8,[r.sessionReplay]:9}}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={exports:{}};return n[e](o,o.exports,i),o.exports}i.m=n,i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>(({78:”page_action-aggregate”,147:”metrics-aggregate”,242:”session-manager”,317:”jserrors-aggregate”,348:”page_view_timing-aggregate”,412:”lazy-feature-loader”,439:”async-api”,538:”recorder”,590:”session_replay-aggregate”,675:”compressor”,733:”session_trace-aggregate”,786:”page_view_event-aggregate”,873:”spa-aggregate”,898:”ajax-aggregate”}[e]||e)+”.”+{78:”ac76d497″,147:”3dc53903″,148:”1a20d5fe”,242:”2a64278a”,317:”49e41428″,348:”bd6de33a”,412:”2f55ce66″,439:”30bd804e”,538:”1b18459f”,590:”cf0efb30″,675:”ae9f91a8″,733:”83105561″,786:”06482edd”,860:”03a8b7a5″,873:”e6b09d52″,898:”998ef92b”}[e]+”-1.236.0.min.js”),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t=”NRBA:”,i.l=(n,r,o,a)=>{if(e[n])e[n].push(r);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName(“script”),u=0;u{s.onerror=s.onload=null,clearTimeout(g);var i=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(r))),t)return t(r)},g=setTimeout(f.bind(null,void 0,{type:”timeout”,target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{“undefined”!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:”Module”}),Object.defineProperty(e,”__esModule”,{value:!0})},i.j=6,i.p=”https://js-agent.newrelic.com/”,(()=>{var e={6:0,352:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,i)=>r=e[t]=[n,i]));n.push(r[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&(“load”===n.type?”missing”:n.type),a=n&&n.target&&n.target.src;s.message=”Loading chunk “+t+” failed.n(“+o+”: “+a+”)”,s.name=”ChunkLoadError”,s.type=o,s.request=a,r[1](s)}}),”chunk-“+t,t)}};var t=(t,n)=>{var r,o,[a,s,c]=n,d=0;if(a.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);if(c)c(i)}for(t&&t(n);d{i.r(o);var e=i(3325),t=i(5763);const n=Object.values(e.D);function r(e){const r={};return n.forEach((n=>{r[n]=function(e,n){return!1!==(0,t.Mt)(n,””.concat(e,”.enabled”))}(n,e)})),r}var a=i(9144);var s=i(5546),c=i(385),d=i(8e3),u=i(5938),l=i(3960),f=i(50);class g extends u.W{constructor(e,t,n){let r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,n),this.auto=r,this.abortHandler,this.featAggregate,this.onAggregateImported,r&&(0,d.R)(e,n)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const n=c.il&&!0===(0,t.Mt)(this.agentIdentifier,”privacy.cookies_enabled”);let r;this.onAggregateImported=new Promise((e=>{r=e}));const o=async()=>{let t;try{if(n){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,f.Z)(“A problem occurred when starting up session manager. This page will not start or extend any session.”,e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,d.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:n}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await n(this.featureName,”aggregate”);this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),r(!0)}catch(e){(0,f.Z)(“Downloading and initializing “.concat(this.featureName,” failed…”),e),this.abortHandler?.(),r(!1)}};c.il?(0,l.b)((()=>o()),!0):o()}shouldImportAgg(n,r){return n!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,”session_trace.enabled”)&&(!!r?.isNew||!!r?.state.sessionReplay)}}var p=i(7633),h=i(7894);class v extends g{static featureName=p.t9;constructor(n,r){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(n,r,p.t9,i),(“undefined”==typeof PerformanceNavigationTiming||c.Tt)&&”undefined”!=typeof PerformanceTiming){const r=(0,t.OP)(n);r[p.Dz]=Math.max(Date.now()-r.offset,0),(0,l.K)((()=>r[p.qw]=Math.max((0,h.z)()-r[p.Dz],0))),(0,l.b)((()=>{const t=(0,h.z)();r[p.OJ]=Math.max(t-r[p.Dz],0),(0,s.p)(“timing”,[“load”,t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var m=i(1117),b=i(1284);class y extends m.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,n,r,i){var o=this.getBucket(e,t,n,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,n){t[e]=w(n,t[e])})),t}(r,o.metrics),o}merge(e,t,n,r,i){var o=this.getBucket(e,t,r,i);if(o.metrics){var a=o.metrics;a.count+=n.count,(0,b.D)(n,(function(e,t){if(“count”!==e){var r=a[e],i=n[e];i&&!i.c?a[e]=w(i.t,r):a[e]=function(e,t){if(!t)return e;t.c||(t=A(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=n}storeMetric(e,t,n,r){var i=this.getBucket(e,t,n);return i.stats=w(r,i.stats),i}getBucket(e,t,n,r){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:n||{}},r&&(i.custom=r)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},n=””,r=!1,i=0;it.max&&(t.max=e),e2&&void 0!==arguments[2])||arguments[2];super(e,n,I.t,r),c.il&&((0,t.OP)(e).initHidden=Boolean(“hidden”===document.visibilityState),(0,k.N)((()=>(0,s.p)(“docHidden”,[(0,h.z)()],void 0,I.t,this.ee)),!0),(0,T.bP)(“pagehide”,(()=>(0,s.p)(“winPagehide”,[(0,h.z)()],void 0,I.t,this.ee))),this.importAggregator())}}var P=i(3081);class S extends g{static featureName=P.t9;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,n),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,j.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(v),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||”agent”)),this.start()):(0,f.Z)(“Failed to initial the agent. Could not determine the runtime environment.”)}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t=”features”;try{const n=r(this.agentIdentifier),i=[…this.desiredFeatures];i.sort(((t,n)=>e.p[t.featureName]-e.p[n.featureName])),i.forEach((t=>{if(n[t.featureName]||t.featureName===e.D.pageViewEvent){const r=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);r.every((e=>n[e]))||(0,f.Z)(“”.concat(t.featureName,” is enabled but one or more dependent features has been disabled (“).concat((0,E.P)(r),”). This may cause unintended consequences or missing data…”)),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,_.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,f.Z)(“Failed to initialize all enabled instrument classes (agent aborted) -“,e);for(const e in this.features)this.features[e].abortHandler?.();const n=(0,_.fP)();return delete n.initializedAgents[this.agentIdentifier]?.api,delete n.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,n.ee?.abort(),delete n.ee?.get(this.agentIdentifier),!1}}}({features:[v,N,S],loaderType:”lite”})})(),window.NRBA=o})();]]]]]]]]>]]]]]]>]]]]>]]> [] { if ([‘subscriber’, ‘prosubscriber’].includes(window.utag_data.user_type)) { return; } const delayParam = parseInt(window.localStorage.getItem(‘swg-call-delay’), 10); if (delayParam && (delayParam > Date.now())) { return; } // If GaaMetering is initiated, it would initiate the subscriptions behind the scene // https://github.com/subscriptions-project/swg-js/blob/main/src/utils/gaa.js if (!this.hasInitGaaMetering) { subscriptions.init(productID); this.getEntitlements(subscriptions, productID); } }); }, getEntitlements(subscriptions, productId) { subscriptions.getEntitlements() .then(window.__googleEA?.handleSwGEntitlement(productId)) .catch((err) => { console.error(`[SWG Entitlements Failed]: ${err}`); }); }, getHandleLoginPromise() { return new Promise(() => { window.GaaMetering?.getLoginPromise() .then(() => { const LOGIN_URL = { WSJ: ‘www.wsj.com/client/login’, BOL: ‘www.barrons.com/client/login’, FN: ‘www.dowjones.com/client/login’, MW: ‘www.marketwatch.com/client/login’, MG: ‘www.dowjones.com/client/login’ }; const prefix = envGoogleEA === ‘prod’ ? ” : ‘int.’; const baseUrl = LOGIN_URL[window.utag_data.page_site_product]; const loginUrl = `https://${prefix}${baseUrl}`; const targetUrl = new URL(window.location.href); targetUrl.searchParams.set(‘isGaa’, true); window.location.href = `${loginUrl}?target=${encodeURIComponent(targetUrl)}`; }); }); }, getRegisterUserPromise() { return new Promise(() => { window.GaaMetering?.getGaaUserPromise() .then((credential) => { window.__googleEA?._registerUser(credential); }); }); }, showPaywall() { const SHOP_URL = { prod: { WSJ: ‘https://subscribe.wsj.com?target=’, BOL: ‘https://subscribe.barrons.com?target=’, FN: ‘https://partner.fnlondon.com/p/1140300052/eligibility?mod=subscribe-google-ea&targetURL=’, MW: ‘https://subscribe.marketwatch.com?target=’ }, dev: { WSJ: ‘https://subscribe.wsj.com?target=’, BOL: ‘https://subscribe.barrons.com?target=’, FN: ‘https://partner.s.dev.fnlondon.com/p/p_fnlondon/eligibility/?mod=subscribe-google-ea&targetURL=’, MW: ‘https://subscribe.marketwatch.com?target=’ } }; const product = window.utag_data.page_site_product; const targetUrl = new URL(window.location.href); targetUrl.searchParams.set(‘isGaa’, true); window.location.href = `${(SHOP_URL[envGoogleEA] || SHOP_URL.dev)[product]}${encodeURIComponent(targetUrl)}`; }, handleSwGEntitlement(productId) { return (entitlements) => { if (!entitlements || !Array.isArray(entitlements.entitlements) || !entitlements.entitlements.length) { window.localStorage.setItem(‘swg-call-delay’, Date.now() + (60 * 60 * 1000)); return; } let subscriptionToken; for (const entitlement of entitlements.entitlements) { if ((entitlement.source === ‘google’) && (entitlement.products.includes(productId))) { subscriptionToken = entitlement.subscriptionToken; } } if (!subscriptionToken) { return; } const isCxdjExist = window.setInterval(() => { if (window.cxdj?.meta?.topDomain && window.cxdj?.displaySwgScrim) { window.cxdj.displaySwgScrim(); clearInterval(isCxdjExist); } }, 100); }; }, getAllowedReferrers() { const PRODUCT_DOMAIN = { WSJ: ‘wsj.com’, BOL: ‘barrons.com’, FN: ‘fnlondon.com’, MW: ‘marketwatch.com’, MG: ‘mansionglobal.com’ }; const LOGIN_URL = { WSJ: ‘accounts.wsj.com’, BOL: ‘accounts.barrons.com’, FN: ‘accounts.dowjones.com’, MW: ‘accounts.marketwatch.com’, MG: ‘accounts.dowjones.com’ }; const SHOP_URL = { prod: { WSJ: ‘subscribe.wsj.com’, BOL: ‘subscribe.barrons.com’, FN: ‘partner.fnlondon.com’, MW: ‘subscribe.marketwatch.com’ }, dev: { WSJ: ‘subscribe.wsj.com’, BOL: ‘subscribe.barrons.com’, FN: ‘partner.s.dev.fnlondon.com’, MW: ‘subscribe.marketwatch.com’ } }; const product = window.utag_data.page_site_product; const productHostNamePrefix = envGoogleEA === ‘prod’ ? ” : ‘s.dev.’; const productHostName = `www.${productHostNamePrefix}${PRODUCT_DOMAIN[product]}`; return [productHostName, LOGIN_URL[product], `${(SHOP_URL[envGoogleEA] || SHOP_URL.dev)[product]}`]; }, _registerUser(credential) { const PRODUCT_DOMAIN = { WSJ: ‘wsj’, BOL: ‘barrons’, FN: ‘fnlondon’, MW: ‘marketwatch’, MG: ‘mansionglobal’ }; const EDITION_ID = { WSJ: ‘WSJ-EN_US’, BOL: ‘BARRONS-EN_US’, FN: ‘EFN-EN_US’, MW: ‘MARKETWATCH-EN_US’, MG: ‘MG-EN_US’ }; const REGISTRATION_SOURCE = { WSJ: ‘WSJ’, BOL: ‘BARRONS’, FN: ‘EFN’, MW: ‘MW’, MG: ‘MG’ }; const LOGIN_URL = { WSJ: ‘accounts.wsj.com/auth’, BOL: ‘accounts.barrons.com/auth’, FN: ‘accounts.dowjones.com/auth/fn’, MW: ‘accounts.marketwatch.com/auth’ }; const pageSiteProduct = window.utag_data.page_site_product; const registerUrlPrefix = envGoogleEA === ‘prod’ ? ” : ‘s.dev.’; const registerBasedUrl = `https://register.${registerUrlPrefix}${PRODUCT_DOMAIN[pageSiteProduct]}.com`; const registerEndpoint = `${registerBasedUrl}/api/createSocialConnectUser`; const loginUrlPrefix = envGoogleEA === ‘prod’ ? ” : ‘int.’; const loginBaseUrl = LOGIN_URL[pageSiteProduct]; const loginUrl = `https://${loginUrlPrefix}${loginBaseUrl}/google-login`; const targetUrl = new URL(window.location.href); targetUrl.searchParams.set(‘isGaa’, true); fetch(registerEndpoint, { method: ‘POST’, body: JSON.stringify({ id_token: credential?.credential, displayContextId: ‘SOCIAL_CONNECT’, returnUrl: window.location.href.split(‘?’)[0], editionId: `${EDITION_ID[pageSiteProduct]}`, registrationSource: `${REGISTRATION_SOURCE[pageSiteProduct]}` }), headers: { ‘content-type’: ‘application/json’, } }) .then((response) => { if (!response.ok) { console.error(‘GoogleEA: Social Connect Invalid Status Code’); return; } return response.json(); }) .then((userState) => { if (!userState) { console.error(‘GoogleEA: Social Connect No Data’); return; } window.location.href = `${loginUrl}?target=${encodeURIComponent(targetUrl)}`; }) .catch((err) => { console.error(`GoogleEA: Social Connect Err: ${err}`); }); } }; })() ]]]]]]]]>]]]]]]>]]]]>]]>

Skip to main content

Economic Report

Last Updated: July 18, 2023 at 10:45 a.m. ET First Published: July 18, 2023 at 10:09 a.m. ET

Lack of resale inventory fuels builder optimism about future business

Home-builder sentiment rose in June as newly constructed homes gained market share of overall home sales.

Joe Raedle/Getty Images

[]The numbers: A persistent shortage of previously owned homes for sale is fueling builders’ optimism, with a key indicator of their confidence rising for the seventh month in a row in July.

[]With mortgage rates at nearly 7%, many homeowners were finding little incentive to sell, and new listings were down 27% from a year ago, according to Realtor.com.

[]That has boosted interest in new homes and given builders reason to remain confident about their outlook. The National Association of Home Builders’ (NAHB) monthly confidence index rose by one point in July, to 56, the trade group said on Tuesday.

[]It was the seventh month in a row that sentiment has improved among builders and the highest level since June 2022.

[]A year ago, the index stood at 55. 

[]Key details: Builders continued to pull back on sales incentives amid strong interest from home buyers. The share of builders cutting prices to boost sales has dropped to 22% in July, from a peak of 36% in November 2022.

[]The three gauges that underpin the overall builder-confidence index were mixed:

  • Builders were optimistic about current sales conditions. The gauge rose by 1 point. 
  • They were downbeat about future sales. The gauge fell by 2 points. 
  • Builders were also seeing steady traffic of prospective buyers. The gauge rose by 3 points. 

[]Big picture: For the last few months, new homes have been a bright spot in the housing market, as builders are able to meet home-buying demand amid a scarcity of listings of previously owned homes.

[]But builders were also worried about how much longer they can keep up, as they said they foresee possible speed bumps that may slow construction, such as a shortage of lots to build homes on as well as a lack of electrical-transformer equipment. They were also worried about mortgage-interest rates rising to 7% and how that could affect demand. 

[]What the NAHB said: “Although builders continue to remain cautiously optimistic about market conditions, the quarter-point rise in mortgage rates over the past month is a stark reminder of the stop and start process the market will experience as the Federal Reserve nears the end of the ongoing tightening cycle,” Robert Dietz, chief economist at the NAHB, said in a statement.

[]Market reaction: The yield on the 10-year Treasury note was around 3.7% on Tuesday morning.

[]The SPDR S&P Homebuilders exchange-traded fund XHB, +0.70% traded higher during the morning session, as did big home-builder stocks like D.R. Horton Inc DHI, -0.13%, Toll Brothers TOL, -0.12% and Lennar LEN, +0.46%.

‘Tipping recommendations in restaurants are based on faulty calculations’: Am I being tricked into tipping more than 15% or 20%?

[]‘As far as restaurants go, 15% is the starting point and I will go up from that as warranted,’ one reader says.

[]Aarthi Swaminathan is a MarketWatch personal finance reporter.

--> More stuff could go in this aside column

No Recent Tickers

[]Visit a quote page and your recently viewed tickers will be displayed here.

[]

[] No results found

{ // If Dianomi is disabled by user, add ‘generic’ style hiding anything // with a j-dianomi-content class. Allows for cleanup of things like headers // on bottom of home/section pages and borders on MoreHeadlines of quote page const css = ‘.j-dianomi-content { display: none !important; }’; const styleEl = document.createElement(‘style’); styleEl.type = ‘text/css’; styleEl.appendChild(document.createTextNode(css)); document.head.appendChild(styleEl); } const checkDianomiVendor = () => { if (typeof __ace !== ‘undefined’) { // To get Dianomi Vendor Id (or any vendor Id) do following from Console of Marketwatch.com // console.table(__ace(‘djcmp’, ‘getAllVendors’, [])) __ace(‘djcmp’, ‘customVendorIsEnabled’, [‘5fdc7a2fa2286360b24ef388’, (isVendorEnabled) => { if (isVendorEnabled) { loadDianomiScript(); } else { addDianomiDisabledStyles(); } }]); } } // Wait for CMP to finish loading before checking if Dianomi is disabled if (typeof __ace !== ‘undefined’) { __ace(‘djcmp’, ‘executeOnCmpReady’, [{ cb: checkDianomiVendor }]); } }()); ]]]]]]]]>]]]]]]>]]]]>]]>


Source

Leave a Reply

Your email address will not be published. Required fields are marked *