Your revenue, understood.

Find failed payments, understand churn, and build your own reports.
Write SQL or ask AI. For Paddle or Stripe.

Try it with sample data. No sign-up required.
Revenue by monthIllustrative data
PostgreSQL
1select date_trunc('month', created_at)::date as month,
2 sum(case when subscription_id is not null then amount_minor else 0 end) / 100.0 as subscriptions_usd,
3 sum(case when subscription_id is null then amount_minor else 0 end) / 100.0 as one_time_usd,
4 sum(amount_minor) / 100.0 as total_usd
5from transactions
6where provider = 'paddle' and status = 'succeeded' and currency = 'usd'
7group by 1
8order by month;
Run your own SQL

Revenue by month

Paddle revenue from subscriptions and one-time payments.

$126,900+7.2%vs. previous month
SubscriptionsOne-time payments
Paddle · USD · April–September 20262 revenue types

Reports that fit your business

Choose the metrics, filters and detail you need. Write SQL, chart the results, and export your report as a CSV.

Start with a question

Ask in plain English and let AI draft the SQL. Review the query, make it yours, and see the data behind the answer.

Find what needs attention

Spot failed payments, unpaid invoices and cancellations. Go from a headline number to the records you can act on.

The questions that matter.

See who hasn’t paid, where revenue comes from,
and which customers are leaving. Start with a ready-made query.

Browse all 12 queries

The freedom of SQL.
For Paddle, too.

A Stripe Sigma alternative for your payments and billing data. Connect Paddle or Stripe to explore customers, subscriptions and transactions on your own terms. If you use both, you can query them together.

Connect your account

A clearer view,
for every team.

Know where the business stands.

Check recurring revenue and see which customers drive collections.

Sample data

How is our MRR trending?

select day as snapshot_date,
       mrr_minor / 100.0 as mrr_usd,
       active_subscriptions
from mrr_daily
where provider = 'paddle' and currency = 'usd'
  and (day = (date_trunc('month', day) + interval '1 month - 1 day')::date
       or day = current_date)
order by day desc
limit 6

Six latest month-end or current snapshots. Historical MRR is estimated.

Not run yet

What will your data tell you?

Start with a question. Leave with an answer you can use.

Explore demo