---
title: Report Builder
slug: report-builder
docTags: 
createdAt: 2026-04-15T14:35:39.915Z
---

The Report Builder allows you to create custom reports using Data Warehouse tables.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/-OHxpa64d3S0qfn5pQ3Rj_image.png)

Think of the Data Warehouse as a simplified, organized set of data designed specifically for reporting. Instead of working with hundreds of system tables, the Data Warehouse provides a smaller set of structured tables that contain the most relevant information.

Using the Report Builder, you can:

- Choose what data you want to report on&#x20;
- Filter results to show only what you need&#x20;
- Group and organize your data&#x20;
- Customize which columns appear in your report&#x20;

Before creating a report, it’s important to understand how the **Primary Tables** work, since this is what everything in your report is built from.

# Understanding Primary Tables

When you create a report, the **Primary Table** is your starting point. It determines what data you’re working with, how your report is structured, and how detailed your results will be.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/FjXHCoCsXiVQkFuPc2npp_image.png)

The Data Warehouse organizes tables into clear, purpose-built datasets, so you don’t need to work with raw or complex database tables.

Start by asking: *what am I trying to report on?*

If you want a **complete snapshot of each student**, use:

- **DW Student Overview** – combines academic, financial, attendance, and program data into a single view&#x20;

If you’re working with **students or admissions data**, use:

- **DW Students** – core student and prospect information&#x20;
- **DW Prospects** – admissions pipeline data like stages and sources&#x20;
- **DW Prospect Stage History** – tracks how prospects move through stages over time&#x20;

If your report is about **courses, instructors, or scheduling**, use:

- **DW Courses** – course details like schedule and status&#x20;
- **DW Course Instructors** – instructor assignments&#x20;
- **DW Instructors** – instructor information&#x20;
- **DW Sessions** – academic terms and date ranges&#x20;

If you’re analyzing **academic performance**, use:

- **DW Student Academic Summary** – GPA, credits, and academic standing&#x20;
- **DW Student Enrollments** – course-level data including grades and attendance&#x20;
- **DW Student Grades** – detailed grade records&#x20;

If you want to track **student progress over time**, use:

- **DW Student Programs** – program-level progress and completion&#x20;
- **DW Student Sessions** – performance by term or session&#x20;

If your focus is **attendance**, use:

- **DW Student Attendance Summary** – totals and high-level metrics&#x20;
- **DW Student Attendance** – detailed attendance records&#x20;

If you need **financial data**, use:

- **DW Student Financial Summary** – balances and aging&#x20;
- **DW Student Account Activity** – transaction-level detail&#x20;

# Creating a New Report

Go to **Reports → Report Builder** and click **New Report Builder Report** to open the setup window.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/4pIBWOP6ygg25L1ix7AzS_image.png)

- **Report Name (required):** The name of the report as it will appear in the list. Use something clear and easy to recognize.&#x20;
- **Description:** Optional note to explain what the report is used for.&#x20;
- **Data Source:** Where the report pulls data from. Select **Data Warehouse** for all new reports. The Production Tables (Legacy\*) option is being phased out.&#x20;
- **Primary Table:** The main dataset your report is built on. This determines what data is available and how it is structured. Choose based on what you want to report on.&#x20;
- **Read Only Access:** Roles that can view the report but cannot make changes.&#x20;
- **Read / Update Access:** Roles that can edit the report.&#x20;
- **Location Access:** Locations that are allowed to access the report.&#x20;

Click **Add** to create the report.

You will then be taken to the **Edit Report Builder Report** page, where you build and customize your report by adding fields, filters, grouping, and sorting.

:::hint{type="danger"}
Legacy tables may still appear as a Data Source option temporarily, but they are being phased out. Existing reports that use legacy tables will continue to work, but new reports should be built using Data Warehouse tables.
:::

# Details

The **Details** section contains the basic information for your report. This is the same information entered when the report was first created.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/Trm_CwCqrUl9psxuWLseg_image.png)

- **Report Name:** The name of the report as it appears in the Report Builder list. You can update this at any time.&#x20;
- **Description:** Optional note explaining what the report is used for. This is helpful for other users who may access the report.&#x20;
- **Primary Table:** The main dataset the report is built on. This **cannot be changed after the report is created**, so if you need a different table, a new report will need to be created.&#x20;
- **Read Only Access:** Roles that can view the report but cannot make changes.&#x20;
- **Read / Update Access:** Roles that can edit the report.&#x20;
- **Location Access:** Locations that are allowed to access the report.&#x20;

Click **Save Report Details** after making any changes.

# Parameters

Parameters allow you to add user input to a report. This lets users customize the results when running the report (for example, selecting a date range or filtering by a specific value).

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/Uj4uX6jsjPx6INk7gVJUy_image.png)

- **Parameter Name (required):** The name of the parameter used in the report.&#x20;
- **Parameter Label:** The label users will see when running the report. This should be clear and user-friendly.&#x20;
- **Parameter Type (required):** The type of input the user will provide. Options include:&#x20;
  - **Boolean** – true/false values&#x20;
  - **Date** – must be in YYYY-MM-DD format&#x20;
  - **Integer / Number** – numeric values&#x20;
  - **String** – text input&#x20;
  - **List** – predefined list of values&#x20;
  - **Time** – must be in HH\:mm\:ss format&#x20;
- **Default Value:** An optional value that will be pre-filled when the report is run.&#x20;

Click **Add** to create the parameter.

Once added, parameters can be used in the report’s conditions to dynamically filter results.

# Joins

Joins allow you to bring in additional data from another table into your report. Joins are typically used for more complex reports. Most standard reports can be built using a single Data Warehouse table.

Use a join when:

- the data you need is **not available in your primary table**&#x20;
- you need to combine information from **two different datasets**&#x20;

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/ewEsGIML0465725Hs7ZSh_image.png)

- **Join Type:** Controls how data from the two tables is combined&#x20;
  - **Inner:** Only shows records that exist in both tables&#x20;
  - **Left:** Shows all records from your main (primary) table, plus matching data from the second table&#x20;
  - **Right / Cross:** Less commonly used and typically not needed for standard reports&#x20;
- **Left Table:** The primary table your report is built on&#x20;
  - This is automatically set and cannot be changed&#x20;
- **Left Column:** The field from the primary table used to match data&#x20;
  - This is usually an ID or key field (for example, student\_id)&#x20;
- **Right Table:** The additional table you want to pull data from&#x20;
  - You can select from any available Data Warehouse table&#x20;
- **Right Column:** The field in the second table that matches the Left Column&#x20;
  - This must correspond to the same type of data (e.g., student ID to student ID)&#x20;
- **Join Right Table As:** A name for the joined table&#x20;
  - Used internally in the report&#x20;
  - Must be unique and contain no spaces&#x20;

# Conditions

Conditions allow you to filter your report results so only specific records are shown.

For example, you may want to:

- Show only **active students**&#x20;
- Show students from a specific program&#x20;
- Show records within a certain date range&#x20;

To add a condition, click **Add Condition Group**. A condition area will appear with an **AND / OR toggle** and an option to add conditions.

- **AND:** All conditions in the group must be true&#x20;
- **OR:** Any condition in the group can be true&#x20;

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/l8CEcgKrzHxDDKWfs-PRo_image.png)

Then, click **Add Condition** to add a filter.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/sHXiohsPdFRJLsckROhqG_image.png)

Each condition is made up of the following:

- **Table:** The table the field belongs to&#x20;
  - This is automatically set based on your report and cannot be changed&#x20;
- **Column:** The field you want to filter on&#x20;
  - Example: student\_status, current\_program\_name, balance&#x20;
- **Operator:** How the value is compared&#x20;
  - Examples:&#x20;
    - \= equals&#x20;
    - != not equal&#x20;
    - \> greater than&#x20;
    - \< less than&#x20;
    - LIKE contains text&#x20;
- **Value:** The value you are filtering by&#x20;
  - Enter the value you want to match&#x20;
- **Parameter (optional):**&#x20;
  - Allows users to enter a value when running the report&#x20;
  - Requires a parameter to be created in the **Parameters** section first&#x20;
  - If no parameter exists, selecting this will show an error&#x20;

You can add multiple conditions within a group to further refine your report results. Use the **AND / OR** toggle to control how those conditions are applied.

# Group By

Group By allows you to organize your report results into categories, making the data easier to read and summarize. For example, instead of seeing a long list of students, you can group them by program to see how many students are in each program.

To add a Group, click **Add Group By** to open the grouping options.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/etRU9rD0MPnYRB9QnZf7b_image.png)

- **Group By Table:** The table the field belongs to. This is typically your primary table and usually does not need to be changed&#x20;
- **Group By Column:** The field you want to group your data by
- **Group By Header (required):** The label that will appear in your report
- **Column Function (optional):&#x20;**&#x41;pplies a function to the selected column (advanced use). Examples include formatting text, working with dates, or rounding numbers. In most cases, this can be left as **None**

Grouping helps turn raw data into something easier to understand. Without it, your report will display as a simple list of records rather than organized results.

# Order

The Order section controls how your report results are sorted.

Click **Add Order** to open the ordering options.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/GdbeRLbascEkVeFShl8i4_image.png)

Each order is made up of the following:

- **Order Table:** The table the column belongs to&#x20;
  - This is automatically set based on your report and cannot be changed&#x20;
- **Order Column Name:** The field you want to sort by&#x20;
  - Example: student\_name, current\_program\_name, created\_date\_time&#x20;
- **Order Column Function (optional):** Applies a function to the column (advanced use)&#x20;
  - In most cases, this can be left as **None**&#x20;
- **Order Direction (required):** Determines how the results are sorted&#x20;
  - **Ascending:** A → Z, lowest → highest&#x20;
  - **Descending:** Z → A, highest → lowest&#x20;

**For example,&#x20;**&#x74;o sort students alphabetically:

- **Order Column Name:** student\_name&#x20;
- **Order Direction:** Ascending&#x20;

This will display students in alphabetical order.

# Columns

The Columns section controls which data appears in your report and in what order.

To add columns, simply check the boxes next to the fields you want. Selected columns will appear in the **Selected Columns** area below.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/LfSLqZAYIxuevahWTzPKT_image.png)

You can then:

- **Reorder columns:** Drag and drop within the Selected Columns list&#x20;
- **Edit a column:** Click the edit icon (pencil)&#x20;
- **Remove a column:** Uncheck it from the list&#x20;

When editing a column you have selected, the following options are available:

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/e_JApTDZjg2r1ZB2MGVsd_image.png)

- **Column Header:** The name that will appear at the top of the column in your report. You can rename this to be more user-friendly (e.g., “Student Name” instead of student\_name)&#x20;
- **Column Function (optional):** Applies a function to the column (advanced use). In most cases, this can be left as **None**&#x20;
- **Group Aggregate (optional):** Used when your report includes grouping. Lets you summarize data (e.g., count, sum, average). Only needed for grouped or more advanced reports&#x20;

# Preview

The Preview section lets you test your report and review the results before saving it. Click **Preview** to generate the report.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/-MTlGnqNDTy-G87D2-_9Y_image.png)

- **Generated Query:**&#x20;
  - Shows the SQL query being built behind the scenes&#x20;
  - This is mainly for advanced users or troubleshooting&#x20;
- **Preview Results:**&#x20;
  - Displays the first 10 rows of your report&#x20;
  - Lets you confirm your columns, filters, and data are correct&#x20;
- **Report Parameters (if applicable):**&#x20;
  - If your report uses parameters, you’ll be prompted to enter them before previewing&#x20;
  - If none are set, this section will remain empty&#x20;

Once you’re satisfied with the results, click **Create Report** to save it and make it available in the Reports section.

# Create Report

After previewing your results, click **Create Report** to save and finalize your report.

This will open a form where you can configure how the report is saved and accessed.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/zJ8ZQJKdjAFgfBBZ_HoTL_image.png)

- **Report Name (required):** The name of your report as it will appear in the Reports section&#x20;
- **Description:** Optional notes about what the report is for&#x20;
- **Page Orientation:** Choose how the report is formatted when exported (Portrait or Landscape)&#x20;
- **Output Options:** Select which formats the report can be exported as (PDF, CSV, XML, TXT)
- **Stretch With Overflow:** Automatically expands row height to fit content. Typically left enabled (disable only for CSV-only reports)&#x20;
- **Read Only Access / Read & Update Access:** Controls which users or roles can view or modify the report. Can be left as default if not needed&#x20;
- **Location Access:** Restricts which locations can access the report&#x20;

Once everything is set, click **Create Report** to save it.

Your report will now appear in the [ Home / Reports / Institution Custom ](docId\:lvAkEuYLyU4OJzOzIhd7U)section and can be run like any other report.

![](https://api.archbee.com/api/optimize/dAaYdF15xm67t_NLKoQQv/6LvsnjVNpjNxswCvuWaah_image.png)

# Legacy Tables

The Report Builder is designed to use Data Warehouse tables. Legacy tables may still appear as a Data Source option temporarily, but they are being phased out. Existing reports that use legacy tables will continue to work, but new reports should be built using Data Warehouse tables.





