DOMAIN A globally defined set of values. Usage: <a> = SET(DOMAIN(<B>)). <a> is one of the values defined in <B>. SET (DOMAIN(COUNTRY CODES) Means the complete set of country codes. Each set of domain values is defined in the Standard enumerations section within this document. ENDSWITH A string searches for text at the end of a field Usage: <a> ENDSWITH <B>. IF <a> ENDSWITH “ T/A”. Means the condition is true if field <a> contains a value that ends with the text string ‘ T/A’. FOR ANY OCCURRENCE OF <object> An instruction to process each instance of a repeating object, one at a time. FOR ANY OCCURRENCE OF CONTEXT (RP) <test condition> Means for every occurrence of context RP, apply the <test condition>. FOR EACH <object> IN SET(…) An instruction to process each object in a set/collection of objects, one at a time. FOR EACH ForeignCountry IN SET (RP.{ForeignCountry}) <test condition>. Means for each unique ‘ForeignCountry’ segment value, apply the <test condition>. A string search for text within a field performing a variation of the SET, CONTAINS, STARTSWITH and ENDSWITH functions. Includes the following tests: exact match, with a space on each side of the variable, match with a space after the variable, and match with a space before the variable. Where multiple strings have been provided, a check for each string is performed. Usage: <A> = IF <a> = FOUND(“The trustee”,”The Exec”). Means if <a>: equals ‘The trustee’ or ‘The Exec’ (exact match), or contains ‘ The trustee ’ or ‘ The Exec ’ (a space on each side of either string), or starts with ‘The trustee ’ or ‘The Exec ’ (with a space after either string), or ends with ‘ The trustee’ or ‘ The Exec’ (with a space before either string).
MONETARY() Defines a monetary field pattern where a true response is given when a value passes all conditions. As in: MONETARY(<a>,<b>,<c>) Where: <a> = S or U to indicate if field can be signed or not. <b> = Maximum number of digits (including decimal places). <c> = Maximum number of decimal places. For <a> an S indicates a field can be prefixed with a ‘+’ or ‘-‘ sign, but may be omitted. Where <a> is U, the field must not be prefixed with a sign. The of <b> does not include a decimal point or sign in the total character limit. <a> <> MONETARY(U,11,0). Means <a> is not equal to a number in the range 0 to 99999999999, or includes a character other than 0 to 9. <a> <> MONETARY(S,11,0). Means <a> is not equal to a number in the range to 99999999999, or includes a character other than 0 to 9, or ‘+’ or ‘–‘ as the first (left-most) character. <a> <> MONETARY(U,13,2). Means <a> is not equal to a number in the range 0.00 and 99999999999.99, or includes a character other than 0 to 9 or a decimal point. (Decimal point may be omitted). NOT Reverses the value of an element i.e. turns TRUE to FALSE and vice versa. NULL Fact is not there, or has been specified to be null with xsi:nil indicator or is a null non-textual value. IF <a> = NULL. Means if a (non-textual) value for <a> is blank or if <a> does not exist. NULLORBLANK Fact is not is null with xsi:nil = true or is a null string. (Applied to Text, Code, Description, and Identifier facts). IF <a> = NULLORBLANK. Means if a (textual) value for <a> is blank or if <a> does not exist.
ROUNDDOWN a number down to the nearest specified increment. Usage: ROUNDDOWN(<A>,<B>) Where <A> is the configurable increment to down to <B> is the value that is to be rounded down. ROUNDDOWN(0.05,[CTR120]) Means round the value of CTR120 to the .05. In this example, if [CTR120] = 99.93, the amount to be supplied for CTR120 is 99.90. SCHEDULE Used on a main ‘parent’ form to refer to a schedule that could be attached to the parent return. In of SBR, a schedule refers to a business document submitted within the same standard business document body structure as a business document for a main tax return form. Usage: SCHEDULE = <A>. IF = “S25A”) = 0. if there is no instance of a Schedule 25A included in the business document body. IF = “RSPT”) > 50. Means if there are more than 50 occurrences of a Rental schedule in the business document body. SET Defines an explicit set of values, where if one value meets the criteria for comparison, a true response is given. IF <a> <> SET(“a”,”b”,”c”). if <a> does not equal a or b or c. IF <a> = SET(“a”,”b”,”c”) Means if <a> is equal to a or b or c. IF <a> = SET(0-3). Means if <a> is equal to 0 or 1 or 2 or 3 STARTSWITH A string searches for text at the start of a field. Usage: <a> STARTSWITH <B> IF <a> STARTSWITH “T/A”. the condition is true if field <a> contains a value that starts with the text string ‘T/A’ SUM The sum of all instances of an element. Usage: SUM(<A>), where <A> is an element that appears in a repeating tuple or is a repeating element. SUM(<a>) Means the total value of all instances of <a>, when each <a> is added up.
TEXT() Used to define the maximum length of a textual field. Definition of a valid text field pattern where a true response is given when a value passes all conditions. Usage: TEXT(<a>) Where <a> = Maximum number of characters TRUE if the tested field is less than or equal to length <a> (Refer also: LENGTH) <a> <> TEXT(150). Means the maximum number of characters allowable within field <a> is 150. TUPLE Used to signify that the element (in brackets) is a tuple – a ‘container’ that may contain a group of two or more related data elements. TUPLE(addressdetails2.xx.xx:AddressDetails) Means the fields that have been defined as belonging to the ‘addressdetails2.xx.xx:AddressDetails’ module. VALID DATE A date that conforms to the xbrli:dateItemType datatype. IF CONVERT_TO_DATE <> VALID DATE Means if the converted date is not a valid date. WHERE (tuple/context/set) Indicates that the rule execution is dependent on the tuple, context or set existence. Refer WHERE IN CONTEXT, WHERE IN TUPLE and WHERE…IN SET. WHERE IN CONTEXT Used to validate data elements which are logically grouped within a context. Rule is executed within the bounds of each occurrence of a particular context. Usage: WHERE IN CONTEXT(<A>) IF <B>…. WHERE IN CONTEXT(RP) IF <B> = NULLORBLANK (Where <B> is a fact in the RP context). Means if the value of <B> within the RP context is null or blank. In this example the rule will only trigger if the RP context exists and if <B> (in the RP context) is null or blank.
WHERE …IN SET Used to validate data elements which are logically grouped within a set. Rule is executed within the bounds of each occurrence of a set. WHERE <A> IN SET(<B>). Refer also: {x}. WHERE ForeignCountry = ’us’ IN SET (RP{ForeignCountry}) Means execute the rule if the ForeignCountry dimension value is ‘us’ in the ForeignCountry dimension within the RP context. WHERE…. IN TUPLE (element definition) The WHERE and IN TUPLE keywords are used when tuple element explicits are required. The element including the definition is to be considered as a whole. (RP:pyde.xx.xx:AddressDetails.Line1.Text WHERE(TUPLE ELEMENT Address Usage = “BUS”) IN TUPLE(address2)) = NULLORBLANK. Means Line 1 of the business address of the Reporting Party is not present. Rule will trigger if: RP context is not present, or address2 tuple is not present, or address2 tuple with Address Usage = ‘BUS’ is not present, or in the address2 tuple with Address Usage = ‘BUS’ is not present. WHERE IN TUPLE Used to validate data elements which are logically grouped within a tuple. Rule is executed within the bounds of each occurrence of a tuple. WHERE IN TUPLE (<A>) IF <B>…. (Refer also IN TUPLE. The ‘WHERE’ keyword is optional). WHERE IN TUPLE(<A>) IF <B> = NULLORBLANK (Where <B> is a fact in tuple <A>) Means if the value of <B> within the tuple <A> is nullorblank. In this example the rule will only trigger if tuple <A> exists and if <B> (in <A>) is null or blank. (\element definition) ‘xbrli’ is used to denote the reporting taxonomy root. Indicates a given tuple or element is not nested within another tuple. This is used to differentiate elements that are repeated at different levels of the reporting taxonomy within a given business collaboration. IN TUPLE Means in the tuple that is not within another tuple. In this example, the implication is that the tuple also exists under another tuple within the product.
Please refer to section 3.4 for details on the new Technical Business Rule format and Transition Plan Applies to XBRL Payloads Identifies if the validation rule applies to XBRL payloads. Valid values are: ‘Y’, ‘N’ or ‘n/a’ Y - rule is applied to a XBRL payload N - rule is not applied to a XBRL payload n/a - service does not use XBRL payloads Applies to XML Payloads Identifies if the validation rule applies to XML payloads. values are: ‘Y’, ‘N’ or ‘n/a’ Y - rule is applied to a XML payload N - rule is not applied to a XML payload n/a - service does not use XML payloads Applies to JSON Payloads Identifies if the validation rule applies to JSON payloads. Valid values are: ‘Y’, ‘N’ or ‘n/a’ Y - rule is applied to a JSON payload N - rule is not applied to a JSON payload n/a - service does not use JSON payloads Rule Type Indicates the type of rule – Context, Format, Enumeration, Mandatory, Calculation, CrossForm, or CrossField. These, in part, determine the validation phase, as described above in section 3.4.2. Schematron ID The Schematron ID for the rule. Message Code The response message code (identifier) returned when a request message does not comply with the rule. The messages returned by the ATO are published in the ATO response messages XML file on the SBR website. Message – Short Description The response message description corresponding to the Message Code. An additional detailed description may be available for the message code which is available in the ATO Response message repository. Last Updated The date the rule was or last changed since the prior version or prior business collaboration (where applicable).