A schema is a topical distribution and is organized as a hierarchical (tree) view of headers. The headers can be organized in levels meaning that each header can have child-headers.
Each header consists of a unique code and an optional description. When inputted in the budget grid, the whitespace acts as a delimiter between the schema code and its description: this implies that a budget code cannot contain whitespaces. All other characters are allowed.
The schema defines the rows onto which the budget will be inputted and the bookkeeping amounts will be rendered in reports.
There is no limit on the number of nested levels you can add to a schema, but as a best practice it is advised to limit the depth at 5 to 6 levels.
RPM has 2 kinds of schemas: predefined schemas and budget schemas:
Predefined schemas are schemas that are not created within the context of a project's budget but as a template. They have a dual purpose:
Predefined schemas can be created using the Schema option in the Configuration menu. Note: access to this program is limited to users with the necessary administrative rights.
Budget schemas are the schemas that are defined in the budget. Each budget can only have 1 schema which is common for all the versions of that budget: if you add a schema header in version 5, it will automatically exist in versions 1 to 4 too.
Most of the time, a budget schema will be created by applying a predefined schema on the budget whereafter headers will be added ad-hoc. It is important to understand that when applying a predefined schema on a budget, the headers are copied to the budget ! This means that changes to a budget schema have no repercussions on the predefined schema. In the same manner, headers added to a predefined schema will not automatically exist in budget schemas (but if you update codes and descriptions of a predefined schema, those changes will be duplicated to budget schemas).