DEV Community

Demo
Demo

Posted on • Originally published at orgdoc.dev

Why your Salesforce reports might be lying to you

Let's cut through the noise: your Salesforce reports aren't just giving you data—they're actively misleading you. I've seen this in healthcare, financial services, and manufacturing orgs where executives made billion-dollar decisions based on reports that were fundamentally broken. Here's why, with real examples from the trenches.

The Hidden Filter: Time Zones and Date Fields

Every report using "Today" or "Last 7 Days" assumes your user's timezone. In a global manufacturing client, sales ops thought pipeline was down because their report showed 10% fewer deals closed. The truth? The report ran in UTC, while the sales team in Singapore was still in their workday. The report only captured deals closed before 12:00 UTC, missing the majority of their shift. Fix: Always specify timezones in SOQL or use "Last 24 Hours" with a timezone offset. Example:


SELECT Id, Name FROM Opportunity WHERE CloseDate = LAST_N_DAYS:7 AND Owner.Timezone = 'Asia/Singapore'

Enter fullscreen mode Exit fullscreen mode

The Unseen Grouping: Roll-Up Summary Fields in Reports

Roll-up summaries in reports can aggregate data incorrectly when used with grouped columns. A healthcare client ran a report showing "Average Patient Wait Time by Clinic" but got inconsistent results. Why? The report grouped by Clinic but used a roll-up summary from a child object (Appointments) that included unapproved entries. The "average" was skewed by 15% of pending appointments. Fix: Never use roll-ups in grouped reports. Instead, use a summary report with a filter for "Status = Approved" and calculate averages in a separate report or via a dashboard metric. Always validate with raw data export.

The Silent Partner: Sharing Rules and Record Ownership

Sharing rules can make reports show incomplete data. In a financial services org, the compliance team's report showed 20% of accounts as "High Risk" but missed 300+ accounts because a sharing rule excluded accounts owned by a specific sales manager. The report's filter included "Owner = Manager X," but the sharing rule allowed Manager X to see only their own accounts. The report didn't account for record ownership inheritance. Fix: Audit sharing rules before running critical reports. Use this SOQL to test coverage:


SELECT Id, OwnerId FROM Account WHERE OwnerId NOT IN (SELECT Id FROM User WHERE Profile.Name = 'Sales Manager')

Enter fullscreen mode Exit fullscreen mode

If this returns data, your report might be missing records.

These aren't theoretical issues—they cost time, money, and trust. I've seen one client lose $2M in a sales incentive payout because a report's date filter was misconfigured. The fix? Run every report against a small, known data set (e.g., "Show me all opportunities closed in January 2023"). If the numbers don't match your spreadsheet, the report is broken.

Don't guess. Audit your reports with the same rigor you apply to code. Start with these three checks: timezone alignment, roll-up validation, and ownership/permissions testing. And if you're running enterprise reports across multiple orgs, you're probably missing these blind spots.

Stop letting Salesforce lie to you. Run a free Health Scan to uncover hidden report flaws, sharing rule gaps, and configuration risks across your entire org. It takes 5 minutes, and it'll save you weeks of bad data decisions.

📚 Recommended Resource: Salesforce for Dummies — great for anyone learning Salesforce.

📚 Recommended Resource: NIST Cybersecurity Framework Guide — great for anyone security frameworks.


Need a second opinion on your Salesforce org? Request a diagnostic.

Top comments (0)