CashFlow with DASH

Introduction

When BeOptimized was created in 2015, dashboards were immedialy created using SAS programming language in order to monitor and forecast the cashflow activities of the company. This application was still working fine but, it was decided to decommission it and replace it by a brand new one entirely in Python. The aim of this project was to monitor, in real-time and using plotly Dash, the evolution of the input/output cashflow of BeOptimized.
The components of the applications are: Excel for the encoding of the inputs (the invoices of BeOptimized (cash in/out) are registered into Excel), SQLite for the data storage, Dash plotly for the reporting and Pandas for the data manipulation (inspired by EFFECTIVE PANDAS of Matt Harrison. A book I really encourage you to read to master Python Dataframes !

The project was divided in several parts:

    • Import the excel spreadheets/timelogs/rate evolution... into a consolidated and fast SQLite database
    • Forecast creation to simulate the next year's data (but also to have complete years and months)
    • DASH page creation for the current month, the current year and all the historical years
    • Creation of a multiple pages DASH application by combining all the created pages
    Please find below some more information and videos, feel free to contact me for any question. For confidentiality purpose, all the numbers of the presentation have been modified.

Current month

This dashboard page displays the main information to pilot the ongoing working month of BeOptimized: List all the remaining invoices to pay, calculate the total invoices already paid (billed) and the total which still have to be paid (unbilled), number of working days, timesheet completion..

For the calendar, a bar chart was used: Each working day corresponds to 1 unit and holiday 1.5 units. The colors corresponds to the forecasted/observed billable days.

A treemap was also added to have an idea on the remaining invoices that still have to be paid this month (based on a combination of the observed and forecasted invoices).

By Christophe Kabacinski Duration 11 mn

In this video the inputs of the project are briefly described and couple of Python codes are presented.

The page

Current month

The page

Invoice details

Current year

This dashboard page is focused on the accountant years:
Total number of worked days per customer, total number of holidays, evolution of the cashflow month by month using stacked bar chart and waterfall graph... Moreover the detail per category is also displayed in order to know their evolution accross the months.

One more interesting thing is the forecast on the current month and rest of the year. Here the current month is displayed with all the already paid invoices and invoices that we still have to pay for the rest of the month. For each year a summary of all the main statistics is also displayed.

By Christophe Kabacinski Duration 8 mn

This video gives you more information on the page creation.

All years

This dashboard displays the comparison between the different years:
Total invoices per quarter for all the years, rate comparison and finally a comparison of all the calculation per category accross all the years. The rate comparison is a heatmap and the invoices is a stacked bar chart...

For the table, the average value is used in the right margin and the sum in the bottom margin. The check boxes alows you to quickly select the years to compare.

By Christophe Kabacinski Duration 6 mn

This video gives you more information on the page creation.

The page

Grid and cards

Couple of codes

  • Sample Python code 1
  • Sample Python code 2
  • Sample Python code 3
  • Sample Python code 4

This site uses cookies. .

By continuing to browse the site you are agreeing to our use of cookies. Review our cookies information for more details.