Jump to content

Quote & Bookings Summary Dashboard 2: Difference between revisions

From PBI Reporting Wiki
No edit summary
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:


== Summary ==
== Summary ==
TBC
This page provides a detailed overview of all pre-quotes, quotes, bookings, and direct bookings made within the specified date range. However, instead of focusing on weight breaks, this report breaks down these categories into monthly totals. It also includes a breakdown of customers associated with the bookings and the service types used, as well as insights into the reasons for lost bookings.


== Filters ==
== Filters ==
Line 9: Line 9:
! style="width: 75%;" |Description
! style="width: 75%;" |Description
|-
|-
|TBC
|Database ||If you have access to multiple entity databases, you can filter and select specific ones.
|TBC
|-
|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 quotes/bookings 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 Filter ||Displays only jobs created within the specified date range.
|}
|}


Line 21: Line 34:
!Description
!Description
|-
|-
|1 - Total Pre-quotes.  || Total Prequotes =    
|1 - Total Pre-quotes.  || <pre>Total Prequotes =    


CALCULATE (   
CALCULATE (   
Line 31: Line 44:
    NOT (ISBLANK (quotations[pre_quoted_at]))   
    NOT (ISBLANK (quotations[pre_quoted_at]))   


) + 0   
) + 0  </pre>
|| This measure counts the total number of prequotes (draft quotations) created. It works by:   
|| This measure counts the total number of prequotes (draft quotations) created. It works by:   


Line 41: Line 54:


d. It ensures only valid prequotes with a date are included   
d. It ensures only valid prequotes with a date are included   
|
|-
|-
| 2- Total Quotes.  ||Total Quotes =    
| 2- Total Quotes.  ||<pre>Total Quotes =    


CALCULATE (   
CALCULATE (   
Line 49: Line 61:
    COUNTROWS (quotations),   
    COUNTROWS (quotations),   


  USERELATIONSHIP (DimDate [Date], quotations [quoted at]),   NOT (ISBLANK (quotations[quoted_at])))   
  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 59: Line 71:


*This measure helps track how many official quotes were issued over a given period.   
*This measure helps track how many official quotes were issued over a given period.   
|
|
|-
|-
| 3 - Total Bookings  || Total Bookings =    
| 3 - Total Bookings  || <pre>Total Bookings =    


CALCULATE (   
CALCULATE (   
Line 72: Line 82:
USERELATIONSHIP (quotations [booked_at], DimDate [Date])   
USERELATIONSHIP (quotations [booked_at], DimDate [Date])   


)   
)  </pre>
|| This measure counts the total number of bookings made. Here's how it works:  
|| 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).   
*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).   
Line 79: Line 89:


*Counts the rows: It counts all the rows where a valid booking date is present, giving the total number of bookings  
*Counts the rows: It counts all the rows where a valid booking date is present, giving the total number of bookings  
|
|
|-
|-
| 4 - Confirmed Bookings  ||Confirmed Bookings =    
| 4 - Confirmed Bookings  ||<pre>Confirmed Bookings =    


CALCULATE (   
CALCULATE (   
Line 92: Line 100:
    USERELATIONSHIP (DimDate [Date], 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:   
  || This measure counts the total number of bookings that have been confirmed. Here's how it works:   


Line 102: Line 110:


*This measure helps track the number of bookings that have been officially finalized and confirmed.   
*This measure helps track the number of bookings that have been officially finalized and confirmed.   
|
|
|-
|-
| 5 - Converted Bookings  ||Converted_Bookings =    
| 5 - Converted Bookings  ||<pre>Converted_Bookings =    


CALCULATE (   
CALCULATE (   
Line 117: Line 123:
    NOT (ISBLANK (quotations[booked_at]))   
    NOT (ISBLANK (quotations[booked_at]))   


)    
)  </pre>
  || The Converted Bookings formula calculates the total number of quotations that successfully converted into bookings:  
  || The Converted Bookings formula calculates the total number of quotations that successfully converted into bookings:  


Line 125: Line 131:


*The quotation was successfully converted into a booking (booked_at).   
*The quotation was successfully converted into a booking (booked_at).   
|
|
|
|-
|-
| 6 - Direct Booking  ||   Direct_Booking =    
| 6 - Direct Booking  || <pre> Direct_Booking =    


CALCULATE (   
CALCULATE (   
Line 142: Line 145:
    NOT (ISBLANK (quotations[booked_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:   
  || This measure counts the total number of bookings that were made without going through a quote or prequote process. Here's how it works:   


Line 156: Line 159:


*Counts the rows: After applying these conditions, it counts the rows that meet the criteria.   
*Counts the rows: After applying these conditions, it counts the rows that meet the criteria.   
|
|
|
|-
|-
| 7 - Conversion Rate|| Conversion Rate = DIVIDE([Converted_Bookings], [Total_Quotes],0) 
| 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:   
|| This measure calculates the conversion rate, which shows the percentage of quotes that were successfully converted into bookings. Here's how it works:   


Line 174: Line 174:


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.  
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  
| 8  
a. CW booking
||i. CW booking  
|| CW_Booking =    
<pre>CW_Booking =    
  CALCULATE (SUM (quotations[chargeable_weight]),
  CALCULATE (SUM (quotations[chargeable_weight]),
NOT (ISBLANK (quotations[booked_at])),
NOT (ISBLANK (quotations[booked_at])),
USERELATIONSHIP (DimDate [Date], 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.   
*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.   


Line 193: Line 219:
Purpose   
Purpose   


This measure helps you track the total chargeable weight for all bookings within a specific date range.
This measure helps you track the total chargeable weight for all bookings within a specific date range.
|
ii. GW Booking 
|
|
|-
| b. GW Booking ||Formula:  
 
  GW Booking =  
 
        CALCULATE (SUM (quotations[gross_weight]), 
 
                             NOT (ISBLANK (quotations[booked_at])), 
 
                               USERELATIONSHIP (DimDate [Date], quotations[booked_at])) 
  ||
*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.   
*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.   
*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.
*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   
Purpose   


This measure helps track the total gross weight of all bookings within a specific date range.
This measure helps track the total gross weight of all bookings within a specific date range.
|
|
|
|-
| c. CW Quote   ||  Formula: 
  CW_Quote =  
CALCULATE ( 
SUM (quotations[chargeable_weight]), 


NOT (ISBLANK (quotations[quoted_at])), 
iii. CW Quote 


                                           USERELATIONSHIP (DimDate [Date], quotations[quoted_at])) 
||
*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.   
*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.   


Line 237: Line 241:
Purpose   
Purpose   


This measure helps you track the total chargeable weight for all quotations within a specific date range. 
This measure helps you track the total chargeable weight for all quotations within a specific date range.   
|
 
|
iv. W Quote. 
|
|-
| d. GW Quote.|| Formula: 
GW Quote =  
CALCULATE ( 
SUM (quotations[gross_weight]), 
NOT (ISBLANK (quotations[quoted_at])), 
USERELATIONSHIP (DimDate [Date], quotations[quoted_at]))   
||
*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.   
*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
*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  
|
|
|
|-
|-
| 9 - Total  ||Formula:  
| 9 - Total  ||Formula:  


Total = [Won] + [Lost] + [Pending]  
<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.    
  || The Total measure calculates the total count of quotations based on the sum of Won, Lost, and Pending quotations.    
|
|
|
|-
|-
| 10 - Won  || Formula:
| 10 - Won  || <pre>


   
   
Line 277: Line 265:
    quotations[spotrate] = 1 && quotations [Booking_categories] = "Direct Booking"   
    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.    
|| This measure counts the number of "Direct Bookings" where the SpotRate is 1, indicating a successful booking conversion.    
|
|
|
|-
|-
| 11 - Conversion Rate.  ||Formula:
| 11 - Conversion Rate.  ||<pre>


Conversion Rate(spotrate) = DIVIDE([Won], [Total],0)    
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.    
||  This measure calculates the conversion rate for SpotRate, which is the ratio of  Won bookings to Total quotations.    
|
|
|
|
|-
|-
| 12 || || The clustered bar chart breakdown total booking by Service  
| 12. Total Bookings By Service || <pre>Total Bookings =  
|
 
|
CALCULATE ( 
|
 
|
    COUNTROWS (quotations), 
 
    NOT (ISBLANK (quotations [booked_at])),    
 
USERELATIONSHIP (quotations [booked_at], DimDate [Date]) 
 
) </pre> || The clustered bar chart breakdown total booking by Service  
|-
|-
| 13 || || This clustered bar chart provides a breakdown of key booking and quotation metrics by year and month. It helps track trends over time and analyze seasonal fluctuations in bookings and conversions.   
| 13 ||<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>  || This clustered bar chart provides a breakdown of key booking and quotation metrics by year and month. It helps track trends over time and analyze seasonal fluctuations in bookings and conversions.   
|-
|-
| 14 || || This clustered column chart provides a detailed breakdown of total quotes categorized by loss reasons.  Identify the most frequent reasons for losing potential bookings.   
| 14 || <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 || || The clustered bar chart provides a detailed breakdown of Total Bookings categorized by Customer.  
| 15 ||<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 09:18, 17 June 2025

Summary

This page provides a detailed overview of all pre-quotes, quotes, bookings, and direct bookings made within the specified date range. However, instead of focusing on weight breaks, this report breaks down these categories into monthly totals. It also includes a breakdown of customers associated with the bookings and the service types used, as well as insights into the reasons for lost bookings.

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 quotes/bookings 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 Filter Displays only jobs created within the specified date range.

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 (draft quotations) created. It works by: 

a. Checking if a date exists in the pre_quoted_at column (i.e., the quote was created). 

b. Using the relationship between the DimDate table and the pre_quoted_at column to filter data for the selected time. 

c. Counting the rows that meet these conditions. 

d. It ensures 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]))) 
This measure counts the total number of finalized quotes created. Here's how it works: 
  • Focuses on the quoted date: It checks the quoted_at column to find rows where a quote has a valid date (i.e., it was created). 
  • Uses the date relationship: It temporarily activates the relationship between the DimDate table and the quoted_at column to filter data based on the selected date range. 
  • Counts the valid quotes: It tallies up all rows where the quoted_at date is not blank, giving the total number of quotes. 
  • This measure helps track how many official quotes were issued over a given period. 
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:
  • 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
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: 
  • 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
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:
  • 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
 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: 
  • 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
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: 


  • 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
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

  • 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. W 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
9 - Total Formula:
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
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]))  

)  
This clustered bar chart provides a breakdown of key booking and quotation metrics by year and month. It helps track trends over time and analyze seasonal fluctuations in bookings and conversions.
14
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 =   

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.