PageSourceSearch

https://budgetbro.app/_next/static/chunks/93910.8c01c76a8d28f71e.js

js budgetbro.app collected 2026-09-24 13:35:28 UTC 18,903 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[93910],{4215:(e,a,s)=>{s.r(a),s.d(a,{default:()=>d});var t=s(95155),l=s(12115),r=s(70528),n=s(71925),i=s(72040),o=s(66898);function d(e){let{adminHeaders:a}=e,[s,d]=(0,l.useState)(24),{data:c,loading:u,error:x}=(0,i.v_)(`/api/admin/early-access?limit=${s+1}&offset=0`,a,e=>{let a=e.data??[];return{rows:a.slice(0,s),more:a.length>s}});if(x)return(0,t.jsx)(o.L7,{tone:"error",children:x});if(!c&&u)return(0,t.jsx)(o.Qv,{rows:10});let h=(null==c?void 0:c.rows)??[];return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("p",{className:"text-[11px] text-[#94a3b8]",children:[h.length,(null==c?void 0:c.more)?"+":""," sign-up",1===h.length?"":"s"," for early access"]}),(0,t.jsx)("div",{className:u?"bb-busy":"",children:(0,t.jsx)(o.XI,{rows:h,rowKey:e=>(0,n.TH)(e.id??e._id),perPage:1e3,empty:"Nobody has asked for early access yet.",cols:[{key:"email",label:"Email",nowrap:!0,cell:e=>(0,t.jsx)("span",{className:"font-semibold text-[#111827] dark:text-slate-100",children:e.email??"—"})},{key:"responded",label:"Replied",cell:e=>e.responded?(0,t.jsx)(o.vw,{tone:"live",children:"Yes"}):(0,t.jsx)(o.vw,{children:"Not yet"})},{key:"created",label:"Signed up",nowrap:!0,className:"text-[#94a3b8]",cell:e=>(0,n.aO)(e.createdAt)}]})}),(0,t.jsx)(r.eq,{loading:u,left:(null==c?void 0:c.more)?1/0:0,onClick:()=>d(e=>e+24)})]})}},20926:(e,a,s)=>{s.r(a),s.d(a,{default:()=>o});var t=s(95155),l=s(12115),r=s(72040),n=s(66898);let i=[{key:7,label:"7 days"},{key:14,label:"14 days"},{key:30,label:"30 days"}];function o(e){let{adminHeaders:a}=e,[s,o]=(0,l.useState)(14),{data:d,loading:c,error:u}=(0,r.v_)(`/api/admin/workspace-v2/ai-spend?days=${s}`,a,e=>({summary:e.summary,rows:e.rows??[]})),x=!!d&&d.summary.todayCostUsd>=d.summary.threshold;return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(n.M7,{children:(0,t.jsx)(n.C4,{value:s,options:i,onChange:o})}),u&&(0,t.jsx)(n.L7,{tone:"error",children:u}),!d&&c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.mU,{n:3}),(0,t.jsx)(n.Qv,{})]}):d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-3",children:[(0,t.jsx)(n.ro,{label:"Today",value:`$${d.summary.todayCostUsd.toFixed(2)}`,hint:`${d.summary.todayTokens.toLocaleString("en-GB")} tokens`,tone:x?"critical":void 0}),(0,t.jsx)(n.ro,{label:`Last ${d.summary.days} days`,value:`$${d.summary.periodCostUsd.toFixed(2)}`,hint:`${d.summary.periodTokens.toLocaleString("en-GB")} tokens`}),(0,t.jsx)(n.ro,{label:"Daily alert threshold",value:`$${d.summary.threshold.toFixed(2)}`,hint:`est. @ $${d.summary.ratePer1M}/1M tokens`})]}),x&&(0,t.jsx)(n.L7,{tone:"warn",children:"Today is at or over the threshold that pages Telegram (`cron/cost-guard`). This is the same estimate, read as a trend rather than a single-day alert."}),(0,t.jsx)(n.XI,{rows:d.rows,rowKey:e=>e.date,defaultSort:"date",empty:"No AI usage recorded in this range.",cols:[{key:"date",label:"Date",nowrap:!0,className:"font-semibold text-[#111827] dark:text-slate-100"},{key:"tokens",label:"Tokens",align:"right",sort:e=>e.tokens,cell:e=>e.tokens.toLocaleString("en-GB")},{key:"costUsd",label:"Est. cost",align:"right",sort:e=>e.costUsd,cell:e=>`$${e.costUsd.toFixed(2)}`}]}),(0,t.jsx)(n.L7,{children:"Estimated from stored token usage x a blended $/1M rate (`TELEGRAM_GROK_USD_PER_1M`) -- a guide, not billing truth. Same basis `cron/cost-guard` alerts on."})]}):null]})}},35654:(e,a,s)=>{s.r(a),s.d(a,{default:()=>n});var t=s(95155),l=s(72040),r=s(66898);function n(e){let{adminHeaders:a}=e,{data:s,loading:n,error:i}=(0,l.v_)("/api/admin/day-trip-quota-stats",a,e=>e);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[i&&(0,t.jsx)(r.L7,{tone:"error",children:i}),!s&&n?(0,t.jsx)(r.mU,{n:2}):s?(0,t.jsxs)(t.Fragment,{children:[s.note&&(0,t.jsx)(r.L7,{tone:"warn",children:s.note}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsx)(r.ro,{label:"Anonymous searches today",value:s.anonymous.totalSearches,hint:`${s.anonymous.uniqueIps} unique IPs \xb7 limit 5/day each`}),(0,t.jsx)(r.ro,{label:"Free-user searches today",value:s.free.totalSearches,hint:`${s.free.uniqueUsers} unique users \xb7 limit 10/day each`})]}),(0,t.jsxs)(r.L7,{children:[s.date," UTC. Roughly one SerpAPI call per search against a 250-call monthly quota (DT6) -- watch this for a burn, not for the provider's own remaining count."]})]}):null]})}},71925:(e,a,s)=>{s.d(a,{$T:()=>n,KN:()=>o,TH:()=>l,aO:()=>i,co:()=>d});var t=s(98987);let l=e=>{if("string"==typeof e)return e;if("number"==typeof e)return String(e);if(e&&"object"==typeof e){let a=e.$oid;if("string"==typeof a)return a}return""},r=e=>{if(!e)return null;let a=e instanceof Date?e:"object"==typeof e?e.$date:e;if(null==a)return null;let s=new Date(a);return Number.isNaN(s.getTime())?null:s},n=e=>{let a=r(e);return a?(0,t.Yq)(a):"—"},i=e=>{let a=r(e);return a?(0,t.r6)(a):"—"},o=e=>null==e?"never":e<60?`${e}m ago`:e<1440?`${Math.round(e/60)}h ago`:`${Math.round(e/1440)}d ago`,d=(e,a)=>{let s=Math.floor((a-new Date(e).getTime())/864e5);return s<1?"today":s<14?`${s}d`:s<60?`${Math.round(s/7)}w`:s<730?`${Math.round(s/30)}mo`:`${Math.round(s/365)}y`}},72941:(e,a,s)=>{s.r(a),s.d(a,{default:()=>d});var t=s(95155),l=s(12115),r=s(70528),n=s(71925),i=s(72040),o=s(66898);function d(e){let{adminHeaders:a}=e,[s,d]=(0,l.useState)(50),[c,u]=(0,l.useState)(null),[x,h]=(0,l.useState)([]),g=async e=>{u(null);let s=await fetch("/api/admin/day-trips/launch-list",{method:"DELETE",headers:{...a,"Content-Type":"application/json"},body:JSON.stringify({email:e})}).catch(()=>null);(null==s?void 0:s.ok)&&h(a=>[...a,e])},{data:m,loading:p,error:f}=(0,i.v_)(`/api/admin/day-trips/launch-list?limit=${s}&offset=0`,a,e=>({total:Number(e.total??0),rows:e.rows??[]}));if(f)return(0,t.jsx)(o.L7,{tone:"error",children:f});if(!m&&p)return(0,t.jsx)(o.Qv,{rows:10});let v=((null==m?void 0:m.rows)??[]).filter(e=>!x.includes(e.email)),j=Math.max(((null==m?void 0:m.total)??0)-x.length,0);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[28px] leading-none font-bold text-[#111827] dark:text-slate-100",children:j.toLocaleStr
1ing("en-GB")}),(0,t.jsx)("p",{className:"mt-1 text-[11px] text-[#94a3b8]",children:"waiting for Day Trips search to open"})]}),j>0&&(0,t.jsx)("a",{href:"/api/admin/day-trips/launch-list?format=csv",className:"rounded-lg border border-[#e2e8f0] px-3 py-1.5 text-[12px] font-semibold text-[#111827] hover:border-teal-500 dark:border-slate-700 dark:text-slate-100",children:"Download CSV"})]}),(0,t.jsx)("div",{className:p?"bb-busy":"",children:(0,t.jsx)(o.XI,{rows:v,rowKey:e=>e.email,perPage:1e3,empty:"Nobody has signed up yet.",cols:[{key:"email",label:"Email",nowrap:!0,cell:e=>(0,t.jsx)("span",{className:"font-semibold text-[#111827] dark:text-slate-100",children:e.email})},{key:"created",label:"Signed up",nowrap:!0,className:"text-[#94a3b8]",cell:e=>(0,n.aO)(e.createdAt)},{key:"source",label:"Page",className:"text-[#94a3b8]",cell:e=>e.source||"—"},{key:"notified",label:"Launch email",cell:e=>e.notifiedAt?(0,t.jsx)(o.vw,{tone:"live",children:"Sent"}):(0,t.jsx)(o.vw,{children:"Not yet"})},{key:"remove",label:"",cell:e=>(0,t.jsx)(r.Sk,{open:c===e.email,onOpen:()=>u(e.email),onCancel:()=>u(null),onConfirm:()=>void g(e.email),label:"Remove",question:"Remove for good?"})}]})}),(0,t.jsx)(r.eq,{loading:p,left:Math.max(j-v.length,0),onClick:()=>d(e=>e+50)})]})}},93910:(e,a,s)=>{s.r(a),s.d(a,{default:()=>p});var t=s(95155),l=s(12115),r=s(4472),n=s(42723),i=s(35654),o=s(20926),d=s(4215),c=s(72941),u=s(72040),x=s(66898);function h(e){let{children:a}=e;return(0,t.jsx)("h2",{className:"text-[13px] font-bold text-[#111827] dark:text-slate-100",children:a})}function g(e){let{title:a,aside:s}=e;return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("h3",{className:x.TB,children:a}),s&&(0,t.jsx)("span",{className:"text-[11px] text-[#94a3b8]",children:s})]})}function m(e){let{days:a,onChange:s}=e;return(0,t.jsx)("div",{className:"flex items-center gap-1 text-[11px]",children:[7,30].map(e=>(0,t.jsxs)("button",{onClick:()=>s(e),className:`rounded-[6px] px-2 py-1 font-semibold transition ${a===e?"bg-[#111827] text-white dark:bg-slate-100 dark:text-slate-900":"text-[#94a3b8] hover:bg-[#f1f5f9] dark:hover:bg-slate-800"}`,children:[e,"d"]},e))})}function p(e){let a,{adminHeaders:s}=e,p=(0,u.C6)(),[f,v]=(0,l.useState)(30),{data:j,loading:b,error:y}=(0,u.v_)(`/api/admin/day-trip-analytics?days=${f}`,s);if(y)return(0,t.jsx)(x.L7,{tone:"error",children:y});if(!j&&b)return(0,t.jsx)(x.mU,{n:4});if(!j)return null;let{acquisition:k,activation:w,conversion:N,retention:S,health:$}=j,T=p?r.tv.dark:r.tv.light,C=N.funnel?[{label:"Searches",value:N.funnel.funnelSearches},{label:"Result clicks",value:N.funnel.resultClicks},{label:"Book clicks",value:N.funnel.bookClicks}]:[],A=w.searchesDaily.map((e,a)=>{var s;return{week:e.day,created:e.count,completed:(null==(s=N.bookClicksDaily[a])?void 0:s.count)??0}}),D=j.countingFrom?new Date(j.countingFrom).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"}):null;return(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[D&&(0,t.jsxs)("p",{className:"text-[11px] text-[#94a3b8]",children:["Counting from ",D,". Anything earlier is excluded, GA4 included. Founding orders and the launch list are not date-limited."]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(h,{children:"Acquisition"}),(0,t.jsx)("p",{className:"text-[11px] text-[#94a3b8]",children:"Total BudgetBro accounts aren't shown here — the User table covers the budgeting app too and Day Trips has no signup source of its own yet (see Not done, below). Everything below is Day-Trips-scoped."}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[(0,t.jsx)(x.ro,{label:"Day-Trips-engaged accounts",value:k.engagedAccounts,hint:"Proxy — home airport set, or saved a place/trip/search. Not a signup count.",tone:"warning"}),(0,t.jsx)(x.ro,{label:"Home airport set",value:k.homeAirportSet,hint:"Accounts with a Day Trips preference saved"}),(0,t.jsx)(x.ro,{label:"Weekly deals list",value:k.weeklyDealsSubscribers,hint:"Current size — unsubscribes are deleted, not logged"}),k.ga4&&(0,t.jsx)(x.ro,{label:"Traffic \xb7 active users",value:k.ga4.activeUsers,hint:"/day-trips pages, 30 days (GA4)"})]}),k.ga4?(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsx)(x.ro,{label:"Traffic \xb7 new users",value:k.ga4.newUsers,hint:"/day-trips pages, 30 days (GA4)"}),(0,t.jsx)(x.ro,{label:"Traffic \xb7 sessions",value:k.ga4.sessions,hint:"/day-trips pages, 30 days (GA4)"})]}):(0,t.jsx)(x.L7,{tone:"warn",children:"GA4 not configured — traffic numbers unavailable."}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(g,{title:`Top pages, destinations & traffic sources \xb7 last ${f} days`,aside:"/day-trips pages (GA4)"}),(0,t.jsx)(m,{days:f,onChange:v})]}),k.ga4?(0,t.jsxs)("div",{className:"grid items-start gap-3 lg:grid-cols-3",children:[(0,t.jsx)(x.wn,{title:"Top page types",children:(0,t.jsx)(r.U2,{dark:p,data:k.topPages})}),(0,t.jsx)(x.wn,{title:"Top destinations",children:k.topDestinations.length>0?(0,t.jsx)(r.U2,{dark:p,data:k.topDestinations}):(0,t.jsx)("p",{className:"text-[12px] text-[#94a3b8]",children:"No preview/from-page views in this window."})}),(0,t.jsx)(x.wn,{title:"Traffic sources",children:(0,t.jsx)(r.RJ,{dark:p,centreLabel:"sessions",data:k.trafficSources.slice(0,6).map((e,a)=>({label:e.label,value:e.value,color:T[a%T.length]}))})})]}):(0,t.jsx)(x.L7,{tone:"warn",children:"GA4 not configured."}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(g,{title:"Launch list sign-ups",aside:"pre-launch, day_trip_launch_list"}),(0,t.jsx)(c.default,{adminHeaders:s})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(g,{title:"Early access",aside:"legacy — superseded by the launch list"}),(0,t.jsx)(d.default,{adminHeaders:s})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(h,{children:"Activation"}),(0,t.jsxs)("div",{className:"grid items-start gap-3 lg:grid-cols-2",children:[(0,t.jsx)(x.wn,{title:"Searches \xb7 30 days",children:(0,t.jsx)(r.bl,{dark:p,data:w.searchesDaily.map(e=>({day:e.day,value:e.count})),color:{light:T[2],dark:T[2],label:"Searches"}})}),(0,t.jsx)(x.wn,{title:"Saves by type",aside:`${(0,x.Sc)(w.saves.places+w.saves.trips+w.saves.searches+w.saves.pages)} total`,children:(0,t.jsx)(r.RJ,{dark:p,centreLabel:"saves",data:[{label:"Trips",value:w.saves.trips,color:T[0]},{label:"Places",value:w.saves.places,color:T[1]},{label:"Searches",value:w.saves.searches,color:T[2]},{label:"Page saves",value:w.saves.pages,color:T[3]}]})})]}),(0,t.jsx)(x.wn,{title:"Top origins searched",children:(0,t.jsx)(r.U2,{dark:p,data:w.topOrigins})}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(g,{title:"Search detail",aside:"recognised %, parser gaps, coverage gaps, full log"}),(0,t.jsx)(n.default,{adminHeaders:s,view:"searches"})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(h,{children:"Conversion"}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[(0,t.jsx)(x.ro,{label:"Founding members",value:N.foundingActive,hint:`${(0,x.Sc)(N.spotsLeft)} of ${(0,x.Sc)(N.foundingCap)} spots left${N.testOrdersExcluded?` \xb7 ${(0,x.Sc)(N.testOrdersExcluded)} Stripe test order${1===N.testOrdersExcluded?"":"s"} excluded`:""}`}),(0,t.jsx)(x.ro,{label:"Revenue",value:(a=N.revenuePence,`\xa3${(a/100).toLocaleStr
1ing("en-GB",{maximumFractionDigits:0})}`),hint:"Active founding orders, gross",tone:"good"}),(0,t.jsx)(x.ro,{label:"Refund rate",value:`${N.refundRate}%`,hint:`${(0,x.Sc)(N.refundedCount)} refunded`,tone:N.refundRate>15?"critical":N.refundRate>5?"warning":"good"}),(0,t.jsx)(x.ro,{label:"Converted at launch",value:N.convertedCount,hint:"Renewing annual subscription created"})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:(0,t.jsx)(x.ro,{label:"Engaged → founding",value:`${N.engagedToFoundingPct}%`,hint:"Founding orders \xf7 Day-Trips-engaged accounts"})}),(0,t.jsx)(x.wn,{title:"Founding orders \xb7 30 days",children:(0,t.jsx)(r.U2,{dark:p,data:N.foundingDaily.filter(e=>e.count>0).map(e=>({label:e.day.slice(5),value:e.count})).slice(-14)})}),N.funnel&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(x.wn,{title:"Search → click → book funnel",aside:"volume at each stage",children:[(0,t.jsx)(r.U2,{dark:p,data:C}),(0,t.jsxs)("div",{className:"mt-3 grid gap-3 sm:grid-cols-3",children:[(0,t.jsx)(x.ro,{label:"Search → result click",value:`${N.funnel.searchToResultPct}%`}),(0,t.jsx)(x.ro,{label:"Result click → book click",value:`${N.funnel.resultToBookPct}%`}),(0,t.jsx)(x.ro,{label:"Search → book click",value:`${N.funnel.searchToBookPct}%`,hint:`${(0,x.Sc)(N.funnel.bookAfterSearch)} after a search, ${(0,x.Sc)(N.funnel.bookDirect)} direct`})]})]}),N.funnel.topBookedRoutes.length>0&&(0,t.jsx)(x.wn,{title:"Most-booked routes",children:(0,t.jsx)(r.U2,{dark:p,data:N.funnel.topBookedRoutes.map(e=>({label:e.route,value:e.count}))})})]}),(0,t.jsx)(x.wn,{title:"Searches vs book clicks \xb7 30 days",aside:"book clicks are the only revenue signal that works pre-launch — the affiliate path",children:(0,t.jsx)(r.xl,{dark:p,data:A,series:{a:{label:"Searches",light:r.mU.created.light,dark:r.mU.created.dark},b:{label:"Book clicks",light:r.mU.completed.light,dark:r.mU.completed.dark}}})}),(0,t.jsxs)(x.wn,{title:`Visit → pricing → checkout → paid \xb7 last ${N.funnelV2.days} days`,aside:"visits = GA4 sessions on /day-trips pages",children:[(0,t.jsx)(r.U2,{dark:p,data:[{label:"Visits",value:N.funnelV2.visits??0},{label:"Pricing views",value:N.funnelV2.pricingViews},{label:"Checkout started",value:N.funnelV2.checkoutStarted},{label:"Paid",value:N.funnelV2.paid}]}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(x.ro,{label:"Founders conversion rate",value:N.funnelV2.checkoutStarted?`${N.funnelV2.conversionRate}%`:"—",hint:"Paid founding orders \xf7 checkouts started, same window",tone:N.funnelV2.conversionRate>50?"good":"warning"})})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(h,{children:"Engagement (not yet tracked)"}),(0,t.jsxs)("div",{className:"grid items-start gap-3 sm:grid-cols-2",children:[(0,t.jsx)(x.wn,{title:"Scroll depth per page type",children:(0,t.jsx)(x.Sv,{text:"No scroll_depth event exists in the codebase — no writer, nothing captured at 25/50/75/100%. Needs DT1 to add it before this can show real numbers."})}),(0,t.jsx)(x.wn,{title:"Trip card click-through by position",children:(0,t.jsx)(x.Sv,{text:"No card_click event exists in the codebase — no writer, no position field captured. Needs DT1 to add it before this can show real numbers."})})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(h,{children:"Retention"}),(0,t.jsxs)("div",{className:"grid items-start gap-3 sm:grid-cols-2",children:[(0,t.jsx)(x.wn,{title:"New vs returning \xb7 30 days",aside:"/day-trips pages (GA4)",children:S.ga4?(0,t.jsx)(r.RJ,{dark:p,centreLabel:"users",data:[{label:"New",value:S.ga4.newUsers,color:T[0]},{label:"Returning",value:S.ga4.returningUsers,color:T[1]}]}):(0,t.jsx)("p",{className:"text-[12px] text-[#94a3b8]",children:"GA4 not configured."})}),(0,t.jsx)(x.ro,{label:"Messages waiting",value:S.messagesWaiting,hint:"Members owed a reply — see the Messages tab for the full inbox"})]}),(0,t.jsx)(x.wn,{title:"Account cohort retention \xb7 week 1 / week 4",children:(0,t.jsx)(x.Sv,{text:"Not tracked yet. Searches carry no userId, so there's no per-user activity log to build a retention cohort from. Needs userId added to signed-in searches — a privacy call for Josh before it's built."})})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(h,{children:"Health"}),(0,t.jsxs)("div",{className:"grid items-start gap-3 lg:grid-cols-2",children:[(0,t.jsx)(x.wn,{title:"Fare coverage",aside:`${(0,x.Sc)($.fareCoverage.withPrice)} of ${(0,x.Sc)($.fareCoverage.total)} cached routes`,children:(0,t.jsx)(r.RJ,{dark:p,centreLabel:"coverage",data:[{label:"Priced",value:$.fareCoverage.withPrice,color:T[0]},{label:"No price cached",value:Math.max(0,$.fareCoverage.total-$.fareCoverage.withPrice),color:T[3]}]})}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(g,{title:"SerpAPI quota"}),(0,t.jsx)(i.default,{adminHeaders:s})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(g,{title:"AI spend"}),(0,t.jsx)(o.default,{adminHeaders:s})]})]})]})}}}]);

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.