It was a dark and stormy day, the numbers fell in torrents – except at occasional intervals, when they were checked by the violent gust of a turned page which swept up the totals (for it is in Livermore that our scene lies), rattling our customers, and fiercely agitating the webmaster.
Ok, 6-years ago, our statements sucked. Here’s how:
- Suppose you run a data set (invoice and payment detail) wouldn’t it make sense to produce a total based on that data? In our case, the ERP vendor decided to total a statement based on the data generated from the last aging. What this meant is that if you didn’t run an aging prior to running statements you had almost no chance of getting the totals correct on a statement unless you restricted the ability to run an aging, which we didn’t. The only answer I can find to this problem is that the vendor was desperately scrambling for speed and “cheese balled” the totals to speed up the printing of statements, or, they didn’t know how to total an aging during the printing process. Either way, this was dumb.
- Unapplied payments were not reflected in the aging detail. Sorry, Mr. Customer, if you’ve given us money but we’re not sure what invoice to apply it to and post it as unapplied it won’t show up on the statement anywhere except the total.
- Because of the above it was possible to add up the items on a statement, get one total, add up the 30, 60, 90… columns, get another total, and then there was the total on the statement which possibly didn’t match either of the those.
- Warehouse totals added to the confusion. Customers would buy from different locations and we needed a way to dissect that and the statements did a poor job.
- Reconciling what invoice a payment was applied against was very confusing. Our credit people could do it, sometimes with a lot of work, but a customer had no chance.
- Statements were run at individual warehouses meaning they went out on different dates instead on the 1st.
- Finally, statements had become radioactive. No one wanted to touch them. One group had one idea, another had another, and some people wanted to do away with them entirely.
In other words, our statements were confusing, awkward to run, they didn’t add up and no wanted to be a part of them. So, what was the solution to the problem? Stick the new guy with it.
Research
The first thing I did was go to the data in the openitem table and try to figure that out. To this day I’m unsure if they guy who designed the table is brilliant or something else entirely. Data in that table would roll Codd over in his grave. It has running totals, data is flagged to type and then does different things in the table based on the type of record and you basically need to react to the data differently depending on the type. But, somehow, it all works, and is actually fairly clean, once you know the game.
The second thing I did was look at the statement options. We were pretty much stuck because there weren’t very many and none of them worked well. Basically we were screwed no matter what we did because we would still face some of the problems listed earlier no matter what we did.
Execution
After a few months I’d done the following:
- Implemented a web-based statement on our websites. The web-based statement provided correct totals, allowed drill-downs so you could see where a payment was applied, showed invoice detail and well, it worked.
- We pulled statement building from the warehouses but we still allowed them to print the statements. The new process consisted of running an aging then printing statements to our imaging system and the individual credit managers printed the statements from there.
- Created a new fast aging (built once a day) so our credit managers could see an aging and make notes as they needed. It’s worth noting that it could take hours to run an aging while the new aging would run in under a minute. We moved all of the processing to the back-end late at night.
- We changed the options on the statements to use the best options available to us on the default statement. Well, at least the best options according to the people I could get to go on record as to what the best options were.
So, here’s the point where I pat myself on the back and tell myself that I’d done good. We’d solved or provided alternatives that fixed or at least improved most of the problems above and the statements were immeasurable better, “hey, they totaled correctly”. I felt, and still feel, that this was some damn good work.
5 Years Later – Our Statements Suck!
At least that’s what was determined by a credit meeting. Honestly, that’s probably true. We never managed to produce a perfect format in the printed version. After struggling for a month I took the best option available, asked for opinions, and deemed correct totals, the best alternative available. I didn’t have a lot of options and it was a project that was sideways due to lack of interest almost from the beginning.
Still, it’s just a little bit ironic how some things always come back around. I predict that in 5-years they’ll be another meeting and the message will be the same: our statements suck!