Quote & Bookings Summary Dashboard: Difference between revisions
No edit summary |
David.weller (talk | contribs) |
||
| (15 intermediate revisions by 2 users not shown) | |||
| Line 22: | Line 22: | ||
|- | |- | ||
| Date Range || Displays only jobs created within the specified date range. | | Date Range || Displays only jobs created within the specified date range. | ||
|} | |||
== Data Transformation Applied == | |||
[To be added] | |||
{| class="wikitable" | |||
|+ | |||
!Query | |||
!Calculations | |||
!Description | |||
|- | |||
| | |||
| | |||
| | |||
|} | |} | ||
| Line 31: | Line 44: | ||
! style="width: 20%;" | Reference !! style="width: 40%;" | Calculation !! style="width: 40%;" | Description | ! style="width: 20%;" | Reference !! style="width: 40%;" | Calculation !! style="width: 40%;" | Description | ||
|- | |- | ||
| 1 - Total Pre-Quotes||Total Prequotes = CALCULATE(COUNTROWS(quotations), USERELATIONSHIP(DimDate[Date], quotations[pre_quoted_at]), NOT(ISBLANK(quotations[pre_quoted_at]))) + 0|| This measure counts the total number of prequotes created. It works by: | | 1 - Total Pre-Quotes||<pre>Total Prequotes = CALCULATE(COUNTROWS(quotations), USERELATIONSHIP(DimDate[Date], quotations[pre_quoted_at]), NOT(ISBLANK(quotations[pre_quoted_at]))) + 0</pre>|| This measure counts the total number of prequotes created. It works by: | ||
* Checking if a date exists in the `pre_quoted_at` column (i.e., the quote was created). | * Checking if a date exists in the `pre_quoted_at` column (i.e., the quote was created). | ||
| Line 38: | Line 51: | ||
* Ensuring only valid prequotes with a date are included. | * Ensuring only valid prequotes with a date are included. | ||
|- | |- | ||
| 2 - Total Quotes || Total Quotes = CALCULATE(COUNTROWS(quotations), USERELATIONSHIP(DimDate[Date], quotations[quoted_at]), NOT(ISBLANK(quotations[quoted_at]))) | | 2 - Total Quotes || <pre>Total Quotes = CALCULATE(COUNTROWS(quotations), USERELATIONSHIP(DimDate[Date], quotations[quoted_at]), NOT(ISBLANK(quotations[quoted_at])))</pre> | ||
|| This measure counts the total number of finalized quotes created. Here's how it works: | || This measure counts the total number of finalized quotes created. Here's how it works: | ||
| Line 46: | Line 59: | ||
* Tracks issued quotes over time: This measure helps track how many official quotes were issued over a given period. | * Tracks issued quotes over time: This measure helps track how many official quotes were issued over a given period. | ||
|- | |- | ||
| Total Bookings || | |3 -Total Bookings || | ||
Total Bookings = | <pre>Total Bookings = | ||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
NOT (ISBLANK (quotations [booked_at])), | |||
USERELATIONSHIP (quotations [booked_at], DimDate [Date]))</pre> | |||
|| This measure counts the total number of bookings made. Here's how it works: | |||
*Checks the booking date: It looks at the booked_at column in the quotations table to find rows where a booking date exists (i.e., the quote was successfully booked). | |||
*Uses the date relationship: It temporarily activates the relationship between the DimDate table and the booked_at column to filter the bookings based on the selected time range in the report. | |||
*Counts the rows: It counts all the rows where a valid booking date is present, giving the total number of bookings. | |||
|- | |||
|4 - Confirmed Bookings || <pre>Confirmed Bookings = | |||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
NOT (ISBLANK (quotations [confirmed at])), | |||
USERELATIONSHIP (DimDate [Date], quotations [confirmed at])) </pre> | |||
|| This measure counts the total number of bookings that have been confirmed. Here's how it works: | |||
*Checks for a confirmation date: It looks at the confirmed at column in the quotations table to find rows where a confirmation date exists (i.e., the booking was confirmed). | |||
*Applies the date relationship: It temporarily uses the relationship between the DimDate table and the confirmed at column to filter data for the selected time range in the report. | |||
*Counts the rows: It tallies up all rows where a valid confirmation date is present, resulting in the total number of confirmed bookings. | |||
*This measure helps track the number of bookings that have been officially finalized and confirmed. | |||
|- | |||
|5 - Converted Bookings || <pre>Converted_Bookings = | |||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
USERELATIONSHIP (DimDate [Date], quotations[booked_at]), // Temporarily activate the relationship with booked_at | |||
(NOT (ISBLANK (quotations[quoted_at])) || NOT (ISBLANK (quotations[pre_quoted_at]))) && | |||
NOT (ISBLANK (quotations[booked_at]))) </pre> | |||
|| The Converted Bookings formula calculates the total number of quotations that successfully converted into bookings: | |||
The formula ensures that a booking is only counted if: | |||
*The quotation was either quoted (quoted_at) or pre-quoted (pre_quoted_at). | |||
*The quotation was successfully converted into a booking (booked_at). | |||
|- | |||
|6 - Direct Booking || <pre>Direct_Booking = | |||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
USERELATIONSHIP (DimDate [Date], quotations[booked_at]), | |||
ISBLANK (quotations[quoted_at]), | |||
ISBLANK (quotations[pre_quoted_at]), | |||
NOT (ISBLANK (quotations[booked_at]))) </pre> | |||
|| This measure counts the total number of bookings that were made without going through a quote or prequote process. Here's how it works: | |||
*Activates the booking date relationship: It temporarily uses the relationship between the DimDate table and the booked_at column to filter the data by the selected time range. | |||
*Checks for no quotes or prequotes: It ensures that: | |||
*The quoted_at column is blank (no quote was created). | |||
*The pre_quoted_at column is blank (no prequote was created) | |||
*Confirms the booking: It verifies that the booked_at column is not blank, meaning a booking was finalized. | |||
*Counts the rows: After applying these conditions, it counts the rows that meet the criteria. . | |||
|- | |||
| 7 - Conversion Rate || <pre>Conversion Rate = DIVIDE([Converted_Bookings], [Total_Quotes],0) </pre> || This measure calculates the conversion rate, which shows the percentage of quotes that were successfully converted into bookings. Here's how it works: | |||
*Numerator - Converted Bookings: It takes the total number of Converted Bookings, which are bookings that originated from quotes or prequotes and were successfully booked. | |||
*Denominator - Total Quotes: It divides by the total number of Total Quotes, which represents all the quotes created. | |||
*DIVIDE Function: The DIVIDE function performs the division and ensures that if the denominator (Total Quotes) is zero, it will return a result of 0 instead of an error. This handles cases where no quotes were created. | |||
Purpose | |||
This measure helps track how effectively quotes are being turned into actual bookings. A higher conversion rate indicates a better success rate in converting quotes into bookings. | |||
|- | |||
| 8 - | |||
|| i. CW booking <pre>CW_Booking = | |||
CALCULATE ( | |||
SUM (quotations[chargeable_weight]), | |||
NOT (ISBLANK (quotations[booked_at])), | |||
USERELATIONSHIP (DimDate [Date], quotations[booked_at]))</pre> | |||
ii. GW Booking <pre> GW Booking = | |||
CALCULATE ( | |||
SUM (quotations[gross_weight]), | |||
NOT (ISBLANK (quotations[booked_at])), | |||
USERELATIONSHIP (DimDate [Date], quotations[booked_at]) | |||
) </pre> | |||
iii. CW Quote <pre> CW_Quote = | |||
CALCULATE ( | |||
SUM (quotations[chargeable_weight]), | |||
NOT (ISBLANK (quotations[quoted_at])), | |||
USERELATIONSHIP (DimDate [Date], quotations[quoted_at])) </pre> | |||
iv. GW Quote <pre> GW Quote = | |||
CALCULATE ( | |||
SUM (quotations[gross_weight]), | |||
NOT (ISBLANK (quotations[quoted_at])), | |||
USERELATIONSHIP (DimDate [Date], quotations[quoted_at])) </pre> | |||
|| | |||
i. CW booking | |||
*Sum of chargeable weight: It sums the values from the chargeable_weight column in the quotations table, representing the total weight of items for bookings. | |||
*Checks for a valid booking: It ensures that only rows where the booked_at column is not blank are included. This means it only considers rows where a booking has been made. | |||
*Uses the date relationship: It activates the relationship between the DimDate table and the booked_at column to filter the bookings based on the selected date range. | |||
Purpose | |||
This measure helps you track the total chargeable weight for all bookings within a specific date range. | |||
ii. GW Booking | |||
* Sum of gross weight: It sums the values from the gross_weight column in the quotations table, representing the total weight of items for bookings, including any packaging or additional weight. | |||
*Checks for a valid booking: It ensures that only rows where the booked_at column is not blank are included. This means it only considers rows where a booking has been successfully made. | |||
*Uses the date relationship: It activates the relationship between the DimDate table and the booked_at column, ensuring that the data is filtered according to the selected time range in the report. | |||
Purpose | |||
This measure helps track the total gross weight of all bookings within a specific date range. | |||
iii. CW Quote | |||
*Sum of chargeable weight: It sums the values from the chargeable_weight column in the quotations table, representing the total chargeable weight for the items being quoted. | |||
*Checks for a valid quote: It ensures that only rows where the quoted_at column is not blank are included. This means it only considers rows where a quotation has been provided. | |||
*Uses the date relationship: It activates the relationship between the DimDate table and the quoted_at column to filter the quotations based on the selected date range in the report. | |||
Purpose | |||
This measure helps you track the total chargeable weight for all quotations within a specific date range. | |||
iv. GW Quote | |||
*Sum of gross weight: It sums the values from the gross_weight column in the quotations table, representing the total weight of items in the quotations, including packaging and any additional weight. | |||
*Checks for a valid quote: It ensures that only rows where the quoted_at column is not blank are included. This means it only considers rows where a quotation has been provided. | |||
*Uses the date relationship: It activates the relationship between the DimDate table and the quoted_at column to filter the quotations based on the selected date range in the report. | |||
Purpose | |||
This measure helps track the total gross weight for all quotations within a specific date range. | |||
|- | |||
|9 - Total ||<pre> Total = [Won] + [Lost] + [Pending] </pre> | |||
|| The Total measure calculates the total count of quotations based on the sum of Won, Lost, and Pending quotations. | |||
|- | |||
| 10 - Won ||<pre> Won = | |||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
quotations[spotrate] = 1 && quotations [Booking_categories] = "Direct Booking" | |||
) </pre> | |||
|| This measure counts the number of "Direct Bookings" where the SpotRate is 1, indicating a successful booking conversion. | |||
|- | |||
| 11 - Conversion Rate || <pre> Conversion Rate(spotrate) = DIVIDE([Won], [Total],0) </pre> | |||
|| This measure calculates the conversion rate for SpotRate, which is the ratio of Won bookings to Total quotations. | |||
|- | |||
| 12. Total Bookings By service||<pre>Total Bookings = | |||
CALCULATE ( | CALCULATE ( | ||
| Line 57: | Line 270: | ||
USERELATIONSHIP (quotations [booked_at], DimDate [Date]) | USERELATIONSHIP (quotations [booked_at], DimDate [Date]) | ||
) | ) </pre> || The clustered bar chart breakdown total booking by Service. | ||
|- | |- | ||
| | | 13. WeightBreakChar|| <pre>WeightBreakChar = | ||
SWITCH( | |||
TRUE(), | |||
quotations[chargeable_weight] < 45, "<45", | |||
quotations[chargeable_weight] < 100, "<100", | |||
quotations[chargeable_weight] < 300, "<300", | |||
quotations[chargeable_weight] < 500, "<500", | |||
quotations[chargeable_weight] < 1000, "<1000", | |||
quotations[chargeable_weight] < 2000, "<2000", | |||
quotations[chargeable_weight] < 3000, "<3000", | |||
quotations[chargeable_weight] >= 3000, ">=3000", | |||
"Other" | |||
)</pre>|| Breakdown by Weight Breaks in Chargeable Weight: | |||
*The table segments the data based on different weight break categories in chargeable weight. | |||
*This segmentation helps in understanding which weight categories have the highest conversion rates and booking volumes. [Calculation goes here] | |||
|- | |- | ||
| | | 14. Total Qoutes By Loss Reasons|| <pre>Total Quotes = | ||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
USERELATIONSHIP (DimDate [Date], quotations [quoted at]), | |||
NOT (ISBLANK (quotations[quoted_at]))) </pre> || This clustered column chart provides a detailed breakdown of total quotes categorized by loss reasons. Identify the most frequent reasons for losing potential bookings. | |||
|- | |- | ||
| | | 15. Total Bookings By Customer ||<pre>Total Bookings = | ||
CALCULATE ( | |||
COUNTROWS (quotations), | |||
NOT (ISBLANK (quotations [booked_at])), | |||
USERELATIONSHIP (quotations [booked_at], DimDate [Date]) | |||
) </pre> || The clustered bar chart provides a detailed breakdown of Total Bookings categorized by Customer. | |||
|} | |} | ||
Latest revision as of 14:11, 25 July 2025
Summary
This page offers a comprehensive overview of all pre-quotes, quotes, and bookings made within the specified date range. The report focuses on weight breaks, providing a detailed analysis of the total Gross Weight and Chargeable Weight. It also includes a breakdown of customers linked to the bookings and the service types utilized. Additionally, the report highlights the reasons for lost bookings, offering valuable insights for further evaluation.
Filters
| Filter | Description |
|---|---|
| Database | If you have access to multiple entity databases, you can filter and select specific ones. |
| Hide Lost / Deleted | Hides lost or deleted jobs from the report. |
| Site | Allows you to filter and focus on specific sites within your entity access. |
| Carrier | Enables filtering by carriers associated with the sites you have access to. |
| Users | Filters data by specific users. Users will be listed if they have access to the sites you can access. |
| Origin | Filters jobs based on their origin location. |
| Destination | Filters jobs based on their destination location. |
| Date Range | Displays only jobs created within the specified date range. |
Data Transformation Applied
[To be added]
| Query | Calculations | Description |
|---|---|---|
Calculations

| Reference | Calculation | Description |
|---|---|---|
| 1 - Total Pre-Quotes | Total Prequotes = CALCULATE(COUNTROWS(quotations), USERELATIONSHIP(DimDate[Date], quotations[pre_quoted_at]), NOT(ISBLANK(quotations[pre_quoted_at]))) + 0 |
This measure counts the total number of prequotes created. It works by:
|
| 2 - Total Quotes | Total Quotes = CALCULATE(COUNTROWS(quotations), USERELATIONSHIP(DimDate[Date], quotations[quoted_at]), NOT(ISBLANK(quotations[quoted_at]))) |
This measure counts the total number of finalized quotes created. Here's how it works:
|
| 3 -Total Bookings |
Total Bookings = CALCULATE ( COUNTROWS (quotations), NOT (ISBLANK (quotations [booked_at])), USERELATIONSHIP (quotations [booked_at], DimDate [Date])) |
This measure counts the total number of bookings made. Here's how it works:
|
| 4 - Confirmed Bookings | Confirmed Bookings = CALCULATE ( COUNTROWS (quotations), NOT (ISBLANK (quotations [confirmed at])), USERELATIONSHIP (DimDate [Date], quotations [confirmed at])) |
This measure counts the total number of bookings that have been confirmed. Here's how it works:
|
| 5 - Converted Bookings | Converted_Bookings = CALCULATE ( COUNTROWS (quotations), USERELATIONSHIP (DimDate [Date], quotations[booked_at]), // Temporarily activate the relationship with booked_at (NOT (ISBLANK (quotations[quoted_at])) || NOT (ISBLANK (quotations[pre_quoted_at]))) && NOT (ISBLANK (quotations[booked_at]))) |
The Converted Bookings formula calculates the total number of quotations that successfully converted into bookings:
The formula ensures that a booking is only counted if:
|
| 6 - Direct Booking | Direct_Booking = CALCULATE ( COUNTROWS (quotations), USERELATIONSHIP (DimDate [Date], quotations[booked_at]), ISBLANK (quotations[quoted_at]), ISBLANK (quotations[pre_quoted_at]), NOT (ISBLANK (quotations[booked_at]))) |
This measure counts the total number of bookings that were made without going through a quote or prequote process. Here's how it works:
|
| 7 - Conversion Rate | Conversion Rate = DIVIDE([Converted_Bookings], [Total_Quotes],0) |
This measure calculates the conversion rate, which shows the percentage of quotes that were successfully converted into bookings. Here's how it works:
Purpose This measure helps track how effectively quotes are being turned into actual bookings. A higher conversion rate indicates a better success rate in converting quotes into bookings. |
| 8 - | i. CW booking CW_Booking = CALCULATE ( SUM (quotations[chargeable_weight]), NOT (ISBLANK (quotations[booked_at])), USERELATIONSHIP (DimDate [Date], quotations[booked_at]))ii. GW Booking GW Booking =
CALCULATE (
SUM (quotations[gross_weight]),
NOT (ISBLANK (quotations[booked_at])),
USERELATIONSHIP (DimDate [Date], quotations[booked_at])
)
iii. CW Quote CW_Quote =
CALCULATE (
SUM (quotations[chargeable_weight]),
NOT (ISBLANK (quotations[quoted_at])),
USERELATIONSHIP (DimDate [Date], quotations[quoted_at]))
iv. GW Quote GW Quote =
CALCULATE (
SUM (quotations[gross_weight]),
NOT (ISBLANK (quotations[quoted_at])),
USERELATIONSHIP (DimDate [Date], quotations[quoted_at]))
|
i. CW booking
Purpose This measure helps you track the total chargeable weight for all bookings within a specific date range. ii. GW Booking
Purpose This measure helps track the total gross weight of all bookings within a specific date range. iii. CW Quote
Purpose This measure helps you track the total chargeable weight for all quotations within a specific date range. iv. GW Quote
Purpose This measure helps track the total gross weight for all quotations within a specific date range. |
| 9 - Total | Total = [Won] + [Lost] + [Pending] |
The Total measure calculates the total count of quotations based on the sum of Won, Lost, and Pending quotations. |
| 10 - Won | Won = CALCULATE ( COUNTROWS (quotations), quotations[spotrate] = 1 && quotations [Booking_categories] = "Direct Booking" ) |
This measure counts the number of "Direct Bookings" where the SpotRate is 1, indicating a successful booking conversion. |
| 11 - Conversion Rate | Conversion Rate(spotrate) = DIVIDE([Won], [Total],0) |
This measure calculates the conversion rate for SpotRate, which is the ratio of Won bookings to Total quotations. |
| 12. Total Bookings By service | Total Bookings = CALCULATE ( COUNTROWS (quotations), NOT (ISBLANK (quotations [booked_at])), USERELATIONSHIP (quotations [booked_at], DimDate [Date]) ) |
The clustered bar chart breakdown total booking by Service. |
| 13. WeightBreakChar | WeightBreakChar =
SWITCH(
TRUE(),
quotations[chargeable_weight] < 45, "<45",
quotations[chargeable_weight] < 100, "<100",
quotations[chargeable_weight] < 300, "<300",
quotations[chargeable_weight] < 500, "<500",
quotations[chargeable_weight] < 1000, "<1000",
quotations[chargeable_weight] < 2000, "<2000",
quotations[chargeable_weight] < 3000, "<3000",
quotations[chargeable_weight] >= 3000, ">=3000",
"Other"
) |
Breakdown by Weight Breaks in Chargeable Weight:
|
| 14. Total Qoutes By Loss Reasons | Total Quotes =
CALCULATE (
COUNTROWS (quotations),
USERELATIONSHIP (DimDate [Date], quotations [quoted at]),
NOT (ISBLANK (quotations[quoted_at]))) |
This clustered column chart provides a detailed breakdown of total quotes categorized by loss reasons. Identify the most frequent reasons for losing potential bookings. |
| 15. Total Bookings By Customer | Total Bookings = CALCULATE ( COUNTROWS (quotations), NOT (ISBLANK (quotations [booked_at])), USERELATIONSHIP (quotations [booked_at], DimDate [Date]) ) |
The clustered bar chart provides a detailed breakdown of Total Bookings categorized by Customer. |