how2perf03.htm
Performance issue: A/R processing takes longer than it used to
Caveat: Identifying performance issues on a computer and/or network is a very fickle and tricky thing to attempt because there are a virtual limitless number of issues that can affect performance in general. The ideas presented here are generic in their scope but may offer a glimpse into a possible solution at your facility and at least a direction you may follow to solve a problem.
Understanding why this can happen requires a little background on what Club Office does with data. In short, Club Office keeps it. All of it. Forever. Unless you purge it.
When you run the A/R month-end process to generate dues and other charges, calculate minimums, etc. the system performs many, many lookup functions, each of which takes time.
Here's what happens when you run the A/R month-end process:
- Looks up and checks out configuration issues, such as your dues structure to see whether the G/L posting accounts and billing codes are valid.
- Looks up and checks out the special interests (if any) to make sure those have valid G/L posting accounts as well as valid billing codes.
- Looks up and checks out every member account individually to make sure that its classcode, billing code, minimum settings and special interests are active and valid.
- If any of the above don't pass muster, the system stops with a message, usually saying that "xyz must be corrected" before the system can continue. This usually requires an undo monthly followed by fixing the problem and restarting the month-end process.
- If all is well so far, now it builds a query in memory of all the member accounts and names and starts generating charges, one member at a time (this is why you see the names change at the bottom of the screen).
- It looks up and generates the proper dues charge (if applicable), or if you use prepaid dues, both the charge and the credit taken from the member's prepaid balance.
- It scans all the special interests assigned to the member and generates appropriate charges if necessary. If any special interests are also linked to installment programs, it recalculates the remaining installment balance.
- If the account has a minimum, it generates a query to look up the amount spent between the allotted period of time (depending on the setting for the member), compares it against the amount required and generates a charge if necessary; if the member has a prepaid minimum, it looks up and applies the appropriate credit and recalculates the remaining prepaid balance.
- If miscellaneous charges are to be generated, it scans the list of classcodes to which the miscellaneous charges apply and if the current member's classcode is on the list, it generates the appropriate charge.
- It scans for payments and credits, applies them to the aged balances beginning with the oldest first and cascading to the most current, and recalculates the aged balances for the member.
- It stores the member's recalculated balances in a temporary file so that if an "undo monthly" is required, the system can easily restore the existing balances to member accounts.
- It reads the next member account and repeats the process until all accounts have been processed.
That's a lot of computing for each account -- it's lucky for us that computers can do this repetitive work so quickly; doing it manually would be unthinkable. But if you study the above steps a little bit, it will become apparent to you about how much data has to be loaded, scanned and evaluated to perform the necessary calculations. So in a nutshell, increased processing time is directly related to:
- The number of member accounts to be processed. If you have sub-accounts for spouses and children, then each one is processed individually. You may have 300 memberships at your facility but if 200 of them have spouse sub-accounts and 150 of them have two sub-accounts for children, then the system has 800 total "accounts" in the membership database that it has to scan and process during month-end processing. It stands to reason that 800 takes longer than 300.
- The number of dues and special interests defined on your system. The more of each that you have, the longer it takes to look up, analyze and process them.
- The number of sales transaction "chits" in the daily.mdb database. If the chits you enter are "summary" chits for a whole transaction, then perhaps only one transaction represents possibly 8 or 10 items on a ticket. But if your sales "chits" are entered in detail, then there's that much more data to scan; more data means more time. If you have SQLPos POS, then your sales are likely highly detailed because SQLPos is designed that way. A really active member who visits the club four days a week and tends to spend/entertain frequently could easily have 5 or 6 chits every day representing possibly 50-75 detail items per day, eventually totaling possibly a couple thousand detail items for the month. If the same member has a minimum to satisfy, then potentially many thousand detail items must be evaluated, which takes longer to do than for members who aren't as active.
- If minimums are in use, the length of time for the minimum evaluation period makes a difference. If it's a monthly minimum, the system has to scan only one months' worth of data. If it's an annual minimum, the system must scan data for the entire year for members whose accounts use the annual setting, which would logically take longer than a monthly minimum.
There are alternate factors that affect month-end processing, too:
- The speed of the CPU processor chip inside the computer. Faster and bigger is better because those processing chips can calculate and move information faster.
- The amount of available RAM member inside the computer. More is better because calculations in memory are generally faster than recalling the same data multiple times from the hard disk "swap area" which is what Windows makes the computer do on computers where RAM memory is scarce.
- The speed of the network. Faster is better.
- The number of applications running on the computer. The more applications that are running simultaneously, the slower each of them can go. The CPU processor chip has only so much speed available and it has to share it with all the applications running. In cases where multiple applications that require transferring data through the network are running, the increased network traffic can slow things down, too.
Here are some no or low cost actions you can take to help speed up your month-end processing:
- No cost item: Reduce the number of applications running simultaneously on your computer. Close your browser, email application, word processor, or any other application that isn't immediately germane to the accounting system and run the month-end process by itself. This will allow your computer to direct its CPU's full attention to month-end processing and not much else.
- No cost item: If you're running through a network to a network server, ask your workmates to please refrain from browsing the Internet, downloading or emailing files, etc. until you're done with month-end processing because all their additional network traffic clogs up the network and slows everything down. It's true that electrons go very fast, but it makes a difference -- it really does!
- No cost item: If your computer (or file server) is a couple years old, it's likely that there are many thousands of unnecessary files on it that are just clogging it up. This has an impact on the computer's speed -- it generally slows it down. Consider backing-up the data files that are no longer needed and then deleting them from the server. Afterward, perform a "defrag" of the server's hard disk. This almost always speeds up the server's performance and if it's a file server, it also benefits all the users who connect to it through the network.
- No cost item: if you never use any member sub-accounts for billing, check the "master accounts only" box before starting the month-end processing activity. Depending on the number of sub-accounts defined on your system, this can dramatically shorten the amount of time required. (See caution below!)
- Low-cost item: The simplest, fastest way to speed up a computer is to add memory. If your computer has only 256mb of RAM, you will notice an immediate jump in performance just by plugging in another 256mb chip for a 512mb total. It's amazing. What's even better, it's cheap. You can pick up a 256mb DIMM chip for only $30 and install it yourself in about 5 minutes. It's literally a plug-in item.
- Low-cost item: The next fastest way to speed up a computer is by replacing the CPU processor chip with a bigger, faster one. However, these generally aren't plug-in replacements and usually it involves replacing the computer itself. But you can buy an incredibly fast computer off-the-shelf these days for under $500.
Caution: the Club Office monthly A/R processing screen includes a checkbox to select "master account only." This option exists for folks who NEVER use any member sub-accounts as active, billable accounts but only use them for mailings, tracking member demographics, etc. On a system that has 800 total master and sub-accounts in the membership database, selecting the "master accounts only" option bypasses all of the sub-accounts so that instead of having to process all 800, perhaps only the 300 "master" accounts are used. Obviously, 300 will take less time than 800, but if you EVER use ANY of the sub-accounts for billing, even if they are used for only once a year for an annual dues or other special billing, you should ALWAYS process ALL the accounts, which means that you should NEVER use the "master accounts only" option.