Search This Blog

Thursday, October 23, 2008

Inprotech: Multiple Invoice Formats

I passed on a quick little tip today that’s worth publishing overall I think.

Inprotech has functionality that allows multiple invoice formats to be set up. The idea is that individual clients can each have their own specific format and this format will be automatically assigned as the invoice is raised without the operator having to think about.

It might be because a different of invoice is required for different legal entity or office, a filing case has a different layout from an opposition case or simply one client wants more detail than the firm’s standard invoice.

This automation is achieved by recording attributes against the invoice format and a best fit algorithm is applied when the invoice is raised to pick the format that best meets the corresponding attributes of the debtor.

It all works very nicely but one little issue is when there are multiple clients that require the same invoice layout. The typical example is when you are dealing with multiple subsidiaries of a large organization. Maybe there are 10 or 15 different debtors in total but they all require to the group specific invoice format.

Using the system as it stands, you need to set up the billing template and then create the 15 bill formats in the table, one for each debtor. You get 5 or 6 clients like this and all of sudden you’ve got a maintenance nightmare on bill formats!

The reason you have to do this is that the debtor is seemingly the only client related attribute that you can apply against the invoice format. What you really need is the Client Group attribute or something like that.

The tip here is to use the client Language attribute as the grouping facility. Or course, this assumes you aren’t using it actually for the client’s language!!

Set up a Language in the pick list for say “ABC Company Invoice Format” and then attach this language against all of the name records for those organisations in the ABC Group. Then set up the ABC Invoice Format (once) with the necessary template and attach this Language attribute to the format. When the bill is raised for a debtor with this language the correct format will be selected. You don’t have set up a new format record, to use the same template, if a new group company comes along and you only have to maintain the record in one place when it changes.

I also like to code the Languages with an “AAA” at the start so that all of the invoice format languages are at the top of the picklist:

AAA – Australia Post Invoice Format
AAA – IBM Format
AAA – Proctor & Gamble Invoice Format

The alternative, or course, is to delete any languages not used from the list.

This approach is also useful if you want to have a different invoice format for local clients and international clients. Maybe you don’t want more space for descriptions for clients or the banking/remittance details are different. Simply set up a language type of International Invoice Format (or vice versa) and attach it to international clients.

Of course, you then need to make sure that this happens during the client take on process. Maybe using the name copy facility with a template record, but that’s definitely another story!!

Friday, October 17, 2008

Inprotech: Price List

I have been working on a couple of projects recently where we have set up the price list in fees & charges module and then incorporated it into the workflow to have the work in progress generated for billing based upon that list. As you will be aware there is no useful reporting in the system to help this process at all.


As a result we developed, over a period of time, an SQL statement that returns relevant data with one row per charge item so that it can be easily reviewed by the user. Here it is:

select F.CRITERIANO as "Id", C.DESCRIPTION as "Fee/Charge",
A.CASETYPEDESC as "Case Type", P.PROPERTYNAME as "Prop Type",
isnull(Y.INFORMALNAME,'') as "Cty", F.SERVWIPCODE as "S/C Code",
F.SERVBASEFEE as "S/C 1", F.SERVVARIABLEFEE as "S/C 2",
F.SERVICECURRENCY as "S/C Curr", N.NARRATIVECODE as "Narrative",
isnull(F.DISBWIPCODE,'') as "Disb Code",
F.DISBBASEFEE as "Disb Fee 1", F.DISBVARIABLEFEE as "Disb Fee 2",
isnull(F.DISBCURRENCY,'') as "Disb Curr", isnull(FT.FEENAME,'') as "Fee Type",
isnull(Q.SOURCE,'') as "Quantity"
from FEESCALCULATION F
left join CRITERIA C on C.CRITERIANO = F.CRITERIANO
left join COUNTRY Y on Y.COUNTRYCODE = C.COUNTRYCODE
left join PROPERTYTYPE P on P.PROPERTYTYPE = C.PROPERTYTYPE
left join CASETYPE A on A.CASETYPE = C.CASETYPE
left join NARRATIVE N on N.NARRATIVENO = F.SERVICENARRATIVE
left join QUANTITYSOURCE Q on Q.QUANTITYSOURCEID = F.PARAMETERSOURCE
left join FEETYPES FT on FT.FEETYPE = F.FEETYPE

The idea is then to copy it into Excel and sort it as appropriate and remove columns depending upon the type of information required to be reviewed.

Sunday, October 12, 2008

Inprotech: Data Quality

Data quality is always an issue for patent attorney firms.

Many years ago we developed functionality to report upon potential data exceptions within the database. At a recent client meeting we were talking about auditing data and this report was raised, once more a good deal of people in the room were unaware of its existence.

It's called the Property Data Exceptions report and it is available from the Reports menu of the case summary window, the one that you get that lists all the cases selected and allows you to tick cases for reporting and processing. The menu item sort of sneaks in there on this window and you could be forgiven for not noticing it because it is not available on the Reports menu on the first selection window. Unless you look closely it is not so obvious that it is now available on the summary window.

The report was written for CPA renewal clients in attempt to be able to get the data as clean as possible before sending it electronically to CPA via the interfacing programs. As such, it has a bit of a renewals focus but there is some utility for the audit of data in general. It runs over the selection of ticked cases in the summary window and can be selected to run over all the cases or only those with a case type of Property.

Unfortunately there is not a lot of documentation about what the report does (in fact, absolutely none) so the following is what each of the options does to the best of my memory:
  1. Agent Details - foreign cases where no agent is recorded against the case.
  2. Application Details - the case has an application number but no application date or vice versa.
  3. Registration Details - the case has a registration number but no registration date or vice versa.
  4. Publication Details - the case has an publication number but no publication date or vice versa.
  5. Priority Details - the case has a Basis that is claiming convention but has no earliest priority date.
  6. Entity Size - the country requires definition of whether small or large entity parameters are to be used to calculate fees (eg. US and Canada) but this hasn't been recorded against the case. This is determined by an attribute recorded against the country via the Country program.
  7. Number of Claims – the country requires the number of claims to be able to calculate the renewal fee, eg. Japan, The Philippines, but the number of claims hasn’t been recorded against the case. This is determined by an attribute recorded against the country via the Country program.
  8. Number of Designs – the country requires the number of designs to be able to calculate the renewal fee, eg. Germany, but the number of designs hasn’t been recorded against the case. This is determined by an attribute recorded against the country via the Country program.
  9. Date Sequence – makes sure that the dates recorded against the case meet the validation requirements as defined by the Dates Logic rules for the applicable criteria. This is the area where you might define, for example, that the Registration Date needs to be greater that the Application Date. This validation rule will be applied at the time of data entry however any previous loaded cases can be audited overall.
  10. Official Number Format – applies any number formatting rules to official numbers entered and displays an error when the validation fails. The formats need to be set up against the number types for the country via the Country program.
Upon reflection, I can think of a number of extensions to the approach to add a lot more value but it is there right now and it is free to use!
One idea could be to use it if you are looking at giving a client access to their portfolio over the web via the Client WorkBench. Bring all their cases up in a query and run the report over it to see what exceptions are highlighted. This way you have an idea of the data quality that you are presenting to the client in a quick report and therefore assess how you want to handle the situation.
Another could be to run the report for cases in a takeover situation after they have been loaded.
Food for thought.

Friday, October 3, 2008

Inprotech: Printing Multiple Letters from the Case Enquiry

It’s interesting to remember sometimes why certain features were put in the software. Sometimes I don’t recall at all and often wonder if we were looking to solve a business problem or it just seemed a good and fun idea at the time!

It’s even more interesting when a user finds out about the functionality for the first time and tells me a really good business reason for the feature.

Case in point today is the ability to print multiple documents from the case enquiry summary window. This feature allows you to print the same letter for multiple cases. All the ones that are ticked in the summary window in fact. Go to the Forms menu and the WP Document window. Select the document from the picklist and click ok. One document will be created for every document in the summary list that is ticked.

I am pretty sure we added this because it was a good idea and easy to implement given that we were adding the “print a document from the case and name record” feature.

One of the people at my client found out about this today for the first time. She thinks it is brilliant because when a group of cases move from one attorney to another they use the bulk name change feature to change the staff responsibility but then have to print out, one by one, the new file cover sheet.

This is a PassThru letter that has information about the case, including the responsible staff member, that is attached to the front of the physical file. From now on, she will be able to print all of the cover sheets at the same time the name change occurs, with no manual intervention, saving heaps of her time!!!

Tuesday, September 30, 2008

Inprotech: Gross margins, cost rates and the Budget tab

One area I had a large amount of input into when I was at Maxim/CPASS was the addition of cost rates to the recording of work in progress and the addition of the Budget tab as an optional screen in the Cases program. The goal was to provide a first cut at facilities to assist with putting more financial rigour into the management of clients and their matters.

The traditional financial measurement of the value of client to the firm is nett billings (ie. after recovering disbursements). While this is important information my interest was in understanding what level of gross margin or profit that the client was delivering.

As an example, a large corporate client with a high level of billings may also require a lot of (non-chargeable) attention to meet their particular needs and demand a level of discounting, just because they can! The net result of this could be that the profit contribution from that client could be significantly lower then expected and the effort doing the work for that client may earn a higher return elsewhere. Equally, small local clients are can seen as lucrative by the person that has built a strong relationship with them but what is the actual profit position? If it is not adequate then should we be servicing them? Then, who are the clients that are contributing the most profit to our business because these are the ones that we want to protect and nurture.

The two important pieces of financial information to measure this are gross margin and gross margin %. Gross Margin is the raw profit contributed by the client. Let's say fees are $1,000 and the cost of delivery is $600 then the Gross Margin is $400. The Gross Margin % is $400 over $1,000 or 40%. While gross margin is a direct amount and therefore can be easily understood the Gross Margin % is a ratio that is a measure of return on investment and, in some ways, an assessment of risk with the customer.

Now I am not saying that total billings isn't useful information as the volume of work provided is an important factor in understanding the totality of a client relationship. Equally, dominating market share in a particular segment may require retaining some less profitable customers.

In my view, however, the key driver for marketing and customer service strategy should be client profitability. We should be investing our money in the areas of the business that have the greatest likelihood of return. Without assessing this, obviously alongside other relevant information, we don't ensure that we have fully understood our offering to the market place.

So how does the system help? Firstly, there is the ability to set up cost rates for work in progress items in a similar way as you can set up charge out rates for time. When this is done the cost of the work or expense is calculated and recorded on the WIP item along with the charge for the item. If the charge is written off or down the cost remains regardless of how it is billed to the customer.

For time, costs rates are an hourly rate, similar to charge out rates. Say, the cost rate for a particular staff classification is $100 per hour and the charge out rate applicable for the work is $400 per hour. When 30 minutes of time is recorded in the timesheet program, a cost of $50 and a charge of $200 will be written to the work history table allowing the calculation of the gross margin for the item at $150 ($200 minus $50).

For disbursements, cost rates are a percentage of the disbursement amount. For examples, associates invoices, courier charges and the like would be defined as having a cost of 100% of the disbursement (because that is the true direct cost). Recoverables such as photocopying and fax charges, on the other hard, may be defined as having a cost of 50% of the disbursement because there is no directly related invoice and the firm has decided that this is the notional cost that is to be assigned to these type of expenses.

Following on the above example, an associates invoice of $1,000 would be recorded with a cost of $1,000 and hence have no contribution to gross margin and a sundries charge of $20 would have an associated cost of $10 giving a $10 contribution to the gross margin.

The system also provides for 2 cost rates, surprisingly enough called Cost Rate 1 and Cost Rate 2. The intention here was to allow calculation of gross margin under two different scenarios. For example cost rate 1 could be used for the direct cost of the time, a rate directly related to the staff salary or a blended salary for a staff classification. Cost rate 2 could then be be used to add on an some percentage of on costs to cover any taxes, insurance or superannuation/pension that are directly related to employment. Alternatively this rate could include all of that plus some notional portion of overhead (accommodation, admin support) as per the firm's accounting policies.

A little thought needs to be put into this as the raw information will read differently depending upon the approach taken but in the end the key thing is the relativity between the figures for different clients. Therefore it is not something you want to change once you have started the process of recording information.

In terms of the standard system, the only place the information is aggregated is on the Budget tab for the case. This calculates the net fees and the total cost to provide a gross margin for the case. The next step was to provide reports aggregating costs & fees and calculating margins for clients overall but we never got around to doing it because we got so little feedback on what was provided. I suspect no user has ever implemented this aspect of the system.

The other work that was done at the same was the ability to record a budget (and a revised budget) against a case and there is a simplistic little tool that helps you do this eg. enter a staff member or staff class and a number of hours plus disbursements and it calculates the total budget. When the budget is created it also records budgeted costs, if set up, and budgeted gross margin are compared against actual for the case as well as showing budget used.

The tab also summarises billing for the case by fees, disbursements etc.. and provides a list of all bills raised for case. These can then be displayed our re-printed. From memory there is also a site option to allow a warning to be displayed if the fees for the case go over budget and we (naively) provided a web part that displays the actual versus budget on Client WorkBench. I suspect no one will ever implement that bit!!

Of course, what is really needed to make the feature useful is some reporting. The ability to measure profitability by client, type of client, industry segment, technology specialisation, etc... allow key information to be available for strategic decision making. While there are no reports provided with the system they could easily be constructed. The beauty of the database is that all the information is collected in an elegant, normalised and generally easily understood manner.

The key is unlocking this rich information source.

Monday, September 29, 2008

Inprotech: Correspondence Instructions

An interesting piece of functionality in the system is Correspondence Instructions. I have often wondered how widely used it is.

The idea is that you can record notes against a name record that pop up during the case take on process, billing and letter writing so that the operator sees them to knows any special instructions that have been provided about corresponding with the client. It might be all correspondence should be emailed to this address, invoice copies are required to be sent on yellow paper or they don't like staples in their letters!! The fields are available on the Client Details tab for the name record in the Names program.

There are 4 types of instructions, a default, one for cases, one for billing and one for PassThru (letters). If the same notes are to be displayed across all areas then just complete the default text. If a different set of instructions is required for billing then select the billing type and put the notes against this. This will override the default notes when the pop up occurs in the billing program.

The delivery of the notes is controlled by the Correspondence Instructions site option and this defines where pop ups are enabled.

The delivery of information to the user is via the "tip" functionality, the smaller yellow box that you see sometimes if help text has been set up against case tabs and detail entries. The instructions will pop up when a new case is added when the name is the instructor and when a bill is created when the name is the debtor.

With cases, my preference would be to display the instructions every time that you go into a case so that it is always in the operators face, but that's not how it works. I would also prefer it to be a bigger dialog right in the middle of the screen rather than the little yellow one on the left hand side. This way more instructions could be read without scrolling and you can't really miss them. The ability to display in Timesheet would also be useful.

Implementation of displaying the instructions in letters requires a bit more effort. Docitems need to be set up and templates changed. I am afraid I am not fully aware of the specifics here.

Lastly, this functionality was meant to supplement, not replace, the ability to automate instructions and processes with clients. Things like:
  • copies of correspondence to a different address,
  • billing in a different format for a client,
  • different billing address,
  • different statement address,
  • numbers of renewal reminders to be received,
  • auto renew,
  • number of bill copies,
  • billing currency, multiple cases on a bill or not,
  • different letters, language of correspondence,
etc... are all things that can be recorded the system in other places so that the system can handle these without operator intervention.

Saturday, September 20, 2008

Inprotech: AR Item Import

This little program is quite useful for loading up open items in the debtors ledger, most typically used when transferring information from an old system to Inprotech. It accepts an CSV file of items and loads them up as debit and credit journals.

First issue is that the layout of the import file isn't provided but if you ask the help desk they will give you the functional specification for the program which includes the file layout.

Next issue is that the program requires the NameNo of the client record in Inprotech, which is the internal unique identifier of the record in the Names database. The only place that this is visible is by going into the details of each name record and using the Systems Details menu item to visually read the number, clearly a time consuming task when you are looking to load items for hundreds, if not thousands, of customers.

The way to get around this is to use Excel:
  1. Load the old system's account code for the customer against the name record using the account code field (or Search Key 2 as per a previous article).
  2. Use SQL to extract a table that has the account code and the name number as the two columns.
  3. In Excel, use the VLOOKUP function against the two columns (they will have to be sorted in account code sequence) to get the name number for the account code so that it can be used to import the item.
One word of warning on this program. For debit items, it converts the transaction date as the date of the transaction provided. For credit items, it seems to change that date to the date of the current period for some reason. This means that while the total balance of the load is correct the actual totals by aging period my not be and, if not, will have to be corrected manually to ensure that customer statements are consistent with the previous system. The problem has been reported to CPA but I wouldn't expect it to be corrected at any stage in the foreseeable future.