Standard reports Eight metrics and seven dimensions, deliberately. A builder that exposes every column is a query tool, and anyone who needs one of those already has SQL. Build one
Metrics
@for (metric of allMetrics; track metric) { }
Group by
@for (dimension of allDimensions; track dimension) { }

{{ preview() }}

Saved reports @for (report of reports; track report.id) { {{ report.name }} {{ report.owner }} {{ report.groupBy }} @if (report.schedule) { } @else { } {{ report.format }} {{ report.lastRun }} } @if (unscheduled() > 0) { {{ unscheduled() }} report(s) run only when someone remembers. That is the failure scheduling exists to fix. } @if (selectedReport(); as report) {

{{ report.name }}

Owned by {{ report.owner }}

Definition
Delivery
} @else { Select a report. }