Learn how you can configure budget availability control for your Cost Centers with simple customizing steps.
Key Concept
Budget availability control in the managerial accounting (CO) and Project System (PS) modules is a standard SAP functionality that automates budget control through warnings and error messages. It also can send notification emails automatically to respective budget holders based on defined conditions. This functionality in the standard SAP system is available only for orders and projects. The standard SAP functionality for budget availability control is available for internal orders and work breakdown structure (WBS) elements, but not for the cost centers. Cost centers are commonly used to represent the organizational structure of the company. Naturally, most businesses are interested in having system-enabled budget control for departments or business units represented by cost centers.
Quite often, budget overspending is discovered too late with a traditional system setup. Organizations traditionally rely on a regular reporting procedure, but sooner or later, it can fail for a number of possible reasons. On the other hand, with active budget availability control, the system can not only provide early and real-time warnings, but also send automatic emails to the person responsible. This is exactly the difference between reactive and proactive approaches toward cost controlling.
When you use budget availability control, my recommendation is to route most of your external costs through commitments. From a business perspective, commitment is a future cost that is internally agreed upon in advance, so the company is anticipating it with very high degree of certainty. Ideally all vendor invoices should have corresponding purchase requisitions (PRs) and purchase orders (POs) because the system automatically creates commitments for them. Any exceptions to this rule should be minimized. Commitments allow a budget control to be one step ahead of an actual cost because they block or reserve funds from the budget.
Note
You can always consider the implementation of Funds Management functionality (PSM-FM component), but I would classify it as a heavy alternative that requires a lot of effort and its complexity is often underestimated by project implementation teams.
In this article, I test the solution proposed in the SAP Note 101030. However, I go beyond the SAP Note content and provide practical steps for configuring a working prototype, as well as sharing some ideas around further possible solution improvements.
In SAP Note 101030, SAP suggests that you mirror cost centers with statistical internal orders that should be used as an additional account assignment in financial postings via substitution. Once budget availability control is activated for statistical internal orders, it serves as budget availability control for cost centers that are paired with them.
One of the important advantages of this solution is that it can be implemented after the system go-live date and with minimum impact to the end-user interface. On the other hand, it naturally increases complexity around master data management in the managerial accounting (CO) module.
System Configuration
First, I create a new budget profile that is used together with a new order type. To create a budget profile, follow IMG menu path Controlling > Internal Orders > Budgeting and Availability Control > Maintain Budget Profile (Figure 1).

Figure 1
Budget profile for the order type
Click the New Entries button and maintain the data according to your requirements. In my example, I use both Availability Control and Budgeting Currency settings as an Object currency option. These settings allow me to avoid any unnecessary currency conversions during budget availability control in the multi-currency and multi-company code controlling area environment. Click the save icon on the top bar to save your data for the budget profile.
Next, I create a new order type designated for statistical orders mirroring cost centers. To keep the naming convention aligned, I use external numbering for this order type. To call up the Change View Order Types screen, execute transaction code KOT2. Alternatively, you can use the IMG structure by selecting Controlling > Internal Orders > Order Master Data > Define Order Types (Figure 2). In the Control indicators section, note that the Commitments Management (Commit. Management) check box should be activated.

Figure 2
Order type parameters
Figure 3
Figure 3
The field selection screen for the order type
Browse to the field selection settings using the Field selection icon at the bottom of the screen (Figure 2). After you click the save icon to save the Field selection, the system returns to the Order type parameters screen (Figure 2). Click the save icon to save the data also for the order type parameters.
Next, I show you how to maintain tolerance limits settings. To complete this step, follow IMG menu path Controlling > Internal Orders > Budgeting and Availability Control > Define Tolerance Limits for Availability Control. Click the New Entries button (not shown) and click the save icon (not shown) after maintaining the values (Figure 4).

Figure 4
Tolerance limits settings for availability control
Note
I recommend using option 2 (you can see it in the fifth lead column in Figure 4) in the tolerance limits settings. Option 2 includes automatic email to the person responsible (for WBS) or to the budget manager (for internal orders). Although it also implies additional master data maintenance for the Person Responsible field that I would recommend you set up as a mandatory field in the fields status control settings (not relevant for internal orders setup), it is the only option that creates a document (email message) that can be traced and audited later. Option 1 provides a warning message to the end user that can be simply ignored, leaving no evidence that the warning ever existed as it is a run time message that can be closed. Option 3 is an error message that can block your accounting process without any good reason. There are many business situations in which incoming accounting documents had no commitment raised in advance, but they need to be posted on time without waiting for an additional budget allocation that in such cases becomes a formality.
Next, maintain a budget manager for the order type. To complete this step, follow IMG menu path Controlling > Internal Orders > Budget and Availability Control > Maintain Budget Manager. Click the New Entries button. Specify a system user ID (Figure 5) for the combination of Controlling Area and Order Type. Save your entry by clicking the save icon on the top bar.

Figure 5
Budget manager settings
Now you are ready to set up CO line-item substitution. Execute transaction code OKC9. Similar to a good programming style, there is a good substitution style. The good substitution style means that you should be able to switch the substitution on and off in a production environment by manipulating the master data and therefore avoiding any corrective transports if something goes wrong. This can be done by including a Boolean statement into the substitution prerequisite (Figure 6). Normally, it should reflect the organizational scope for the substitution, checking if a specific organizational unit belongs to a specific data set. By editing this data set, you can extend, reduce, or eliminate the scope.

Figure 6
CO line-item substitution
Note
All configuration changes are moved from development environment to the quality assurance environment and next to the production system environment using transport requests, or simply transports. Transports are the kind of containers with specific configuration that is being moved across. A corrective transport by its description is dealing with a certain system correction. Both the process and the procedure transporting changes across the system landscape takes time and resources that might imply some downtime in production.
In my example, I maintain a set of cost centers called SCOPE using transaction code GS01 (Figure 7). Alternatively, you can follow menu path Project System > Information System > Tools > Cost Element Reports > Define > Report Writer > Set > Create.

Figure 7
Create a set of cost centers
In the Table field, enter CSKS for the cost center table CSKS and KOSTL for the Field name. Next, you need to activate the substitution for your controlling area. To complete this step, execute transaction code OKC9 or follow IMG menu path Controlling > General Controlling > Account Assignment Logic > Define Substitution. In my example, I use controlling area (COAr) CA01. Your CO area is likely to be different (Figure 8). Click the save icon on the top bar to save your entry.

Figure 8
Activate substitution for controlling area
Solution Testing
Your system customizing is now complete. You can start to test the solution. First, you need to prepare the master data. To create an internal order, execute transaction code KO01 or follow menu path Controlling > Internal Orders > Master Data > Special Functions > Order > Create (Figure 9).

Figure 9
Create an internal order
I use the same code and the same description for the order as in the respective cost center. To complete this process, click the Control data tab and enter a cost center code in the Actual posted CCtr field. This link is optional, but I added a cost center mapping because it enforces the master data relationship and can be used later to cover up for situations in which the standard substitution does not work. Click the save icon to save the order master data.
Now you allocate the budget to an internal order. To complete this step, execute transaction code KO22 or follow menu path Accounting > Controlling > Internal Orders > Budgeting > Original Budget > Change. Specify the order number in the initial screen and press F5 or click the Original Budget button. Next, maintain annual budget values as shown in Figure 10. Click the save icon.

Figure 10
Maintain budget figures for the order
The next step is to create a PO commitment. First, execute transaction code ME21N or follow menu path Logistics > Materials Management > Purchasing > Purchase Order > Create > Vendor/Supplying Plant Known.
Note
The process of creating and releasing POs is not the focus of this article, so I don’t include details on how to complete this process.
I create a sample PO with the cost center account assignment. Next, the PO can be released (if relevant for any release strategy) by executing transaction code ME29N (Figure 11).

Figure 11
The display view of the PO
The PO shows up in the Commitment Line Items for the Cost Centers report after you execute transaction code KSB2 as shown in Figure 12.

Figure 12
The Commitment Line Items for Cost Centers report
In addition, because of the substitution logic, the same commitment is also reflected at the statistical internal order. To view order commitment line items, execute transaction code KOB2 or follow the menu path Accounting > Controlling > Internal Orders > Information System > Reports for Internal Orders > Line Items > Orders: Commitment Line Items. The report is shown in Figure 13.

Figure 13
Commitment posted to a statistical internal order in the Commitment Line Items for Orders report
Additionally, you might want to run the standard budget report for the internal order by executing transaction code KO23 and selecting Extras > Availability Control > Analysis (Figure 14).

Figure 14
The Active Availability Control Analysis report
Figure 15
Figure 15
Post a vendor invoice with FB60
Note
I have not included details on how to post a vendor invoice because those steps are beyond the scope of this article.
After you post a vendor invoice, the report for availability control is updated accordingly (Figure 16).

Figure 16
The Active Availability Control Analysis report
Now you are ready to post a direct activity allocation. Execute transaction code KB21N or follow menu path Accounting > Controlling > Cost Center Accounting > Actual Postings > Activity Allocation > Enter). In the screen that appears (Figure 17), I posted a service allocation of 35 hours from one cost center to another cost center.

Figure 17
The Direct Activity Allocation document
The Direct Activity Allocation document is reflected in the Cost Center Line Items report. To view the Direct Activity Allocation document in the Cost Center Line Items report, execute transaction code KSB1 (Figure 18) or follow menu path Controlling > Cost Center Accounting > Information System > Reports for Cost Center Accounting > Line Items > Cost Centers: Actual Line Items. The second row on the report shows the result of direct activity allocation.

Figure 18
The Cost Center Line Items report (KSB1)
The Direct Activity Allocation document does not show up in the Cost Line Items for Orders report. To view the Cost Line Items for Orders report, execute transaction code KOB1 (Figure 19) or follow menu path Controlling > Internal Orders > Information System > Reports for Internal Orders > Line Items > Orders: Actual Line Items. This means that the substitution does not work for Direct Activity Allocation.

Figure 19
The Order Line Items report
This is one of the system limitations to be considered when designing the solution. The next step is to execute a distribution cycle. Follow menu path Controlling > Cost Center Accounting > Period-End Closing > Single Functions > Allocations > Distribution or use transaction code KSV5. The distribution cycle serves for the testing purpose only. It allocates a specific cost element total from Cost Center A to Cost Centers B and C with a split of 30 percent and 70 percent, respectively. I do not provide a cycle setup here, as I am interested only in the account assignments of generated CO documents. To display a CO document, use transaction code KSB5. The controlling documents appear in the screen shown in Figure 20.

Figure 20
Controlling document display with transaction code KSB5
Some Possible Solution Improvements
Thus far, I have covered the most basic setup as it has been outlined by SAP Note 101030. The real business requirements quite often can go beyond this basic functionality and demand more advanced logic resulting in a more complex system setup. In this section, I share a few ideas to take the solution one step further based on the most common additional requirements.
Quarterly or Monthly Budgets
The first possible improvement is to introduce a period dimension that is different from a fiscal year into budget availability control. It is a very common business requirement that follows the logic of monthly cost planning or quarterly reporting. This can be done by periodic release of budget funds on internal orders, provided that the availability control settings consider only the released budget. Such an approach requires business user discipline and is not very transparent from the reporting perspective. An alternative approach is to associate several internal orders with the same cost center based on the number of budget-relevant periods.
For example, for a quarterly budget control, there could be four internal orders, and for a monthly budget control, there could be 12.
The Cost Center field has a length of 10 characters, whereas the order field has a length of 12 characters. Therefore it is possible to concatenate the period information into the remaining 2 characters with a simple substitution exit.
Using Statistical WBS Instead of Statistical Orders
Another interesting possibility is using statistical WBS elements instead of statistical internal orders. The project structure can follow the cost center hierarchy and provide a single data entry point with transaction code CJ30 for the budget figures, making it more user-friendly as well as ensuring data consistency. The system automatically validates that the total budget figures on the lower levels of the hierarchy cannot exceed the amounts on the higher level, providing an overall budget top-down allocation view (or automatic bottom-up summarization).
Use of statistical WBS elements can also provide an alternative solution for companies in which cost center plus internal order account assignment is already used. Another advantage of using statistical WBS elements is that having specific budget owners for each WBS makes more sense for any business organization. With internal orders you can specify only one business user to receive budget-related system emails. With WBS elements each WBS can be assigned its own person responsible for the budget.
WBS code contains up to 24 characters and it gives the possibility to include additional dimensions into the code naming convention. For example, it can be based on the cost component structure or any other grouping of cost elements if separate budget control is required for those groups. The substitution user exit can automatically determine the WBS based on the combination of G/L account and cost center.
Using Statistical Object Directly in Allocations
As I have confirmed above, the substitution does not cover situations with direct activity allocation and allocation cycles. Therefore, those postings are not reflected in the statistical object. This limitation can be partially overcome by specifying the statistical object directly as a receiver object. The standard functionality ensures that both statistical and real objects are posted provided that the link between the two is maintained in the master data of the statistical object (Figure 9). Figure 21 shows the fragment of the allocation cycle master data to illustrate this option. To reach this screen execute transaction code KSV2 or follow menu path Controlling > Cost Center Accounting > Period-End Closing > Current Settings > Define Distribution. Select the cycle name together with the start date and browse to a specific cycle segment. Click the Senders/Receivers tab and populate the fields as shown in Figure 21. Click the save icon to save your cycle master data.

Figure 21
Allocation cycle master data fragment
To learn more tips about budget availability control functionality in an SAP system, read “Use Document Types for Budget Availability Control in SAP PS.”
Paulo Vitoriano
Paulo Vitoriano started his consulting career with Arthur Andersen Business Consulting in 1997. Since then, he has helped many global clients on SAP implementation projects, including DHL, Carlsberg, Nestle, Shell, AXA, Electrolux, and Maersk. During the last 18 years he has covered more than 10 end-to-end SAP implementations working on-site in 16 different countries. He has project experience with seven different oil and gas companies, and his current focus is on SAP IS-Oil and system integration.
You may contact the author at pavitoriano@gmail.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.