Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FW][ADD] project: profitability dashboard #12582

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions content/applications/services/project.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
:nosearch:
:show-content:
:nosearch:
:hide-page-toc:
:show-toc:

Expand All @@ -17,5 +17,4 @@ coworkers, and keep track of each project's profitability.
:titlesonly:

project/project_management
project/project_dashboard
project/tasks
9 changes: 9 additions & 0 deletions content/applications/services/project/project_management.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
:show-content:
:hide-page-toc:

==================
Project management
==================
Expand Down Expand Up @@ -108,3 +111,9 @@ You can also create your own buttons to access more specific views:
:guilabel:`Save View`.
#. Edit the default button name if necessary, then enable :guilabel:`Shared` if you want to share
the button with other users.

.. toctree::
:titlesonly:

project_management/project_dashboard
project_management/project_profitability
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,13 @@ effective project management and ensuring that your project stays on track.
Using the project dashboard
===========================

To access the project dashboard, open the **Project** app and hover over the desired project’s
card. Then, click the :icon:`fa-vertical-ellipsis` (:guilabel:`vertical ellipsis`) icon and
select :guilabel:`Dashboard`. Alternatively, you can access the project dashboard from the project’s
:ref:`top bar <project/project-management/top-bar>`.
To access the project dashboard, open the **Project** app and navigate to the applicable project.
Click the :icon:`fa-sliders` (:guilabel:`sliders`) icon to add :guilabel:`Dashboard` to the
project's :ref:`top bar <project/project-management/top-bar>`.

.. tip::
You can also access the project dashboard by hovering over the desired project’s card, clicking
the :icon:`fa-ellipsis-v` (:guilabel:`vertical ellipsis`), and selecting :guilabel:`Dashboard`.

The left side of the dashboard displays a list of existing :ref:`project updates <project/project-dashboard/updates>`,
and the right side provides :ref:`detailed information about records linked to the project
Expand All @@ -40,11 +43,11 @@ The following smart buttons are displayed on the top right of the project dashbo
completed/all, as well as the entire project's completion percentage estimation.
- :guilabel:`Timesheets`: the number of hours or days (depending on the **Timesheets** app
configuration) allocated in the project’s **settings**. This includes all
:doc:`timesheets <../timesheets>`, whether or not they have been validated.
:doc:`timesheets </applications/services/timesheets>`, whether or not they have been validated.
- :guilabel:`Planned`: the number of hours that have been planned for shifts in the **Planning**
app. This includes all :doc:`planned shifts <../planning>`, including past shifts and shifts that
have not yet been published.
- :guilabel:`Documents`: number of :doc:`documents <../../productivity/documents>` in the
app. This includes all :doc:`planned shifts </applications/services/planning>`, including past
shifts and shifts that have not yet been published.
- :guilabel:`Documents`: number of :doc:`documents </applications/productivity/documents>` in the
project’s workspace.
- :guilabel:`Burndown Chart`: click the smart button to access a :doc:`report </applications/essentials/reporting>`
on the status of the project’s tasks over time.
Expand Down Expand Up @@ -78,8 +81,9 @@ or :guilabel:`canceled` :ref:`status <project/tasks/task_stages_statuses/statuse
Profitability
-------------

This section provides a breakdown of project costs and revenues, which are impacted by all records
linked to the project and its :doc:`Analytic account </applications/finance/accounting/reporting/analytic_accounting>`.
The :doc:`profitability dashboard </applications/services/project/project_management/project_profitability>`
provides a breakdown of project costs and revenues, which are impacted by all records linked to the
project and its :doc:`Analytic account </applications/finance/accounting/reporting/analytic_accounting>`.

.. note::
The profitability report is only displayed for billable projects.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
=====================
Project profitability
=====================

When handling billable projects, it is essential to determine whether your projects are turning a
profit. Measuring **project profitability** involves keeping track of the costs of resources used to
carry out the project, such as employee costs, materials used, purchases, expenses, or after-sales
services, and comparing them with the project revenues.

Project profitability is tracked in the :doc:`project dashboard <project_dashboard>` on all billable
projects.

To access the :doc:`project dashboard <project_dashboard>`, open the **Project** app and navigate to
the applicable project. Click the :icon:`fa-sliders` (:guilabel:`sliders`) icon to add
:guilabel:`Dashboard` to the project's :ref:`top bar <project/project-management/top-bar>`.

.. tip::
You can also access the :doc:`project dashboard <project_dashboard>` by hovering over the desired
project’s card, clicking the :icon:`fa-ellipsis-v` (:guilabel:`vertical ellipsis`), and selecting
:guilabel:`Dashboard`.

The **profitability dashboard** is on the right side of the project dashboard and displays data for
all records linked to the project and its
:doc:`analytic account </applications/finance/accounting/reporting/analytic_accounting>`. It’s
divided into two major sections: :ref:`revenues <project/project-profitability/revenues>`, which
displays a breakdown of income generated by the project, and
:ref:`costs <project/project-profitability/costs>` accrued by your company. The same record can be
displayed in both sections, e.g., the same timesheet is listed under :guilabel:`Revenues` with the
amount the customer paid for the work and under :guilabel:`Costs` with the amount of wages paid to
the employees.

.. image:: project_profitability/profitability-dashboard.png
:alt: Project dashboard.

The amounts displayed in the profitability report are divided into three columns:

- :guilabel:`Expected`: the amounts expected based on existing sales or purchase orders.
- :guilabel:`To invoice` (revenues) or :guilabel:`To bill` (costs): the amounts are moved to this
column when the work or goods have been delivered, e.g., a
:doc:`timesheet </applications/services/timesheets>` has been created and/or validated, a
delivery order has been marked as done, or the delivered quantity has been manually updated on
the sales order.
- :guilabel:`Invoiced` or :guilabel:`Billed`: the amounts are moved to this column once an invoice
or bill has been confirmed.

Based on the same principle, the revenues section is further divided into :guilabel:`Sold`,
:guilabel:`Delivered`, and :guilabel:`Invoiced` columns. Use the :icon:`fa-caret-right`
(:guilabel:`arrow`) icon to see a detailed breakdown for each line.

.. tip::
Use the project’s :ref:`top bar <project/project-management/top-bar>` to easily access and edit
records linked to the project’s profitability from the project’s Kanban view.

.. important::
In order for a record to be displayed on the profitability dashboard, it must be linked to the
project and its :doc:`analytic account </applications/finance/accounting/reporting/analytic_accounting>`.

The following records can be displayed in the profitability dashboard.

.. _project/project-profitability/revenues:

Revenues
--------

- :guilabel:`Timesheets`: revenues from :doc:`timesheets </applications/services/timesheets>`,
broken down according to the :guilabel:`Invoicing Policy` selected on the product form (e.g.,
:doc:`Prepaid/Fixed Price </applications/sales/sales/invoicing/invoicing_policy>`,
:doc:`Based on Timesheets </applications/sales/sales/invoicing/time_materials>`,
:doc:`Based on Milestones </applications/sales/sales/invoicing/milestone>`).
- :guilabel:`Materials`: total of sales prices of products sold via sales orders linked to the
project.
- :guilabel:`Customer invoices`: a total of invoices linked to the project.
- :guilabel:`Subscriptions`: a total of sales prices of
:doc:`subscriptions </applications/sales/subscriptions>` linked to the project.
- :guilabel:`Down payments`: a total of
:doc:`down payments </applications/sales/sales/invoicing/down_payment>` linked to the project.
- :guilabel:`Expenses`: any :doc:`expenses </applications/finance/expenses>` that have been
:doc:`reinvoiced to the customer </applications/sales/sales/invoicing/expense>`.

.. _project/project-profitability/costs:

Costs
-----

- :guilabel:`Timesheets`: total cost of time tracked by employees via :doc:`timesheets
</applications/services/timesheets>`, based on the employee's
:ref:`HR settings <employees/hr-settings>`.
- :guilabel:`Purchase Orders`: total cost of
:doc:`purchase orders </applications/inventory_and_mrp/purchase/manage_deals>` linked to the
project. Those could cover goods, materials, or even subcontracted services. This entry only
appears once the vendor bill is posted.
- :guilabel:`Materials`: total cost of products included in
:doc:`stock moves </applications/inventory_and_mrp/inventory/shipping_receiving>` (deliveries and
receipts) that have been validated for the project. This section is only displayed if
:guilabel:`Analytic Costs` have been enabled in
:menuselection:`Inventory --> Configuration --> Operations Types` for applicable operations. This
ensures that the product's cost is tracked during the stock move.
- :guilabel:`Expenses`: total costs of :doc:`expenses </applications/finance/expenses>` linked to
the project that have been submitted and approved.
- :guilabel:`Vendor bills`: total costs of
:doc:`vendor bills </applications/inventory_and_mrp/purchase/manage_deals/manage>` linked to the
project's analytic account.
- :guilabel:`Manufacturing orders`: total costs of manufacturing orders linked to the project's
analytic account.
- :guilabel:`Other costs`: any other costs linked to the project's analytic account.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.