Generating WIP and Estimate Job Invoices

Overview

A job invoice is an invoice of fees payable for the job, that may be raised either in an individual invoice, or with other job invoices in a combined invoice. However, before the job invoice is used to create a draft invoice or merged with other job invoices to create a draft invoice, the job invoice amount can be generated.

Job invoices are generated as estimate or work-in-progress amounts:

  • Estimate (EST) amount for a job invoice—The amount presuming all outstanding work is completed, so therefore based upon what work is done to date and what is outstanding.
  • Work-in-progress (WIP) amount for a job invoice—The amount based upon what work is done to date.

A job invoice estimate or WIP is generated based upon the job's samples and tests and their invoicing status.

A job invoice estimate or WIP includes surcharges, rebates, discounts and taxes, and are impacted by fixed pricing in the job and by quotes.

A job invoice estimate or WIP is generated at any time before the job invoice is used to create a draft invoice.

Process

Job invoices are only generated for production, internal, proposal and template jobs.

This option is not available if the job is not activated and still has a Workflow Status of Registered or if the job is a not a production, internal, proposal and template job.

Ensure that WIP and estimate amounts are up to date prior to generating estimate or WIP amounts for a job invoice. WIP and Estimate amounts can also be updated in the CCFNRP—Financial Report application.

Configuring which Samples, Sample Schemes and Sample Scheme Analytes in the Job Invoice are Invoiced Entities

Samples, sample schemes and sample scheme analytes within the job invoice must be flagged for invoicing. Refer to Maintaining Job Invoice Samples and Tests from Registration.

Configuring Fixed Pricing, Package Pricing and Regular Pricing for Client Invoices

The process for configuring packages, schemes and analytes for generating estimate or WIP amounts for job invoices is largely the same as for configuring them for job costs and for generating client invoices.

The sample schemes and sample scheme analytes must link, in some manner, to a price code for pricing job invoices as the price code is the link between the priced entity and the price schedule used to determine the price.

Job invoice prices are determined using fixed pricing that may be in place on job schemes and job scheme analytes, package pricing and regular pricing.

Job invoice pricing determines prices in the following order:

  • Fixed pricing—Where any invoiced job scheme or job scheme analyte has a fixed base price, then the fixed base price is used as the base price for the sample schemes and sample scheme analytes, respectively.

    Where a job scheme or job scheme analyte has a fixed block price, then the fixed block price is used as the block price for the sample schemes and sample scheme analytes, respectively.

    If a job scheme or job scheme analyte has a fixed base or block price, then package pricing is not applied at all, and every sample scheme and sample scheme analyte that would have had package pricing applied has regular pricing applied instead.

  • Package pricing—Where any invoiced sample scheme or sample scheme analyte is linked to a package price code, then the sample is priced using the active price book, according to the base price and block price determined using the price schedule linked to the package price code.

    A sample may have sample schemes and sample scheme analytes that link to more than one template sample and package price code. Where this is the case, the sample is priced for multiple packages.

  • Regular pricing—Where any invoiced sample scheme or sample scheme analyte is not linked to a package price code, then the sample schemes and sample scheme analytes are priced individually using the active price book, according to the base price and block price determined using the price schedule linked to the job scheme's or job scheme analyte's price code.

Note: The price codes used for determining job invoice amounts are the same ones used for raising job costs and client invoices. The only difference is that where fixed pricing is in place on job schemes or job scheme analytes, then it is applied for job invoice amounts and client invoices, whereas it is not applied for job costs.

Job invoice pricing is determined for entities that are flagged for invoicing.

Configuring Fixed Prices for Job Schemes and Job Scheme Analytes

A fixed base price and/or fixed block price can be applied to job schemes and job scheme analytes. If they are applied, then no package pricing is applied by the pricing engine. Refer to Maintaining Job Schemes to update the invoicing details for a job scheme or job scheme analyte, respectively.

Upon Generating an Estimate or Work-in-progress Job Invoice

Upon generation of an estimate or work-in-progress job invoice:

  • The template used to create an estimate client invoice is the laboratory's Proposal Estimate Invoice Template for a proposal job or the laboratory's Invoice Estimate Template for a production job.

  • The template used to create a work-in-progress client invoice is the laboratory's Proposal WIP Invoice Template for a proposal job or the laboratory's Invoice WIP Template for a production job.

  • The invoice line items are extracted for the report in the invoice's Locale, and the LANGUAGE variable for the report, available in the DSC, is set to the invoice’s Locale.

  • The invoice document's filename is generated from the invoice template's Filename Syntax Code.

  • An entry for the estimate or work-in-progress client invoice is created in the report repository (CCREPORT table) and has a Report Type of Grid.

  • The event is audited.

  • The estimate or work-in-progress invoice document generation process is executed on the system batch queue. The BATCH_QUEUE_TASKS_PRIORITY application preference is used to set the batch queue task priority for these batch job executions.

Refer to the Appendix—Pricing Engine for details on how the pricing is determined for client invoices.

Generate an estimate invoice for a job invoice

Generate a work-in-progress invoice for a job invoice

Configuring Package Pricing

Package pricing is a concept whereby a suite of schemes and analytes registered on a sample is priced using a package price for job costs and client invoices.

For each distinct package price code on the sample schemes and sample scheme analytes in the job, each sample where any of its sample schemes and sample scheme analytes linked to that package price code is priced according to the package price code.

Configuring Template Samples as Packages for Package Pricing

A package is set up as a template sample with sample schemes and sample scheme analytes denoting the suite of tests. A template sample has an optional link to a package price code (sample-based price types only), so that the suite of tests can be priced as a package.

Creating price codes with a one-to-one link to packages is typical, however, more than one package can be associated with a single price code if that suits the laboratory.

Refer to Maintaining Price Codes to configure codes.

When a sample-based price code is used as a package price, there is some difference in the way the price code is used to calculate prices:

  • When used for package pricing, then the base price is applied only once for all samples associated with the package, that is, the base price is effectively used as a set up charge for package pricing.
  • When used for regular pricing, then the base price is applied for each sample.

Refer to Maintaining Template Jobs and Samples to configure template samples with package pricing.

Registering Tests using Template Jobs and Samples for Package Pricing

Where one or more sample schemes and sample scheme analytes are registered using a template job, then the sample schemes and sample scheme analytes are linked to the related template sample. If the template sample is linked to a package price code, then those sample schemes and sample scheme analytes are linked also to the package price code. The job scheme's or job scheme analyte's price code defaults from the template job scheme and job scheme analyte, respectively. Refer to Registering Jobs from Template Jobs.

Where one or more sample schemes and sample scheme analytes are registered using a template sample (aka a package), then the sample schemes and sample scheme analytes are linked to the template sample. If the template sample is linked to a package price code, then those sample schemes and sample scheme analytes are linked also to the package price code. Where the creation of a sample scheme or sample scheme analyte causes the creation of a job scheme or job scheme analyte, then the job scheme's and job scheme analyte's price code default from the scheme and scheme version analyte, respectively. Refer to Adding Samples using a Template Sample to a Job and Adding Tests using a Template Sample to a Sample.

Where registration using a template job or template sample places package price code on sample schemes and sample scheme analytes, then those sample schemes and sample scheme analytes are priced using package pricing.

Applying and Removing Package Pricing to and from Samples

Where a sample scheme or sample scheme analyte is linked to a template sample, the package price code can be removed or re-applied from the template sample, as required. Refer to Applying and Removing Package Pricing to and from Samples. Where a package price code is removed from sample schemes or sample scheme analytes, then those sample schemes and sample scheme analytes are priced using regular pricing.

Configuring Regular Pricing

For each job scheme or job scheme analyte that links to a price code, each sample scheme or sample scheme analyte, where the sample scheme and sample scheme analyte have not been included in package pricing, are priced according to the job scheme's or job scheme analyte's price code, respectively.

Configuring Schemes and Analytes for Regular Pricing

Where a master scheme has a price type of scheme-based, sample-based or unit-based, the master scheme has an optional link to a price code (scheme-based, sample-based or unit-based price codes only).

Where a master scheme has a price type of analyte-based, the master scheme version analytes have an optional link to a price code (analyte-based price codes only).

Creating price codes with a one-to-one link to schemes or analytes is typical, however, more than one scheme or analyte can be associated with a single price code if that suits the laboratory.

Refer to Maintaining Price Codes, Maintaining Schemes and Maintaining Scheme Version Analytes.

When a sample-based price code is used as a package price, there is some difference in the way the price code is used to calculate prices:

  • When used for package pricing, then the base price is applied only once for all samples associated with the package, that is, the base price is effectively used as a set up charge for package pricing.
  • When used for regular pricing, then the base price is applied for each sample.

Registering Tests using Master Schemes and Analytes for Regular Pricing

When tests are specified when adding a group of samples to a job, thereby causing the creation of a job scheme or job scheme analyte, then the job scheme and job scheme analyte inherits the price code from the master scheme and scheme version analyte, respectively. Refer to Maintaining Sample Tests.

Registering Tests using Template Jobs and Samples for Regular Pricing

Where one or more sample schemes and sample scheme analytes are registered using a template job, then the sample schemes and sample scheme analytes are linked to the related template sample. If the template sample is not linked to a package price code, then those sample schemes and sample scheme analytes are not linked to any package price code. The job scheme's or job scheme analyte's price code defaults from the template job scheme and job scheme analyte, respectively. Refer to Creating Production Jobs from Template Jobs.

Where one or more sample schemes and sample scheme analytes are registered using a template sample (aka a package), then the sample schemes and sample scheme analytes are linked to the template sample. If the template sample is not linked to a package price code, then those sample schemes and sample scheme analytes are not linked to any package price code. Where the creation of a sample scheme or sample scheme analyte causes the creation of a job scheme or job scheme analyte, then the job scheme's and job scheme analyte's price code default from the scheme and scheme version analyte, respectively. Refer to Adding Samples using a Template Sample to a Job and Adding Tests using a Template Sample to a Sample.

Where registration using a template job or template sample does not place a package price code on sample schemes and sample scheme analytes, then those sample schemes and sample scheme analytes are pricing using regular pricing.

Updating a Job Scheme's or Job Scheme Analyte's Price Code

A job scheme's or job scheme analyte's price code is updatable. Refer to Maintaining Job Schemes to update the invoicing details for a job scheme or job scheme analyte, respectively.

Effect of Client Quotes on Determining Pricing

Quotes are like a price book but have links to specific schemes and analytes as well as the ability to set percentage discounts on default pricing, or to create cloned price schedules for the quote. Quotes allow the laboratory to record the actual prices or discounts of ‘book prices’ that are applicable to the client or project.

When created, quotes are linked to their specific client, but the same quote code can be created and can be associated with multiple clients and projects. Information is recorded when a quote is assigned to a client or project. When the quote is actually used for a job invoice then date last used is updated.

A quote might have an expiry period like a price book, and is the way that specific price schedules can be created for specific clients, to ensure that the invoices created can reflect the agreed pricing.

When a quote is applied to a job invoice, the schemes and analytes in the invoice that are covered by the quote have their pricing determined from the quote instead of from the price schedule in the price book selected for the invoice.

Refer to the Maintaining Invoicing Details for a Client to configure quotes.

Configuring which Price Book is applied for Client Invoices

When a job invoice is created for a selected price book. Refer to Maintaining Job Invoices.

Configuring Job Invoice Estimate and WIP Templates

Where the invoice client's Invoice Sample Details is selected, then the template used to generate the document for an estimate or work-in-progress invoice is the laboratory's Detail Invoice Template, otherwise it is the laboratory's Summary Invoice Template.

Refer to Configuring Invoicing Details for a Laboratory to configure the default job cost document template for the laboratory.

Understanding the Differences between Pricing by Price Type

A count is passed into the price schedule to determine the price. The entity that is counted varies by price type:

  • Sample-Based—The count is the number of samples, where:
    • The sample is flagged for inclusion in job costs.
    • At least one sample scheme is flagged for inclusion in job costs, and costed workflow statuses for WIP or estimate job costs exist on these sample schemes.

    Where used in package pricing, the base price is applied only once for all samples associated with the package, and the block price is applied for each sample.

    Where used in regular pricing, the base price is applied for each sample, and the block price is applied for each sample.

  • Scheme-Based—The count is the number of analytes in the scheme, where:
    • The sample scheme analyte is flagged for inclusion in job costs, and costed workflow statuses for WIP or estimate job costs exist on these sample scheme analytes.

    Then the cost is applied per sample that has that analyte count for the scheme, where:

    • The sample is flagged for inclusion in job costs.
    • The sample scheme is flagged for inclusion in job costs.
  • Unit-Based—The count is the value contained within the job scheme's Number of Units field, where:
    • At least one sample scheme is flagged for inclusion in job costs, and costed workflow statuses for WIP or estimate job costs exist on these sample schemes.
  • Analyte-Based—The count is the value contained within the sample scheme analyte's Numeric Final Value field, where:
    • The sample is flagged for inclusion in job costs.
    • The sample scheme is flagged for inclusion in job costs.
    • The sample scheme analyte is flagged for inclusion in job costs, and costed workflow statuses for WIP or estimate job costs exist on these sample scheme analytes.

Understanding the Differences between Estimate and WIP Calculations for Job Invoices

The following table shows the differences in work-in-progress and estimate calculations.

Calculation Type

Price Type

Sample Scheme Workflow Status rule

Sample Scheme Analyte Workflow Status rule

Work-in-progress

Sample-Based

No Result or Completed

Not applicable

Work-in-progress

Scheme-Based

Not applicable

No Result or Completed

Work-in-progress

Unit-Based

No Result or Completed

Not applicable

Work-in-progress

Analyte-Based

Not applicable

No Result or Completed

Estimate

Sample-Based

Anything other than Listed Not Received, Insufficient Sample, Not Analysed

Not applicable

Estimate

Scheme-Based

Not applicable

Anything other than Listed Not Received, Insufficient Sample, Not Analysed

Estimate

Unit-Based

Anything other than Listed Not Received, Insufficient Sample, Not Analysed

Not applicable

Estimate

Analyte-Based

Not applicable

Anything other than Listed Not Received, Insufficient Sample, Not Analysed

An estimate invoice assumes that all invoiceable entities are invoiced, and in the case of entities that are associated with a Price Type of Analytical-Based or Unit-Based, are priced as though there is a result present. This, therefore, makes the deemed pricing for the not-as-yet-completed work to fall into the first line item in the block pricing. Once data actually comes in for results with these price types, the estimate invoice assesses the costs using block price details.

A WIP invoice initially has a zero cost associated with it. Only sample scheme analytes with a Workflow Status of Completed (CPL) or No Result (NR), are included on the invoice. Any result for a sample scheme analyte that has a Workflow Status of Listed Not Received (LNR), Not Analysed (NA) or Insufficient Sample (IS) are excluded from the WIP invoice.

Any result for a sample scheme analyte that has a Workflow Status of Listed Not Received (LNR), Not Analysed (NA) or Insufficient Sample (IS) is excluded from the estimate invoice. Sample scheme analytes without results, those empty cells in workbook, is included in the estimate invoice.

Conditions for Generating WIP and Estimate Job Invoices

During registration, the available flows are dependent upon the job's Workflow Status and the related invoice's Invoice Status.

Job's Workflow Status

Registered

Can't release invoice as no samples and tests are on the invoice and job not completed

Not Started
Started
Analysed
Released
Completed

Can't release invoice as job not completed

Completed

Finalised

Cancelled

Invoice's Invoice Status

Initial

Draft
Edited

Initial
Draft

Edited

Released
Authorised
Transmitted
Sent
Accepted
Rejected
Paid
Credited
Booked

Cancelled

<any>

<any>

Generate Estimate Invoice

Generate Work in Progress Invoice

Y, but returns message: No line items are created as there are no associated samples and tests

Y, but returns message: No line items are created as there are no associated samples and tests

Y

Y

Y Y Y

Y