Reports at large volume
Keep Interval reports fast when an org holds millions of Intervals.
An org that tracks several fields on busy objects writes Intervals quickly. These habits keep reports fast.
- Filter on a date range of Entered At. Every Interval report should limit Entered At, or the report's own date, to the weeks you need. The packaged averages already look back 30 or 90 days, and Time in Status by Case and Time per Owner by Case open on Cases created in the last 30 days.
- Ask Salesforce Support for custom indexes on
Entered_At__c,Tracked_Field__c, andParent_Object__cof Sojourn Intervals once the object passes a few million rows. Support adds custom indexes on request. - Use the daily summaries for trends. Average Hours per Status by Week and Owner Leaderboard, Last 30 Days read the Interval Summaries, one row per day, value, and owner, so they stay fast at any volume. The packaged dashboards' trend and leaderboard charts read only these. In Average Hours per Status by Week, a week runs from Sunday and is named by that date (2026-07-19), so the chart's labels stay short and in date order. See Report on summaries.
- Keep detail off on large groupings. Summary reports with Show Details off return totals without every row.
Often missed. Purging old Intervals keeps the summaries. Trends built on summaries survive a purge; reports on Intervals show only what is left. See Keep or purge Intervals.
What we measured#
A scratch org holding 6,000 Cases and 72,003 Intervals spread over 400 days, on the Plus plan, gave these times in sprint 8:
| Step | Result |
|---|---|
| The 19 Sojourn reports | All ran; the slowest took 4 seconds, the rest 1 second or less |
| Summaries | 72,003 Intervals counted in 81 seconds |
| Reconcile | 7 seconds |
| Purge, keeping 30 days | 57,715 Intervals saved to CSV files and deleted in 231 seconds, no errors |
Loading 2,000 Cases through Bulk API 2.0 with Status and owner tracked cost Sojourn about 400 ms of CPU per 200-record chunk; each chunk's whole save stayed under 600 ms. A scratch org holds far fewer Intervals than a production org, so the same steps run again at millions of Intervals in a sandbox before Sojourn is listed on AppExchange.