In this guide 6 sections
Fix the reports each role opens every week, such as pipeline, reorder stock and receivables ageing, and make them load fast. Use a report builder for one off questions, limit who may build, hide cost columns behind permissions and retire any report nobody has opened for a full season.
Which reports should stay fixed?
Start with the Monday list. A sales head opens the pipeline by stage, a store manager opens stock below reorder level, and an accounts lead opens receivables ageing by customer. Each runs weekly, so each should open in seconds with its filters already set and its date range defaulted to last week.
Fixed reports earn trust. Columns never shift, and two people who quote the same report, whether in a Monday meeting or a bank review, are quoting the same number.
Ask each role to name three reports they would miss most, then build those first and polish them until nobody downloads a CSV only to hide a column. Excel rework is the warning sign.
- Pipeline by stage and owner
- Stock below reorder level by SKU
- Receivables ageing by customer
- Open jobs past promised date
- Attendance and overtime by shift
What suits a report builder instead?
A builder suits odd questions. Which customers bought a hydraulic pump in spring and nothing since, or which suppliers delivered late twice against the same purchase order, are typical examples. Such questions arrive once, filter on two or three fields such as supplier, item and delivery date, and never justify a developer’s afternoon.
Most users never touch a builder. They ask a colleague who does. That is fine. Pick the tool for that small group, not for the whole team, and give it a drag and drop field list with the customer to invoice joins preset.
When the same builder report runs every month, promote it by giving it a name, an owner and a schedule, then moving it onto the fixed list. Promoted reports load fast.
Who may build a report?
Give the builder to a few trained people, such as one analyst in sales, one in stores and one in accounts, who know the joins. Open access produces dozens of near duplicates with slightly different date filters, and each one prints a different total at the end of the month.
Every saved report carries an owner and a purpose line, and stays private by default until a reviewer has checked the joins between the customer, invoice and payment tables. Share later.
Builders also run heavy queries. A careless export across three years of invoice lines can slow the ledger screens for every accountant who is trying to close the books.
- Trained builders only
- Owner and purpose on each saved report
- Review before sharing
- Row limits on exports
Who should see cost columns?
Decide before the first report is saved. Purchase price, landed cost, margin and salary are columns a builder can drop into any list, so tie their visibility to roles and permissions, not to the report.
A salesperson sees selling price and stock but never landed cost, and a shift supervisor sees hours worked and overtime but never the hourly rate or the bonus slab.
Test it by logging in as each role and running the same report, then compare the screens line by line for any cost column that slipped through. Hidden must also mean hidden in the exported CSV, in the PDF print and in any scheduled email attachment sent overnight to the whole sales team.
How do you retire reports nobody uses?
Log every run. Once a quarter, list the reports with no opens in ninety days and send each owner a short note asking whether it is still needed. No reply within two weeks means archive.
Archive, do not delete, because a report needed at year end, such as stock valuation or the audit schedule, returns in a minute with its owner and filters intact. Deleting loses history.
Keep the fixed list short. Fewer reports get opened more. When a new request arrives, ask which existing report it replaces, and ask the requester which decision, such as a reorder or a credit hold, the numbers will change.
Report inventory worksheet
One worksheet, one report per row. Columns: report name, owner, role that opens it, how often it runs, fixed or builder, cost columns shown, last opened date and a keep or retire box. A lower block pairs each new request with the existing report it would replace, and a note for the requester states which decision the numbers will change.
Open a blank worksheet to printQuestions owners ask
Can a report builder replace a developer?
For simple lists, yes. Reports that join many tables, calculate margins by job or feed a dashboard are better built once by a developer and then kept fixed, with a named owner.
How many fixed reports should a role have?
Three to five covers the weekly work. More than that usually means overlap between reports, and users stop knowing whether the stock ageing or the stock valuation view is the one to open.
Why do two reports show different totals?
A different filter, date field or join is usually the cause, such as invoice date against dispatch date or a credit note counted once. Naming the source and the filter on each saved report, and sharing only reviewed ones, removes most of these arguments between sales and accounts at month end.
