Well, I don't really have time to dig in deep here, but at first glance, yes, it looks like quite a lot of extra dimensions, and I have no doubt this leads to coding errors.
I've run FP&A at three arts & culture non-profits in the $50-100M annual budget range, and based on that experience, here are what I think of as the essential codes for the GL:
Fund code for Restricted, vs Unrestricted, vs Board Restricted (if applicable). We still have funds that separate temp & perm restricted, but of course those roll up together now for financial statements.
Project/program/activity code. It is my experience that you can definitely use a single dimension for this. If a program has multiple components, or multiple funders that cover different parts, then create multiple program/project/activity codes and roll them up in a parent dimension in your hierarchy so you can report on it as a whole or in parts from a single dimension. I REALLY don't like having subfund or grant codes that identify funders - they are often redundant, not used across all programs, and therefore the most likely segment in the code to be missed by an end-user creating a PO or filling out an expense report. My goal with a chart of accounts is that I never have to combine two different dimensions to get a breakdown that I should be able to get from a single dimension, and this applies to activity/program/project most of all. This will create more program codes, but reducing the overall number of segments is worth it. And I'd use that same dimension for administrative activities, too. Just because accounting & finance isn't a program does not mean it isn't an activity that needs to be tracked. Because of that blend, I prefer the label "Activity" for this dimension. And I make it a goal to be able to create the Statement of Activities with ONLY Natural account and Activity necessary to map all your rows.
Budget owner or Department code. This is just to refer to whoever is responsible for the budget line. A program can have budget responsibility across multiple departments (and usually does), so I like to keep this separate. Sometimes it is redundant with Activity, but that's OK, because this dimension has a specific job: managing budget responsibility and workflows.
Natural accounting code. Standard: revenue, expense, asset, liability accounts. Most orgs have way too many of these and could cut them back dramatically.
Location code and Company code are naturally very important for some organizations. I've only worked in single-location, single-company, single-currency organizations thus far.
There are other codes that are extremely relevant for subledgers and other systems, like vendor and payroll records.
I'd never differentiate payroll by employee in the GL, but of course then you need a payroll system with good information/analytics platform so that you can dig into detail by head. I've considered bringing in actual payroll data in my Vena personnel cube, to do variance analysis there. The obstacle for us is that we do a great job modeling payroll on an accrual basis by month, but variance analysis of accrual basis budget to cash basis payroll is a great way to waste a lot of time for little benefit. We haven't yet found a very good way to model the budget on a biweekly cash basis to match our payroll cycle. I guess we could create an alternate period hierarchy and use that for the cash basis budget...
So, my first thought is you could look at your list to see what you can and maybe should combine. Then I'd look at what is in subledgers/other systems, and can be kept out of the GL but analyzed elsewhere. Personnel is a great example. I have an employee dimension in my personnel cube in Vena, but that employee dimension is most emphatically not in the financial reporting cube, and never will be.
I don't know if this is any help at all. I hope it is!
------------------------------
Aaron Andersen
------------------------------
Original Message:
Sent: 03-29-2022 17:25
From: Brendan Eger
Subject: Budget and Actual Coding Detail
No love for this thread, huh?
@Josh Weinberg @Clement Marlin @David Cornfield @Christine Sawyer are any of you willing to share your coding dimensions or comment on mine? Any general thoughts on how you decide what information is actually worth collecting? Has anyone found time to reflect and ask yourself this question?
@Irene Tang is there a standard set of dimensions that Vena recommends based on your experience with non-profit customers?
------------------------------
Brendan Eger
Original Message:
Sent: 03-17-2022 14:50
From: Brendan Eger
Subject: Budget and Actual Coding Detail
Hi everyone. I'm interested to learn what types of coding dimensions others are using to tag financial/budget data and how helpful you find them? Do you approach your budgeting differently than your actuals?
PIH is reflecting on what codes we're tagging our data with and whether we've possibly gone too far in what we're asking end users to keep track of, which we think might be leading to mis-coding and low quality data entry as we get into a level of detail that is too deep. Due to this lack of trust of the accuracy of certain data points, we rarely use them in reporting and that has us wondering whether it's worth collecting at all. Below are the dimensions we're using currently as a reference. I'm curious if others have similar dimensions and/or a similar number of dimensions.
Budget + ERP (Actuals)
Budget: the country or department in the US
Program: department in countries or sub-departments for US departments
Activity: a flexible code for individuals to track whatever they want, most often used to track sub-activities from grants
Site: location/facility where an expense happens
Fund: funding source for the expense
Super Code: a code that matches to the description of the operating budget line (payroll lines use a default dimension member), AND which acts as a Dimension Speedkey in our ERP to more quickly enter all of the above dimensions
General Ledger Account: the expense type
Employee ID: each employee has a uniquely assigned code (non-payroll lines use a default dimension member)
Employee Type: drives what fringe costs an employee is eligible to receive
First Name, Last Name, Job Title: the employee's job title
Company: the database where an expense occurs
Budget Only
Core Cost: a tag to mark the expense as a part of our core operations or a one-time expense that can end when funding ends
Scenario: Board (approved once per year) or Working (flexible throughout the year as things change or new funding comes in)
Donor Categories: specific categories for which we need to report back to the donor on - we lookup this value based on the Super Code which is our key between budget and actuals
ERP Only
Employee Role: a rolled-up employee grouping to see how many of a certain type of role we have (clinical vs non-clinical, admin vs IT vs doctor vs nurse vs etc.)
------------------------------
Brendan Eger
------------------------------