User guide · Chapter 5

PDF reports

Generate board-ready PDF reports: pick a window and repositories, preview in the browser, and tune SLO targets and cost rates.

Reports turn a chosen window of pipeline data into a polished PDF that combines business KPIs and engineering metrics — something you can attach to a sprint review or hand to a manager. You will find them in the sidebar under INSIGHTS, on the Reports page. Generation runs in the background, and the finished PDF is re-rendered on demand from a frozen data snapshot — TrimCI stores no files.

Reports
Generate new report
Last 30 days Custom range
acme/api Synced
acme/web Syncing…
Generate report
Pick a period preset, tick at least one repository, and press Generate report.
Recent reports
#12 · Jun 1 → Jun 30 Generating…
#11 · May 1 → May 31 Ready
The new report appears at the top of Recent reports and refreshes its status every few seconds — Queued, then Generating, then Ready.
Recent reports
#12 · Jun 1 → Jun 30 Ready
Once the report is Ready, the eye icon previews the PDF in a new browser tab and the arrow icon downloads it.
trimci-report-acme-12.pdf
Estimated loss $1,940
Failure rate 12.4%
Where the failure cost concentrates
The PDF opens with an executive summary and a table of contents, then works through the detailed sections.

Simplified illustration — the real screens hold more detail, but the labels and steps match the app.

Step by step

  1. Open the Reports page

    In the sidebar, under INSIGHTS, click "Reports". The page shows the "Generate new report" panel on top and a "Recent reports" table below. On plans with a daily limit, a small meter in the header counts how many reports you have left today.

  2. Choose the analysis window

    Pick a period preset — "Last 7 days", "Last 30 days", "Current month (MTD)", "Previous month" — or "Custom range" with a date picker. A window can span at most 31 days (~1 month). The presets offered follow your plan's history window (7 days on Free, 30 on Team, 60 on Business and during the trial): presets that reach further back are simply not shown, and a custom start date cannot go past the window either.

  3. Pick repositories

    Select at least one repository. The list shows only repositories your organization actively tracks, grouped by provider, with a search box plus "Select all" and "Clear" shortcuts. Each entry carries a badge: "Synced" means full history is available; "Syncing…" means the first sync is still running and a report generated now may be incomplete for that repository.

  4. Narrow by branch or trigger (optional)

    Two optional filters: a comma-separated branch list (e.g. main, develop) and trigger-event checkboxes — Push, Pull request (which also covers GitLab merge-request pipelines), Scheduled, Manual dispatch, and API / webhook. Leaving either empty includes everything.

  5. Generate and watch the status

    Press "Generate report". The report is queued for background generation and appears at the top of Recent reports, where its row updates itself every few seconds: Queued, Generating, then Ready — or Failed, with a "Retry generation" button. A "Partial data" label appears when some runs in the window were not fully synced at generation time.

  6. Preview, download, retry, delete

    A Ready row offers two icons: the eye opens the PDF inline in a new browser tab, and the arrow downloads it under a concrete filename with the organization, report number, and date window. Retrying a failed report and deleting a report are limited to the person who generated it or an organization owner/admin; deleting removes the report from history after a confirmation dialog.

Daily quota: 1 report per rolling 24 hours on Free, 10 on Team, unlimited on Business. Failed generations do not consume the quota, but deleting a finished report does not refund its slot. A short cooldown of a few seconds also guards against accidental double-clicks on Generate and Retry.

While pipeline data is still syncing, the generation panel shows a warning banner. You can still generate — the PDF's cover carries a "Partial data" notice explaining what was incomplete, and repositories still in their first sync are listed by name — but for the most accurate numbers, re-run the report after the next sync finishes.

What's inside the PDF

The report opens with an executive summary and a table of contents, then works through the engineering detail: a cost Pareto showing which repositories concentrate the estimated loss, duration percentiles and queue time, error fingerprints grouping recurring failures, the retry tax, mean time to recovery, branch health, trigger breakdowns, redacted log excerpts of the top failures, and AI recommendations when available. A closing methodology appendix defines every metric — failure-rate denominators, duration, cost — so the numbers hold up when someone questions them.

Report settings

Owners and admins can tune the numbers behind reports in the "Organization details" card on the Settings page. "Compute rate (USD per runner-minute)" adds a hard compute-spend section — leave it blank to hide that section. Three optional SLO targets — "Failure-rate target (%)", "Average-duration target (seconds)", and "Monthly failure-cost budget (USD)" — make reports show target versus actual, including days in violation; each one left blank is simply skipped. Open Settings

Reports are re-rendered from their frozen snapshot on every download, so the numbers in an old report never drift — generate one per month and you get a stable, comparable monthly record of your CI health. On Business and during the trial, whose history windows reach back far enough, the "Previous month" preset exists for exactly this.