1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[42648],{742648:function(e,t,s){s.d(t,{ml:function(){return n.m},rk:function(){return a.r}});var a=s(767432);s(861416);var n=s(577243)},861416:function(e,t,s){s(785893),s(363548)},577243:function(e,t,s){s.d(t,{m:function(){return o}});var a=s(785893),n=s(956989),r=s(363548),l=s(14066);let i={avgDaysToClose:"The average number of days it takes for a deal to move from creation to a closed-won state. Lower is better â it means your team is closing deals faster.",medianDaysToClose:"The middle value of all close times. Unlike the average, this is not skewed by outlier deals that take unusually long. A more reliable measure of typical deal speed.",pipelineVelocity:"A measure of how quickly revenue moves through your pipeline. Calculated as (number of deals \xd7 average deal value \xd7 win rate) \xf7 average sales cycle length. Higher means more revenue throughput."};function o(e){let{avgDaysToClose:t,medianDaysToClose:s,pipelineVelocity:n,className:o}=e;return(0,a.jsx)(l.pnl,{delayDuration:200,children:(0,a.jsxs)("div",{className:(0,r.cn)("grid grid-cols-3 gap-4 roun
1ded-lg border border-stroke-soft-200 bg-bg-gray-50 p-4",o),children:[(0,a.jsx)(c,{label:"Avg Days to Close",value:"".concat(t.toFixed(1),"d"),tooltip:i.avgDaysToClose}),(0,a.jsx)(c,{label:"Median Days to Close",value:"".concat(s.toFixed(1),"d"),tooltip:i.medianDaysToClose}),(0,a.jsx)(c,{label:"Pipeline Velocity",value:(0,r.xt)(n),tooltip:i.pipelineVelocity})]})})}function c(e){let{label:t,value:s,tooltip:r}=e;return(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsxs)("div",{className:"flex items-center justify-center gap-1 text-xs text-text-soft-400",children:[t,(0,a.jsxs)(l.ua7,{children:[(0,a.jsx)(l.aJU,{asChild:!0,children:(0,a.jsx)(n.Z,{className:"h-3 w-3 shrink-0 cursor-help text-text-soft-400 hover:text-text-sub-600 transition-colors"})}),(0,a.jsx)(l._vU,{side:"top",className:"max-w-[260px]",children:r})]})]}),(0,a.jsx)("div",{className:"text-lg font-semibold text-text-strong-950",children:s})]})}},767432:function(e,t,s){s.d(t,{r:function(){return c}});var a=s(785893),n=s(956989),r=s(363548),l=s(14066),i=s(463144),o=s(973974);function c(e){let{stages:t,className:s}=e;if(0===t.length)return(0,a.jsx)("div",{className:"flex h-32 items-center justify-center text-sm text-text-soft-400",children:"No stage velocity data available"});let n=Math.max(...t.map(e=>e.avgDays),1);return(0,a.jsx)(l.pnl,{delayDuration:200,children:(0,a.jsx)("div",{className:(0,r.cn)("space-y-3",s),children:t.map(e=>(0,a.jsx)(d,{stage:e,maxDays:n},e.stageId))})})}function d(e){let{stage:t,maxDays:s}=e,r=s>0?t.avgDays/s*100:0,c=t.isBottleneck?o.w.red:t.avgDays>.5*s?o.w.yellow:o.w.green;return(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-text-strong-950",children:(0,i.le)(t.stageName)}),(0,a.jsxs)("span",{className:"rounded bg-bg-gray-50 px-1.5 py-0.5 text-xs text-text-sub-600",children:[t.dealCount," deals"]}),t.isBottleneck&&(0,a.jsxs)(l.ua7,{children:[(0,a.jsx)(l.aJU,{asChild:!0,children:(0,a.jsxs)("span",{className:"flex cursor-help items-center gap-1 rounded bg-red-50 px-1.5 py-0.5 text-xs font-medium text-red-600",children:["Bottleneck",(0,a.jsx)(n.Z,{className:"h-3 w-3"})]})}),(0,a.jsx)(l._vU,{side:"top",className:"max-w-[240px] text-xs",children:"Deals in this stage take more than 2x the median time across all stages. Consider investigating what's slowing deals down here."})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,a.jsxs)(l.ua7,{children:[(0,a.jsx)(l.aJU,{asChild:!0,children:(0,a.jsxs)("span",{className:"flex cursor-help items-center gap-1 font-medium text-text-strong-950",children:[t.avgDays.toFixed(1),"d avg",(0,a.jsx)(n.Z,{className:"h-3 w-3 text-text-soft-400"})]})}),(0,a.jsx)(l._vU,{side:"top",className:"max-w-[220px] text-xs",children:"Average number of days deals spend in this stage before moving to the next one."})]}),(0,a.jsxs)(l.ua7,{children:[(0,a.jsx)(l.aJU,{asChild:!0,children:(0,a.jsxs)("span",{className:"flex cursor-help items-center gap-1 text-text-soft-400",children:[t.conversionRate.toFixed(0),"% conv",(0,a.jsx)(n.Z,{className:"h-3 w-3"})]})}),(0,a.jsx)(l._vU,{side:"top",className:"max-w-[220px] text-xs",children:"Percentage of deals that move forward from this stage to the next. Higher means fewer deals stall or drop off here."})]})]})]}),(0,a.jsx)("div",{className:"h-2 w-full overflow-hidden rounded-full bg-bg-gray-50",children:(0,a.jsx)("div",{className:"h-full rounded-full transition-all duration-500",style:{width:"".concat(Math.max(r,2),"%"),backgroundColor:c}})})]})}},463144:function(e,t,s){function a(e){let t=e.replace(/[$,\s]/g,""),s=t.match(/^([\d.]+)(K|M)?\+$/i);if(s)return{min:n(s[1],s[2]),max:null};let a=t.match(/^([\d.]+)(K|M)?-([\d.]+)(K|M)?$/i);if(a){let e=a[2]||a[4],t=a[4]||a[2];return{min:n(a[1],e),max:n(a[3],t)}}return{min:0,max:null}}function n(e,t){let s=parseFloat(e);return t?"K"===t.toUpperCase()?1e3*s:"M"===t.toUpperCase()?1e6*s:s:s}function r(e){if(!e)return"â";let t=new Date(e);return isNaN(t.getTime())?"â":"".concat(String(t.getMonth()+1).padStart(2,"0"),"/").concat(String(t.getDate()).padStart(2,"0"),"/").concat(t.getFullYear())}function l(e){return e>=14?"text-state-error bg-state-error/10":e>=10?"text-state-warning bg-state-warning/10":"text-text-sub-600 bg-bg-gray-50"}function i(e){return e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function o(e){if(!e)return"â";let t=new Date(e);return isNaN(t.getTime())?"â":t.toLocaleDateString("en-US",{month:"short",day:"numeric"})}s.d(t,{MX:function(){return r},hQ:function(){return l},iS:function(){return o},le:function(){return i},yC:function(){return a}})},973974:function(e,t,s){s.d(t,{o:function(){return d},w:function(){return r}});var a=s(785893),n=s(363548);let r={red:"#EF4444",yellow:"#F59E0B",green:"#10B981"},l="#171717";function i(e,t,s,a){let n=(a-180)*Math.PI/180;return{x:e+s*Math.cos(n),y:t+s*Math.sin(n)}}function o(e,t,s,a,n){let r=i(e,t,s,n),l=i(e,t,s,a);return"M ".concat(r.x," ").concat(r.y," A ").concat(s," ").concat(s," 0 ").concat(n-a>180?1:0," 0 ").concat(l.x," ").concat(l.y)}let c=[{startAngle:0,endAngle:60,color:r.red},{startAngle:60,endAngle:120,color:r.yellow},{startAngle:120,endAngle:180,color:r.green}];function d(e){let{percentage:t,label:s,displayValue:r,minLabel:i,maxLabel:d,className:x}=e,u=Math.min(Math.max(t,0),100),h=null!=r?r:"".concat(u,"%");return(0,a.jsxs)("div",{className:(0,n.cn)("flex flex-col items-center",x),children:[(0,a.jsxs)("div",{className:"relative",style:{width:200,height:140},children:[(0,a.jsxs)("svg",{viewBox:"0 0 ".concat(200," ").concat(120),width:200,height:120,"aria-label":"Gauge: ".concat(h),children:[(0,a.jsx)("path",{d:o(100,110,9
10,0,180),fill:"none",stroke:"#E5E7EB",strokeWidth:12,strokeLinecap:"round"}),c.map(e=>(0,a.jsx)("path",{d:o(100,110,90,e.startAngle,e.endAngle),fill:"none",stroke:e.color,strokeWidth:12,strokeLinecap:"butt"},e.color)),(0,a.jsxs)("g",{style:{transform:"rotate(".concat(1.8*Math.min(Math.max(u,0),100)-90,"deg)"),transformOrigin:"".concat(100,"px ").concat(110,"px"),transition:"transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,a.jsx)("line",{x1:100,y1:110,x2:100,y2:30,stroke:l,strokeWidth:2.5,strokeLinecap:"round"}),(0,a.jsx)("circle",{cx:100,cy:110,r:5,fill:l})]})]}),(0,a.jsxs)("div",{className:"absolute bottom-0 left-0 right-0 flex flex-col items-center",style:{bottom:4},children:[(0,a.jsx)("span",{className:"text-2xl font-bold leading-none text-text-strong-950",children:h}),s&&(0,a.jsx)("span",{className:"mt-1 text-xs text-text-soft-400",children:s})]})]}),(i||d)&&(0,a.jsxs)("div",{className:"flex w-full justify-between px-2 text-[10px] text-text-soft-400",style:{width:200},children:[(0,a.jsx)("span",{children:i}),(0,a.jsx)("span",{children:d})]})]})}}}]);
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.