1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[942],{2059:(e,a,t)=>{t.d(a,{PC:()=>x,Y8:()=>A});var n=t(8154),i=t(9715),o=t(9559),s=t(9397),r=t(6907),l=t(2927),c=t(8500),d=t(4274),u=t(534),m=t(598),h=t(5710),p=t(2214),b=t(814),g=t(1524),f=t(3409),y=t(5882);let v=[{slug:"month-end-close",order:0,nav:"Month-end close",icon:n.A,accent:"#0A0A0A",eyebrow:"Close & controllership",kicker:"Close the group in days, not weeks.",headlineLead:"Month-end",headlineItalic:"close",headlineTail:"on autopilot.",subhead:"GL accounting, reconciliations, prepaid, accruals, fixed assets and board packs, one governed workspace that runs the entire close from cutoff to consolidation.",capabilities:[{icon:i.A,label:"GL accounting & JE queue"},{icon:o.A,label:"Bank & subledger recs"},{icon:s.A,label:"Group consolidation"},{icon:n.A,label:"Board reporting packs"}],features:[{icon:i.A,title:"GL & journal entries",body:"AI drafts recurring journals, accruals, prepaid amortization, revenue cutoff, with a full posting trail and reviewer sign-off."},{icon:o.A,title:"Reconciliations",body:"Bank, credit-card and subledger reconciliations run continuously. Only true unmatched items surface for investigation."},{icon:r.A,title:"Prepaid, accruals & FA",body:"Amortization schedules, accrual recognition, auto-reversal and a live fixed-asset register with depreciation, all reconciled to GL."},{icon:n.A,title:"Board reporting packs",body:"Executive summary, consolidated P&L, BS, CF and KPI scorecard, auto-generated with AI-drafted narrative, every number traceable."}],steps:[{title:"Cutoff & post",body:"AI drafts month-end JEs, accruals, prepaid, revenue cutoff, and books them after reviewer sign-off."},{title:"Reconcile & consolidate",body:"Bank, subledger and inter-company recs run continuously; group consolidation applies FX and eliminations."},{title:"Publish the pack",body:"Board-ready packs generate automatically with narrative, every figure drills back to source."}],metrics:[{value:"5 days",label:"typical close"},{value:"100%",label:"reconciled"},{value:"Auto",label:"board pack"}]},{slug:"consolidation",order:1,nav:"Consolidation",icon:l.A,accent:"#2563EB",eyebrow:"Group close",kicker:"Many entities, one truth.",headlineLead:"Multi-entity",headlineItalic:"consolidation",headlineTail:"on autopilot.",subhead:"Ingest every subsidiary ledger, auto-match inter-company transactions, post eliminations and translate currencies, so your group close goes from weeks to days.",capabilities:[{icon:c.A,label:"Inter-company auto-matching"},{icon:r.A,label:"Eliminations & adjustments"},{icon:d.A,label:"FX translation & CTA"},{icon:s.A,label:"50+ entity roll-ups"}],features:[{icon:c.A,title:"Auto-reconcile inter-co",body:"AI matches inter-company pairs across ledgers and flags only the true deltas for review, no more tie-out spreadsheets."},{icon:r.A,title:"Rules-based eliminations",body:"Codify elimination and minority-interest rules once; they run automatically every period with a full audit trail."},{icon:d.A,title:"Multi-currency",body:"Translate each entity at the right rate, book CTA automatically, and keep a currency-by-currency lineage."},{icon:s.A,title:"Any group structure",body:"Model tiers, JVs, holdcos and partial ownership, roll up 50+ entities into a single consolidated view."}],steps:[{title:"Connect ledgers",body:"Link every subsidiary's QuickBooks, NetSuite or ERP. Balances sync continuously."},{title:"Match & eliminate",body:"AI reconciles inter-co, applies eliminations and FX, and surfaces exceptions."},{title:"Publish the group",body:"One governed consolidated set, drill from group down to any entity's source entry."}],metrics:[{value:"50+",label:"entities consolidated"},{value:"5 days",label:"typical close"},{value:"100%",label:"lineage tracked"}]},{slug:"analytics",order:2,nav:"Analytics",icon:u.A,accent:"#0A0A0A",eyebrow:"Reporting & dashboards",kicker:"Answers, not exports.",headlineLead:"Board-ready",headlineItalic:"analytics",headlineTail:"across the group.",subhead:"Live dashboards, KPI scorecards and board packs built on one governed semantic layer, every number traceable back to the source entry.",capabilities:[{icon:u.A,label:"Live board dashboards"},{icon:m.A,label:"KPI & manager scorecards"},{icon:i.A,label:"Automated board packs"},{icon:h.A,label:"Governed semantic layer"}],features:[{icon:u.A,title:"Dashboards that update",body:"Revenue, margin and cash by entity, refreshed in real time, no more month-old PDF decks."},{icon:m.A,title:"Scorecards",body:"People, manager and business scorecards that roll the whole group into a single comparable view."},{icon:i.A,title:"One-click board pack",body:"Generate a consistent, branded board pack every period, narrative and charts, ready to send."},{icon:h.A,title:"Trust every number",body:"Built on a governed semantic layer, so every metric drills back to the transaction it came from."}],steps:[{title:"Unify the data",body:"ERP, CRM and HRMS flow into one semantic layer with consistent definitions."},{title:"Build the view",body:"Compose dashboards and scorecards from shared, governed metrics."},{title:"Share with confidence",body:"Publish board packs and live links, every figure is traceable."}],metrics:[{value:"100+",label:"data connections"},{value:"Real-time",label:"refresh"},{value:"1",label:"source of truth"}]},{slug:"fpa",order:3,nav:"FP&A",icon:p.A,accent:"#059669",eyebrow:"Planning & forecasting",kicker:"Plan the whole group.",headlineLead:"Planning &",headlineItalic:"forecasting",headlineTail:"that ties to actuals.",subhead:"Driver-based budgets, rolling forecasts and scenario models that sit on the same governed data as your actuals, so plan-versus-actual is always live.",capabilities:[{icon:b.A,label:"Driver-based budgets"},{icon:o.A,label:"Rolling forecasts"},{icon:s.A,label:"Scenario & what-if"},{icon:g.A,label:"Live plan vs actual"}],features:[{icon:b.A,title:"Driver-based models",body:"Build budgets on the drivers that move your business, headcount, volume, price, not static line items."},{icon:o.A,title:"Rolling forecasts",body:"Re-forecast continuously as actuals land; the model updates itself and flags variance."},{icon:s.A,title:"Scenarios in seconds",body:"Model best / base / worst case side by side and see the impact on cash and margin instantly."},{icon:g.A,title:"Plan vs actual, live",body:"Because plans sit on the same data as actuals, variance is always current and always traceable."}],steps:[{title:"Set the drivers",body:"Define the operational drivers behind revenue, cost and headcount."},{title:"Build & branch",body:"Create budgets and forecast scenarios that inherit from your actuals."},{title:"Track variance",body:"Watch plan vs actual update in real time and re-forecast in a click."}],metrics:[{value:"Rolling",label:"13-week + annual"},{value:"Live",label:"plan vs actual"},{value:"â",label:"scenarios"}]},{slug:"p2p",order:4,nav:"Procure-to-Pay",icon:f.A,accent:"#D97706",eyebrow:"Accounts payable",kicker:"Quote to payment, handled.",headlineLead:"Procure-to-pay",headlineItalic:"without",headlineTail:"the busywork.",subhead:"An AI agent that reads vendor quotes and invoices, runs 3-way match, routes approvals by policy and stages payments, with full vendor context at every step.",capabilities:[{icon:i.A,label:"Invoice & quote capture"},{icon:r.A,label:"3-way match"},{icon:n.A,label:"Policy-based approvals"},{icon:y.A,label:"Payment runs"}],features:[{icon:i.A,title:"Reads every document",body:"Quotes and invoices from inbox or ERP are parsed automatically, vendor, amount, terms, GL coding."},{icon:r.A,title:"3-way match",body:"PO, receipt and invoice are matched automatically; only genuine exceptions reach a human."}
1,{icon:n.A,title:"Approvals by policy",body:"Route by amount and entity, e.g. over $10k to the CFO, with a complete approval trail."},{icon:y.A,title:"Pay with context",body:"Every payment shows open balance, open POs and YTD spend, fully traceable to source docs."}],steps:[{title:"Capture",body:"AI ingests quotes and invoices from email and your ERP."},{title:"Match & approve",body:"3-way match runs, then approvals route automatically by policy."},{title:"Pay & trace",body:"Stage the payment run, every entry linked back to its documents."}],metrics:[{value:"3-way",label:"auto-match"},{value:"42",label:"invoices in flight"},{value:"6",label:"linked docs per pay"}]},{slug:"o2c",order:5,nav:"Order-to-Cash",icon:d.A,accent:"#2563EB",eyebrow:"Accounts receivable",kicker:"Order to cash in bank.",headlineLead:"Order-to-cash",headlineItalic:"that",headlineTail:"collects itself.",subhead:"From quote to collected cash: credit checks, invoicing, dunning and DSO tracking, an AI agent that moves receivables while keeping every customer's full context in view.",metaDescription:"From quote to collected cash: credit checks, invoicing, dunning and DSO tracking. An AI agent that moves receivables with full customer context in view.",capabilities:[{icon:i.A,label:"Quote â order capture"},{icon:r.A,label:"Automated credit checks"},{icon:f.A,label:"Invoicing & dunning"},{icon:m.A,label:"DSO tracking"}],features:[{icon:i.A,title:"Quote to order",body:"Pull quotes from CPQ or inbox and turn approved ones into orders without rekeying."},{icon:r.A,title:"Credit in the loop",body:"AI credit checks and policy approvals run before invoicing, over $25k routes to the CFO."},{icon:f.A,title:"Invoice & chase",body:"Send invoices, then run tone-matched dunning automatically until cash lands."},{icon:m.A,title:"DSO under control",body:"Track DSO and open A/R per customer, with every invoice traceable to its order."}],steps:[{title:"Ingest the order",body:"Quotes from Salesforce CPQ or email become orders automatically."},{title:"Check & invoice",body:"Credit check, approval, then invoice, all on policy."},{title:"Collect",body:"Automated dunning and DSO tracking bring the cash home."}],metrics:[{value:"27",label:"orders in flight"},{value:"41 days",label:"DSO tracked"},{value:"Auto",label:"dunning"}]}],x=v.reduce((e,a)=>(e[a.slug]=a,e),{}),A=[...v].sort((e,a)=>e.order-a.order)},3931:(e,a,t)=>{t.d(a,{cn:()=>o});var n=t(2821),i=t(5889);function o(){for(var e=arguments.length,a=Array(e),t=0;t<e;t++)a[t]=arguments[t];return(0,i.QP)((0,n.$)(a))}},5269:(e,a,t)=>{t.d(a,{A:()=>c});var n=t(1983),i=t(5849),o=t(5155);t(2115);var s=t(2619),r=t.n(s),l=t(2059);function c(){return(0,o.jsx)("footer",{className:"bg-[#0A0A0A] text-[#F5F0E8]","data-testid":"site-footer",children:(0,o.jsxs)("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 pt-20 pb-10",children:[(0,o.jsxs)("div",{className:"grid lg:grid-cols-12 gap-10",children:[(0,o.jsxs)("div",{className:"lg:col-span-6",children:[(0,o.jsx)("div",{className:"font-serif-display text-6xl sm:text-7xl lg:text-8xl leading-none tracking-tight",children:"FinBoard."}),(0,o.jsx)("p",{className:"mt-6 max-w-md text-[#F5F0E8]/70 leading-relaxed",children:"The AI-native business operations platform for multi-entity groups. Consolidate, report, plan and review, in one place."})]}),(0,o.jsxs)("div",{className:"lg:col-span-6 grid grid-cols-2 sm:grid-cols-4 gap-8",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"text-xs uppercase tracking-[0.22em] text-[#F5F0E8]/50",children:"Platform"}),(0,o.jsx)("ul",{className:"mt-4 space-y-2.5",children:l.Y8.map(e=>(0,o.jsx)("li",{children:(0,o.jsx)(r(),{href:"/products/".concat(e.slug),"data-testid":"footer-product-".concat(e.slug),className:"text-sm text-[#F5F0E8]/80 hover:text-white transition-colors",children:e.nav})},e.slug))})]}),(0,o.jsx)(d,{title:"Product",links:[{l:"Use cases",href:"/#use-cases"},{l:"How it works",href:"/engagement#how-it-works"},{l:"Pricing",href:"/pricing"},{l:"FAQ",href:"/#faq"}]}),(0,o.jsx)(d,{title:"Company",links:[{l:"About",href:"/about"},{l:"Customers",href:"/testimonials"},{l:"Videos",href:"/videos"},{l:"Contact",href:"https://calendly.com/vaishnav-finboard/30min?month=2026-07"}]}),(0,o.jsx)(d,{title:"Legal",links:[{l:"Privacy",href:"/privacy"},{l:"Terms",href:"/terms"},{l:"Refund Policy",href:"/refund-policy"}]})]})]}),(0,o.jsxs)("div",{className:"mt-16 pt-8 border-t border-[#F5F0E8]/15 flex flex-col sm:flex-row items-center justify-between gap-4 text-xs text-[#F5F0E8]/50",children:[(0,o.jsxs)("div",{children:["\xa9 ",new Date().getFullYear()," FinBoard, Inc. All rights reserved."]}),(0,o.jsx)("div",{children:"Built for multi-entity groups."})]})]})})}function d(e){let{title:a,links:t}=e;return(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"text-xs uppercase tracking-[0.22em] text-[#F5F0E8]/50",children:a}),(0,o.jsx)("ul",{className:"mt-4 space-y-2.5",children:t.map(e=>(0,o.jsx)("li",{children:(0,o.jsx)("a",(0,i._)((0,n._)({href:e.href},e.href.startsWith("http")?{target:"_blank",rel:"noreferrer"}:{}),{"data-testid":"footer-link-".concat(a.toLowerCase(),"-").concat(e.l.toLowerCase().replace(/\s+/g,"-")),className:"text-sm text-[#F5F0E8]/80 hover:text-white transition-colors",children:e.l}))},e.l))})]})}},5673:(e,a,t)=>{t.d(a,{$x:()=>N,nr:()=>w});var n=t(9592),i=t(9408),o=t(9204),s=t(2214),r=t(9397),l=t(8042),c=t(7066),d=t(4274),u=t(952),m=t(4604),h=t(512),p=t(6398),b=t(7744),g=t(6806),f=t(1169),y=t(9602),v=t(6154),x=t(9364),A=t(9633);let k=[{slug:"restaurants",order:1,nav:"Restaurants",icon:n.A,accent:"#C2410C",tint:"#FFF7ED",eyebrow:"Restaurants & hospital
1ity",headlineLead:"Multi-location",headlineItalic:"restaurant",headlineTail:"finance, consolidated.",subhead:"Roll up every location into one P&L. Track food and labor cost as a % of sales, compare stores side by side, and close the month across the whole group without chasing spreadsheets.",metaDescription:"Roll up every location into one P&L. Track food and labor cost as a % of sales, compare stores side by side, and close the month across the whole group.",pains:["Stitching together four POS exports by hand every month-end.","Not knowing which location is actually profitable until weeks later.","Prime cost creeping past 60% before anyone catches it."],capabilities:[{icon:i.A,label:"Location-level P&L"},{icon:o.A,label:"Food & labor cost %"},{icon:s.A,label:"Same-store sales"},{icon:r.A,label:"Group consolidation"}],features:[{icon:i.A,title:"P&L by location",body:"Every restaurant rolls into a consolidated group view, and drills back down to a single store's line items."},{icon:o.A,title:"Prime cost control",body:"Food and labor cost as a live % of sales, benchmarked across locations so outliers surface immediately."},{icon:s.A,title:"Same-store trends",body:"Comp sales, average check and cover counts tracked period over period across the whole fleet."}],integrations:["Toast","7shifts","QuickBooks","Restaurant365","Square"],metric:{value:"Per location",label:"consolidated P&L"},metrics:[{value:"Per location",label:"P&L"},{value:"< 60%",label:"prime-cost target"},{value:"10 days",label:"group close"}]},{slug:"construction",order:2,nav:"Construction",icon:l.A,accent:"#B45309",tint:"#FEF3C7",eyebrow:"Construction & contractors",headlineLead:"Job costing and",headlineItalic:"WIP",headlineTail:"that actually tie out.",subhead:"Percentage-of-completion, WIP schedules, retainage and job-level margin across every entity, reconciled to your GL so the board sees the real project picture.",pains:["WIP schedules built by hand in Excel that never tie to the GL.","Job margins you only find out at close-out, when it's too late.","Retainage tracked across a dozen disconnected spreadsheets."],capabilities:[{icon:c.A,label:"Job costing"},{icon:s.A,label:"WIP schedules"},{icon:o.A,label:"% completion"},{icon:d.A,label:"Retainage tracking"}],features:[{icon:c.A,title:"Job-level margin",body:"See gross margin by project and phase, with committed costs and change orders rolled in automatically."},{icon:s.A,title:"WIP that reconciles",body:"Over/under billings and percentage-of-completion tie straight back to the GL, no more year-end surprises."},{icon:d.A,title:"Retainage & AR",body:"Track retainage held and released across jobs alongside AR aging, per entity and consolidated."}],integrations:["Procore","Buildertrend","Sage 300 CRE","QuickBooks","Foundation"],metric:{value:"Per job",label:"margin & WIP"},metrics:[{value:"Per job",label:"margin & WIP"},{value:"POC",label:"revenue recognition"},{value:"Real-time",label:"over/under billing"}]},{slug:"retail",order:3,nav:"Retail",icon:u.A,accent:"#7C3AED",tint:"#F5F3FF",eyebrow:"Multi-store retail",headlineLead:"Store-by-store",headlineItalic:"margins",headlineTail:"in one view.",subhead:"Consolidate every store, track SKU and category profitability, and watch inventory and comp sales across the fleet, with a group P&L that closes on time.",pains:["Store P&Ls that land three weeks after month-end.","Inventory shrink you can't pin to a location.","No clear view of which categories actually carry margin."],capabilities:[{icon:i.A,label:"Store-level P&L"},{icon:m.A,label:"Inventory & COGS"},{icon:o.A,label:"Category margin"},{icon:s.A,label:"Comp-store sales"}],features:[{icon:i.A,title:"P&L by store",body:"Each location consolidates into the group while staying drillable down to register-level detail."},{icon:m.A,title:"Inventory-aware margin",body:"COGS and inventory turns by SKU and category, so you see what's actually making money."},{icon:s.A,title:"Comp sales & trends",body:"Like-for-like sales, basket size and margin trends across every store, period over period."}],integrations:["Shopify POS","Lightspeed","NetSuite","QuickBooks","Square"],metric:{value:"Per store",label:"margin view"},metrics:[{value:"Per store",label:"margin view"},{value:"SKU-level",label:"profitability"},{value:"Comp",label:"sales tracking"}]},{slug:"ecommerce",order:4,nav:"E-commerce",icon:h.A,accent:"#0D9488",tint:"#F0FDFA",eyebrow:"E-commerce & DTC",headlineLead:"Multi-channel",headlineItalic:"contribution",headlineTail:"margin, clarified.",subhead:"Blend Shopify, Amazon and marketplace revenue, net out fees and COGS, and see true contribution margin and blended CAC across channels, reconciled to the bank.",pains:["Marketplace and payment fees quietly eating your margin.","Blended CAC you can't tie back to channel revenue.","Reconciling Shopify, Amazon and the bank by hand every month."],capabilities:[{icon:s.A,label:"Multi-channel revenue"},{icon:o.A,label:"Contribution margin"},{icon:d.A,label:"Marketplace fees"},{icon:p.A,label:"COGS & fulfillment"}],features:[{icon:s.A,title:"One revenue picture",body:"Shopify, Amazon and wholesale channels blended into a single, reconciled revenue and margin view."},{icon:o.A,title:"True contribution margin",body:"Net out payment, marketplace and fulfillment fees to see what each channel and SKU really earns."},{icon:d.A,title:"Blended CAC & LTV",body:"Marketing spend tied to channel revenue so blended CAC and payback are always current."}],integrations:["Shopify","Amazon","Stripe","NetSuite","QuickBooks"],metric:{value:"Per channel",label:"contribution margin"},metrics:[{value:"Per channel",label:"contribution"},{value:"Blended",label:"CAC & LTV"},{value:"Net",label:"of all fees"}]},{slug:"healthcare",order:5,nav:"Healthcare",icon:b.A,accent:"#0E7490",tint:"#ECFEFF",eyebrow:"Healthcare & clinics",headlineLead:"Multi-entity",headlineItalic:"clinic",headlineTail:"finance, in control.",subhead:"Consolidate clinics and practices, track payer mix and revenue cycle, and measure cost per visit across the group, with governed, board-ready reporting.",pains:["Clinic P&Ls buried inside the practice-management system.","Payer mix and cost-per-visit you can't compare across sites.","Days in AR climbing with no early warning."],capabilities:[{icon:i.A,label:"Per-clinic P&L"},{icon:g.A,label:"Revenue cycle"},{icon:f.A,label:"Payer mix"},{icon:o.A,label:"Cost per visit"}],features:[{icon:i.A,title:"Consolidated clinics",body:"Every location and entity rolls into one group view, drillable to a single clinic's P&L."},{icon:g.A,title:"Revenue cycle visibility",body:"Track collections, denials and days in AR across the group alongside the financials."},{icon:f.A,title:"Payer & service mix",body:"See payer mix and cost per visit by location so you know
1where margin comes from."}],integrations:["Epic","athenahealth","Kareo","NetSuite","QuickBooks"],metric:{value:"Per clinic",label:"P&L & cost/visit"},metrics:[{value:"Per clinic",label:"P&L"},{value:"Payer mix",label:"visibility"},{value:"Days in AR",label:"tracked live"}]},{slug:"software-and-services",order:6,nav:"Software & Services",icon:y.A,accent:"#4F46E5",tint:"#EEF2FF",eyebrow:"SaaS & professional services",headlineLead:"Recurring revenue and",headlineItalic:"utilization",headlineTail:"as one story.",subhead:"SaaS metrics and services margin in one workspace. ARR, NRR, magic number, and utilization by team all consolidated back to the ledger - no more juggling Stripe, Xero and Google Sheets.",metaDescription:"SaaS metrics and services margin in one workspace. ARR, NRR, magic number and utilization by team, all consolidated back to the ledger.",pains:["ARR waterfalls rebuilt from scratch every board cycle.","Services margin only surfacing after the quarter has closed.","Utilization and revenue tracked in three different systems."],capabilities:[{icon:v.A,label:"ARR & NRR"},{icon:x.A,label:"Utilization by team"},{icon:A.A,label:"Services margin"},{icon:d.A,label:"Deferred revenue"}],features:[{icon:v.A,title:"Live SaaS metrics",body:"ARR waterfall, net revenue retention, gross churn and magic number reconciled to your subscription ledger, no rebuild required."},{icon:x.A,title:"Utilization & margin",body:"Billable hours, bench and utilization by team roll into services margin and revenue per FTE, live across every entity."},{icon:A.A,title:"Bookings to cash",body:"From closed-won to invoice to cash - bookings, billings, deferred revenue and collections tied together in one view."}],integrations:["Stripe","Salesforce","HubSpot","Xero","Rippling"],metric:{value:"Per team",label:"utilization & margin"},metrics:[{value:"ARR & NRR",label:"reconciled"},{value:"Per team",label:"utilization"},{value:"Services",label:"margin live"}]}],w=k.reduce((e,a)=>(e[a.slug]=a,e),{}),N=[...k].sort((e,a)=>e.order-a.order)},7516:(e,a,t)=>{t.d(a,{A:()=>T});var n=t(5155),i=t(2115),o=t(2619),s=t.n(o),r=t(63),l=t(1696),c=t(5221),d=t(9095),u=t(5740),m=t(4382),h=t(1456),p=t(383),b=t(4033),g=t(5229),f=t(9540),y=t(1983),v=t(5849),x=t(7389),A=t(1798),k=t(7937),w=t(5917),N=t(9051),j=t(3931);let C=A.bL,P=A.l9;A.YJ,A.ZL,A.Pb,A.z6,i.forwardRef((e,a)=>{var{className:t,inset:i,children:o}=e,s=(0,x._)(e,["className","inset","children"]);return(0,n.jsxs)(A.ZP,(0,v._)((0,y._)({ref:a,className:(0,j.cn)("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",i&&"pl-8",t)},s),{children:[o,(0,n.jsx)(k.A,{className:"ml-auto"})]}))}).displayName=A.ZP.displayName,i.forwardRef((e,a)=>{var{className:t}=e,i=(0,x._)(e,["className"]);return(0,n.jsx)(A.G5,(0,y._)({ref:a,className:(0,j.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",t)},i))}).displayName=A.G5.displayName;let F=i.forwardRef((e,a)=>{var{className:t,sideOffset:i=4}=e,o=(0,x._)(e,["className","sideOffset"]);return(0,n.jsx)(A.ZL,{children:(0,n.jsx)(A.UC,(0,y._)({ref:a,sideOffset:i,className:(0,j.cn)("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
1de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",t)},o))})});F.displayName=A.UC.displayName;let R=i.forwardRef((e,a)=>{var{className:t,inset:i}=e,o=(0,x._)(e,["className","inset"]);return(0,n.jsx)(A.q7,(0,y._)({ref:a,className:(0,j.cn)("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",i&&"pl-8",t)},o))});R.displayName=A.q7.displayName,i.forwardRef((e,a)=>{var{className:t,children:i,checked:o}=e,s=(0,x._)(e,["className","children","checked"]);return(0,n.jsxs)(A.H_,(0,v._)((0,y._)({ref:a,className:(0,j.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),checked:o},s),{children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(A.VF,{children:(0,n.jsx)(w.A,{className:"h-4 w-4"})})}),i]}))}).displayName=A.H_.displayName,i.forwardRef((e,a)=>{var{className:t,children:i}=e,o=(0,x._)(e,["className","children"]);return(0,n.jsxs)(A.hN,(0,v._)((0,y._)({ref:a,className:(0,j.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t)},o),{children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(A.VF,{children:(0,n.jsx)(N.A,{className:"h-2 w-2 fill-current"})})}),i]}))}).displayName=A.hN.displayName,i.forwardRef((e,a)=>{var{className:t,inset:i}=e,o=(0,x._)(e,["className","inset"]);return(0,n.jsx)(A.JU,(0,y._)({ref:a,className:(0,j.cn)("px-2 py-1.5 text-sm font-semibold",i&&"pl-8",t)},o))}).displayName=A.JU.displayName,i.forwardRef((e,a)=>{var{className:t}=e,i=(0,x._)(e,["className"]);return(0,n.jsx)(A.wv,(0,y._)({ref:a,className:(0,j.cn)("-mx-1 my-1 h-px bg-muted",t)},i))}).displayName=A.wv.displayName;var S=t(2059),L=t(5673);let E={"Month-end close":"#7C3AED",Consolidation:"#2563EB",Analytics:"#0891B2","FP&A":"#059669","Procure-to-Pay":"#D97706","Order-to-Cash":"#E11D48"},_=[{href:"/engagement#how-it-works",label:"How it works",desc:"The 30-day engagement model",icon:l.A,accent:"#2563EB"},{href:"/#use-cases",label:"Use cases",desc:"Explore the product studio",icon:c.A,accent:"#0891B2"},{href:"/testimonials",label:"Testimonials",route:!0,desc:"What finance leaders say",icon:d.A,accent:"#059669"},{href:"/about",label:"About",route:!0,desc:"Our manifesto & team",icon:u.A,accent:"#D97706"},{href:"/blog",label:"Blog",route:!0,desc:"Guides, playbooks & benchmarks",icon:m.A,accent:"#7C3AED"},{href:"/templates",label:"Templates",route:!0,desc:"Free QuickBooks-ready spreadsheets",icon:h.A,accent:"#E11D48"},{href:"/conferences",label:"Conferences",route:!0,desc:"The accounting events calendar",icon:p.A,accent:"#0EA5E9"}],B="nav-mega max-w-none rounded-none border-x-0 border-t-0 bg-[#F5F0E8] border-line p-0 shadow-[0_24px_50px_-24px_rgba(10,10,10,0.25)]";function I(e){let{testid:a,icon:t,color:i,title:o,desc:s,onSelect:r}=e;return(0,n.jsxs)(R,{"data-testid":a,onSelect:r,className:"cursor-pointer flex-col items-center text-center gap-3 p-4 rounded-xl bg-white border border-line hover:border-line-strong hover:-translate-y-0.5 focus:bg-white focus:text-[#0A0A0A] transition-all",children:[(0,n.jsx)("span",{className:"h-10 w-10 shrink-0 rounded-sm border grid place-items-center",style:{backgroundColor:"".concat(i,"e6"),borderColor:"".concat(i,"3d"),color:"#fff"},children:(0,n.jsx)(t,{size:17,strokeWidth:1.75})}),(0,n.jsxs)("span",{className:"w-full",children:[(0,n.jsx)("span",{className:"block font-medium text-[13px] leading-tight text-[#0A0A0A]",children:o}),(0,n.jsx)("span",{className:"block text-[11px] text-[#0A0A0A]/50 mt-1 leading-tight",children:s})]})]})}function z(e){let{eyebrow:a,title:t,desc:i,accent:o,count:s}=e;return(0,n.jsxs)("div",{className:"w-56 shrink-0 self-center pr-9 border-r border-line",children:[(0,n.jsx)("div",{className:"text-[10px] uppercase tracking-[0.28em] font-semibold mb-3",style:{color:o},children:a}),(0,n.jsxs)("div",{className:"font-serif-display text-[2rem] leading-[1.02] tracking-tight text-[#0A0A0A]",children:[t,(0,n.jsx)("span",{style:{color:o},children:"."})]}),(0,n.jsx)("p",{className:"mt-3 text-[13px] leading-relaxed text-[#0A0A0A]/55",children:i}),s&&(0,n.jsxs)("div",{className:"mt-5 inline-flex items-center gap-2 text-[10.5px] uppercase tracking-[0.18em] text-[#0A0A0A]/45",children:[(0,n.jsx)("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:o}}),s]})]})}function T(e){let{onBookDemo:a}=e,[t,o]=i.useState(!1),[l,c]=i.useState(!1),d=(0,r.useRouter)();return i.useEffect(()=>{let e=()=>
1o(window.scrollY>8);return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,n.jsxs)("header",{"data-testid":"site-navbar",className:"sticky top-0 z-40 transition-all ".concat(t?"bg-[#F5F0E8]/80 backdrop-blur-xl border-b border-line":"bg-transparent border-b border-transparent"),children:[(0,n.jsxs)("nav",{className:"max-w-7xl mx-auto px-6 lg:px-10 h-16 flex items-center justify-between",children:[(0,n.jsxs)(s(),{href:"/","data-testid":"brand-logo",className:"flex items-center gap-2",children:[(0,n.jsx)("img",{src:"/brand/finboard-mark-dark.png",alt:"",className:"h-8 w-8 rounded-md select-none",draggable:"false"}),(0,n.jsx)("span",{className:"font-serif-display text-[22px] tracking-tight",children:"FinBoard"})]}),(0,n.jsxs)("div",{className:"hidden xl:flex items-center gap-7",children:[(0,n.jsxs)(C,{children:[(0,n.jsxs)(P,{"data-testid":"nav-products-trigger",className:"inline-flex items-center gap-1 text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors focus:outline-none",children:["Products ",(0,n.jsx)(b.A,{size:14,className:"opacity-70"})]}),(0,n.jsx)(F,{align:"start","data-testid":"nav-products-menu",className:B,children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 py-8 flex gap-10",children:[(0,n.jsx)(z,{eyebrow:"The stack",title:"Products",desc:"The full finance stack, one governed workspace.",accent:"#7C3AED",count:"".concat(S.Y8.length," modules")}),(0,n.jsx)("div",{className:"flex-1 grid grid-cols-3 gap-2",children:S.Y8.map(e=>(0,n.jsx)(I,{testid:"nav-product-".concat(e.slug),icon:e.icon,color:E[e.nav]||e.accent,title:e.nav,desc:e.eyebrow,onSelect:()=>d.push("/products/".concat(e.slug))},e.slug))})]})})]}),(0,n.jsx)(s(),{href:"/operators","data-testid":"nav-link-for-operators",className:"text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors",children:"For Operators"}),(0,n.jsx)(s(),{href:"/advisory","data-testid":"nav-link-for-firms",className:"text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors",children:"For Firms"}),(0,n.jsx)(s(),{href:"/engagement","data-testid":"nav-link-engagement",className:"text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors",children:"Engagement"}),(0,n.jsxs)(C,{children:[(0,n.jsxs)(P,{"data-testid":"nav-resources-trigger",className:"inline-flex items-center gap-1 text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors focus:outline-none",children:["Resources ",(0,n.jsx)(b.A,{size:14,className:"opacity-70"})]}),(0,n.jsx)(F,{align:"start","data-testid":"nav-resources-menu",className:B,children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 py-8 flex gap-10",children:[(0,n.jsx)(z,{eyebrow:"Learn",title:"Resources",desc:"Guides, stories and the FinBoard playbook.",accent:"#2563EB",count:"".concat(_.length," resources")}),(0,n.jsx)("div",{className:"flex-1 grid grid-cols-4 gap-2",children:_.map(e=>(0,n.jsx)(I,{testid:"nav-resource-".concat(e.label.toLowerCase().replace(/\s+/g,"-")),icon:e.icon,color:e.accent,title:e.label,desc:e.desc,onSelect:()=>{e.route?d.push(e.href):window.location.href=e.href}},e.href))})]})})]}),(0,n.jsx)(s(),{href:"/pricing","data-testid":"nav-link-pricing",className:"text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors",children:"Pricing"}),(0,n.jsxs)(C,{children:[(0,n.jsxs)(P,{"data-testid":"nav-industries-trigger",className:"inline-flex items-center gap-1 text-sm text-[#0A0A0A]/80 hover:text-[#0A0A0A] transition-colors focus:outline-none",children:["Industries ",(0,n.jsx)(b.A,{size:14,className:"opacity-70"})]}),(0,n.jsx)(F,{align:"end","data-testid":"nav-industries-menu",className:B,children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto px-6 lg:px-10 py-8 flex gap-10",children:[(0,n.jsx)(z,{eyebrow:"By sector",title:"Industries",desc:"Finance tuned to how your sector runs.",accent:"#C2410C",count:"".concat(L.$x.length," industries")}),(0,n.jsx)("div",{className:"flex-1 grid grid-cols-3 gap-2",children:L.$x.map(e=>(0,n.jsx)(I,{testid:"nav-industry-".concat(e.slug),icon:e.icon,color:e.accent,title:e.nav,desc:e.eyebrow,onSelect:()=>d.push("/industries/".concat(e.slug))},e.slug))})]})})]})]}),(0,n.jsxs)("div",{className:"hidden xl:flex items-center gap-3",children:[(0,n.jsx)("a",{href:"https://app.finboard.ai","data-testid":"nav-login-link",className:"rounded-full border border-[#0A0A0A]/20 px-4 py-2.5 text-sm text-[#0A0A0A] transition-colors hover:border-[#0A0A0A]",children:"Login"}),(0,n.jsx)("button",{"data-testid":"nav-book-demo-button",onClick:a,className:"btn-primary text-sm py-2.5",children:"Book consultation"})]}),(0,n.jsx)("button",{className:"xl:hidden p-2 rounded-md hover:bg-black/5",onClick:()=>c(e=>!e),"aria-label":"Toggle menu","data-testid":"nav-mobile-toggle",children:l?(0,n.jsx)(g.A,{size:20}):(0,n.jsx)(f.A,{size:20})})]}),l&&(0,n.jsx)("div",{className:"xl:hidden border-t border-line bg-[#F5F0E8]","data-testid":"nav-mobile-panel",children:(0,n.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-4",children:[(0,n.jsxs)("div",{className:"pb-2 border-b border-line/70",children:[(0,n.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[#0A0A0A]/50 mb-2",children:"Products"}),(0,n.jsx)("div",{className:"flex flex-col gap-1",children:S.Y8.map(e=>{let a=e.icon;return(0,n.jsxs)(s(),{href:"/products/".concat(e.slug),onClick:()=>c(!1),"data-testid":"mobile-nav-product-".concat(e.slug),className:"flex items-center gap-2.5 py-1.5 text-base",children:[(0,n.jsx)("span",{className:"h-6 w-6 rounded border border-line bg-white grid place-items-center shrink-0 text-[#0A0A0A]",children:(0,n.jsx)(a,{size:13,strokeWidth:1.75})}),e.nav]},e.slug)})})]}),(0,n.jsx)(s(),{href:"/operators",onClick:()=>c(!1),"data-testid":"mobile-nav-link-for-operators",className:"text-base",children:"For Operators"}),(0,n.jsx)(s(),{href:"/advisory",onClick:()=>c(!1),"data-testid":"mobile-nav-link-for-firms",className:"text-base",children:"For Firms"}),(0,n.jsx)(s(),{href:"/engagement",onClick:()=>
1c(!1),"data-testid":"mobile-nav-link-engagement",className:"text-base",children:"Engagement"}),(0,n.jsxs)("div",{className:"pt-2 border-t border-line/70",children:[(0,n.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[#0A0A0A]/50 mb-2",children:"Resources"}),(0,n.jsx)("div",{className:"flex flex-col gap-1",children:_.map(e=>(0,n.jsx)("a",{href:e.href,onClick:()=>c(!1),"data-testid":"mobile-nav-link-".concat(e.label.toLowerCase().replace(/\s+/g,"-")),className:"text-base py-0.5",children:e.label},e.href))})]}),(0,n.jsx)(s(),{href:"/pricing",onClick:()=>c(!1),"data-testid":"mobile-nav-link-pricing",className:"text-base",children:"Pricing"}),(0,n.jsxs)("div",{className:"pt-2 border-t border-line/70",children:[(0,n.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[#0A0A0A]/50 mb-2",children:"Industries"}),(0,n.jsx)("div",{className:"flex flex-col gap-1",children:L.$x.map(e=>{let a=e.icon;return(0,n.jsxs)(s(),{href:"/industries/".concat(e.slug),onClick:()=>c(!1),"data-testid":"mobile-nav-industry-".concat(e.slug),className:"flex items-center gap-2.5 py-1.5 text-base",children:[(0,n.jsx)("span",{className:"h-6 w-6 rounded border border-line bg-white grid place-items-center shrink-0 text-[#0A0A0A]",children:(0,n.jsx)(a,{size:13,strokeWidth:1.75})}),e.nav]},e.slug)})})]}),(0,n.jsx)("a",{"data-testid":"mobile-nav-login-link",href:"https://app.finboard.ai",onClick:()=>c(!1),className:"w-full rounded-full border border-[#0A0A0A]/20 px-4 py-2.5 text-center text-base text-[#0A0A0A]",children:"Login"}),(0,n.jsx)("button",{"data-testid":"mobile-nav-book-demo",onClick:()=>{c(!1),a()},className:"btn-primary w-full",children:"Book consultation"})]})})]})}},7990:(e,a,t)=>{t.d(a,{A:()=>A});var n=t(5155),i=t(2115),o=t(1983),s=t(5849),r=t(7389),l=t(9511),c=t(5229),d=t(3931);let u=l.bL;l.l9;let m=l.ZL;l.bm;let h=i.forwardRef((e,a)=>{var{className:t}=e,i=(0,r._)(e,["className"]);return(0,n.jsx)(l.hJ,(0,o._)({ref:a,className:(0,d.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t)},i))});h.displayName=l.hJ.displayName;let p=i.forwardRef((e,a)=>{var{className:t,children:i}=e,u=(0,r._)(e,["className","children"]);return(0,n.jsxs)(m,{children:[(0,n.jsx)(h,{}),(0,n.jsxs)(l.UC,(0,s._)((0,o._)({ref:a,className:(0,d.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t)},u),{children:[i,(0,n.jsxs)(l.bm,{className:"absolute right-4 top-4 roun
1ded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,n.jsx)(c.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]}))]})});p.displayName=l.UC.displayName;let b=e=>{var{className:a}=e,t=(0,r._)(e,["className"]);return(0,n.jsx)("div",(0,o._)({className:(0,d.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a)},t))};b.displayName="DialogHeader";let g=i.forwardRef((e,a)=>{var{className:t}=e,i=(0,r._)(e,["className"]);return(0,n.jsx)(l.hE,(0,o._)({ref:a,className:(0,d.cn)("text-lg font-semibold leading-none tracking-tight",t)},i))});g.displayName=l.hE.displayName;let f=i.forwardRef((e,a)=>{var{className:t}=e,i=(0,r._)(e,["className"]);return(0,n.jsx)(l.VY,(0,o._)({ref:a,className:(0,d.cn)("text-sm text-muted-foreground",t)},i))});f.displayName=l.VY.displayName;var y=t(7013);let v="https://calendly.com/vaishnav-finboard/30min?month=2026-07",x="".concat(v,"&embed_type=Inline&embed_domain=").concat(window.location.hostname,"&hide_gdpr_banner=1");function A(e){let{open:a,onOpenChange:t}=e;return(0,n.jsx)(u,{open:a,onOpenChange:t,children:(0,n.jsxs)(p,{"data-testid":"book-demo-dialog",className:"w-[96vw] sm:max-w-[1100px] bg-[#F5F0E8] border-line p-0 overflow-hidden",children:[(0,n.jsxs)(b,{className:"px-5 pt-4 pb-0 space-y-0",children:[(0,n.jsx)(g,{className:"font-serif-display text-lg tracking-tight leading-tight",children:"Book a consultation"}),(0,n.jsx)(f,{className:"text-[#0A0A0A]/60 text-[12px]",children:"Pick a time that works for you. 30 minutes with the FinBoard founders."})]}),(0,n.jsxs)("div",{className:"px-3 pb-2 pt-1.5",children:[(0,n.jsx)("iframe",{src:x,title:"Book a consultation with FinBoard","data-testid":"book-demo-calendly",className:"w-full rounded-xl border border-line bg-white",style:{height:"min(76vh, 700px)"}}),(0,n.jsx)("div",{className:"mt-1.5 text-center",children:(0,n.jsxs)("a",{href:v,target:"_blank",rel:"noreferrer","data-testid":"book-demo-calendly-link",className:"inline-flex items-center gap-1.5 text-[11.5px] font-medium text-[#0A0A0A]/60 hover:text-[#0A0A0A] transition-colors",children:["Calendar not loading? Open Calendly in a new tab ",(0,n.jsx)(y.A,{size:11})]})})]})]})})}}}]);
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.