1import{a as o,j as e}from"./vendor-react-DoYcguab.js";import{M as ee,e as se,N as ae,B as p}from"./Navbar-B7RRzB2-.js";import{C as c,b as w,c as S,a as d}from"./card-CLs5TbJo.js";import{B as te}from"./badge-LUY71eDu.js";import{L as m}from"./label-eLK81nQh.js";import{ah as B,ai as re,aj as ne,ak as le,al as oe,ad as ie,am as I,ac as ce,an as de,J as me,M as xe,u as ue}from"./vendor-Cos2eoJp.js";import{c as he,T as R,a as T,b as V}from"./index-COGsvyCz.js";import{R as je}from"./coverage-mocks-CFxlbX9u.js";import"./vendor-data-BOA7K2d_.js";import"./index-Bl-QkF8l.js";const x=o.forwardRef(({className:n,...b},l)=>e.jsxs(B,{ref:l,className:he("relative flex w-full touch-none select-none items-center",n),...b,children:[e.jsx(re,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:e.jsx(ne,{className:"absolute h-full bg-primary"})}),e.jsx(le,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));x.displayName=B.displayName;const pe=se([{name:"Home",url:"/"},{name:"ROI Calculator",url:"/roi-calculator"}]);function Te(){const[n,b]=o.useState(20),[l,L]=o.useState(3),[r,q]=o.useState(5),[i,D]=o.useState(!0),[f,be]=o.useState(5),[u,z]=o.useState(75),[h,Y]=o.useState(4),s=o.useMemo(()=>{const t=Math.ceil(n/l),F=1200,Q=350,U=150,W=.15,G=299,J=799,K=15,g=Math.floor(r/f),N=n*F*(1+g),M=n*Q*(1+g),P=n*U*r,k=N*W*r,A=h*u*12*r*l,v=N+M+P+k+A;let j=0;if(t<=4)j=l*G;else{const _=Math.ceil(t/16);j=l*_*J}const H=n*K*12*r,$=l*200,E=1*u*12*r;let y=0;i||(y=n*300);const O=j+H+$+E+y,C=v-O,X=(C/v*100).toFixed(0),Z=C/(r*12);return{nvrHardwareCost:N,nvrInstallationCost:M,nvrSoftwareCost:P,nvrMaintenanceCost:k,nvrItCost:A,nvrTotalCost:v,edgeBoxCost:j,cloudSubscriptionCost:H,cloudInstallationCost:$,cloudItCost:E,cloudCameraCost:y,cloudTotalCost:O,savings:C,savingsPercentage:X,monthlySavings:Z,replacementCycles:g}},[n,l,r,i,f,u,h]),a=t=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(t);return e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsx(ee,{title:"ROI Calculator | Cloud vs NVR Cost Comparison",description:"Estimate the total cost of cloud surveillance vs a traditional NVR over 3-5 years. Factor in hardware, IT time, maintenance, and more.",keywords:"cloud vs NVR cost, surveillance ROI calculator",canonicalPath:"/roi-calculator",jsonLd:pe}),e.jsx(ae,{}),e.jsxs("div",{className:"sr-only","aria-label":"Page Summary",children:[e.jsx("h2",{children:"Cloud Surveillance vs NVR ROI Calculator - Summary"}),e.jsx("p",{children:"Interactive total cost of ownership calculator comparing cloud video surveillance (AtomVision) with traditional NVR systems. The NVR model assumes standard industry costs for hardware and server allocation."}),e.jsx("h3",{children:"Factors Included"}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"NVR Costs:"})," Average hardware and server allocation ($1,200/camera), installation ($350/camera), software licenses ($150/camera/year), maintenance (15% of hardware annually), IT labor"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Edge Costs:"})," AI Edge Analytic Box Standard ($299, up to 4 streams) or Professional ($799, up to 16 streams). Larger sites are estimated as extra Professional boxes. Enterprise on-prem is quoted separately."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Hidden NVR Costs:"})," Hardware replacement every 5 years, ongoing maintenance, dedicated IT staff time (4+ hours/month per site)"]})]}),e.jsx("h3",{children:"Typical Results"}),e.jsxs("ul",{children:[e.jsx("li",{children:"20 cameras across 3 sites over 5 years: Cloud typically saves 30-50% vs NVR"}),e.jsx("li",{children:"Organizations with existing cameras save the most (no camera hardware cost)"}),e.jsx("li",{children:"Savings increase with larger deployments due to reduced IT overhead per camera"})]}),e.jsx("p",{children:"Contact AtomVision for personalized TCO analysis with your specific requirements."})]}),e.jsx("header",{className:"pt-32 pb-12 relative overflow-hidden",children:e.jsxs("div",{className:"container mx-auto px-6 text-center",children:[e.jsxs(te,{className:"mb-6 bg-primary/10 text-primary border-primary/20",children:[e.jsx(oe,{className:"w-4 h-4 mr-1"})," ROI Calculator"]}),e.jsxs("h1",{className:"text-4xl md:text-5xl font-bold font-display mb-6 max-w-3xl mx-auto",children:["Calculate Your Savings: ",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Cloud vs NVR"})]}),e.jsx("p",{className:"text-xl text-muted-foreground max-w-2xl mx-auto",children:"See the total cost of ownership over time, including hidden costs like IT labor, maintenance, and hardware replacement."})]})}),e.jsx("section",{className:"py-12",children:e.jsx("div",{className:"container mx-auto px-6",children:e.jsx("div",{className:"max-w-6xl mx-auto",children:e.jsx(je,{savings:a(Math.max(0,s.savings)),savingsLabel:`${r}yr cloud savings`,payback:s.monthlySavings>0?`${Math.max(1,Math.round(s.edgeBoxCost/s.monthlySavings))} mo`:"â",paybackLabel:"Estimated payback",children:e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs(c,{className:"border-border",children:[e.jsx(w,{children:e.jsxs(S,{className:"flex items-center gap-2",children:[e.jsx(ie,{className:"w-5 h-5 text-primary"}),"Your Deployment"]})}),e.jsxs(d,{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-3",children:[e.jsxs(m,{className:"flex items-center gap-1",children:["Number of Cameras",e.jsxs(R,{children:[e.jsx(T,{children:e.jsx(I,{className:"w-4 h-4 text-muted-foreground"})}),e.jsx(V,{children:e.jsx("p",{className:"max-w-xs",children:"Total cameras across all locations"})})]})]}),e.jsx("span",{className:"text-primary font-bold","data-testid":"value-cameras",children:n})]}),e.jsx(x,{value:[n],onValueChange:t=>b(t[0]),min:5,max:200,step:5,"data-testid":"slider-cameras"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-3",children:[e.jsxs(m,{className:"flex items-center gap-1",children:["Number of Sites/Locations",e.
1jsxs(R,{children:[e.jsx(T,{children:e.jsx(I,{className:"w-4 h-4 text-muted-foreground"})}),e.jsx(V,{children:e.jsx("p",{className:"max-w-xs",children:"Separate physical locations requiring edge boxes"})})]})]}),e.jsx("span",{className:"text-primary font-bold","data-testid":"value-sites",children:l})]}),e.jsx(x,{value:[l],onValueChange:t=>L(t[0]),min:1,max:50,step:1,"data-testid":"slider-sites"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-3",children:[e.jsx(m,{children:"TCO Period (Years)"}),e.jsx("span",{className:"text-primary font-bold","data-testid":"value-years",children:r})]}),e.jsx(x,{value:[r],onValueChange:t=>q(t[0]),min:1,max:10,step:1,"data-testid":"slider-years"})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-secondary/50 rounded-lg",children:[e.jsxs(m,{className:"flex items-center gap-2",children:[e.jsx(ce,{className:`w-5 h-5 ${i?"text-primary":"text-muted-foreground"}`}),"I already have IP cameras"]}),e.jsx(p,{variant:i?"default":"outline",size:"sm",onClick:()=>D(!i),"data-testid":"toggle-existing-cameras",className:i?"bg-primary":"",children:i?"Yes":"No"})]}),e.jsxs("div",{className:"border-t border-border pt-6",children:[e.jsx("h4",{className:"font-semibold mb-4 text-sm text-muted-foreground",children:"IT Labor Costs"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsx(m,{children:"IT Hourly Rate"}),e.jsxs("span",{className:"text-muted-foreground",children:["$",u,"/hr"]})]}),e.jsx(x,{value:[u],onValueChange:t=>z(t[0]),min:25,max:200,step:5,"data-testid":"slider-it-rate"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsxs(m,{className:"flex items-center gap-1",children:["NVR Maintenance Hours/Month/Site",e.jsxs(R,{children:[e.jsx(T,{children:e.jsx(I,{className:"w-4 h-4 text-muted-foreground"})}),e.jsx(V,{children:e.jsx("p",{className:"max-w-xs",children:"Time spent on firmware updates, troubleshooting, and maintenance"})})]})]}),e.jsxs("span",{className:"text-muted-foreground",children:[h,"h"]})]}),e.jsx(x,{value:[h],onValueChange:t=>Y(t[0]),min:1,max:16,step:1,"data-testid":"slider-it-hours"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-6",children:[e.jsx(c,{className:`border-2 ${s.savings>0?"border-primary bg-primary/5":"border-border"}`,children:e.jsxs(d,{className:"p-8 text-center",children:[e.jsx(de,{className:"w-12 h-12 text-primary mx-auto mb-4"}),e.jsxs("p",{className:"text-muted-foreground mb-2",children:["Estimated ",r,"-Year Savings with Cloud"]}),e.jsx("p",{className:"text-4xl md:text-5xl font-bold text-primary mb-2","data-testid":"total-savings",children:a(Math.max(0,s.savings))}),e.jsxs("p",{className:"text-muted-foreground",children:[s.savingsPercentage,"% lower TCO ⢠",a(s.monthlySavings),"/month"]})]})}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs(c,{className:"border-border",children:[e.jsx(w,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-lg",children:[e.jsx(me,{className:"w-5 h-5 text-muted-foreground"}),"Traditional NVR"]})}),e.jsxs(d,{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-muted-foreground",children:["Hardware (incl. ",s.replacementCycles," replacement",s.replacementCycles!==1?"s":"",")"]}),e.jsx("span",{children:a(s.nvrHardwareCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Installation"}),e.jsx("span",{children:a(s.nvrInstallationCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Software Licenses"}),e.jsx("span",{children:a(s.nvrSoftwareCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Maintenance"}),e.jsx("span",{children:a(s.nvrMaintenanceCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"IT Labor"}),e.jsx("span",{children:a(s.nvrItCost)})]}),e.jsxs("div",{className:"flex justify-between pt-2 border-t border-border font-bold",children:[e.jsx("span",{children:"Total NVR Cost"}),e.jsx("span",{className:"text-red-400","data-testid":"total-nvr",children:a(s.nvrTotalCost)})]})]})]}),e.jsxs(c,{className:"border-primary/20",children:[e.jsx(w,{className:"pb-3",children:e.jsxs(S,{className:"flex items-center gap-2 text-lg",children:[e.jsx(xe,{className:"w-5 h-5 text-primary"}),"AtomVision Cloud"]})}),e.jsxs(d,{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"AI Edge Analytic Box"}),e.jsx("span",{children:a(s.edgeBoxCost)})]}),!i&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Camera Hardware"}),e.jsx("span",{children:a(s.cloudCameraCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-muted-foreground",children:["Cloud Subscription (",r," years)"]}),e.jsx("span",{children:a(s.cloudSubscriptionCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Setup & Installation"}),e.jsx("span",{children:a(s.cloudInstallationCost)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"IT Labor (minimal)"}),e.jsx("span",{children:a(s.cloudItCost)})]}),e.jsxs("div",{className:"flex justify-between pt-2 border-t border-border font-bold",children:[e.jsx("span",{children:"Total Cloud Cost"}),e.jsx("span",{className:"text-primary","data-testid":"total-cloud",children:a(s.cloudTotalCost)})]})]})]})]}),e.jsx("a",{href:"mailto:[email protected]?subject=Demo%20Request",children:e.jsxs(p,{size:"lg",className:"w-full bg-primary text-background hover:bg-primary/90 h-14 roun
1ded-lg font-semibold","data-testid":"button-get-quote",children:["Get a Custom Quote ",e.jsx(ue,{className:"ml-2 w-4 h-4"})]})})]})]})})})})}),e.jsx("section",{className:"py-12 border-t border-border",children:e.jsx("div",{className:"container mx-auto px-6",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-xl font-bold mb-4 text-center",children:"Calculation Assumptions"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6 text-sm text-muted-foreground",children:[e.jsx(c,{className:"border-border",children:e.jsxs(d,{className:"p-4 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:"NVR Assumptions"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsx("li",{children:"⢠Average NVR/camera cost: $1,200"}),e.jsx("li",{children:"⢠Installation: $350/camera"}),e.jsx("li",{children:"⢠Software license: $150/camera/year"}),e.jsx("li",{children:"⢠Annual maintenance: 15% of hardware"}),e.jsxs("li",{children:["⢠Hardware replacement every ",f," years"]})]})]})}),e.jsx(c,{className:"border-border",children:e.jsxs(d,{className:"p-4 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:"Cloud Assumptions"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsx("li",{children:"⢠Edge box: $299 Standard or $799 Professional (Enterprise on-prem is quoted)"}),e.jsx("li",{children:"⢠Optional cloud sync billed by stream count â contact sales for a quote"}),e.jsx("li",{children:"⢠Setup: $200/site one-time"}),e.jsx("li",{children:"⢠IT labor: 1 hour/month (auto-updates)"}),e.jsx("li",{children:"⢠No hardware replacement needed"})]})]})})]}),e.jsx("p",{className:"text-center text-xs text-muted-foreground mt-6",children:"These are estimates for comparison purposes. Actual costs may vary based on your specific requirements. Contact us for a detailed proposal tailored to your deployment."})]})})}),e.jsx("section",{className:"py-16 bg-secondary/50 border-t border-border",children:e.jsxs("div",{className:"container mx-auto px-6 text-center",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Want a Detailed Analysis?"}),e.jsx("p",{className:"text-muted-foreground mb-8 max-w-xl mx-auto",children:"Our solutions team can provide a customized TCO analysis based on your exact camera models, locations, and requirements."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-4",children:[e.jsx("a",{href:"mailto:[email protected]?subject=Demo%20Request",children:e.jsx(p,{size:"lg",className:"bg-primary text-background hover:bg-primary/90 h-12 px-8 rounded-lg font-semibold",children:"Schedule Consultation"})}),e.jsx("a",{href:"mailto:[email protected]?subject=Demo%20Request",children:e.jsx(p,{size:"lg",variant:"outline",className:"border-border hover:bg-secondary h-12 px-8 rounded-lg",children:"Contact Sales"})})]})]})})]})}export{Te 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.