Project Billing & Control

Updated at March 30th, 2026

Module Description

This module aims to extend the standard project management module of Microsoft Dynamics 365 Business Central by providing additional and complementary elements for monitoring project costs and revenues, such as the CBS (Cost Breakdown Structure) and the billing plan.

Setup

The module requires filling out the “Advanced Project module Setup” section:

  • Job Inv. Plan. Nos: identifies the numbering series for billing plans.
  • Job Inv. Plan Template Nos: if templates are used for selecting and populating the billing plan, this numbering series must also be specified.
  • Gen. Prod. Posting Group Default useful for suggesting the item/service category when filling in the billing plan.
  • Job Journal Template Name (Revenue): journal required to post project revenues at the same time as invoicing a shipment related to goods delivered for the project.
  • Job Journal Batch Name: batch required to post project revenues linked to the invoicing of a shipment.
  • Job Dimension: specifies the job/project dimension. As will be seen below, this dimension is useful for collecting project costs using dimensions.
    For the correct functioning of the app and for project cost analysis, this dimension must be set as a global dimension in the General Ledger Setup.
  • Accounting Periond CBS Starting Date: useful for analyzing project costs and revenues across multiple fiscal years. In this field, set the date from which data analysis should begin (especially for multi-year projects) when the CBS is analyzed by “Accounting Period”. 

Functionalities

A function has been added to sales orders to allow the creation of a project directly from this page, enabling a link between the customer request and the related project in Business Central.

This makes it possible to maintain a link between the order (which includes the finished item and its corresponding sales price) and the job created for the execution of the project.

 

At the project activity (task) level, the following additional fields are present compared to the standard:

  • Sales Invoicing Task: Identify the task to which the project planning lines generated at the release of the billing plan are linked (Note: only one task per project can have this flag).
  • Initial Costs Budget VS Revised Costs Budget: Two fields indicating the budget amount have been managed, which differ based on the presence of a “Budget Review Line” flag on the project planning lines. This allows the project manager to distinguish between the forecasted budget from the original estimate and any subsequent revisions.

On the project card, the following functionalities are available:

 

Project Invoice Plan

It allows you to manage and monitor invoices to be issued or already issued to the client.
On the header of the plan, it is possible to define the billing customer, which, if not modified (through the appropriate function), is taken from the project master data:

As mentioned in the paragraph dedicated to the setup, it is possible to assign one of the predefined templates to the plan; this provides a suggested set of lines in the plan. Alternatively, it is possible to proceed manually.
In the “Revenue Resource No.” field, it is necessary to specify a “dummy” resource on which the billable lines will be generated in order to invoice the project revenues.

 

In the “Posting” tab, a number of other fields are inherited from the project, such as dimensions, or from the setup, such as posting categories.
It is also possible to specify the posting accounts for prepayment invoices or retention guarantees.

 

 

Finally, the contractually agreed billing milestones with the client will be entered on the lines of the plan:

 

The billing installments can be modified until the line has been invoiced to the customer.
Below is an explanation of the main fields of the lines:

  • Planned Invoice Date: Indicate the expected billing date for the advance or the milestone in the plan
  • Invoice Type: Specify the type of invoice to be issued; depending on the option selected, either Income Statement accounts or Balance Sheet accounts may be affected (see explanatory table below).
  • Calc. Shipped Amount: If you are processing an order line that has been previously shipped, it is possible to retrieve it using this function in order to link it to the line of the plan to be fulfilled:

  • Amount (LCY): Indicate the invoice amount in the local currency.
  • Amount: Indicate the invoice amount in the foreign currency, as specified in the “Currency Code” field of the invoice header.
  • Description: It is reported on the line of the invoice issued from the plan
  • Execute invoice: the line or lines to be transferred to a new invoice must be flagged. To do this, after releasing the plan using the appropriate function, click on “Create Sales Invoice”, which generates a draft invoice in the standard sales invoice page.
  • The plan line will then show a reference to the draft document and, once posted, to the final recorded invoice, with the corresponding fields updated automatically.
  • % of Advance to reverse: This percentage can be specified on the milestone lines with reversals and is used to indicate the portion of the previously issued prepayment that you want to reverse.
    For the amount to be calculated correctly, the prepayment invoices must have already been posted.
    For the “final” invoices, this percentage should not be specified, as it is automatically calculated on the remaining amount at the time the provisional sales invoice is created.
    As an alternative to the percentage, it is possible to enter a specific amount in the dedicated field.
  • % Transfer documentation: This percentage can be indicated on the milestone lines with reversals and is used to specify the amount to be reversed from the withholdings that will be invoiced later.
    As an alternative to the percentage, it is possible to specify an amount in the dedicated field.

Here is an explanation of the types of invoices that can be issued from the invoice plan:

Type Description
Advance Payment Invoice To issue a sales invoice before shipment of materials based on a specific percentage agreed with the customer (es. 30%, 100% etc.)
Closing Invoice Usually the final revenue invoice: using this type of invoice BC is reversing everything posted before on advance payment GL account. It's not necessary for the user to specify the percentage of advance to reverse.
Milestone Invoice This type of invoice is posting on revenue GL account, if related to shipment of items the action "Calc. Shipped" should be used.
Otherwise it means that the sales invoice issued is posting a revenue related to the progress of the project (POC) without shipping.
Milestone Invoice with deductions with ADVANCE PAYMENT to reverse
To use this type of invoice the system requires something to reverse (e.g. advance previously issued).
Depending on the fact that something has been shipped or not, the amount related to revenues can be posted on GL account or directly invoicing the items shipped.
The percentage of advance to reverse must be specified manually on invoice plan line.
with RETENTION to reverse
This type of invoice should be used also when a contractual retention is issued at the end of invoice plan (e.g. a warranty retained percentage).
In this case the retention is made before the invoicing of warranty.
Contractual retention invoice To issue retention previously detained in milestone invoice.
Extra Invoice If there is the need to add a sales invoice at the end of invoice plan that wasn't expected at the beginning of invoice plan.
This invoice is posted on revenue account.
T&M invoice The GL posting is the same as the previous invoice: it is normally used to issue something related to activities done that the customer has to pay based on hours or days actually worked.
Credit Memo Credit memos in invoice plan should be issued related to a previous sales invoice posted, so on invoice plan lines there's the possibility to flag the line as to be reversed with credit memo.
Anyway, there's also the possibility to issue   stand alone credit notes.
GL account used is the same specified for revenues.

There is an action on the plan to release or reopen it; modifications can only be made when the plan is not released.

The action to generate invoices from the plan once it has been released is as follows:

The “Calc. Shipped” function is useful for linking the delivery of goods to the customer with the billing schedule, and thus connecting it to the sales order from which the shipment originated.
Through this line-level action, it is possible to select the lines of delivery notes (DDTs) associated with the project that have been previously shipped.
To generate sales orders directly from a project, a line-level action is available in the planning interface to transfer the item lines to be shipped directly from the project to the sales order:

Cost Breakdown Structure

This page allows you to create project analyses to track the variance between budget and actuals, as well as the project’s progress.
Similar to the standard financial reporting module, this tool enables you to add and manage project analyses, with the ability to configure both row and column layouts.

By opening the Cost Breakdown Structure, it is indeed possible to choose which row and column scenario to display, as well as the relevant time period.

Immagine che contiene testo, linea, numero, Carattere

Il contenuto generato dall'IA potrebbe non essere corretto.

Row layout

In BC scenarios, at the line level, the project can be analyzed as a whole, or a series of filters can be applied based on accounting dimensions to narrow down the values (e.g., by cost center, product line, business unit, etc.).

Column layout

Le colonne che si possono impostare all’interno della CBS possono essere scelte all’interno di un elenco, di seguito si riportano alcuni valori.

A new field called “Item Type” has been added to the item master data:

Setting items as “For Project” allows a different management of the linkage between item ledger entries. Compared to the standard behavior, it introduces additional logic based on the project dimension (previously defined in the setup as global) within the item application entries.

This functionality enables, for example, a more accurate analysis from the CBS perspective, particularly for movements related to production and assembly orders (see the dedicated paragraph on Cost Breakdown Structure).

On the project card, an action is also available to update valuation entries:

If there is a need to transfer the cost of the produced item to the project—as a usage-related accounting entry—a manual posting can be performed through a project journal batch.

At the same time, this report allows processing and marking the related consumption/output entries as “used in project”, so that they are no longer visible in the CBS.