The Budget Monitoring application was introduced in May 2017 as part of the Maximo 184.108.40.206 feature pack. It will be found in the Financial module.
It allows budgets to be created based on one of several different focal points, for example location, asset, chart of account or a GL component and then budget lines created based on a condition of this focal point, for example a certain range of GL component values. Budgets are entered and estimates, commitments and actuals calculated from the values entered against work orders, purchase orders and other places in Maximo where financial transactions take place. Each budget line is broken down by internal/external labor, direct or issued materials, services and tools, with totals for labor and materials and an overall total. Internal and external labor hours are also calculated.
The surprising thing about Budget Monitoring is how flexible it is. You can create new focal points and rules for how Maximo will collect and calculate costs. I have therefore split this subject into three parts:
- Budget Monitoring – An overview
- Budget Monitoring – Understanding Focal Points and Rules
- Budget Monitoring – Project Costing – a worked example
In the third part I will show you how to create a new focal point and rules based on the Cost Management projects and tasks.
Budget Monitoring (1 of 3) – An overview
The Budget Monitoring application is used to monitor maintenance related costs; estimates, commitments and actuals, against a budget. It is worth using this application even if you do not need to set budgets or formally report actuals against them. The application has value if you only use it to collect actual costs, you may do this one year in order to set budgets the following.
The budget process is straightforward. A user with access to Budget Monitoring creates a new budget record and sets a focal point and condition for the budget. They then use the action Generate Budget Lines to create one record for each focal point record that meets the condition. Budget amounts can then be entered for each line and the budget is eventually approved. The action Update Budget Lines is used to collect the estimates, commitments and actuals from work orders and purchase orders, and you review how you are performing either in the Budget Monitoring application or the Budget Details report. At the end of the year or financial period you can close the budget record.
Budgets are set at the organization level but optionally you can choose a site, the site field becomes read-only after first save. Budgets are also determined for a financial period or a year. Each budget record must have a person responsible for the budget, entered in the Supervisor field. Each budget must also have one or more focal points. I would recommend that there is only one focal point, if you choose multiple then Maximo will create a union of each. For example, if you have 100 locations and 1,000 assets then Maximo will attempt to create 100,000 budget lines. This feature makes sense for combining two GL segments. Also beware, that if you are going to use this feature then the BUDGETCODE attribute will be a concatenation of the key fields with a hyphen between and so you may have to extend this greater than the default of 20 characters. The focal points are concatenated in the order of the sequence attribute.
A focal point is the axis on which you will set budgets and collect costs. Out of the box Maximo comes with focal points for LOCATIONS, ASSET, CHARTOFACCOUNTS, SEGMENT 1, SEGMENT 2, to SEGMENT 7 of the GL account. The focal point can have a condition which limits the records of the focal point from which costs will be collected. The condition field allows you to select an existing condition or go to the Conditional Expression Manager application to create a new condition. Alternatively, there is a “Select Value from query” menu option which allows you to copy the SQL text from an existing query. If you use this make sure the selected query is relevant to the chosen focal point, for example if ASSET then pick a query that you will find in the Assets application.
The action Generate Budget Lines is used to create the budget lines for the Budget and Focal Point(s). When you use the action Generate Budget Lines you have the option to delete existing lines or to run this immediately. There is no New Row button on the Budget Lines table window instead there is a button Delete Selected Rows, or if necessary, you can delete rows individually.
The Generate Budget Lines action creates:
- For LOCATIONS it generates a budget line for all types of location, including storerooms in the site or organization specified. The selected locations will be at any status, including NOT READY or DECOMMISSIONED.
- For ASSET it includes assets at any status
- For CHARTOFACCOUNTS there will be one budget line record for every record you see in the Chart of Accounts application for the associated organization.
- For SEGMENT 1 there will be one budget line for each active value of GL Component 1 (glorder=0). This is defined by the condition BUDGL01 which is evaluated as “active = :yes AND glorder = 0”
You will probably want to apply a condition associated with the selected focal point so that budget lines are only created where necessary, otherwise you may have many rows to delete.
Manage Focal Points
The action Manage Focal Points is where you can modify the default condition to use for a focal point or create a new focal point. The Budgeted Attribute is the field to use on the budget line as the Identifier (BUDGETCODE) attribute and the Attribute Description will be used for the DESCRIPTION attribute on the budget line. It is the field against which budgets are entered and estimates, commitments and actuals are calculated. It isn’t the attribute name that is used in the calculation as not all tables will have the attribute name specified. For example, for CHARTOFACCOUNTS it is the GLACCOUNT attribute, but on many objects, it is the GLDEBITACCT attribute that will be used for filtering. This is defined in the Manage Rules action.
The budget record statuses are:
- Draft (DRAFT) – the default for new records – can only go to WAPPR or CANCELLED state, unless you are the supervisor in which case you can also change status direct to APPR state.
- Waiting to be approved (WAPPR) – can only go to APPR, DRAFT or CANCELLED state
- Approved (APPR) – can only go to CLOSED state
- Closed (CLOSED)
- Cancelled (CANCELLED)
At WAPPR state you may receive the following error message “BMXAA9108E – Only the supervisor can generate the budget lines while the budget is waiting for approval.”
The Budgeted Amounts are read-only at Approved state, and read-only at Waiting to be Approved state, unless you are the supervisor who can amend at this state. If you are going to enter budgets you will want to do this at DRAFT state, if the supervisor needs to amend, they will do this at WAPPR state.
You might find it useful to enable Application Import/Export buttons which you can do from the Object Structures application for object structure MXBUDGET. The object structure joins BUDGET and BUDGETLINE.
Once at approved (APPR) state (and not before) the Update Budget Lines action can be used to calculate estimates, commitments and actuals. This action has the ability to run immediately or in the background. The background Cron Task called BUDGETUPD will need to be made active. It is by default set to run once a month for all budget records and so, while you are trialling, I would stick to running immediately. A cron task instance can be defined for a particular budget, organization or site and so you could have different budgets or sites having their costs calculated at different intervals.
If this is the first time you are setting up budgets for a Maximo organization then follow the step for Manage Rules below.
If when you enter the Manage Rules dialog it is found to be empty, then use the Auto-Configuration button.
This will create 53 rules for the organization of your default site. You may have to repeat multiple times if you have multiple Organizations in your Maximo system that want to have the ability to create budgets.
If we open up the details of the first record from the BUDGETRULE object for “Actual Internal Labor” we can see that:
- LABTRANS is the object on which a budgeted attribute exists
- LINECOST is the budgeted attribute that is being used to sum costs
- ACTINTLABCOST is the field on the budget line which is where the result will be stored
- BUDMON61 is the condition that contains the expression used in evaluating records. If you use the Go To Conditional Expression Manager you can see that this evaluates to
- outside = :no AND EXISTS(SELECT * FROM workorder WHERE orgid = labtrans.orgid AND siteid = labtrans.siteid AND wonum = labtrans.refwo AND status NOT IN (SELECT value FROM synonymdomain WHERE domainid = ‘WOSTATUS’ AND maxvalue = ‘CAN’))
- which means sum LINECOST for internal actual labor records on work orders which have not been cancelled
- + is the arithmetic operation which is being used, sometimes you may find a “-“, for example for cancelled purchase order lines
- WORKORDER is the relationship name which joins LABTRANS to its parent object in this case also WORKORDER
The “Transaction date attributes” table window is based on object BUDGETRULETRANSDATE and shows the date fields that will be evaluated in order of sequence to determine which year or financial period to enter the costs.
The “Associations” table window is based on object BUDGETRULEASSOC and links the attribute being summed to a particular focal point. We can see that Actual Internal Labor is being summed for all 10 of the default focal points. However, for each focal point we are matching to a different attribute:
- When focal point is ASSET it is ASSETNUM attribute on the LABTRANS record
- When focal point is LOCATIONS it is LOCATION attribute on the LABTRANS record
- When focal point is CHARTOFACCOUNTS it is GLDEBITACCT on the LABTRANS record
- When focal point is SEGMENT 1 it is GLDEBITACCT on the LABTRANS record but there is a Java class which evaluates this field to determine the value of the first GL segment, the data accessor.
Notice that there is a New Row and Delete Row button on each of the table windows allowing you to create your own calculation rules for budgeting against a completely new focal point. We will show that in action in part 3. If you create a new focal point, then you may need to add an association for all 53 rules!
The transaction date attribute and the focal point association attribute may use dot notation. For example, see Approved Internal Labor (work plan). This evaluates three date fields from the work order object, for example WORKORDER.REPORTDATE. The focal point association attribute also uses the dot notation as in WORKORDER.LOCATION.
The details section of a Budget Line show columns for Budget Amounts, Estimated Costs, Committed Costs, and Actual Costs. The % Committed column is the commitment as a percentage of the budget. The Actual/Budgeted Costs column is the actual as a percentage of the budget. For Labor Hours there are columns for Budget Hours, Estimated Hours, Committed Hours and Actual Hours, but no percentage columns. The details screen in Maximo 220.127.116.11 has an issue in that the UI property of a textbox labellayout=”horizontal” does not appear to be working.
The Shared Material Amount is the budget amount for items issued/returned from a storeroom. Storeroom Material Amount may be a better phrase, that does not imply stocked materials as non-stocked materials may also come from a storeroom.
Budget Details Report
There is a Budget Details report which you should also enable. This shows similar details to that in the details of a budget line.
We have come to the end of the first page discussing the Budget Monitoring application. In the second page we will take a closer look at the budget rules and their association with focal points and how this is used to populate the fields you see on the budget lines and in the budget details report.