Dashboard & Analytics / Dashboards - Billing Automation / Implementation of Billing Automation

Implementation of Billing Automation

We will implement the requirements on three phases. Phase 1 will be crunching and managing the data. Phase 2 will be improving the interface so that this is visible. And Phase 3 will be implementing the new features that will expand analytics’s UI for this.

Phase 1

We need to add a table “client_metadata” to hub_alpha in which for each client we are to store their plan and other information related to the billing. We will store what is the specified package аnd what is the calculated one. This is to keep it from updating by itself . If the specified package is set we are to use it, If not we are using the calculated. The packages will be an enumeration but for now we can have keywords for them. For the package types and how to calculate them we will need a new database table in hub_alpha in which we are to store the package information and thresholds. And for the package calculation we are to pull the information from it and do the calculation based on it. Other metadata we will need is a field for the discount in percentage, partnership field is to be an open text field and a flag if the orders are billable. We will need to make a new feed for this information.

The billing information will be happening at the end of every month. So this is when we will do the closed functionality for the payments. We need to mark every place billing info is split (we are keeping the current analytics logic) as closed and open. And we need a table to keep the metadata for this client for the given month. When we handle an order from a previous month (not sure how) we need to check what was the metadata for that month so that we can calculate it correctly. Best way for the metadata to be stored is to have the client_metadata but also have date added to it and we can remove the two packages and use only the one that was used.

Phase 2

For the widget we will need to add extra settings and filters for this type of widget. The functionality for this should be implemented in the widgets already, but we have not yet used another widget to verify it. So any major changes to the functionality of the widgets should be communicated and we can decide if we will move the change to Phase 3. Comparison is an example of such setting. The others should be possible to be implemented (Group and Time). Time is to split the information by it, not the range of the data. For the range we keep our current functionality. View is a default setting not connected to any widget. We will not implement the fixation to 100% for now, if required will be done in Phase 3. Missing option from the scope is closed/open option so that this information can be checked.

Phase 3

This will finalize everything with this widget. Adding the Comparison option and the export functionality. This phase will be expanded after Phase 2 is complete and the widget has been used for some time in order to identify other functionalities that may be required.

Is this article helpful?
0 0 0