[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation":3,"/blog/combine-stripe-shopify-data":100,"/blog/combine-stripe-shopify-data-surround":352},[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,"authors":103,"badge":109,"body":111,"date":341,"description":342,"extension":343,"image":344,"meta":346,"navigation":347,"path":348,"seo":349,"stem":350,"__hash__":351},"posts/3.blog/21.combine-stripe-shopify-data.md","How to Combine Stripe and Shopify Data on One Dashboard",[104],{"name":105,"to":106,"avatar":107},"Oliver Melin","https://valoks.com",{"src":108},"https://valoks.com/assets/images/team/oliver.webp",{"label":110},"Integrations",{"type":112,"value":113,"toc":317},"minimark",[114,119,123,126,129,133,138,141,145,148,152,155,159,162,166,170,173,192,196,199,203,206,209,212,215,219,222,233,236,240,243,265,268,272,275,301,305],[115,116,118],"h2",{"id":117},"the-shopify-stripe-split","The Shopify-Stripe Split",[120,121,122],"p",{},"If you use Shopify with Stripe as your payment processor, your business data lives in two places. Shopify has your orders, products, inventory, and store traffic. Stripe has your actual payment data: successful charges, refunds, disputes, and net revenue.",[120,124,125],{},"Shopify's built-in analytics show you store-level metrics. Stripe's dashboard shows you payment-level metrics. But the relationship between the two - how store activity translates to actual collected revenue - requires switching between tabs and doing mental math.",[120,127,128],{},"This matters because Shopify's reported revenue and Stripe's collected revenue are often different. Failed payments, refunds processed at different times, currency conversion fees, and Stripe's processing fees all create a gap between what Shopify says you earned and what actually hit your bank account.",[115,130,132],{"id":131},"what-combining-this-data-reveals","What Combining This Data Reveals",[134,135,137],"h3",{"id":136},"order-volume-vs-net-revenue","Order Volume vs Net Revenue",[120,139,140],{},"Plot your Shopify daily order count against Stripe's net revenue. In a healthy store, these should correlate strongly. If they start to diverge - more orders but flat or declining net revenue - you have a problem: smaller average order values, more refunds, or more failed payments.",[134,142,144],{"id":143},"traffic-to-payment-conversion","Traffic-to-Payment Conversion",[120,146,147],{},"Overlay your Shopify store sessions with Stripe successful charges. This gives you the true conversion rate from visit to completed payment, not just Shopify's cart conversion rate. Failed payments at checkout create a gap between Shopify's \"orders\" and Stripe's \"successful payments\" that many merchants don't track.",[134,149,151],{"id":150},"refund-impact-over-time","Refund Impact Over Time",[120,153,154],{},"Track Stripe refund volume alongside Shopify order volume. A rising refund-to-order ratio might indicate product quality issues, misleading product descriptions, or shipping problems. Catching this trend early prevents it from eroding your margins.",[134,156,158],{"id":157},"average-order-value-trends","Average Order Value Trends",[120,160,161],{},"Compare Shopify's average order value with Stripe's average charge amount over time. Divergence might indicate discount abuse, coupon overuse, or pricing strategy issues.",[115,163,165],{"id":164},"setting-up-the-shopify-connection","Setting Up the Shopify Connection",[134,167,169],{"id":168},"via-api","Via API",[120,171,172],{},"Shopify's Admin API provides access to orders, products, and analytics. In TotalKPI:",[174,175,176,180,183,186,189],"ol",{},[177,178,179],"li",{},"Create an API data source",[177,181,182],{},"Set the endpoint to your Shopify store's API (e.g., order count or sales data)",[177,184,185],{},"Add your Shopify API access token in the headers",[177,187,188],{},"Configure a JSONPath expression to extract the metric you want",[177,190,191],{},"Set polling to daily or hourly depending on your store volume",[134,193,195],{"id":194},"via-csv","Via CSV",[120,197,198],{},"Export your Shopify analytics reports as CSV files. Shopify's Reports section lets you export sales by day, orders by day, and traffic data. Import these into TotalKPI as separate data sources.",[115,200,202],{"id":201},"setting-up-the-stripe-connection","Setting Up the Stripe Connection",[134,204,169],{"id":205},"via-api-1",[120,207,208],{},"Connect to Stripe's API for live revenue data. Create an API data source with your Stripe endpoint, API key in headers, and a JSONPath expression for net revenue, charge count, or refund volume.",[134,210,195],{"id":211},"via-csv-1",[120,213,214],{},"Export Stripe's balance transactions or payment data as a CSV. This gives you historical data for the initial overlay.",[115,216,218],{"id":217},"creating-the-combined-view","Creating the Combined View",[120,220,221],{},"With both sources configured:",[174,223,224,227,230],{},[177,225,226],{},"Create a combined view",[177,228,229],{},"Select your Shopify metric (e.g., daily orders) and Stripe metric (e.g., daily net revenue)",[177,231,232],{},"The overlay renders with automatic normalization",[120,234,235],{},"The correlation coefficient tells you how tightly your store activity tracks with actual revenue. For a healthy e-commerce business, this should be above 0.7. Lower values suggest leakage in your payment pipeline.",[115,237,239],{"id":238},"seasonal-planning-with-overlays","Seasonal Planning With Overlays",[120,241,242],{},"E-commerce is seasonal. By overlaying Shopify traffic with Stripe revenue across months, you can see:",[244,245,246,253,259],"ul",{},[177,247,248,252],{},[249,250,251],"strong",{},"Pre-purchase browsing patterns:"," Traffic spikes before revenue spikes (holiday window shopping)",[177,254,255,258],{},[249,256,257],{},"Promotion effectiveness:"," Do sale events increase revenue proportionally to the traffic spike, or do they just attract bargain hunters who browse and leave?",[177,260,261,264],{},[249,262,263],{},"Post-holiday dips:"," How long does the revenue dip last after peak season, and does traffic recover faster than revenue?",[120,266,267],{},"Add date annotations for sales events, product launches, and marketing campaigns. Over a few seasons, you'll build a visual playbook for when and how to invest in growth.",[115,269,271],{"id":270},"practical-actions","Practical Actions",[120,273,274],{},"Once you've overlaid your Shopify and Stripe data:",[244,276,277,283,289,295],{},[177,278,279,282],{},[249,280,281],{},"If correlation is strong (>0.7):"," Your store is converting efficiently. Focus on driving more traffic.",[177,284,285,288],{},[249,286,287],{},"If correlation is weakening:"," Investigate failed payments, rising refunds, or declining average order values.",[177,290,291,294],{},[249,292,293],{},"If there's a consistent lag:"," Understand your pre-purchase browsing window and time promotions accordingly.",[177,296,297,300],{},[249,298,299],{},"If refunds are rising:"," Cross-reference with specific products to identify quality or description issues.",[115,302,304],{"id":303},"get-started","Get Started",[120,306,307,316],{},[249,308,309],{},[310,311,315],"a",{"href":312,"rel":313},"https://totalkpi.com/signup",[314],"nofollow","Start a free trial"," and connect your Shopify and Stripe data. See the real relationship between your store activity and collected revenue in minutes.",{"title":318,"searchDepth":319,"depth":319,"links":320},"",2,[321,322,329,333,337,338,339,340],{"id":117,"depth":319,"text":118},{"id":131,"depth":319,"text":132,"children":323},[324,326,327,328],{"id":136,"depth":325,"text":137},3,{"id":143,"depth":325,"text":144},{"id":150,"depth":325,"text":151},{"id":157,"depth":325,"text":158},{"id":164,"depth":319,"text":165,"children":330},[331,332],{"id":168,"depth":325,"text":169},{"id":194,"depth":325,"text":195},{"id":201,"depth":319,"text":202,"children":334},[335,336],{"id":205,"depth":325,"text":169},{"id":211,"depth":325,"text":195},{"id":217,"depth":319,"text":218},{"id":238,"depth":319,"text":239},{"id":270,"depth":319,"text":271},{"id":303,"depth":319,"text":304},"2026-05-20T00:00:00.000Z","See the full picture of your e-commerce business by overlaying Shopify store metrics with Stripe payment data on a single chart. Spot trends between traffic, orders, and revenue.","md",{"src":345},"https://images.unsplash.com/photo-1556742393-d75f468bfcb0?w=640&h=360&fit=crop",{},true,"/blog/combine-stripe-shopify-data",{"title":102,"description":342},"3.blog/21.combine-stripe-shopify-data","AFX2J7EbV-j4fj3kPLRpq5J_FTQ4Z8cM8RQgRIkRQsk",[353,358],{"title":354,"path":355,"stem":356,"description":357,"children":-1},"How to Prove Your Marketing Actually Drives Revenue (With Data)","/blog/how-to-prove-marketing-drives-revenue","3.blog/20.how-to-prove-marketing-drives-revenue","Your CEO wants proof that marketing spend translates to revenue. Here's how to overlay your marketing metrics with revenue data and show a clear correlation.",{"title":359,"path":360,"stem":361,"description":362,"children":-1},"PostHog + Stripe: See How Product Usage Drives Revenue","/blog/posthog-stripe-product-usage-drives-revenue","3.blog/22.posthog-stripe-product-usage-drives-revenue","Overlay PostHog product analytics with Stripe revenue data to see which features drive upgrades, which usage patterns predict churn, and where your product-led growth engine is working."]