Comment by stevoh
You are correct in your example and yes, it should feel wrong. That workaround is totally fine though and most small companies will do something like how you have described.
In your example, using multidimensional accounting you could book one entry to "Travel Meals Lodging" GL account and have the dimensions "Program", "IRS Exempt", "T&E Subcategory". This creates a one-to-many relationship with the transaction instead of having 4+ GLs. You could book to one GL "Travel Meals Lodging" with the dimension values "Program Non Exempt", "Non IRS Exempt" and "Meals". You could design the dimensions differently, but I am just trying to give you an example.
No, I am not aware of an SMB package that supports this. It probably exists but from what I understand it makes the database more complex (cube?) and everything more compute intensive on the reporting side. Thought I haven't looked into it much - if you find anything, let me know.
I have a couple projects running on GnuCash, but it doesn't support dimensional accounting. Netsuite would work, but anything Oracle is a hard sell in my space.
Do you recommend any resources for implementing dimensional accounting? Articles? Example schemas?