Dashboard Explanation - Fleet-Analytics-Dashboard/Application GitHub Wiki
Here, the calculation and creation of the data visualizations of the respective views are shown
1. General
This dashboard consist of three pages. They can be accessed using the respective links in the navigation. The explanation for these views can be found below:
2. Home View
The home view is a collection of the most important visualizations and gives the user an insight of the overall situation. It enables quick business decisions based on key figures and shows most urgent challenges.
2.1. Key metrics, Business Goals, and Costs
The cards at the top of the dashboard give an insight of the key figures and their growth/decrease compared to the previous month.
Business Goals
- The bar graph displays the three business goals revenue, profit and liquidity over a given period of time. In our case, the goals are displayed in USD Millions a year.
- The trendlines represent the growth over the years.
- The bar graph has basic functionality: it enables the user to see the goals in detail by selecting them from the legend or by selecting a certain period of time using the zoom feature.
- The data was simulated using normal distribution and sorted ascending.
Costs
- The costs line chart displays the cost development of certain vehicles from different categories over a given period of time. In our case, the costs are displayed in USD a month.
- The construction of the graph enables more functionality: taking into consideration the different vehicles classes and type, we have decided to filter the costs based on vehicle category.
- Once a category was chosen, the user can select one or more vehicle ids.
- At first sight, the graph will display the total costs per vehicle. The total costs consist of the fuel, maintenance and insurance costs.
- The graph enables the user to view the costs in detail by choosing one cost type from the dropdown.
- With the given filter possibilities, the user is able to compare and make important decisions regarding its vehicles.
Costs calculation
- Fuel Costs: we simulated data for the consumption/route depending on the vehicle class. Afterwards we multiplied the fuel price (2,39$) with the consumption and the driven distance. We split the routes on a month basis and calculated then the monthly fuel costs per vehicle.
- Insurance Costs: simulated using normal distribution with the value of 200$ a month.
- Maintenance Costs: simulated using normal distribution with the value of 1200$ a month.
2.2. Carbon Footprint & Kept Delivery Dates
Carbon footprint
- The line graph pictures the emissions development in tons of CO2 over the years.
- It was created using simulated data due to lack of real data.
Kept delivery dates
- The line graph pictures the kept delivery dates on a month basis and was created using the same technology as in the previous line chart.
- A representation with real data from our dataset was planned, but was postponed due to lack of time and other priorities.
2.3. Vehicle Status & Capacity Overview
Vehicle status
- The donut chart describes the current status of all the vehicles from the fleet. It gives the use an overview of the used and unused vehicles and helps make decisions and planning.
- It enables the user to see which vehicles are e.g. delayed and/or search a certain vehicle by license plate and see its status.
- The donut chart and the capacity overview table were created using existing data from our dataset.
- The checkboxes enable the user to filter the table on different statuses and see vehicle data in detail.
- An improvement for these figures is planned (see "Potential improvements").
3. Downtimes View
Indicator for decision makers and fleet managers on how healthy the fleet currently is. The downtimes view shows the fleet downtime and detailed information for every vehicle which is currently not available for business, including vehicles which are unused, in maintenance or involved in an accident.
3.1. Vehicle Downtimes and Accidents
Vehicle Downtimes
Piechart: Shows the total number and percentage of vehicles which are currently not available for business trips. This is achieved by grouping the status in 'maintenance', 'accident' and 'unused' (all other vehicle status settings). This gives the fleet manager an indicator of how resilient the fleet currently is and if there are enough vehicles in shape to reach the targets. Table: Allows filtering on further vehicle information and enables searching for specific vehicles.
Accidents
Mapbox: The map shows the location of every vehicle which is currently involved in an accident, allows quick and precise action and therefore achieve quick repairs.
3.2. Need for Maintenance and Accident Probability
Need for Maintenance
Piechart: Shows how many vehicles are soon to be maintained. Clustered into 3 categories:
- a week or less = Need
- less than 2 months = soon
- above = no need. This prediction makes it way easier to set future business plans.
Table: Allows filtering on further vehicle information and enables searching for specific vehicles.
Accident Probability
Piechart: Given value for every vehicle which should be calculated by using values e.g. driving hours, break wear and distance covered. Could be used to minimize truck downtimes because of accidents, if there´s a high risk of getting involved in an accident because of bad vehicle or driver condition, the fleet manager can intervene beforehand.
Table: Allows filtering on further vehicle information and enables searching for specific vehicles.
3.3. Oldest Vehicle and Longest Distance
Oldest Vehicle
The graph is intended to show the production years of the vehicles in order to identify how high or low the age of the automotive fleet is. On the y-axis you can see the age, on the x-axis you can see all vehicles sorted by licence_plate. As the age can also be decisive for the probability of failures, accidents or damage to the vehicle, the graph on the Downtimes view is relevant. In addition, the user can also see the Mean value to better judge the age of the fleet.
The Bar chart was created using the plotly.graph_objects library. The licenceplate data was imported in descending order. The mean value was calculated using the statistics library and then added to the chart as the second y-axis.
Longest Distance
The longest distance graph can also be decisive for the probability of failures, accidents or damage to the vehicle. It is intended to give fleet managers an overview of the distance distribution to each vehicle, so that they can adjust the number of kilometers in case of an imbalance. For the evaluation of the even distribution, the integrated Mean value can be used here.
Like the Oldest Vehicle Table, the graph was created as a bar chart. Since we only listed the rides per vehicle per month in our database, these were then summed up per line for each vehicle and saved in a new data frame. The mean value was again created with the statistics library and added as a second y-axis.
3.4. Maintenance Calender
The maintenance calendar shows the already performed services as well as the next planned service. Each column represents one calendar week and each row represents one vehicle. the green cells are the planed services for each vehicle, while the red cells mark the predicted next service. The current calendar week is marked in grey. This visualisation enables the fleet manager to quickly identify weeks where a lot of vehicles will be in maintenance at once. Additionally, it becomes visible if one vehicle has shorter maintenance intervals than the others.
4. Vehicles Tables View
4.1. Realtime Map:
- Shows the position of every vehicle
- Vehicles are colored based on their vehicle status
- Map view is realised by mapbox which is embeded into an Dash figure. Provides live positioning of every vehicle to the fleet manager and helps to plan more efficient tours.
4.2. Vehicle Overview
Enable users to access and filter detailed vehicle, transport goals and driver information.
Chart
Shows number of vehicles sorted by vehicle class for 1) Transport goal 2) vehicle type and 3) drivers
Especially relevant for the Fleet Manager to see which vehicles are included in the fleet, by whom they are driven and for what purpose they are used. You can then make strategic decisions. For example, assigning vehicles evenly to drivers when a strong imbalance is noticeable. This is the case in our fleet, see example: Apart from that the user can use the legend to set additional filters, for example if you only want to see certain vehicles or device types or transport destinations.
Three different radi buttons are working as input for the Dash callback. The callback output is the graph below the filters. For the creation a new dataframe was created, containing only the needed columns. Since we needed additional driver data, we created a second dataframe for this. Both dataframes were finally merged. To get the number of devices per driver, vehicle type and transport goal, we used the groupby() and count() function in the created dataframe. The Bar Chart was created with the library plottly.express. In the callback it was then defined with the help of an if loop, at which radio button, which chart should be shown.
Table
Includes detailed vehicle information (multi filter option by transport goal)
The table contains all important vehicle and driver details. It should give the user a comprehensive overview. It also serves as a reference book when searching specifically for a device, driver, vehicle type or transport goal. The table also contains an e-mail address for each driver, which can be used to contact the respective driver in urgent cases. You can also filter the table in the header for each column. For additional clarity, you can also pre-filter the table by one or more transport destinations using the multi-drop down. Since it is important for individualization, it is possible to display only the relevant cells (not interesting cells can be hidden). All of them can easily be added again with the toggle column button. Additionally, there is the function to export the filtered table as an Excel file. So that the user can continue working with it or forward it.
The table is created with the library dashtable. For the corresponding content, a new dataframe with all columns needed was created. The table was filled with interactivity by different parameters like sort_mode or filter_action. With the help of the parameter export_format the export functionality could be generated.