Exodus Salesforce Docs
Reports and Dashboards

Report Writing Guide

How to build useful Salesforce reports with the right object, fields, filters, groupings, and totals

Good reports answer one business question clearly. Bad reports usually mix several questions, pick fields that look similar but mean different things, or summarize detail records at the wrong level.

Use this guide before creating or changing a Salesforce report.

Start With The Question

Write the question first, then pick the object and fields.

QuestionUsually start withWhy
How much did we sell?Sales_Order__cOrder-level submitted/booked sales, customer, rep, payment, fulfillment, and margin context.
What products sold?Sales_Order_Line__c or Cost Intelligence Sales Order LinesProduct/SKU-level quantity, revenue, cost, margin, and commission.
Who still owes money?Sales_Order__c, Invoice__c, or payment reportsAR and payment status live on orders/invoices/payment objects.
Which orders are not fulfilled?Sales_Order__c plus 3PL reportsFulfillment status, sync status, tracking coverage, and provider evidence live on orders and fulfillment objects.
Which payment attempts failed?Payment_Transaction__cAttempt/result/gateway data is transaction-level.
Which reps are performing?Sales Performance reportsUses order totals, collected totals, rep, order date, and payment state.
Which leads need follow-up?Lead or Task reportsLead activity quality and follow-up discipline are Task-driven.
Which addresses are most valuable?Address_Tracker__cAddress-level totals and latest dates are DLRS rollups from orders and quotes.

Pick The Right Grain

The most common reporting mistake is using an order header when the question is about line items, or using line items when the question is about orders.

GrainUse it forAvoid it when
Order headerOne row per Sales Order: revenue, customer, rep, payment status, fulfillment status, order-level margin.You need SKU, item group, quantity by item, line margin, or component cost.
Order lineOne row per item/credit/shipping line: SKU, quantity, line revenue, line cost, line commission.You need a count of orders. Line reports can count the same order multiple times.
Payment transactionOne row per processor/payment action: charge, refund, void, failure, settlement, gateway.You need submitted sales or product performance.
TaskOne row per sales activity: call, follow-up, next step, buyer signal.You need customer revenue or AR totals.
Address TrackerOne row per reusable address: bill-to/ship-to counts, order values, quote values, latest delivery.You need individual order detail.

Field Types Users Should Recognize

Field typeWhat it meansReport guidance
User-entered fieldA user or import set it directly.Good for filters when the process reliably maintains it.
Lookup fieldPoints to another record, such as Account, Contact, Quote, Warehouse, or Item.Use for grouping, ownership, drill-down, and context.
Formula fieldCalculated instantly from other fields on the same record.Good for readable labels and ratios. Do not manually edit.
Summary fieldSalesforce master-detail rollup summary.Good for parent totals when the relationship is master-detail.
DLRS fieldDeclarative Lookup Rollup Summary from child records over a lookup relationship.Good for parent totals, counts, and latest dates. Understand the child object and criteria before filtering on it.
Service-maintained fieldApex or scheduled jobs update it.Good for operational reports, but check the owning process if it looks stale.
Snapshot fieldCopied at the time of order/payment/invoice creation.Good for historical reporting. Do not treat it as current Account or Address state.
External source fieldMigration/integration lineage.Use for reconciliation, not business filtering unless the report is about migration/source data.

How To Choose Filters

Use filters that match the workflow.

GoalGood filtersRisky filters
Current submitted salesOrder Date, Status, Primary Sales Rep, order amount fields.Created Date if orders were imported or backfilled.
Collected salesTotal Collected Amount greater than 0, Payment Status = Paid, Latest Payment Transaction At.Final Total alone. It is not proof of collection.
Open ARBalance Due Amount greater than 0, AR Status, Payment Due Date, Days Overdue.Payment Status alone when partial payments matter.
Fulfillment exceptionsSync To Fulfillment = true, Fulfillment Sync Status, 3PL Order Sync Tag, Has Tracking, Remaining Shipments.Status = Closed alone. Closed orders can still need tracking/3PL review.
Sales activity qualityLead Activity Quality Status, Task Type, Call Disposition, Follow Up Due Date.Subject contains text. Subjects are inconsistent.
Product marginLine-level cost/margin fields.Order-level margin if you need SKU-level detail.

Grouping And Summaries

Start with one primary grouping. Add a second grouping only when it changes the decision someone will make.

Report questionGood groupingGood summary
Sales by repPrimary Sales RepSum Final Total, sum Total Collected Amount, average Order Gross Margin %.
AR by customerAccount, then AR StatusSum Balance Due Amount, max Days Overdue.
Fulfillment healthFulfillment Sync Status, then WarehouseCount orders, sum Remaining Shipments, max Fulfillment Last Attempt.
Payment failuresGateway, Status, Transaction ActionCount transactions, sum Processed Amount.
Product profitabilityItem, Item Group, or product type on line reportsSum line revenue, sum line cost, average margin percent.
Lead follow-upOwner, Lead Activity Compliance Status, due dateCount leads/tasks.

Fields That Look Similar

FieldUse it forDo not confuse with
StatusBroad operational order state, such as Closed.Stage, which is legacy/source-stage context.
Payment StatusPayment summary derived from payment work.AR Status, which is receivables/open-balance logic.
Final TotalFinal customer-facing order total.Total Collected Amount, which is cash collected.
Total Order RevenueBooked line revenue before some order-level formulas.Final Total, which is final customer-facing order amount behavior.
Balance Due AmountAmount still owed.Gross Amount or Final Total.
Fulfillment StatusOperational fulfillment label.Fulfillment Sync Status or 3PL Runtime Sync Status.
Has TrackingAt least one tracking/shipment record exists.Fulfillment Status = Fulfilled. A provider can fulfill before all tracking evidence is refreshed.
Customer Email StatusLast customer-email attempt status.Individual sent checkboxes for invoice, payment link, receipt, or tracking email.
External RMA CountCount of external RMA evidence linked to the order.A native Salesforce RMA workflow. Salesforce is only a correlation surface for external RMAs.

Report Builder Checklist

  1. Name the business question.
  2. Choose the object/grain.
  3. Add only columns needed to answer the question or act on the record.
  4. Add filters that match the lifecycle state.
  5. Group by one or two decision-making dimensions.
  6. Use summaries for currency/number fields and record counts.
  7. Check a few records manually to confirm the fields mean what you think.
  8. Save the report in the right shared folder.
  9. Add a short description explaining when to use the report.
  10. Do not create a private copy of a shared operational report unless it is personal scratch work.

Common Report Patterns

PatternBaseColumnsFilters
Open AR follow-upSales OrdersSales Order Number, Account, Primary Sales Rep, Payment Status, AR Status, Payment Due Date, Days Overdue, Balance Due Amount, Total Collected Amount.Balance Due Amount > 0, not canceled/deleted, date range as needed.
Paid and fulfilled ordersSales OrdersSales Order Number, Account, Order Date, Final Total, Total Collected Amount, Fulfillment Status, Tracking Count, All Items Delivered At.Payment Status = Paid, Fulfillment Status = Fulfilled.
Missing trackingSales OrdersSales Order Number, Account, Warehouse, Fulfillment Sync Status, 3PL Order Sync Tag, Has Tracking, Tracking Count, First Tracking Received At.Sync To Fulfillment = true, Has Tracking = false.
Margin reviewSales Orders or Sales Order LinesRevenue, cost, gross margin, net margin after commission, negative margin fields, profitability tier.Use line-level report when the question is product/SKU-level.
Rep performanceSales OrdersPrimary Sales Rep, Order Date, Final Total, Total Collected Amount, Total Commission Amount, Payment Status.Date range by Order Date; exclude test/canceled records.
Lead activity qualityTasks/LeadsOwner, Task Type, Call Disposition, Lead Activity Quality Status, Next Step, Follow-up Due Date.Open leads or current activity date range.

When To Ask For Help

Ask an admin or report owner before building a new report when:

SituationWhy
You need a new field.The field needs owner, entry surface, permissions, and dashboard purpose.
You want to change status or payment filters.These fields drive operational dashboards.
The report uses DLRS or rollup fields you do not understand.Parent rollups can hide child-record detail and criteria.
The report is for finance, commissions, or fulfillment SLA.Wrong grain or stale fields can cause real operational mistakes.
You need production/export data.Some fields contain customer, payment, or operational evidence that should not be shared casually.

Last updated on

On this page