[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation":3,"index":100},[4,23,48,68],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","/docs/getting-started","1.docs/1.getting-started/1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Creating an Account","/docs/getting-started/installation","1.docs/1.getting-started/2.installation","i-lucide-user-plus",{"title":18,"path":19,"stem":20,"icon":21},"Quick Start","/docs/getting-started/usage","1.docs/1.getting-started/3.usage","i-lucide-rocket",false,{"title":24,"path":25,"stem":26,"children":27,"page":22},"Data Sources","/docs/data-sources","1.docs/2.data-sources",[28,33,38,43],{"title":29,"path":30,"stem":31,"icon":32},"Manual Data","/docs/data-sources/manual-data","1.docs/2.data-sources/1.manual-data","i-lucide-file-text",{"title":34,"path":35,"stem":36,"icon":37},"API Sources","/docs/data-sources/api-sources","1.docs/2.data-sources/2.api-sources","i-lucide-globe",{"title":39,"path":40,"stem":41,"icon":42},"Managing Sources","/docs/data-sources/managing-sources","1.docs/2.data-sources/3.managing-sources","i-lucide-settings",{"title":44,"path":45,"stem":46,"icon":47},"Inbound API","/docs/data-sources/inbound-api","1.docs/2.data-sources/4.inbound-api","i-lucide-webhook",{"title":49,"path":50,"stem":51,"children":52,"page":22},"Visualization","/docs/visualization","1.docs/3.visualization",[53,58,63],{"title":54,"path":55,"stem":56,"icon":57},"Charts","/docs/visualization/charts","1.docs/3.visualization/1.charts","i-lucide-chart-line",{"title":59,"path":60,"stem":61,"icon":62},"Combined Views","/docs/visualization/combined-views","1.docs/3.visualization/2.combined-views","i-lucide-layers",{"title":64,"path":65,"stem":66,"icon":67},"Correlations","/docs/visualization/correlations","1.docs/3.visualization/3.correlations","i-lucide-git-compare",{"title":69,"path":70,"stem":71,"children":72,"icon":79},"Projections","/docs/projections","1.docs/4.projections/1.index",[73,75,80,85,90,95],{"title":69,"path":70,"stem":71,"icon":74},"i-lucide-chart-spline",{"title":76,"path":77,"stem":78,"icon":79},"Linear trend projection","/docs/projections/linear","1.docs/4.projections/2.linear","i-lucide-trending-up",{"title":81,"path":82,"stem":83,"icon":84},"Moving average projection","/docs/projections/moving-average","1.docs/4.projections/3.moving-average","i-lucide-activity",{"title":86,"path":87,"stem":88,"icon":89},"Exponential smoothing projection","/docs/projections/exponential-smoothing","1.docs/4.projections/4.exponential-smoothing","i-lucide-waves",{"title":91,"path":92,"stem":93,"icon":94},"Logarithmic projection","/docs/projections/logarithmic","1.docs/4.projections/5.logarithmic","i-lucide-log-in",{"title":96,"path":97,"stem":98,"icon":99},"Growth rate (CAGR) projection","/docs/projections/growth-rate","1.docs/4.projections/6.growth-rate","i-lucide-percent",{"id":101,"title":102,"body":103,"cta":104,"description":120,"extension":121,"features":122,"hero":148,"meta":152,"navigation":22,"path":153,"sections":154,"seo":185,"stem":188,"testimonials":189,"__hash__":264},"index/0.index.yml","KPI [Dashboard]{class=\"text-primary\"}",null,{"title":105,"description":106,"links":107},"Stop switching between dashboards","See all your metrics on one chart. Spot the correlations. Make better decisions. Free during beta, no credit card required.",[108,114],{"label":109,"icon":110,"trailing":111,"to":112,"size":113},"Get started free","i-lucide-arrow-right",true,"/signup","xl",{"label":115,"icon":116,"size":113,"color":117,"variant":118,"to":119},"Try live demo","i-lucide-play","neutral","subtle","/demo/project/my-saas-metrics/overview","Import metrics from Stripe, Google Search Console, PostHog, Shopify, and more on one dashboard. Spot correlations automatically and see what actually drives your numbers.","yml",{"title":123,"description":124,"items":125},"The Simple Dashboard Killer","More powerful than Geckoboard, simpler than Tableau. Everything you need to understand your metrics without the enterprise complexity.",[126,130,133,137,141,144],{"title":127,"description":128,"icon":129},"Connect Any JSON API","Plug in any tool with a REST API. Configure polling from every minute to every 24 hours. Your charts stay current automatically.","i-lucide-refresh-cw",{"title":131,"description":132,"icon":62},"Overlay Metrics from Different Sources","Combine any set of metrics on a single chart with automatic 0-100% normalization. See relationships that are invisible in separate dashboards.",{"title":134,"description":135,"icon":136},"Automatic Correlation Detection","Every combined view calculates Pearson correlation between your metrics. Know instantly whether two KPIs move together, diverge, or have no relationship.","i-lucide-git-compare-arrows",{"title":138,"description":139,"icon":140},"CSV & Spreadsheet Import","Export from any tool, import in seconds. Auto-detects dates, currencies, and metric names. No formatting gymnastics required.","i-lucide-file-spreadsheet",{"title":142,"description":143,"icon":47},"Push Data via Webhooks","Send data from any system. JSON templates map incoming payloads to metrics automatically. Build custom integrations in minutes.",{"title":145,"description":146,"icon":147},"Projects, Pages & Organization","Group metrics by product, team, or business area. Keep your workspace tidy even as you track dozens of data sources.","i-lucide-layout-dashboard",{"links":149},[150,151],{"label":109,"icon":110,"trailing":111,"to":112,"size":113},{"label":115,"icon":116,"size":113,"color":117,"variant":118,"to":119},{},"/",[155,171],{"title":156,"description":157,"id":158,"orientation":159,"features":160},"Connect Your Tools in Minutes","Plug in the apps you already use. Whether it's a CSV export from your ad platform, a live API from Stripe, or data you push via webhook, TotalKPI brings everything into one workspace.","features","horizontal",[161,165,168],{"name":162,"description":163,"icon":164},"Plug In Any App","Connect to any JSON API endpoint. Stripe, Google Search Console, your CRM, your ad platform. If it has an API, you can pull data from it automatically.","i-lucide-radio-tower",{"name":166,"description":167,"icon":140},"Import Spreadsheets & CSVs","Export a CSV from any tool and import it in seconds. Flexible parsing handles dates, currencies, and any format you throw at it.",{"name":169,"description":170,"icon":47},"Push Your Own Data","Send data from any system via webhook. Build custom integrations that push metrics straight into your charts in real time.",{"title":172,"description":173,"orientation":159,"reverse":111,"features":174},"See How X Affects Y","Overlay metrics from completely different tools on one chart. TotalKPI auto-normalizes different scales so you can instantly spot relationships between revenue, traffic, signups, churn, and anything else.",[175,178,181],{"name":176,"description":177,"icon":62},"Overlay Any Metrics","Put Stripe revenue next to Google traffic next to support tickets on a single chart. Different scales are auto-normalized so patterns jump out immediately.",{"name":179,"description":180,"icon":136},"See What Drives What","Automatic correlation analysis tells you which metrics actually move together. Stop guessing which channels drive revenue and let the data show you.",{"name":182,"description":183,"icon":184},"Explore Interactively","Hover for exact values, zoom into any date range, add annotations for launches and campaigns, and project trends forward.","i-lucide-mouse-pointer-click",{"title":186,"description":187},"TotalKPI - KPI Dashboard | Connect All Your Tools in Minutes","KPI dashboard that connects to Stripe, Google Search Console, and any API in minutes. Import CSVs, push data via webhooks. Spot correlations automatically. Free during beta.","0.index",{"headline":190,"title":191,"description":192,"items":193},"What Users Say","Built for Founders Who Track Everything","See how solopreneurs and growth teams use TotalKPI to end dashboard fatigue and find the metrics that matter.",[194,201,208,215,222,229,236,243,250,257],{"quote":195,"user":196},"I used to open Stripe, Search Console, Plausible, and a spreadsheet every morning. Now I open one tab and see how everything connects. The correlation between my blog traffic and trial signups was right there the whole time.",{"name":197,"description":198,"avatar":199},"Sarah Chen","SaaS Founder, $25K MRR",{"src":200},"https://i.pravatar.cc/120?img=1",{"quote":202,"user":203},"We needed to prove that our content marketing was actually driving revenue. TotalKPI let us overlay organic traffic with new subscriptions and show the board a clear 3-week lag correlation. That saved our content budget.",{"name":204,"description":205,"avatar":206},"Marcus Rodriguez","Head of Growth, Series A Startup",{"src":207},"https://i.pravatar.cc/120?img=7",{"quote":209,"user":210},"The normalization is what sold me. Comparing $50K MRR with 150K pageviews on the same chart used to mean a spreadsheet. Now it's one click and the patterns are obvious.",{"name":211,"description":212,"avatar":213},"David Kumar","Solo Founder, Analytics SaaS",{"src":214},"https://i.pravatar.cc/120?img=3",{"quote":216,"user":217},"I import CSVs from three different ad platforms and overlay them with Stripe revenue. Found out that one channel was driving 70% of my paying customers even though it only had 30% of clicks.",{"name":218,"description":219,"avatar":220},"Emily Zhang","E-commerce Founder",{"src":221},"https://i.pravatar.cc/120?img=5",{"quote":223,"user":224},"Setup took five minutes. Connected our Stripe API, imported search console data, and immediately saw that our SEO traffic drops correlated perfectly with revenue dips two weeks later.",{"name":225,"description":226,"avatar":227},"James Wilson","Technical Co-founder, B2B SaaS",{"src":228},"https://i.pravatar.cc/120?img=8",{"quote":230,"user":231},"We went from six dashboards to one. Each team has their own page, but leadership gets a combined view that shows how marketing, product, and support metrics all interact.",{"name":232,"description":233,"avatar":234},"Lisa Patel","Head of Operations, 30-person startup",{"src":235},"https://i.pravatar.cc/120?img=9",{"quote":237,"user":238},"We discovered that our deploy schedule was directly correlated with customer churn spikes. That pattern was invisible when the data lived in separate tools. TotalKPI made it obvious in seconds.",{"name":239,"description":240,"avatar":241},"Michael Torres","VP of Engineering",{"src":242},"https://i.pravatar.cc/120?img=11",{"quote":244,"user":245},"The webhook API means I can push data from literally anything. I've got custom Python scripts sending metrics from internal tools, and they show up on the same chart as our Stripe data. Incredibly flexible.",{"name":246,"description":247,"avatar":248},"Rachel Kim","Technical Co-founder",{"src":249},"https://i.pravatar.cc/120?img=10",{"quote":251,"user":252},"Before TotalKPI, correlating metrics across systems was a weekly spreadsheet exercise. Now it's automatic, always up to date, and I actually trust the data because I can see the full picture.",{"name":253,"description":254,"avatar":255},"Thomas Weber","Solo Founder, $40K MRR",{"src":256},"https://i.pravatar.cc/120?img=12",{"quote":258,"user":259},"Dashboard tools are either too simple and can't combine data from different sources, or too complex and cost $200/month. TotalKPI is the sweet spot.",{"name":260,"description":261,"avatar":262},"Sophia Martinez","Growth Lead, Seed-stage startup",{"src":263},"https://i.pravatar.cc/120?img=14","0KCrmtGK-fQr28K_UY8U8CahoWNXcGqoGggqzAaAFco"]