ReportsHQ

Reports inside your application

Describe the models and columns reporting may read, then define a report against your own database. Check release status before installing.

Two in-process packages

The current Stacks and Laravel source query the host application's database. Their reporting rewrites are not yet in the published package versions.

Describe once, query safely

Name your models, measures and dimensions in one config file. That description is an allowlist, so a block can only ever reach what you named.

It refuses rather than guesses

Ask for a measure at a grain it does not have and the block says why, instead of returning a number that is quietly wrong.

Honest about refusals

A block reports why it could not run instead of presenting a plausible wrong number. The current TypeScript compiler does not calculate prior-period comparison.

Laravel sharing

The current Laravel source has revocable links for one published report. The Stacks package does not yet describe a share route.

It never sees your data

Reporting queries run in process on the application's own connection, not through ORM scopes. The Laravel event forwarder is separate and optional.

Start here

You want toRead
Check release status and preview the current sourceQuickstart
Understand measures, dimensions and refusalsReporting concepts
Integrate the Stacks source after releaseStacks package
Integrate the Laravel source after releaseLaravel package
Review every integration settingConfiguration
Read the JSON the charts consumeQuery API
Build a report of your ownReport builder
Send a report to somebody outsideSharing
Get the numbers as a file or an emailSchedules and exports
Know what a licence coversLimits
Run it on your own machinesSelf-hosting
Diagnose a report or deploymentTroubleshooting

Released under the MIT License.