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.
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:
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.
The billing is posted at the level of the project specified on the Manage Project Billing Information screen. The BILLED A/R function code must exist at this level. All the transactions at or below the billing level are summarized and posted at the level shown on the Manage Project Billing Information screen.
The owning organization assigned to the project is used as the organization for posting. The project's owning organization is established on the Manage Project User Flow. The Post Customer Product Bills application uses the organization on the Default Accounts subtask of the Manage Customers screen.
Costpoint posts the invoice amount net of discounts, sales tax, and shipping as the billed receivable for invoices with a status of Selected.
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.
Costpoint multiplies the invoice amount by the terms discount to arrive at the discount amount that the customer might take. It posts this amount to the A/R Invoice History table as a memo entry. If the discount is taken, it is reflected as part of the entry to Cash Receipts when payment is posted.
When you post cash receipts, Costpoint updates the A/R Invoice History table with the discount taken, thus providing you with a complete history by customer of discounts offered and discounts taken.
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.
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.
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.
Billed amounts are summed with previously billed amounts to arrive at Inception-to-Date (ITD) amounts billed.
Transactions are then summed by project/account/org to arrive at billed amounts at this level.
Burden amounts are stored by pool, and unit amounts are stored by CLIN and item.
Fourteen different transaction types update the Billing Summary table, as follows: Burden, Cost, Fee, Hours, Retainage, Units, Fee Over Ceiling, Cost Over Ceiling, Total Over Ceiling, Schedule, Fee on Labor, Cost of Money, Fee on Hours, and Tax.
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.
The transactions are entered in this table at the level of the project for which they were originally posted. The level at which the bill was posted is also recorded. Each record is assigned a supporting schedule number in the Billing Detail History table. This number is also stored in the Billing Invoice Header History table. 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.
Additionally, billing format information is stored in this table. Billing format information includes the group and line number on which this transaction was billed. This allows you to gather and roll up transactions by the groups and lines on which they were billed. If you need to recreate invoices in the same format in which they were originally submitted, these fields can be used to summarize costs.
Once the transactions have been fully billed, they are deleted from the Open Billing Detail table. The Open Billing Detail table is updated by journal postings. It contains all transactions recorded but not yet billed. The Calculate Standard Bills screen uses the Open Billing Detail table to arrive at current billable amounts; however, once the total amounts are billed, they must be removed from Open Billing Detail to prevent future billing.
You can partially bill transactions if the Allow Transactions To Be Partially Billed check box is selected on the Controls tab of the Manage Project Billing Information screen. Partial billings are needed only when there is some type of ceiling on the project. To make this option possible, only fully billed transactions are deleted from Open Billing Detail. If a transaction has been partially billed, it exists in both Open Billing Detail and Billing Detail History. The Calculate Standard Bills program recognizes and bills only the unbilled portion of transactions; however, a record for this transaction exists in both 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.
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.