Reports that build themselves

Name the models you already have. The Commerce, Users and Content reports appear with real numbers in them, covering everything in your database rather than starting at zero today.

application free, with unlimited reports. No card.

A sample report, drawn by the same components the product uses. The numbers are made up; the charts are not.

Three steps, and you write none of the reporting

Install it into the application

One package and a migration, in Stacks or in Laravel. No service to deploy beside it, no connection into production to hand out, and nothing to keep upgrading separately from the app it reports on.

Name the models you already have

An order, a customer, a subscription. Say which fields are measures and which are dates, and the reports have real numbers in them immediately, at the grain you described. A question the description cannot answer correctly is refused rather than guessed at.

Then make them yours

Drag blocks onto a grid, pick a measure and a dimension, and watch each one redraw. Publish when it is right, so a half finished edit is never what a teammate opens.

In a Stacks app


          

In a Laravel app

composer require reportshq/laravel
php artisan vendor:publish --tag=reportshq-config

// config/reportshq.php
'models' => [
    'order' => [
        'class' => App\Models\Order::class,
        'measures' => [
            'revenue' => ['aggregate' => 'sum', 'column' => 'total_amount'],
        ],
        'time' => ['placed' => 'created_at'],
        'dimensions' => ['status' => 'status'],
    ],
],

What you get

A builder that behaves

Twelve columns, drag to move, corner to resize, keyboard for everything. Blocks push each other out of the way while you hold them, and the server settles the layout so two blocks can never share a cell.

Every block explains itself

One sentence, derived from the query the block actually runs. Two charts called Revenue can count different things, and a reader deserves to know which one they are looking at.

Share without an account

A link shows one published report and nothing around it. Revoke it and it stops working on the next request. Embed it in your own page if you would rather.

Delivered on a schedule

The headline numbers by email, daily, weekly or monthly, in your own timezone, with a spreadsheet attached if you want one. The hour stays the hour after the clocks change.

Yours to host

A Stacks application with public source. Run it yourself and every tier limit falls away, because there is nothing left to enforce them against.

Honest about its numbers

Comparisons say when there was no previous period rather than inventing a percentage. Bounded dimensions say what went into Other. Sampling keeps whole people, so funnels still mean something.

Written down, not implied

How a model is described, what the compiler will and will not answer, and why it refuses rather than guessing. Every bound the query API enforces is stated.

All documentation

Describe one model and see

Install the package, name a model you already have, and drop a block on the grid. It reads rows that are already in your database, so the first chart covers all of them.

Create an account