Content
View differences
Updated by Alexander Coles 4 months ago
<br>
**As** a project manager, portfolio manager and program manager
**I want to** see the budgets on my Overview page
**so that** I easily get an overview of the financial plan and status.
# **Motivation**
* Understand how much budget was planned, spent and is available.
* Make the project overview more useful and engaging.
* Improve onboarding
* Reduce churn
# **Acceptance criteria**
* There are multiple new widgets for the Budgets module shown on the Overview page only
* Widgets shown only if Budgets module is activated in the project.
* Widget shown only if `view_budgets` permission is granted
* When no budgets are currently available, there is only one widget which shows a Blankslate with
* icon: "op-budget"
* header: "Start project controlling" (for portfolios it will adpted to "Start portfolio controlling", same for programs)
* Description: Get an overview of your budgets and costs to efficiently track the health status of your project (program/portfolio).
* (Secondary) Button: "+ Budget" (will lead to the budget creation page)
<img class="image_resized op-uc-image op-uc-image_inline" style="width:521px;" src="/api/v3/attachments/805467/content">
* Show 4 small widgets next to each other which display the following title and its value only:
* Total planned budget (€)
* Total actual costs (€)
* Spent ratio (%)
* Remaining budget (€)
* The values for those widgets are build by Labour costs, Unit costs, and base amount
* Technical note: All of that already exists as method on the Budget
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/789564/content"></div></figure>
* A new widget called "**Total Budget by cost type**" which shows a pie chart with all cost types currently in use
* Labour costs are also shown as an additional cost type (unless it is 0).
* Base amount is also shown as an additional cost type (unless it is 0).
* There is a link at the bottom "View budget details" redirecting to the budget index page ("/budgets") of the current project
* The link opens in a new tab to avoid flow interruption
* Technical note: These are `MaterialBudgetItem` and `LaborBudgetItem`
<figure class="image image_resized op-uc-figure" style="width:336px;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/789565/content" alt="pie chart for Budget by cost type"></div></figure>
* Depending on the workspace and hierachy, the shown data is different:
* **Case 1: Single project only**
* All widgets display the **summed values of all budgets used within that project**
* **Case 2: Aggregation for portfolios, programs and sub-projects**
* All widgets display the **summed values of all budgets of itself and all visible subitems**
* When aggregating, make sure to not count budgets in the hierarchy twice
* Example:
* Program X: 4€ (aggregated)
\-- own Budget: 2€
\-- Project X.A: 1€
\-- Project X.B: 1€
* Portfolio Y: 6€ (aggregated)
\-- own Budget: 2€
\-- Program Y.C: 1€
\-- Program Y.D: 3€ (aggregated)
-- own Budget: 1€
-- Project Y.D.1: 1€
-- Project Y.D.2: 1€
* There is a short summary written to explain that the budget is aggregated (e.g. "Data aggregated from 16 budgets included in the portfolio, 5 subprograms, and 15 subprojects")
## **Technical notes**
* We stick to the chart libary chart.js
## **Permissions and visibility considerations**
* _We use the existing permissions._
## **Translation considerations**
* _Key terms and phrases in the key languages_
## **Out of scope**
* Changes to the budget module.
* Include this information in the API (separate work package).
* New widgets for the Dashboard
## Hints for QA
In order to render anything at all, budgets and charts need to be enabled and the user must have a number of permissions (in addition to the rights to view the project overview itself).
In order to render charts that show meaningful data, a large amount of example data is needed.
[https://community.openproject.org/documents/180](https://community.openproject.org/documents/180) lists what is needed in terms of prerequisites.
**As** a project manager, portfolio manager and program manager
**I want to** see the budgets on my Overview page
**so that** I easily get an overview of the financial plan and status.
# **Motivation**
* Understand how much budget was planned, spent and is available.
* Make the project overview more useful and engaging.
* Improve onboarding
* Reduce churn
# **Acceptance criteria**
* There are multiple new widgets for the Budgets module shown on the Overview page only
* Widgets shown only if Budgets module is activated in the project.
* Widget shown only if `view_budgets` permission is granted
* When no budgets are currently available, there is only one widget which shows a Blankslate with
* icon: "op-budget"
* header: "Start project controlling" (for portfolios it will adpted to "Start portfolio controlling", same for programs)
* Description: Get an overview of your budgets and costs to efficiently track the health status of your project (program/portfolio).
* (Secondary) Button: "+ Budget" (will lead to the budget creation page)
<img class="image_resized op-uc-image op-uc-image_inline" style="width:521px;" src="/api/v3/attachments/805467/content">
* Show 4 small widgets next to each other which display the following title and its value only:
* Total planned budget (€)
* Total actual costs (€)
* Spent ratio (%)
* Remaining budget (€)
* The values for those widgets are build by Labour costs, Unit costs, and base amount
* Technical note: All of that already exists as method on the Budget
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/789564/content"></div></figure>
* A new widget called "**Total Budget by cost type**" which shows a pie chart with all cost types currently in use
* Labour costs are also shown as an additional cost type (unless it is 0).
* Base amount is also shown as an additional cost type (unless it is 0).
* There is a link at the bottom "View budget details" redirecting to the budget index page ("/budgets") of the current project
* The link opens in a new tab to avoid flow interruption
* Technical note: These are `MaterialBudgetItem` and `LaborBudgetItem`
<figure class="image image_resized op-uc-figure" style="width:336px;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/789565/content" alt="pie chart for Budget by cost type"></div></figure>
* Depending on the workspace and hierachy, the shown data is different:
* **Case 1: Single project only**
* All widgets display the **summed values of all budgets used within that project**
* **Case 2: Aggregation for portfolios, programs and sub-projects**
* All widgets display the **summed values of all budgets of itself and all visible subitems**
* When aggregating, make sure to not count budgets in the hierarchy twice
* Example:
* Program X: 4€ (aggregated)
\-- own Budget: 2€
\-- Project X.A: 1€
\-- Project X.B: 1€
* Portfolio Y: 6€ (aggregated)
\-- own Budget: 2€
\-- Program Y.C: 1€
\-- Program Y.D: 3€ (aggregated)
-- own Budget: 1€
-- Project Y.D.1: 1€
-- Project Y.D.2: 1€
* There is a short summary written to explain that the budget is aggregated (e.g. "Data aggregated from 16 budgets included in the portfolio, 5 subprograms, and 15 subprojects")
## **Technical notes**
* We stick to the chart libary chart.js
## **Permissions and visibility considerations**
* _We use the existing permissions._
## **Translation considerations**
* _Key terms and phrases in the key languages_
## **Out of scope**
* Changes to the budget module.
* Include this information in the API (separate work package).
* New widgets for the Dashboard
## Hints for QA
In order to render anything at all, budgets and charts need to be enabled and the user must have a number of permissions (in addition to the rights to view the project overview itself).
In order to render charts that show meaningful data, a large amount of example data is needed.
[https://community.openproject.org/documents/180](https://community.openproject.org/documents/180) lists what is needed in terms of prerequisites.