THE POSTING PROCESS

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 topic should assist you in analyzing the process of posting bills and in understanding the tables involved. After 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. Costpoint 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 modify manual bills on the Manage Manual Bills, Manage Project Product Bills, Manage Customer Product Bills, and Manage Milestone Percent Complete Bills screens. Only the transaction-based bills 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 topic outlines the general procedure that Costpoint 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 on the Manage Customers screen. Costpoint 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.

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 (on the Manage Project Account Groups screen). 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 displays an error message and stops the posting process. Costpoint uses this process regardless of which type of billing is being posted. The Post Customer Product Bills screen uses the account set up on the Default Accounts subtask of the Manage Customers screen as the receivable account.

Sales/VAT tax Costpoint reviews the billing record for sales tax amounts. For each sales tax amount, there is a corresponding sales tax code. These codes are maintained on the Manage Sales or Value Added Taxes screen. 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 are updated with sales tax amounts.

Discounts There are two methods of recording discounts in Costpoint. 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 on the Other Info tab of the Manage Project Billing Information screen and on the Manage Revenue Information screen.

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, and so forth.). This is different from a volume or good customer discount, because this is the discount that the customer receives 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 (on the Manage Account Groups screen). 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, Costpoint displays an error message and stops the posting process. Costpoint uses this process regardless of which type of billing is being posted. The Post Customer Product Bills screen uses the account on the Default Accounts subtask of the Manage Customers screen that has been assigned a function code of REVENUE.

Costpoint 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, Costpoint 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, Costpoint 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, Costpoint 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. Costpoint 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 Manage Billing History screen. It uses this table to print the cumulative column on billings. The Calculate Standard Bills screen 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, Costpoint 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, Costpoint 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 on the Detail Levels subtask of the Manage Project Billing Information screen. 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, Costpoint 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 Number field on the Controls tab of the Manage Project Billing Information screen at the level to which the invoice was posted.