Axiom Accounting System Business Rules

This is the place to note all the little rules that we have to follow by-hand under QuickBooks, and hope to have our new Accounting System automate for us. (e.g. allocating revenue between us and attorney, trigger payments to attorneys (tied to receipt of client payment?), etc.).

As of Aug'01, we'll use this to prioritize features needed by a mid-range Accounting System. (Hmm, it looks like everything below is a must unless specifically designated otherwise; of course what that means is it's still negotiable, if the total customization cost is way more than we want to spend, so try to keep a rough sense of which must-haves are particularly expensive)

We'll organize by User Story...

Set up attorney

  • assign sequential 4-digit integer as attorneyNumber (started at 0010) (import existing values, then auto-increment for each new record) (can maybe relax this, if still using custom timecharge web-app, we can create new entities there to generate IDs, then enter manually into Accounting System)

  • store default values: billing rates (currently hourly and daily and weekly, who knows if more will appear); ipath service fee % (2 cases: one for clients we bring, one for clients they bring). anti-requirement: assume that with new system we will entirely eliminate "guarantee of payment for first 30 days of work for new client"

Setting up client

  • assign 4-digit clientNumber (starting "1001") (see attorneyNumber issues for consistency)

  • be able to track which attorney (if any) brought the client (for calculating our lower service fee)

  • payment terms

    • most are due-on-receipt, with finance charges hitting after 30 days

    • some are net-30-days, with finance charges hitting 30 days after that

  • retainers are collected from some clients

    • sometimes single retainer is collected up front; we draw it down to zero and then bill normally from then on without retainer

    • sometimes we draw down to zero and then ask client to refresh the retainer (maybe at a different amount)

    • sometimes we hold the retainer like a deposit, and always bill normally, never drawing against the retainer

  • setting attorney billing rates per client

    • a given attorney can work on multiple matters for the same client

    • for different matters (for the same client), the attorney may charge on different rateStructures (hourly for one matter, weekly for another, etc.). So it must be possible to set up each rate per attorney per client per rateStructure (attorneyA works for clientB at $X/hour, $Y/day, etc.)(the rate will be kept consistent across all matters for that attorney-client-rateStructure: if a rate change is implemented, it will happen across at matters for a given client at the same time, with no transition period)

Setting up matters (jobs) for clients

  • multiple matters per client (duh) (assign 3-digit matterNumber, always starting with "001" per client)

  • some matters are fixed-price (attorneys will still enter hours in timecharge system (see below), but that will not affect invoicing)

    • weird case: scope changes resulting in reverting to hourly charges after (say) a given date. Would be acceptable to have to open a new matter for this purpose, would be nice if could set a date as of which hourly charges were reinstated)

Assign one or more attorneys per matter

  • (assume we keep custom timecharge webapp: in that system we'll control which matters an attorney can charge to, and based on which rateStructure)

  • will have occasional jobs that are fixed-price, with multiple attorneys. In this case we do an initial estimate/spec of how much time each of the attorneys will put in, which drives the total price and the split of that across the attorneys (and us).

Attorneys entering timecharges (probably the collection of data will be handled by our custom web-app, but the Accounting System must be able to handle the data import following basically the same rules)

  • be able to enter appropriate units based on attorney/matter setup.

  • in fixed-fee matters, attorneys enter hours spent, even though that doesn't affect billing.

  • attorneys flag batches of entries (all open timecharges per matter) as being submittedForApproval

Controller reviews/rejects/approves timecharges (this happens in custom webapp)

  • drills down only on Submitted charges, by attorney-client-matter. Can accept that entire batch, or reject individual charges (then accept all that are left). May also edit a charge (typically just the description, for a typo: any substantive problem triggers a Reject instead).

  • then can Export all Approved charges at any time (no need to export only a subset).

Accounting System import timecharges (probably from custom webapp)

  • must be able to accept entries which are exceptions, making it easy to find those items to make manual corrections within the Accounting System, rather than rejecting individual lines which would then have to be selectively re-imported later. Alternatively would be OK to generate error report and reject the entire batch, so that entire batch can be re-imported after setup corrections)

    • example exception: attorney is charging days to a new matter (which is correct, and being properly controlled by the webapp), but for that client only an hourly rate had been defined so far (in the Accounting System).

Get non-time expense invoice from vendor directly

  • each line items comes from vendor coded with clientNumber, matterNumber, and attorneyNumber (or attorneyName). Does not come in structured format, so we re-key this data.

  • we do not mark up expenses, we just charge them through.

  • occasionally a vendor invoice will contain charges that are not billed back to the client (i.e. the attorney mis-used the account for their personal use, in which case the rcharge gets billed back to them. Or the account gets used for some internal purpose and i>path pays for the charges.

Get non-time expense receipts from attorney (telephone, copy charges; relatively rare)

  • they submit line items on spreadsheet, which is re-keyed. They break out their expenses by client, but generally not by matter under a single client.

Generating invoices/payables (and maybe generate attorney payment if on retainer)

  • billing cycle is twice monthly

  • separate invoice per matter (combining multiple attorneys)

  • if not working against retainer

    • generate payable transaction to attorney (for gross minus our service fee, see above how that's calculated), but placed on hold (do not issue check until cleared for payment, which happens when client payment is received)
  • if drawing against a retainer

    • send invoice, with $0 payable

    • generate payment to attorney immediately

  • in some cases we have a retainer, but do not draw against it (we hold it as a security deposit). In this case, the attorney payment is tied to client payment (do not issue check until cleared for payment, which happens when client payment is received).

  • email invoices automatically to clients and cc attorney (needs to be pretty, not necessarily importable) (anti-requirement: will no longer be printed on attorney-specific letterhead, even if there's only a single attorney on the matter)

Accepting clients payments, generating attorney payments

  • we pay attorney when the client pays us. We need the system to bring up the attorney payable tied to that invoice and ask for confirmation to pay. (This is a must in some format)

  • Occasionally we get a partial client payment. The payable to the attorney was calculated at the time of the invoicing to the client, assuming full payment. We take the client payment as a % of that receivable, and apply that % to the payable-to-attorney to calculate how much to pay him.

Generate past-due statements for clients

  • Statements are also generated semi-monthly for all clients with invoices outstanding for 20 days or more.

  • Needs to be a clear summary of all past due invoices and any payments made against them.

  • email automatically...again needs to be viewable, not importable.


  • report on revenue by rateStructure (how much fixed-price vs per-week etc.) (currently use separate revenue accounts for this)

  • report on retainer balances by client.

  • report on profitability by attorney

  • report on profitability by client

Edited:    |       |    Search Twitter for discussion