Custom Fields
In the Workflow Pane, you can also navigate to this function as part of your Scheduling Workflow.

A Custom Field is a user-defined custom result that is built with a formula in the Expression Editor. Examples of Custom Fields range from simple to complex. There are two distinct types of Custom Field:
- Value Type: Returns a Numeric value
- Filter Type: Returns a Text value
The basic principle is that a Value Type Custom Field will return numbers and Filter Type Custom Fields will return strings. Want to calculate an operating cost? Multiply your operating hours by your hourly cost in a Value Type.
Want to group mining areas for reporting? A Filter Type will filter unique mining blocks by their relevant attribute.
Custom Fields are the result of an Expression. You can consider an Expression to be a formula similar to an Excel formula. The main body of the topic below will detail several examples as well as where to find the full set of tools available to you.
Custom Field Limitations
It's important to know that Custom Fields can only be calculated on a "per line of the Output Schedule" basis. This means that although Custom Fields can be aggregated individually, they cannot be an aggregated calculation (such as Waste Inventory). You can still calculate Waste Inventories in Spreadsheets.
Waste Inventory Example
You can create Custom Fields such as Waste Filling Tonnes and Waste Development Tonnes. Additionally, you can create a Custom Field that represents the Delta between the two. Waste Delta = Waste Development Tonnes – Waste Filling Tonnes
In the Spreadsheet, you can create a line item called Waste Inventory. Waste Inventory would be the Waste Delta for this period + Waste Inventory from the previous period (e.g., years). The Waste Inventory for the first period (e.g., year 1) would be the Waste Delta for that first period.
Variables vs Constants
It's important to understand the difference between a Constant and a Variable when dealing with the Expression Editor. A Variable is anything that might change when you run your Scenario (any item that might appear in a line of the Output Schedule).
Constants
Constants are things that never change. They include Equipment, Processes and relevant Table Positions and Fields. The most common Constants are True and False but also includes things like Pi and options for the Between Function.
Constants that use Code Names
A common example of Constants in practice are the Equipment and Processes you set up in your Scenario. These type of Constants use Code Names.
In your project, you might have a piece of Equipment named Drill, but you might also have a Process called Drill. You can't use Drill as the name for each as they have to be unique, so the application places their location before the name, so the piece of Equipment called Drill has the Code Name EquipmentDrill (no spaces) and the Process called Drill has the Code Name ProcessDrill (no spaces).
You'll use quite a lot of "if the variable is this constant then do this". So, if you were saying if the Equipment is Paste Plant you would write that as Equipment=EquipmentPastePlant. (no spaces) There are plenty of examples to help you get started so don't get too caught up on it right now.
Add Custom Field
To add a Custom Field, right-click "Custom Fields" and choosing New -> Custom Filter/Value Field Type.
Expression Type
(Default: Single) Determines whether your Expression will be conditional on the Process or Equipment.
Per Equipment
Allows an expression to be set per equipment. When one or more Per Equipment Custom Field Expressions have been added, the same per equipment expressions can be reviewed and edited as part of your Equipment setup. See: Custom Fields
The example below shows an expression to determine the mined tonnes associated with production and development equipment:
Per Process
Allows an expression to be set per process.
The example below shows an expression to determine the mined tonnes associated with production and development processes:
Format String
The Format String controls the way the data appears, but doesn't affect the data itself. The Format String nomenclature is based on C# standards. For a summary, see: Format Strings
Aggregation
(Default: Sum) How the data will be aggregated when filtered (typically Sum when dealing with quantities).
Aggregation Method | Description |
---|---|
None | No aggregation. |
Sum | Returns the sum of all child node values. This is the default. |
Weighted Average | Sums the result of each child node value multiplied by the corresponding value in a corresponding In-built Weighting Field or Custom Weighting Field and then divides by the sum of all the weighted field values. |
Expression (Filter OR Value)
Many areas in the application that use Expressions have both a Filter and Value Expression available. Filter Expressions evaluate and return Booleans, whereas Value Expressions return either Values or Text depending on their context.
If a Filter Expression returns True, then the Value Expression will also be evaluated. If the Filter returns false, the Value Expression will return nothing. If you wish to have a Value Expression that changes depending on certain conditions (if this, else that) then you would use one or more Conditional Logic Functions.
For more information about expressions, see: Expression Editor
Custom Field Examples
Cost Capital Lateral Development: If you have a field with for capital development metres, you want to get the value of that field – GetValue() Function to draw the amount of capital metres, then multiply it by a Global constant for the cost per metre of capital development and, finally, multiply by the Source Percentage Completed:
The example below shows an application of the Filter expression. In this case, we are filtering the Custom Field Long Hole Drill Metres to the Process Production Drilling only. The result will only show drill metres associated with that process.
The example below shows the application of an If statement in the Value Expression, to report the amount of CRF (Cemented Rock Fill) only if the Text Custom Field, is “Bottom Up”, otherwise report as 0.
Note there is also a filter applied to the process Waste Rock Filling.