Skip to main content

Reporting 301: Build Your First Custom Report (Step-by-Step Guide)

Use what you learned in Reporting 101 and 201 to create a complete custom report.

Written by Jenna Notarfrancesco

This article walks you through your first full custom report. We’ll build a real-world example from start to finish so you can see exactly how to:

  • Choose the correct base resource

  • Add the right output columns

  • Use Filter by Field

  • Use a Filter Subquery with Exists

  • Add date ranges with AND logic

  • Preview and run the report

By the end, you’ll be able to confidently build your own reports for donor activity, revenue, and more.

Example Report Build

“List all donors who made a donation of more than $100 between two dates.”

This example uses:

  • Contacts as the base resource

  • Revenue as a related resource

  • Subquery

  • Amount and date filters

  • AND logic for date ranges

Before you start remember:

  • Contacts = who the donor is

  • Donation = what they gave

  • Subquery lets you check Donation or Revenue activity for each contact

  • Exists ensures the donor must have at least one matching gift

  • AND creates a date range

  • Output columns show the donor information in the report

You will use all of these here.

Step 1: Navigate to Data & Reports in the left navigation. Select the plus sign (+) to create a new reports folder, then select New Report.

Step 2: Select the base resource. Since we want one row per donor, select:

  • Base Resource = Contacts

This ensures each line in the report represents an individual donor.

Step 3: Select Add Output Columns and add the output columns you want to see in the report, such as:

  • First Name

  • Last Name

  • Primary Email

  • Primary Phone

  • Primary Address Line 1

  • Primary Address Line 2

  • Primary City

  • Primary State

  • Primary Country

  • Primary Zipcode

  • (Optional) Lifetime Value

Drag and drop the fields to create a custom order as needed.

Step 4: Under Add Filters, select Add to Group >> Filter Subquery to create the subquery to "look into" Donations.

Step 5: Set to Exists, then use the Relationship from Parent dropdown to select the Donations related resource.

Step 6: Now that you selected the related resource, you can begin adding fields to the filter group. Select Add to Group >> Filter by Field.

Step 7: Since we're looking for Donations over $100, search for Amount from the donation fields and select Apply.

Step 8: Modify the Amount Operator and Value to meet your conditions. In this case, select Greater Than from the dropdown with a value of $100.

Step 9: To add a date range, in your Filter Group, select Add to Group >> Filter by Field.

Step 10: Search for the Donation Created At field and Apply.

Step 11: Set the filter group to AND at the top because both conditions must be true. If you want a specific date range, this first Created At field will have the Operator set to After or On a specific or relative date. Use the dropdown and date search to find the correct date and time in UTC time.

Step 12: Repeat Step 10, to add the send Created At date field setting the Operator to Before or On a date and time.

Step 13: When your output columns and filters are set, you can Save and Preview to the top to preview the list.

Step 14: If the preview looks accurate, select Run Report.

Step 15: Once complete you can download the csv file. You can edit the report name and run the report in the future to pull refreshed lists.

What This Example Teaches You

This example trains you on patterns used in almost all donor reporting:

  • Base resource = Contacts

  • Donations subquery

  • Exists logic

  • Amount filters

  • Date ranges

  • AND logic

  • Output columns for donor info

Once you understand this, you're ready for more advanced patterns.

Using the same structure, you can create:

  • Donors who gave last year but not this year

  • Donors with gifts above a certain threshold

  • Donors who made multiple donations in a period

  • Donors with no giving activity in the last 12 months

  • Donors who gave to multiple types of revenue (donations + tickets)

All follow the same approach, just change the conditions in the Revenue subquery.

Was this article helpful? Rate it below!

Did this answer your question?