TSA Dashboard
Summary
The TSA Report is a Power BI dashboard designed to provide comprehensive visibility into course bookings, participation, and revenue performance for training services delivered to corporate clients (companies).
It supports exploratory analysis across the following core dimensions:
Courses – Individual training programs and their performance Booked Courses – Volume of confirmed bookings Course Groups – High-level categories of training Companies – Customer-level breakdown, including which courses each company has purchased Total Revenue – Overall and segmented income generated
The dashboard aggregates data from the orders and order courses tables, focusing exclusively on confirmed/processed orders (where order status >= 1).
Tables & Columns Included
| Database | Table | Columns |
|---|---|---|
| tsa_reporting_db | order | id,order_status,company_id,user_id,ordered_by,currency,created_at,updated_at,deleted_at,confirmed_at,Date,Year |
| tsa_reporting_db | companies | id,name |
| tsa_reporting_db | course | id,name |
| tsa_reporting_db | order bookings | id,order_course_id,user_id,training_status, created_at, updated_at, deleted_at |
| tsa_reporting_db | order courses | id,order_id,course_id,course_location_id,price_per_person,min_price,created_at,updated_at,deleted_at |
| tsa_reporting_db | course prices | id,course_id,currency,price,min_price,created_at,updated_at |
| tsa_reporting_db | course page groups | id,course_page_id,course_group_id,Course groups |
| tsa_reporting_db | users | id,first_name,last_name,username, company_id,site_id,updated_at,deleted_at |
| tsa_reporting_db | invoince exchange rates | id,invoice_id,from_currency,to_currency,exchange_rate,created_at,updated_at |
| tsa_reporting_db | invoince exchange rates | id,invoice_id, order_id, from_currency,to_currency, exchange_rate,created_at |
Filters
| Filter | Description |
|---|---|
| Company | Helps the user filter values by company |
| Course Group | Helps the user filter values by course Group |
| Date | Helps the user filter values by date range |
Data Transformation Applied
[To be added]
| Query | Calculations | Description |
|---|---|---|
Calculations
| Reference | Calculation | Description |
|---|---|---|
| Booked Courses | Booked Courses =
CALCULATE( DISTINCTCOUNT(order_courses[course_id]), FILTER( orders, orders[order_status] >= 1 ) ) |
The measure counts distinct course_id values from the order_courses table but only for orders whose status indicates they are confirmed or processed. |
| Booked Courses | Booked Courses =
CALCULATE( DISTINCTCOUNT(order_courses[course_id]), FILTER( orders, orders[order_status] >= 1 ) ) |
The measure counts distinct course_id values from the order_courses table but only for orders whose status indicates they are confirmed or processed. |
| Booked Courses | Booked Courses =
CALCULATE( DISTINCTCOUNT(order_courses[course_id]), FILTER( orders, orders[order_status] >= 1 ) ) |
The measure counts distinct course_id values from the order_courses table but only for orders whose status indicates they are confirmed or processed. |
| Booked Courses | Booked Courses =
CALCULATE( DISTINCTCOUNT(order_courses[course_id]), FILTER( orders, orders[order_status] >= 1 ) ) |
The measure counts distinct course_id values from the order_courses table but only for orders whose status indicates they are confirmed or processed. |