THE POSTING PROCESS - Special Topic BL-2

The posting process in Costpoint Billing involves updating the general ledger, creating accounts receivable records, and inserting appropriate data into the billing history tables. This special topic will assist you in analyzing the process of posting bills and in understanding the tables involved. Once you understand the posting process, you can more easily analyze posting problems and resolve setup issues.

There are two types of bills in Costpoint: transaction-based bills and manual bills.  The system calculates transaction-based bills using the transactions that are posted to the project.  It calculates manual bills using a predetermined schedule, percent complete, units, or a variety of other methods. You can enter and edit manual bills in the Edit Manual Bills, Edit Project Product Bills, Edit Customer Product Bills, and Edit Milestone/Percent Complete Bills screens (all in Projects»Billing»Edit Billings). Only the transaction-based bills will collect data in the OPEN_BILLING_DETL table and have transaction history stored in the BILL_INVC_HDR_HS and BILL_DETL_HIST tables. Manual bills have their own history tables and generally do not insert data into the OPEN_BILLING_DETL table.  This special topic outlines the general procedure that the system uses to post billings.  This topic covers details specific to manual or transaction-based bills as necessary.

Posting to the General Ledger

Whether you are posting manual or transaction-based bills, the posting process requires receivable and unbilled accounts. The Project Account Group that is linked to the project must contain an account with a Function Code of BILLED A/R and one with a Function Code of UNBILLED_GENRL. If you are using customer product bills, the accounts are found in the Maintain Customer screen (click Accounting»Accounts Receivable»Customer Info). The system updates the following General Ledger tables: GL_POST_SUM, FS_SUM, GL_DETL, and REF_SUM.  Use the following screens to post the bills: Post Standard Bills, Post Progress Payment Bills, Post Customer Product Bills, Post Project Product Bills, Post Manual Bills, and Post Milestone/Percent Complete Bills (all in Projects»Billing»Post Billings).

When you post the bill to the general ledger, the following processes occur:

Receivable

The application searches the project's project account group for the account that has been assigned a Function Code of BILLED A/R (in the Project Account Groups screen (click Projects»Project Setup»Controls)). You can assign only one BILLED A/R function code per project account group; the posting process requires one such account in the project's project account group. If the application does not find a BILLED A/R function code, it will display an error message and stop the posting process. The system uses this process regardless of which type of billing is being posted. The Post Customer Product Bills screen (click Projects»Billing»Post Billings) uses the account set up in the Default Accounts subtask of the Maintain Customer screen (click Accounting»Accounts Receivable»Customer Info) as the receivable account.

Sales/VAT tax - The system reviews the billing record for sales tax amounts. For each sales tax amount, there is a corresponding sales tax code. These codes are maintained in the Maintain Sales/Value Added Tax screen (click Others»System Administration»System Codes). In that screen, the sales tax code is listed along with an account/org to be used when sales or VAT tax is posted. If a bill has multiple sales tax codes, multiple accounts/orgs will be updated with sales tax amounts.

Discounts - There are two methods of recording discounts in the system. Discounts can be computed when the bill is calculated or they can be calculated based on customer terms and taken when the invoice is paid. You select the discount method in the Other Info subtask of the Project Billing Info screen (click Projects»Billing»Billing Master or Projects»Project Setup»Revenue Setup) and in the Basic Revenue Info screen (click Projects»Project Setup»Revenue Setup).

The first type of discounts compute when invoices calculate. There are seven discount methods that can be set up.  They include PLC discounts, account discounts, account discounts w/burden, aggregate volume by customer, aggregate volume by customer w/burden, aggregate volume by project, and aggregate volume by project w/burden.  These discounts print on the invoice and are held in the billing tables.  However, the discount amount does not post to a discount account when the bill is posted.

The second type of discount are discounts that the program calculates and stores based on discount terms such as 1% net 10, etc.). This is different from a volume or good customer discount, because this is the discount that the customer will receive if he pays the invoice promptly. However, because it is not known whether the customer will make this payment in time to take advantage of the discount, only an informational entry is made.

Unbilled

The application searches the project account group that is linked to this project for the account that has been assigned a Function Code of UNBILLED - GENERL (in the Project Account Groups screen (click Projects»Project Setup»Controls)). You can assign only one UNBILLED - GENERL function code per project account group; the posting process requires one such account in the project's project account group.  If the application does not find an UNBILLED - GENERL Function Code, the system will display an error message and stop the posting process. The system uses this process regardless of which type of billing is being posted.  The Post Customer Product Bills screen (click Projects»Billing»Post Billings) uses the account in the Default Accounts subtask of the Maintain Customer screen (click Accounting»Accounts Receivable»Customer Info) that has been assigned a function code of REVENUE.

The system reviews the Project Billing Info table for the level at which the receivable should be posted. It reviews the Basic Revenue Info table to find the project level at which revenue should be posted and compares the two. If the levels are different, the system posts the unbilled amount at the higher, less detailed, of the two levels.

If retainage exists, it is debited to the account in the project's project account group with a Function Code of UNBILLED-RETAIN.

During this process, the system updates the following tables: GL_DETL, GL_POST_SUM, FS_SUM, and REF_SUM.  The REF_SUM table is optional. 

Update Accounts Receivable Tables

Regardless of which type of bill being posted, the system inserts records into both the AR_HDR_HS and AR_DETL_HS tables during the posting process. All detailed information regarding the bill is transferred to these tables, including invoice ID, invoice amount, sales tax, sales tax code, discount information, customer ID, project number, posting sequences, and all account information. The system uses these tables to print the accounts receivable aging report and to post the cash receipts.

Update Billing History Summary

Once the General Ledger has been updated, Costpoint updates the Maintain Billing History screen (click Projects»Billing»Billing History) (BILLING_SUM). The system uses this table to print the cumulative column on billings.  The Calculate Billings screen (click Projects»Billing»Calculate Billings) also uses this table to calculate potential over ceiling costs, fees, and total billings. The process updates this table at the project level where the transactions were originally posted. If you are initializing this screen and only want to print cumulative columns on the summary bills, you need to enter summary cumulative data only at the billing level.

Update Billing History Detail

The Billing Detail History table (BILL_DETL_HIST) is updated next. Only transaction-based bills update this table.

The Billing Detail History is updated with current transactions billed. The Billing Detail History table stores billing history at the transaction level. Supporting information, including timesheet date, journal entry number, and voucher number, is stored for each transaction. Previously billed transactions and portions of transactions that have been written off are updated at this level as well. Non-transaction billed amounts (burdens, fee, retainage, fee over ceiling, cost over ceiling) are stored by account/org and pool for burden amounts.

Manual Bills do not have detail tables. All information for manual type bills is stored in the header tables outlined in the next section.

Update Header History tables

Next, the system updates the header history tables.  The following tables are updated by each billing posting:

Posting Screen

Table

Post Standard Bills

BILL_INVC_HDR_HS

Post Customer Product Bills

CUST_PROD_HDR_HS

Post Project Product Bills

PROJ_PROD_HDR_HS

Post Manual Bills

MANUAL BILL_HS

Post Milestone/Percent Complete Bills

MILESTONE_HDR_HS

Post Progress Payment Bills

PRG_PMT_HDR_HS

 

The invoice header in each type of billing is copied to the respective header history table.   When you post standard bills, the system creates a record in the invoice header history table for the project level to which the bills are posted and any detail levels that are listed in the Supporting Schedule Headers (Detail Bills) subtask in the Project Billing Info screen (click Projects»Billing»Billing Master or Projects»Project Setup»Revenue Setup). For all the manual bill types, only one record is inserted to the header history tables. 

          ¨         Flexibility to reprint summary and detail exists in the event that invoices are posted before invoices are printed. To allow this flexibility of printing detail billings, a record exists in the Billing Edit Invoice Header table at the invoice posting level, and at the required detail level. 

          ¨         Only records at the invoice posting level are copied to the Billing Invoice Header History table, if the billing is a manual billing or no detail bills are required.

          ¨         Each record is assigned a supporting schedule number in the Billing Invoice Header History. This number is also stored in the Billing Detail History. If you need to recreate invoices, the system uses this field to link the header record to the detail that was billed on a given project and invoice.

Update Billing Master Table

In the final step, the posting process updates the Project Billing Info table (PROJ_BILL_INFO) with the bill number. The billing number is stored in the Last Bill No field in the Project Billing Info screen (Projects»Billing»Billing Master or Projects»Project Setup»Revenue Setup) at the level to which the invoice was posted.

Tables Updated by the Posting Process