Seeing it
A report builder is a query language with a nicer hat on.
Which is fine until somebody's report can reach a field it should not, or until a saved report outlives the person who wrote it and nobody can tell what it counts.
The fix is to make the vocabulary explicit and short, and to be honest that it is short.
Shape
A subject, a grouping, a measure and a window.
Seven subjects: deals, accounts, contacts, leads, activities, forecast submissions and sequence enrollments. Grouped by up to two things, measuring a count or a total, over a window.
Every field you can pick is one the builder knows about. Nothing is assembled from text you type, which is why a report cannot reach a field you were never offered — and why the list is deliberately short rather than apologetically incomplete.
- About
- Deals
- Grouped by
- Owner
- Measuring
- Total value · count
- Window
- This quarter, on your financial year
- Dates follow your financial year —
This quarter, last quarter and year-to-date resolve against the year you set rather than the calendar — so a report matches the board pack.
- Custom fields are reportable, typed correctly —
A number behaves as a number and a date as a date, rather than everything being text.
- It tells you when it hit the ceiling —
A row limit that was reached is reported as reached rather than silently truncating.
- Results are cached briefly, and the cache is visible —
A run served from cache is recorded as such, and does not inflate the run count. Two small decisions most teams would not bother making.
- Twelve reports ship —
So the first week is not a blank page.
Dashboards and delivery
Dashboards are yours to assemble, and a schedule cannot double-send.
A dashboard is a grid of tiles, each bound to a saved report. Its layout is constrained where it is stored, so a malformed arrangement cannot be written by any route.
A tile pointing at a report you cannot see fails cleanly rather than leaking it — the check is the same one the report itself performs.
Scheduled delivery is a pattern you choose, evaluated by asking whether it would have fired since it last did. Which means schedules are data rather than configuration, pausing preserves the position so resuming does not backfill, and sending one now uses exactly the same path — so a test cannot cause a double send.
- Group values resolve to names, not identifiers —
A report grouped by owner or by stage reads as "Discovery — 12 deals" rather than as a row of identifiers. Obvious, and the reason most home-grown reporting gets abandoned.
- Exports come in three shapes —
Straight away as a spreadsheet file, or as a background job for a workbook or a document when the result is large enough to be worth waiting for.
- A deleted folder does not take its reports with it —
They return to the top level. Deleting a container should never be a way to lose work.
›Can I report an average, a ratio or a win rate?
No. Counts and totals only. Win rate, average deal size and conversion percentages are not expressible — that is the sharpest edge of this builder and it is worth knowing before planning a reporting layer on it.
›Can I chart something by month?
Not as a trend. Grouping by a date groups by that exact date rather than bucketing into months or weeks, so "won and lost by month" is not available.
›Can I report on quotes, orders, contracts, tasks or quotas?
No. Those are read on their own screens. The seven subjects above are the whole of it.
›Can I click a number to see the records behind it?
Not today. Every report is an aggregate; there is no drill-through to the underlying rows, and no record-listing report.
›Can a report be shared?
With everybody, or with named people. Only its owner can change or delete it.