1import{c as a,j as e,M as n}from"./personaKnowledge-Wxu6iTGA.js";import{P as l,S as c,b as d,c as h,U as m,B as o,F as p,L as u,A as y,d as g,e as x,D as f}from"./website-BRH-I_IC.js";import{b,f as w,F as k,a as v,c as j,d as N,e as F}from"./FeatureSections-f7NYRkDw.js";import{H as S,F as A}from"./history-CRSzS8l0.js";import{P as i}from"./percent-B3yiqz3V.js";import{M as C}from"./map-CbeY2-jF.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const E=a("CalendarRange",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M17 14h-6",key:"bkmgh3"}],["path",{d:"M13 18H7",key:"bb0bb7"}],["path",{d:"M7 14h.01",key:"1qa3f1"}],["path",{d:"M17 18h.01",key:"1bdyru"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const P=a("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]);/** 12 * @license lucide-react v0.462.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const M=a("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),H=[{to:"/features/estimate-history",icon:S,title:"Estimate history & change reasons",lead:"Every version, every dollar of movement, and the named reason behind it.",bullets:["Full version timeline with totals snapshots","Reason per change: scope, quantity, allowance, markup, discount, repricing","Card and line-item drill-down, filters, CSV export","One-click restore to any earlier version"]},{to:"/features/profit-protection",icon:h,title:"Profit protection & markup lock",lead:"Overhead, wastage and net profit move only through admin controls or defined rules.",bullets:["Three independent enforcement layers","Minimum profit floor that is solved to, never past","Fixed contract totals that stay fixed","Role-based masking of cost and margin"]},{to:"/features/team-and-scale",icon:m,title:"Team access & multi-state scaling",lead:"One company price book for every estimator, in every market you build in.",bullets:["Layered catalog: project, company, state, baseline","Audited bulk price updates with revert","Roles from super admin to invited partner","Same numbers across proposals, change orders and schedules"]},{to:"/features/five-ways-in",icon:o,title:"Five ways to start a bid",lead:"Plans, a voice conversation, typed scope, a consultation recording, or guided questions.",bullets:["No architectural plans required to price a project","AI plan takeoff you confirm before anything prices","Voice agent that asks what an estimator would ask","All five inputs feed the same rules and price book"]},{to:"/features/accuracy-rules",icon:i,title:"Dependency rules engine",lead:"75 trade cards and 256 server-side rules that catch the scope a human forgets.",bullets:["Cascades: insulation pulls drywall and paint, gut-to-studs re-engages every trade","House-style limits block scope that cannot be built","Shared systems like HVAC counted once, not twice","Card totals reconcile to line items on every run"]}],r=[{q:"What makes Home Estimator AI different from other construction estimating software?",a:"Three things beyond speed: a complete change history that names the reason behind every price movement, profitability figures that are locked behind authorized paths and cannot drift, and a layered company price book that scales across estimators and states without losing consistency."},{q:"Is the pricing calculated in the browser?",a:"No. All pricing is calculated server-side and treated as the single source of truth. Every screen, modal, PDF and proposal reads the same backend totals, so documents cannot disagree with each other."},{q:"Who is the platform built for?",a:"General contractors, remodelers and custom home builders. Architects, realtors, interior designers and homeowners take part as invited partners or clients under the contractorâs branding."},{q:"How do I get started?",a:"Access is by live demo. We walk through your own numbers, set up your company price book and profit rules, and confirm the guardrails match how you want your team to work."}],O=()=>e.jsxs(l,{children:[e.jsx(c,{title:"Features: Audit Trail, Profit Lock & Team Pricing Control",description:"Explore Home Estimator AI: full estimate change history with reasons and restore, locked profit margins, and one company price book across your team and states.",path:"/features",jsonLd:[b([{name:"Home",path:"/"},{name:"Features",path:"/features"}]),w(r),{"@context":"https://schema.org","@type":"SoftwareApplication",name:"Home Estimator AI",applicationCategory:"BusinessApplication",operatingSystem:"Web",url:"https://homeestimator.ai/features",description:"AI construction estimating for general contractors with a full estimate change history, authorized-only profitability changes, and multi-state company pricing control.",featureList:["Estimate version history with per-change reason attribution","One-click restore of any earlier estimate version","Profit margin lock with three enforcement layers","Minimum profit floor enforcement","Company and multi-state pricing control with audited bulk updates","Role-based cost and margin visibility","Branded proposals, e-signature, change orders and schedules"],offers:{"@type":"Offer",price:"349",priceCurrency:"USD",url:"https://homeestimator.ai/pricing"}}]}),e.jsx(k,{eyebrow:"Platform features",eyebrowIcon:d,title:"Fast estimates are table stakes.",highlight:"Defensible estimates win the job.",subtitle:"Home Estimator AI produces branded, itemized estimates in minutes â and then does the part most tools skip: it records why every number is what it is, locks your margin so it cannot drift, and keeps your whole team and every market on the same price book."}),e.jsx(v,{heading:"The three things that protect your profit",children:e.jsx("p",{children:"Speed gets you to the proposal. These are what keep the money in the job after the proposal goes out."})}),e.jsx("section",{className:"pb-4 bg-white",children:e.jsx("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 max-w-6xl mx-auto",children:H.map(t=>e.jsx(p,{children:e.jsxs(u,{to:t.to,className:"group flex h-full flex-col rounded-2xl border border-slate-200 bg-white p-7 shadow-sm hover:border-[#c9a96e] hover:shadow-lg transition-all",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-[#1a1a2e] flex items-center justify-center mb-5",children:e.jsx(t.icon,{className:"h-6 w-6 text-[#c9a96e]"})}),e.jsx("h2",{className:"text-xl font-bold text-slate-900 mb-2",children:t.title}),e.jsx("p",{className:"text-slate-600 mb-4",children:t.lead}),e.jsx("ul",{className:"space-y-2 mb-6",children:t.bullets.map(s=>e.jsxs("li",{className:"text-sm text-slate-600 flex gap-2",children:[e.jsx("span",{className:"text-[#c9a96e]","aria-hidden":"true",children:"â¢"}),s]},s))}),e.jsxs("span",{className:"mt-auto inline-flex items-center gap-1 text-sm font-semibold text-[#c9a96e]",children:["Explore ",e.jsx(y,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]})]})},t.to))})})}),e.jsx(j,{heading:"Everything else in the workflow",subheading:"From first phone call to signed contract and schedule â on one set of numbers.",tone:"tint",items:[{icon:n,title:"Voice intake",desc:"Scope a project by talking it through. The AI agent walks the conversation and fills the estimate as it goes."},{icon:P,title:"PDF plan takeoff",desc:"Upload plans and let the AI extract areas, counts and scope, then review every extracted value before it prices."}
16,{icon:M,title:"Room-based cards",desc:"Additions and remodels built from room and trade cards, so homeowner language becomes trade-level pricing."},{icon:i,title:"Allowances by finish tier",desc:"Explicit labor and material allowances per tier, editable per project, with every override recorded."},{icon:o,title:"Smart recommendations",desc:"Surface missing scope, volume-discount thresholds and structural upgrades before the client finds them."},{icon:g,title:"Branded proposals & e-signature",desc:"Send a proposal under your brand, get it signed, and lock the agreed contract total."},{icon:A,title:"Change orders",desc:"Price a change against the signed baseline with its own approval trail and profitability treatment."},{icon:E,title:"Schedules & Gantt",desc:"Turn approved scope into a timeline and payment milestones your client can follow."},{icon:C,title:"Multi-state coverage",desc:"Quote in every state you have enabled, with market ratios applied automatically."}]}),e.jsx("section",{className:"py-16 bg-white","aria-labelledby":"cascades-heading",children:e.jsx("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{id:"cascades-heading",className:"text-2xl sm:text-3xl font-bold text-slate-900 mb-3",children:"One input, the work it forces"}),e.jsxs("p",{className:"text-slate-600 mb-8 max-w-3xl",children:["This is what the ",x.dependencyRules," server-side rules actually do. Each row is a relationship an experienced estimator carries in his head â enforced on every job, for every user, whether or not anyone remembered it."]}),e.jsx("div",{className:"overflow-hidden rounded-2xl border border-slate-200",children:e.jsxs("table",{className:"w-full text-left text-sm",children:[e.jsx("caption",{className:"sr-only",children:"Dependency cascades: the trigger input, the scope it forces, and what is normally missed"}),e.jsx("thead",{className:"bg-slate-50 text-slate-900",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"px-4 py-3 font-semibold",children:"You enter"}),e.jsx("th",{scope:"col",className:"px-4 py-3 font-semibold",children:"The engine forces"}),e.jsx("th",{scope:"col",className:"px-4 py-3 font-semibold",children:"What normally gets missed"})]})}),e.jsx("tbody",{children:f.map(t=>e.jsxs("tr",{className:"border-t border-slate-200 align-top",children:[e.jsx("td",{className:"px-4 py-4 font-medium text-slate-900",children:t.trigger}),e.jsx("td",{className:"px-4 py-4 text-slate-700",children:t.forces}),e.jsx("td",{className:"px-4 py-4 text-slate-500",children:t.missed})]},t.trigger))})]})})]})})}),e.jsx(N,{heading:"Platform questions",items:r}),e.jsx(F,{heading:"See it on your own project",body:"Book a live demo and we'll price one of your real jobs, then show the history, the margin lock and the price book behind it."})]});export{O as default};
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.