ScopedAttachment¶
Applies an attachment to the sum of a group of records that share equal values
in the columns specified by erode_by_columns. It is applied incrementally
to groups of records that share same values in the columns specified by
span_columns. Once the attachment is applied, the result is
proportionally allocated to all records in the group.
Structure¶
{
"_schema": "ScopedAttachment_1.0",
"attachment": 1000,
"span_columns": ["Time"],
"erode_by_columns": ["Time", "OccurrenceKey"],
"currency": "GBP"
}
Parameters¶
Parameter Name |
Required |
Type |
Description |
|---|---|---|---|
|
Yes |
|
The attachment value in currency units. Cannot be negative. |
|
No |
|
List of column names. Adjacent records with the same values in the provided columns will share the same eroding attachment. Supported columns: |
|
No |
|
List of column names. Specifies the grouping of records the attachment will apply to. Supported columns: |
|
No |
|
The currency in which |
Behaviour¶
Records given to scoped attachment have their attachment applied
according to how they are grouped by span_columns and
erode_by_columns.
All adjacent records with matching values in the columns specified by
span_columns are placed within a span group.
All adjacent records with matching values in the columns specified by
erode_by_columns within a span group are further placed in an
erode group.
Within each erode group, the attachment is applied to the sum of the records’
Value fields (sum) with the function new_sum = min(sum + attachment, 0). This value is
then proportionally allocated to the Value field of each record within the group with
the function record.value = new_sum / sum.
If sum is 0, then each records’ Value field is instead set to 0.
In either case, the attachment is eroded with the function
attachment = max(attachment + sum, 0).
Within each span group, the value of the attachment is reset to the original attachment specified in the arguments.