The Projects and Contracts module facilitates accurate profit reporting for long-term projects that require analysis of costs and revenues at each section or level within the contract or project.
The module enables you to establish a hierarchy of revenue and costing by job. Transactions posted in modules such as Sales Orders, Purchase Orders, Accounts Payable, Cash Book and Work in Progress are assigned to a position within the hierarchy. This enables you to continuously monitor the current and potential profitability of the contract or project both sectionally and in terms of Sales (orders placed by a customer), Billings (invoices raised on the customer), cost of sales of the billings and the future expected costs.
Transactions update the contract in real time. Query screens and reports show up-to-date actual and committed costs, realized and projected profit at any level of the job hierarchy. The WIP Query program enables you to drill-down to the transaction detail.
To ensure an effective system, you will require the following modules as a minimum:
Sales Orders (and therefore Accounts Receivable) - to record sales and invoice customers.
Work in Progress - to record committed costs (labor and material), uncommitted costs (labor, material and subcontract) and part billings.
Purchase Orders and Accounts Payable - to record committed costs (material and subcontract).
The Quotations module is required if you want to record deposits from customers against contracts.
The following needs to be configured before you can use the Projects and Contracts system:
Define the sales and payments interfaces you require (see General Ledger Integration).
Integration level cannot be by branch (see AR Sales Ledger Interface and AR Payments Ledger Interface). |
Select the setup options you require (see WIP Setup - Projects and Contracts tab).
A formal sequence of operations cannot be prescribed for the Projects and Contracts module, as the module is event-driven. The implication is that the job is engineered to order so a bill of materials does not exist; a hierarchy exists instead. You need to define the hierarchy required according to the contract.
Provided a hierarchical job has been created, you can use a number of different methods to control the project/contract.
Following is one method of using the Projects and Contracts module:
Optionally use the Standard Hierarchies Heads/Sections and Standard Hierarchy Code Maintenance programs to define standard hierarchies.
Standard hierarchies are used by companies that build/manufacture items which are similar in most respects. By defining a standard hierarchy (which is stored in a library of hierarchies) you avoid having to re-enter the entire hierarchy for every job created. You simply retrieve the standard hierarchy and amend the parts that differ.
Use the Browse on Contracts program to add, change or delete contract details.
Contracts are used to group together a number of jobs so that reviews and profitability can be jointly accessed. The customer must be defined against the contract.
Optionally use the Estimates program to create an estimate.
You use an estimate to calculate the cost of manufacturing an item and to estimate the length of time it would take to produce. The components and operations required to make a non-stocked item are entered against the estimate, together with the structural relationships between the parent and component parts.
Use the Quotation Entry program to create a hierarchical quotation for the contract.
Creating a quotation enables you to define a number of offers that can be presented to a customer for consideration. Quotations can be defined for both stocked and non-stocked items. In addition, you can attach lines from an estimate to a quotation.
If the contract is subject to a deposit being paid by the customer, then you must create a hierarchical quotation linked to the contract. |
Use the Quotation Confirmation program to confirm the quotation.
Ensure that you select to create a sales order and jobs. Optionally select to create purchase orders. Select to create deposits and/or retentions if these are required in terms of the contract. If the billing method defined against the contract is not Manual entry, then select to create schedules.
Once you confirm the quotation, the following programs are loaded:
Projects and Contracts Deposit Creation. This program is loaded if the contract is subject to a deposit being paid by the customer. It enables you to add the deposit information against the job and sale order created from the quotation.
Projects and Contracts Retention Creation. This program is loaded if the contract is subject to a retention. It enables you to add the retention information against the job and sale order created from the quotation.
Browse on Billing Schedules. This program is loaded If the billing method defined against the contract is not set to Manual entry. It enables you to maintain the billing schedules for the contract.
Distribute Sales Order Value. This program enables you to distribute the sales order value to the heads/sections of the hierarchy.
Use the Sales Order Entry program to invoice the miscellaneous sales order line for the deposit.
Use the Payments and Adjustments program to receipt the payment of the deposit against the customer's account.
Process the job(s), including issuing material an labor.
Use the Billing Schedule Review program to review the schedules due for billing.
Optionally use the Browse on Billing Schedules program to maintain schedules before billing them.
Use the Billing Schedule Review program to select and post the required schedules.
If the contract is subject to a deposit, you can apply part or all of the deposit amount to the billing schedule.
If the contract is subject to retentions, then you can apply all or part of the retention value to the billing schedule.
The Part Billings program is loaded, enabling you to post the WIP values. These are the cost of sales values. You use the G/L Distribution function to distribute any outstanding amounts for the job, to ledger accounts of your choice.
The Release of Backorder Quantity program is loaded, enabling you to release order lines that were placed on backorder when the hierarchical sales order was created.
The Distribute COS and Billings program is loaded, enabling you to distribute the Cost Of Sales and/or Billing values to the heads/sections of a hierarchy.
Optionally print the Contract Progress Report to review the costs per job apportioned across the heads.
Optionally use the Adjust Billing Value program to adjust the billing values against the heads/sections of the job(s).
Use the Sales Order Entry program to invoice the customer for the sales value.
Optionally use the Job Transaction Report to print a report of the transactions contributing to the costs against the heads/sections of a job.
You can use the Job Costs Query to query jobs that have been allocated to a contract and the costs processed against the jobs, and the total costs for a hierarchical job, including details of the head/section costs.
In every transaction affecting a hierarchical job, the Projects and Contracts module enables you to update that part of the hierarchy to which the transaction relates. You can then examine the sum (or details) of the transactions sorted within the hierarchy.
The imprinting of transactions occurs in three ways:
Singular
Uncommitted costs are always imprinted singularly (i.e. on a line-by-line basis). As each allocation of labor, subcontract or material is assigned to a job, the job's hierarchy is presented to you to select the appropriate head/section to update.
If you want to allocate the same material to more than one head/section, you must create more than one allocation for that material.
Dispersive
Transactions which affect sales, billings, or cost of sales are treated dispersively. In these cases a single value can be apportioned over a number of heads/sections. The job's hierarchy is presented to you so that a portion of the total value can be allocated to a selected head/section. The hierarchy is then presented repeatedly for further portions to be allocated until the total value is dispersed.
You will be unable to exit from the distribution window until the value to disperse is zero.
Automatic
Issues, labor postings, purchase receipts, purchase requisitions or orders/lines, creditor's invoice postings or cash book withdrawals which are made against existing allocations, will not present you with the job's hierarchy for the selection of the appropriate head/section. Instead, the imprint from the relevant allocation is automatically assigned to the matching transaction.
You can, however, issue goods to a job which have not previously been allocated. Similarly, dummy operations can be created and fulfilled when posting labor. In these cases, the hierarchy is presented on a singular basis so that both the uncommitted costs and committed cost transactions can be simultaneously imprinted. The same applies should materials be received via creditor's invoice postings or cash book withdrawals which have not been previously allocated.
The above are all committed costs which are known about after the event. However, two types of transactions occur before the event. These are the raising of a purchase requisition line and the creation of a purchase order line. If a requisition line is raised for a material which has not previously been allocated to the job, an allocation is created and the job's hierarchy presented to allow selection of the appropriate head/section for the uncommitted cost.
If a purchase order line is created for a material which has not previously been allocated to the job, an allocation is created and the job's hierarchy presented to allow selection of the appropriate head/section for the uncommitted and committed cost.
You will not be permitted to raise a purchase requisition line or purchase order line for a subcontract operation which does not already exist in the job's labor allocations. The subcontract operation can, however, be added via the operation browse.
Although the issue of costs to a job appears to increase committed costs and reduce uncommitted costs, this is not the actual methodology of the program. Instead, committed costs are increased but uncommitted costs remain the same; they are merely presented as total uncommitted costs less committed costs.
Similarly, committed costs are presented as total committed costs less cost of sales. It is for this reason that the issue of a previously unallocated item creates both a committed and uncommitted cost record.
The Projects and Contracts module enables you to establish a hierarchy of revenue and costing by job. Transactions posted in modules such as Sales Orders, Purchase Orders, Accounts Payable, Cash Book and Work in Progress are assigned to a position within the hierarchy.
The Work in Progress module is central to the Projects and Contracts system and provides the following facilities:
To create/change uncommitted costs
Post labor and materials to committed costs
Part bill the customer.
The following programs are affected:
Jobs
Creating a Hierarchical Job (Job Entry)
To create a hierarchical job you must select the Non-stocked and Hierarchical options from the main Jobs screen.
Once you select the Create Job function, you can indicate whether the job is linked to a contract. This enables you to link multiple jobs to one contract. You must also indicate whether you want to assign a Standard hierarchy to the job or whether you want to create a User defined hierarchy to be assigned to the job.
Hierarchical jobs cannot be involved in a master/sub job relationship (i.e. you cannot attach a sub job to a master job if the master job is a hierarchical job. Similarly, any sub job you attach to a master job cannot be a hierarchical job). |
Maintaining a Hierarchical Job (Browse on Jobs)
The Hierarchy menu enables you to select the Change Contract option (to change the contract number assigned to the job) or the Hierarchy Maintenance option (to change the hierarchy of heads and sections assigned to the job.
Add Allocations (Material) (Browse on Jobs)
You use the Hierarchy menu to add, update, or cancel the expected (uncommitted) costs of a job. These are the material allocations which are assigned a position in the job's hierarchy. When adding an allocation, you must assign the entire allocation value to the appropriate head/section of the hierarchy, thereby increasing the uncommitted cost of that head/section. Cancelling an allocation decreases the uncommitted cost of the head/section of the cancelled allocation.
Add Allocations (Operation) (Browse on Jobs)
You use the Hierarchy menu to add, update, or cancel the expected (uncommitted) costs of a job. These are the operation allocations which are assigned a position in the job's hierarchy. When adding an allocation, you must assign the entire allocation value to the appropriate head/section of the hierarchy, thereby increasing the uncommitted cost of that head/section. Cancelling an allocation decreases the uncommitted cost of the head/section of the cancelled allocation.
Job Issues (Job Issues)
Job issues add the value of the issue to the committed value of the head/section of a hierarchy. The material/operation being issued must be linked to the job allocation. If there are no allocations for the issue, then you must create the allocation to which the hierarchy must be assigned.
If multiple allocations exist you can select one, which will automatically determine the head/section to be used.
You can use the Kit Issue function to automatically issue multiple materials and/or operations. The appropriate allocation's heads and sections are assigned automatically.
Labor Posting (Labor Posting)
Labor postings automatically update the committed cost of the operation allocation's head/section as they were defined when the allocation was originally captured. If an allocation does not exist, you must create it and assign it to a hierarchy.
A labor posting can be made against a non-existent operation. In this case, a dummy operation is created and both the committed and uncommitted costs are increased for a selected head/section.
You can assign costs to a subcontract operation during labor posting. This cost updates the committed value of the head/section defined when the operation's allocation was originally created.
Part Billings (Part Billings)
You use the Part Billings program primarily to invoice a customer based on work completed on a non-stocked item at a given point in time. At the same time, the work in progress value is reduced and distributed to specific General Ledger accounts. Within the context of a hierarchical job, the following functions are available:
Move quantities on back order for an existing sales order line to the shipped quantity field, thereby increasing the billed and cost of sales value of a job and preparing the sales order for invoice generation. The value by which cost of sales is increased is deducted from the job's WIP value. Create a sales order to allow invoicing of the customer, increasing the job's sales, billing and cost of sales values, while decreasing the work in progress value.
Deplete the outstanding quantity to make on a job.
Reduce a job's WIP value to expenses outside the Projects and Contracts hierarchical costing system.
Close a job, thereby reducing to zero the value of uncommitted costs and preparing the job for purging from the system.
Re-open a job which was previously closed in error.
If you create a sales order using the Part Billings program, then both the sale and billing values of the job are incremented by the value of the sale, and the heads and sections selected are applied to both.
If the sales order already existed (and, therefore, has already been sectionalized at the time of creation) there is no compulsory sectionalization enforced on the billing to make it compatible with the heads and sections imprinted on the sale. In both cases, no compatibility is enforced when sectionalizing cost of sales.
If you mark a job as complete (thereby reducing the uncommitted costs to zero) and then re-open it, the uncommitted cost will remain at zero.
Although several order lines of a sales order can point to a job, only one sales order can point to a specific job.
Period End (WIP Period End)
The purging of jobs deletes the job hierarchy.
If running a month end, then month-to-date fields on the projects and contracts hierarchy file are set to zero.
At year end the current year's figures are added to the previous year and the current year's figures are set to zero.
The Sales Orders module serves the dual purpose of recording sales made to the customer (such as products, variations and refunds) and the generation of customer invoices when a part billing has been made within the Work in Progress module.
A miscellaneous sales order line is automatically created when a deposit is defined against a contract (see Browse on Contracts and Browse on Deposits).
Purchase orders can be created and allocated to a job, thereby increasing its committed costs.
The Requisition System can be used by the project manager to initiate purchase orders. The Requisition System enables you to request items to be purchased for a hierarchical job; assign the requisition to a level of the hierarchy; and confirm the requisition into a firm purchase order.
Order Entry and Maintenance (Purchase Order Entry)
When creating a purchase order and a hierarchical job number is entered, you must allocate the value against a hierarchy. If an allocation does not exist, you must create the allocation.
When creating a purchase order for a non-stocked item, you can allocate the costs against a subcontract operation. The allocation must then be assigned to a level of the hierarchy. The net value of the purchase order line is added to subcontract purchases. The value of subcontract purchases is printed on the Contract Progress Report, Job Progress Report and on the Job Transaction Report.
Requisition System
The Requisition System enables you to request items to be purchased for a hierarchical job; assign the requisition to a level of the hierarchy; and confirm the requisition into a firm purchase order.
When creating a requisition for a hierarchical job, you must allocate the value against a hierarchy. If an allocation does not exist, you must create one.
When creating a requisition for a non-stocked item, you can allocate the costs against a subcontract operation. The allocation must then be assigned to a level of the hierarchy.
The value of the allocation is assigned to the uncommitted section of the hierarchy. Once the requisition has been confirmed into a purchase order, the value of the purchase order line updates the committed section of the hierarchy while the uncommitted section of the allocation falls to zero.
Receipts and Inspections (Purchase Order Receipts and Purchase Order Inspection)
A receipt via a purchase order increases the work in progress value and material cost to date against the hierarchical job.
Order Purge (Purchase Order Purge)
When purging a purchase order line, the link to the purchase order hierarchy is deleted.
The Accounts Payable module can be used to increase the work in progress value (committed cost) of a hierarchical job when posting supplier invoices. You can simultaneously reduce the outstanding quantity on a purchase order.
Invoice Posting (AP Invoice Posting)
When using the G/L Distribution function you can post the value of supplier invoices directly against a hierarchical job. This increases the committed value of the hierarchy, the work in progress value and creates the allocation.
An incorrectly allocated invoice must be reversed and re-posted to the correct job, allocation, ledger account or hierarchy. |
The Cash Book module can be used to increase the work in progress value (committed cost) of a hierarchical job when entering a withdrawal. You can simultaneously reduce the outstanding quantity on a purchase order, if required.
Deposits and Withdrawals (Deposits and Withdrawals)
The Withdrawal function of this program is affected by Projects and Contracts. When using the G/L distribution function you can post the withdrawals directly to a job. This increases the committed values of the hierarchy, the value of work in progress and creates the allocation.
Landed Cost Tracking (via the Purchase Orders module) can be used, in conjunction with the Purchasing system, to calculate a more accurate receiving value of goods. These values can then be used to increase the work in progress value of a hierarchical job.
The Quotations system enables you to create a quotation for the contract. Hierarchical jobs which are linked to the contract can be created from the quotation.