Previous Topic

Next Topic

Book Contents

Additional Template Examples

Rather than review each of the invoice template variables we've outlined previously, we'll use this section to review a number of the invoices that have been pre-loaded into your BigTime system. We'll use these real-world examples in order to help you get used to working with invoicing templates.

See Also

Invoice Templates

Who Should Read This Chapter

Editing Invoice Templates

T&M Invoicing Explained

Invoice Sub-Totalling

Line Item Variables

Line Item Functions

Monthly Maximums

The monthly maximum invoice format includes the time/expense details, just like the T&M format, but it also includes a credit for any time-based fees that exceed a specific monthly number.

Consider the time/expense detail we've been using in this chapter. That time/expense data results in time charges of $3,187.50 and expense charges of $186.38. Assume, for this example, that we've agreed with the customer that monthly fees won't exceed $3,000.00 for time without their prior written consent. In this example, we've gone over that amount, so we need to "write off" the additional $187.50 in time-charges.

An invoice with this type of write-off might look something like this:

Bill To:

Client ABC, Project XYZ

123 Main Street

Chicago, IL 60602

Amount Due: $10,000.00

Item Description

Amount

Time Charges (not to exceed $3,000)

$3000.00

Expenses

$186.38

Total Charges:

$3,186.38

Unfortunately, that invoice format doesn't allow us to break down those time charges (e.g. - sub-total them) without some complex math. How do we "break down" the $187.50 write off if we want to sub-total by staff member, budget item, or labor code? We could assign a percentage to each line item, but that wouldn't match the invoice details (e.g. - the actual time charges), and the customer would get confused.

We could mark $187.50 in time as "no charge," but that might get complicated as well. What if we don't have a time entry that can be easily reduced by that exact amount?

This is where BigTime uses a "Credit" line item. The monthly maximum invoice format has the following line item calculations:

Line Item

Formula

Time Charges

TIME_CHG (sub-totalled)

Credit (based on monthly maximum)

FLOOR(0, [TIME_CHG-3000])

Expenses

EXPENSE_CHG (sub-totalled)

We've seen the first line item and the last one before, but the Credit line item is new. That item is marked as a "credit" in the line item details (so it will be used to REDUCE the fees charged to the customer). It's also using a couple of devices that we haven't used before. It includes a formula (called FLOOR) which we'll come back to in a moment, and it's plugging in a number (3000) as well.

Let's take a look at what the numbers in our example above will yield when we plug the numbers into our line item formula.

Line Item

Formula

Time Charges

3187.50

Credit (based on monthly maximum)

3187.50 - 3000.00

Expenses

186.38

So, we'll get a final invoice with charges that are similar to the following:

Item Description

Amount

Time Charges

$3,187.00

Credit for monthly maximum

-187.50

Expenses

$186.38

Total Charges:

$3,186.38

That's an important difference, because we may want to sub-total this invoice (to get more detail on the time charge lines). We may, for example sub-total these charges by staff member, just like we did with the T&M example earlier in the chapter.

Since our Credit line item is NOT sub-totalled, the final invoice would look like this:

Item Description

Amount

Time Charges (Agnes)

$2100.00

Time Charges (Jake)

$1087.50

Credit for monthly maximum

-187.50

Expenses

$186.38

Total Charges:

$3,186.38

Because we've created a separate line item for the credit, and because that line item is not sub-totalled, we can create a set of invoice line items that "tie" to the details, but that also show the customer the credit they are getting as a result of their contract.

Using Line Item Functions

Now that we've seen how the credit for a Monthly Minimum account is calculated, let's take a look at how the FLOOR function is used on that same invoice.

The FLOOR function is used to prevent a line item from going below a specific threshold: the "floor." If the calculation goes below the "floor" parameter, then the function will return the floor instead. The syntax for using that formula is:

FLOOR(<MinimumAmount>,<Value>)

If <Value> is below <MinimumAmount>, then <MinimumAmount> will be returned. In the example we've presented above, the <Value> parameter was $187.50 (3817.50-3000.00), and the <MinimumAmount> was zero. Since 187.50 isn't less than zero, the formula returned a "credit" of 187.50.

What if the monthly minimum on our sample contract were $3,500 instead of $3,000? In that case, the credit line item would result in the following numbers (we'll go through it step by step):

FLOOR(0, [TIME_CHG - 3500])

FLOOR(0, [3187.50 - 3500])

FLOOR(0, -312.50)

Without the FLOOR function, the formula would return a "credit" of -312.50. Since the floor function has been used, however, the invoicing engine knows to return zero instead (-312.50 is less than the <MinimumAmount> of zero).

Further, since zero-dollar line items are automatically discarded, we end up with an invoice that looks just like our T&M invoice. The client doesn't get a credit because they didn't exceed their $3500 monthly maximum.

Note that FLOOR is just one of the line item functions that you can use when you create your own custom line items. For a complete list of them you can refer to the end of this chapter.

Invoice Terms

In the monthly maximum example we walked through above, we hard-coded the monthly maximum amount into the formula we created for the credit line item. That's, obviously, unrealistic. Every client will have its own monthly maximum, and we don't want to have to create a new invoice template every time we sign a new contract!

To accommodate that reality, BigTime uses a feature called an invoice "term." Invoice terms are custom fields that are added to any project that uses the invoice type we are working with. Those terms can be incorporated into your line item formula, just like the standard variables.

Retainer Invoices

To understand how BigTime uses contract terms, consider the "retainer" invoice format.

Retainer invoices bill a customer a flat fee each month, no matter how much time has been put into the account. Retainers work just like the monthly maximum, except that the bill never goes above or below that retainer amount. A retainer invoice will have a single line for the retainer amount, no matter what time has been entered against the project.

If our sample project were a retainer account (with a monthly retainer of $3,500), the invoice would look the same every month:

Bill To:

Client ABC, Project XYZ

123 Main Street

Chicago, IL 60602

Amount Due: $10,000.00

Item Description

Amount

Monthly Retainer

$3,500.00

Expenses

$186.38

Total Charges:

$3,686.38

We could create a "monthly retainer" invoice template to produce that invoice by just creating two simple line items:

Line Item

Formula

Monthly Retainer

3500

Expenses

EXPENSE_CHG

Each time this type of invoice is created, it would have a single line item for "monthly retainer" that always total's $3,500. Unfortunately, every client could have a different retainer amount, so we'd need to create a new invoice template each time we add a new client. That's not any better than a "memorized invoice" transaction in QuickBooks!

That's where an invoice "term" is used. The actual Retainer invoice template in BigTime has the following two line items:

Line Item

Formula

Time Charges

RETAINER

Expenses

EXPENSE_CHG

The RETAINER parameter is a contract term, and it's added automatically to every project that uses the Retainer invoice format. The user fills in that contract term from the "details" link on their project's Contract... Invoice format page. For our example project, we would fill in the "retainer" contract term with the value 3500. Other projects could have other retainer amounts, and the BigTime invoicing engine will merge the project's "terms" into the invoice whenever it needs to.

PD:Invoice Template, Terms

Invoice Terms and Monthly Maximums

Now that we understand what invoice terms are, we can return to the monthly maximum invoice format and apply them to that template. Instead of hard-coding the monthly maximum into the invoice's "credit" line item formula:

Line Item

Formula

Time Charges

TIME_CHG (sub-totalled)

Credit (based on monthly maximum)

FLOOR(0, [TIME_CHG-3000])

Expenses

EXPENSE_CHG (sub-totalled)

We can use the invoice "term" RETAINER instead:

Line Item

Formula

Time Charges

TIME_CHG (sub-totalled)

Credit (based on monthly maximum)

FLOOR(0, [TIME_CHG-RETAINER])

Expenses

EXPENSE_CHG (sub-totalled)

Since each project can have its own RETAINER value, and since every project that uses the monthly maximum invoice format MUST have a retainer defined, this calculation lets us create a single invoice format that fits any style of monthly maximum we'd like to produce: any maximum amount, sub-totalled by budget item, category, staff member, etc.

Why Call it a Retainer? We could just as easily have created a term call MonthlyMax, but the Retainer term already exists, so the development team used that term instead. The term's name has no special meaning. It just needs to be unique, and it can't be the same as an existing standard variable.

Fixed Fee (Percent Complete)

The fixed fee (% complete) invoice format takes advantage of all of the invoice line item calculation tools we've talked about in this chapter. Take a look at this invoice format. It uses the following set of line item formula:

Line Item

Formula

Est. Item Billing (%)

FLOOR(0,[[BUDG_AMT*BUDG_PERCENT]-BUDG_PAID])

Expenses

EXPENSE_CHG

Both of these line items can be sub-totalled. In fact, this invoice format REQUIRES you to sub-total your projects by budget item. That's because the line item variables BUDG_PERCENT and BUDG_PAID are only available if you sub-total by budget item.

BUDG_AMT, BUDG_PERCENT and BUDG_PAID are all variables that represent budget item data for your project. Let's assume that the project we'd like to invoice has the following information:

 

Budget Item

 

Estimate

Billings to Date

(Last Invoice)

% Complete

(Now)

Phase 1

$10,000

$10,000 (100%)

100%

Phase 2

$30,000

$7,500 (25%)

50%

Phase 3

$20,000

-- (0%)

10%

We've already invoiced on this project (maybe more than once), so we've got some "prior billings" for Phase 1 and Phase 2. In addition, we've updated the percent complete on each of these phases, so we will want to bill the customer during this invoicing cycle.

Given the fact that this project has three budget items, the initial line item on our invoice template (Est. Item Billing (%)) will be sub-totalled, and will result in three sub-lines:

Line Item

Formula

Phase 1

FLOOR(0,[[BUDG_AMT*BUDG_PERCENT]-BUDG_PAID])

Phase 2

FLOOR(0,[[BUDG_AMT*BUDG_PERCENT]-BUDG_PAID])

Phase 3

FLOOR(0,[[BUDG_AMT*BUDG_PERCENT]-BUDG_PAID])

The invoicing engine will replace the variables in each of these lines with the data from the project's estimate:

Line Item

Formula

Phase 1

FLOOR(0,[[10000*1]-10000])

Phase 2

FLOOR(0,[[30000*.5]-7500])

Phase 3

FLOOR(0,[[20000*.1]-0])

Once those numbers are plugged into the formula, we see that the first line item is $0 (so it is removed), and the last two line items are >$0. So, the finished invoice will look similar to the invoice shown below.

Bill To:

Client ABC, Project XYZ

123 Main Street

Chicago, IL 60602

Amount Due: $10,000.00

Item Description

Amount

Phase 2

$7,500.00

Phase 3

$2,000.00

Total Charges:

$9,500.00