One-time setup needed. The analytics warehouse isn't installed in Supabase yet. Open Supabase → SQL Editor and run supabase/migrations/01_core_commerce.sql, then 02_rpc_functions.sql, then 04_analytics_warehouse.sql — then reload this page.
Channels:
Total Revenue
Web + farm
Web Orders
Ad Spend
All channels
Net Position
Rev − costs − ads
Repeat Rate
All-time
Avg LTV
Per customer
Revenue vs Ad Spend
Daily, ৳ — both lines share one axis
Daily Harvest
Fresh production, kg
Best Sellers
Revenue by product, selected range
Orders by District
DistrictOrdersRevenue
Loading…
Spend by Channel
Last 90 days, ৳
Followers by Channel
Latest snapshot
Channel Performance — by month
MonthChannel SpendImpr.Reach ClicksCTR%CPC LeadsConv.CACROAS Followers
📡
No channel data yet — add some in the Data Entry tab.
Real Order Attribution — by channel

From your own confirmed orders (excludes cancelled/returned) — not the ad platforms' self-reported conversions, which can't see COD refusals after the fact.

MonthSourceMediumCampaign OrdersRevenueAOVCancelled/Returned
🔗
No attributed orders yet — this fills in as customers check out through UTM-tagged links.
Section Engagement — which content actually gets read

Last 30 days. Ranked within each page against that page's own best-seen section — a low bar means visitors aren't scrolling to (or aren't interested in) that part of the page.

PageSectionViewsvs. top section
📊
No section data yet — register the "Section Name" custom dimension in GA4 Admin, then check back after the next sync.
Scroll Depth — how far people get before leaving

Last 30 days, per page. Sessions reaching each scroll milestone — a sharp drop between two milestones marks where the page loses people.

Page25%50%75%90%
📉
No scroll data yet — register the "Scroll Percent" custom dimension in GA4 Admin, then check back after the next sync.
Revenue vs Total Costs — monthly
Costs = farm expenses + one-off + ad spend, ৳
Monthly P&L Detail
MonthWeb RevFarm Rev Farm ExpOne-offAd Spend Net Profit
Loading…
Online vs Offline P&L

Shared production costs (spawn, substrate, labor…) are allocated between channels by revenue share — see the note on the chart.

Online Revenue
Offline Revenue
Online Net Profit
Offline Net Profit
Revenue by Channel — monthly
Online (web checkout) vs offline (direct/B2B), ৳
Channel P&L Detail
MonthOnline RevOnline Direct Online SharedOnline Net Offline RevOffline Direct Offline SharedOffline Net
Loading…
Harvest Source
Healthy bags vs recovered from mold/problem bags, kg/month
Marketing Samples
Free product given away — value shown, not expensed
Total Given (kg)
Retail Value
Supplier Health
SupplierPurchasesTotal Kg Avg ৳/KgWaste %Net Cost
Loading…
AI Analyst — configuration

Groq (recommended): free, hosted, works immediately — no software to install. Get a free key at console.groq.com/keys, paste it above, then click Save Config. Any other OpenAI-compatible endpoint works too.
Ollama (private alternative): 100% on-device, nothing leaves this computer, but requires installing software first. Install from ollama.com, then run ollama pull llama3.2. For the browser to reach it, start it with CORS open: OLLAMA_ORIGINS="*" ollama serve (Mac: run launchctl setenv OLLAMA_ORIGINS "*" once, then restart Ollama).

Thinking…
Add / Update a Day's Numbers
Same date + channel = the row is updated, not duplicated.
CSV Import (bulk / backfill)

Header row required:
date,channel,spend,impressions,reach,clicks,engagements,followers,video_views,leads,conversions
Channel must be one of: facebook, instagram, tiktok, whatsapp, linkedin, google_ads, website. Empty cells are fine. Rows for existing date+channel pairs overwrite.

Recent Entries
DateChannelSpendImpr.ClicksFollowersLeadsSource
No entries yet.