Your Schedule, Your Inbox

Reports arrive on the schedule you set

Pick the report type, email, cadence, and time. It lands in your inbox daily, weekly, or monthly — in your store's timezone. The CSV file matches exactly what you'd download manually.

Growth+
P&L
Weekly · Monday
Active
09:00 AM SGT 1 recipient
Orders
Daily
Active
07:00 AM SGT 2 recipients
Tax
Monthly · 1st
Active
09:00 AM SGT 1 recipient
From
Your Store – NetNet Reports
Your weekly P&L — week of Apr 21–27
Tue, Apr 28, 2026 at 9:00 AM

This week's net profit was $3,284. Revenue up 8% from last week. Shipping fees and payment processing were your largest cost drivers.

P&L_2026-04-27.csv
485 KB

Generated against live data, every time

Same pipelines that power manual exports: store orders, ad platforms, carrier APIs, everything live when the report ships. No overnight batch, no stale data.

Every report type, daily to monthly

P&L

Revenue, COGS, shipping, fees, discounts, net profit, all margins

Orders

Order ID, date, revenue, net profit, POAS, all cost breakdown

Products

SKU, units sold, gross profit, COGS %, margin tier color

Tax

Tax collected, refunded, net tax liability by jurisdiction

Customers

New vs returning, repeat rate, refund rate, LTV by cohort

Fill out the form once

Report type, email address, cadence (daily/weekly/monthly), day of week or month, and time in your store's timezone. Pause without deleting. Daylight saving handled automatically — 9:00 AM stays 9:00 AM all year.

After each send, next occurrence is recalculated. Month-length clamps work too — set it for the 31st and February gets the 28th.

Fields
Report type
P&L, Orders, Products, Tax, Customers
Email
Any address, verified server-side
Cadence
Daily · Weekly · Monthly
Time
24-hour picker, your timezone
Day / Month
Weekday or day 1–31

Email CSV = manual download

Same CSV builder powers both paths: HTTP export and scheduled email. One pure function per report type, shared code, zero divergence. Byte-identical guaranteed.

How it works
Manual download
GET /api/export/pnl → build_pnl_csv()
Scheduled send
Celery task → build_pnl_csv()
Result
Identical columns, rows, totals

Sent automatically, on the second

Every 60 seconds a background job checks for schedules due. When the time arrives, it pulls live data, builds the CSV, and ships via email. If a send fails, error logs in isolation — other schedules keep running. Check Settings › Report Schedules for next-send times.

Always your local time

Time picker shows your store's IANA timezone. You pick 9:00 AM Asia/Singapore; report ships 9:00 AM Asia/Singapore, year-round. Daylight saving handled automatically. Form and Settings display times in your timezone, not UTC.

Store Timezone
Asia/Singapore (UTC+8:00)
You pick
09:00 AM
Ships at
09:00 AM SGT (every time)

View and control everything in Settings

P&L
Weekly · Monday
Active
Next send
Mon, 24 Jun 9:00 AM
Orders
Daily
Active
Next send
Today 8:00 AM
Customers
Monthly · 1st
Paused
Next send
Jul 1 10:00 AM

Set up a schedule from the Reports page; it starts sending on the cadence you choose at the time you pick, in your timezone.

Scale profitably.

Know what every order made you.

Install Free on Shopify