FinDatEx EMT Validation Reference (V4.3)
Spec: /spec/emt/EMT_V4_3_20251217.xlsx
Manifest: /spec/emt/emt-v43-info.json
Released: 2025-12-17 · Sheet: EMT V4.3
Profiles: EMT (Mandatory) (EMT_BASE)
Generated file — do not edit by hand. Regenerate via
mvn -pl core -Pdocs exec:java -Dexec.args="docs/rules".
1. How this validator scores your file
The overall quality score is a weighted blend of five sub-scores. Only Severity.ERROR findings lower the score; WARNING and INFO are reported but ignored by the scorer.
| Dimension | Weight | Computation |
|---|---|---|
| MANDATORY_COMPLETENESS | 40 % | 1 − (missing M-cells / total M-cells) across active profiles |
| FORMAT_CONFORMANCE | 20 % | 1 − (format errors / non-empty cells) |
| CLOSED_LIST_CONFORMANCE | 15 % | 1 − (closed-list errors / non-empty closed-list cells) |
| CROSS_FIELD_CONSISTENCY | 15 % | 1 − (XF errors / max(distinct XF rules × rows, 1)) |
| PROFILE_COMPLETENESS | 10 % | mean over profiles of (0.7 × M-completeness + 0.3 × C-completeness) |
Findings are routed to dimensions by their rule-id prefix:
| Rule prefix | Dimension |
|---|---|
PRESENCE/ |
MANDATORY_COMPLETENESS + PROFILE (M leg) |
COND_PRESENCE/ |
PROFILE_COMPLETENESS (C leg) |
FORMAT/ (closed-list message) |
CLOSED_LIST_CONFORMANCE |
FORMAT/ (other) |
FORMAT_CONFORMANCE |
ISIN/, LEI/ |
FORMAT_CONFORMANCE |
XF-…, template *-XF-* |
CROSS_FIELD_CONSISTENCY |
*-ONLINE (GLEIF / OpenFIGI) |
not scored (advisory) |
2. Profiles
Selecting a profile in the UI tells the validator to enforce the M (mandatory) and C (conditional) flags from that profile's column in the spec. Multiple profiles can be selected simultaneously — a field is mandatory if any selected profile says so.
| Code | Display name | Mandatory fields | Conditional fields |
|---|---|---|---|
EMT_BASE |
EMT (Mandatory) | 40 | 33 |
3. General rules
The engines below run on every applicable field/row independently of the template-specific cross-field block in §4.
Version rule
- Rule ID:
EMT-XF-VERSION - Severity: ERROR (INFO if the version cell is absent)
- Expected token:
V4.3 - Trigger: the version cell of the file does not contain the expected token.
- Score impact: Each ERROR lowers CROSS_FIELD_CONSISTENCY (15 %) by 1 / max(distinct cross-field rules × rows, 1).
Presence engine (PRESENCE/{numKey}/{profile})
- What it checks: for every
FieldSpecflagged M for an active profile and applicable to the row's CIC, the cell value must be non-empty. - Severity: ERROR.
- Score impact: Each missing cell lowers MANDATORY_COMPLETENESS (40 %) by 1 / total mandatory slots, and lowers the per-profile PROFILE_COMPLETENESS leg (10 %, M-weighted 0.7).
- Active rule instances: 40 (one per field × profile).
Conditional-presence engine (COND_PRESENCE/{numKey}/{profile})
- What it checks: for every
FieldSpecflagged C for an active profile and whose CIC applicability matches the row's CIC, the cell value must be non-empty. - Severity: WARNING.
- Score impact: Each missing cell lowers PROFILE_COMPLETENESS (10 %, C-weighted 0.3) by 1 / total conditional slots. Severity = WARNING — does not affect MANDATORY_COMPLETENESS or FORMAT_CONFORMANCE.
- Active rule instances: 33 (one per CIC-restricted field × profile).
Format engine (FORMAT/{numKey})
- What it checks: every populated cell is validated against its codification kind: ISO 4217 currency, ISO 3166-A2 country, ISO 8601 date, NACE, CIC 4-char, alphanumeric length, numeric, closed-list membership.
- Severity: ERROR.
- Score impact: Each ERROR lowers FORMAT_CONFORMANCE (20 %) by 1 / non-empty cells. Closed-list mismatches (message contains "closed list") instead lower CLOSED_LIST_CONFORMANCE (15 %) by 1 / populated closed-list cells.
- Active rule instances: 114 (one per field).
External validation (opt-in)
- Off by default. Operators enable it via the Settings dialog (desktop) or the
FINDATEX_WEB_EXTERNAL_ENABLEDenv var (web). - ISIN lookup (OpenFIGI): field
9(when type field10=1) - LEI lookup (GLEIF): field
9(when type field10=10); field20(single-purpose, no type flag); field3(single-purpose, no type flag) - Score impact: External-validation findings are advisory and do not affect any score dimension.
4. Cross-field rules
No cross-field rules are wired for this template/version. Regulatory cross-field logic for EMT is deferred — see docs/SME_QUESTIONS/emt-cross-field-rules.md for the open SME briefs.
Field reference
One page per field, with its flag in every profile, the codification it must match and every rule that can fire on it.
- Field 100001_EMT_Version
- Field 200002_EMT_Producer_Name
- Field 300003_EMT_Producer_LEI
- Field 400004_EMT_Producer_Email
- Field 500005_File_Generation_Date_And_Time
- Field 600006_EMT_Data_Reporting_Target_Market
- Field 700007_EMT_Data_Reporting_Ex_Ante
- Field 800008_EMT_Data_Reporting_Ex_Post
- Field 900010_Financial_Instrument_Identifying_Data
- Field 1000020_Type_Of_Identification_Code_For_The_Financial_Instrument
- Field 1100030_Financial_Instrument_Name
- Field 1200040_Financial_Instrument_Currency
- Field 1300045_Financial_Instrument_Performance_Fee
- Field 1400047_Financial_Instrument_Distribution_Of_Cash
- Field 1500050_General_Reference_Date
- Field 1600060_Financial_Instrument_Product_Type
- Field 1700065_Maturity_Date
- Field 1800067_May_Be_Terminated_Early
- Field 1900070_Financial_Instrument_Manufacturer_Name
- Field 2000073_Financial_Instrument_Manufacturer_LEI
- Field 2100074_Financial_Instrument_Manufacturer_Email
- Field 2200075_Financial_Instrument_Manufacturer_Product_Governance_Process
- Field 2300080_Financial_Instrument_Guarantor_Name
- Field 2400085_Financial_Instrument_Type_Notional_Or_Item_Based
- Field 2500090_Product_Category_Or_Nature_Germany
- Field 2600095_Structured_Securities_Product_Category_Or_Nature
- Field 2700096_Structured_Securities_Quotation
- Field 2800100_Leveraged_Financial_Instrument_Or_Contingent_Liability_Instrument
- Field 2900110_Fund_Share_Class_Without_Retrocession
- Field 3000120_Ex_Post_Cost_Calculation_Basis_Italy
- Field 3101000_Target_Market_Reference_Date
- Field 3201010_Investor_Type_Retail
- Field 3301020_Investor_Type_Professional
- Field 3401030_Investor_Type_Eligible_Counterparty
- Field 3502010_Basic_Investor
- Field 3602020_Informed_Investor
- Field 3702030_Advanced_Investor
- Field 3802040_Expert_Investor_Germany
- Field 3903010_Compatible_With_Clients_Who_Can_Not_Bear_Capital_Loss
- Field 4003020_Compatible_With_Clients_Who_Can_Bear_Limited_Capital_Loss
- Field 4103030_Limited_Capital_Loss_Level
- Field 4203040_Compatible_With_Clients_Who_Do_Not_Need_Capital_Guarantee
- Field 4303050_Compatible_With_Clients_Who_Can_Bear_Loss_Beyond_Capital
- Field 4404010_Risk_Tolerance_PRIIPS_Methodology
- Field 4504020_Risk_Tolerance_UCITS_Methodology
- Field 4604030_Risk_Tolerance_Internal_Methodology_For_Non_PRIIPS_And_Non_UCITS
- Field 4704040_Risk_Tolerance_For_Non_PRIIPS_And_Non_UCITS_Spain
- Field 4804050_Not_For_Investors_With_The_Lowest_Risk_Tolerance_Germany
- Field 4905010_Return_Profile_Client_Looking_For_Preservation
- Field 5005020_Return_Profile_Client_Looking_For_Capital_Growth
- Field 5105030_Return_Profile_Client_Looking_For_Income
- Field 5205040_Return_Profile_Hedging
- Field 5305050_Option_Or_Leveraged_Return_Profile
- Field 5405070_Return_Profile_Pension_Scheme_Germany
- Field 5505080_Minimum_Recommended_Holding_Period
- Field 5605105_Does_This_Financial_Instrument_Consider_End_Client_Sustainability_Preferences
- Field 5705115_Other_Specific_Investment_Need
- Field 5806010_Execution_Only
- Field 5906020_Execution_With_Appropriateness_Test_Or_Non_Advised_Services
- Field 6006030_Investment_Advice
- Field 6106040_Portfolio_Management
- Field 6207020_Gross_One-off_Cost_Financial_Instrument_Maximum_Entry_Cost_Non_Acquired
- Field 6307025_Net_One-off_Cost_Structured_Products_Entry_Cost_Non_Acquired
- Field 6407030_One-off_Cost_Financial_Instrument_Maximum_Entry_Cost_Fixed_Amount_Italy
- Field 6507040_One-off_Cost_Financial_Instrument_Maximum_Entry_Cost_Acquired
- Field 6607050_One-off_Costs_Financial_Instrument_Maximum_Exit_Cost_Non_Acquired
- Field 6707060_One-off_Costs_Financial_Instrument_Maximum_Exit_Cost_Fixed_Amount_Italy
- Field 6807070_One-off_Costs_Financial_Instrument_Maximum_Exit_Cost_Acquired
- Field 6907080_One-off_Costs_Financial_Instrument_Typical_Exit_Cost
- Field 7007090_One-off_Cost_Financial_Instrument_Exit_Cost_Structured_Products_Prior_RHP
- Field 7107100_Financial_Instrument_Gross_Ongoing_Costs
- Field 7207105_Financial_Instrument_Borrowing_Costs_Ex_Ante_UK
- Field 7307110_Financial_Instrument_Management_Fee
- Field 7407120_Financial_Instrument_Distribution_Fee
- Field 7507130_Financial_Instrument_Transaction_Costs_Ex_Ante
- Field 7607140_Financial_Instrument_Incidental_Costs_Ex_Ante
- Field 7707150_Structured_Securities_Reference_Price_Ex_Ante
- Field 7807155_Structured_Securities_Notional_Reference_Amount_Ex_Ante
- Field 7907160_Ex_Ante_Costs_Reference_Date
- Field 8008010_Gross_One-off_Cost_Structured_Securities_Entry_Cost_Ex_Post
- Field 8108015_Net_One-off_Cost_Structured_Securities_Entry_Cost_Ex_Post
- Field 8208020_One-off_Costs_Structured_Securities_Exit_Cost_Ex_Post
- Field 8308025_One-off_Cost_Financial_Instrument_Entry_Cost_Acquired
- Field 8408030_Financial_Instrument_Ongoing_Costs_Ex_Post
- Field 8508040_Structured_Securities_Ongoing_Costs_Ex_Post_Accumulated
- Field 8608045_Financial_Instrument_Borrowing_Costs_Ex_Post_UK
- Field 8708050_Financial_Instrument_Management_Fee_Ex_Post
- Field 8808060_Financial_Instrument_Distribution_Fee_Ex_Post
- Field 8908070_Financial_Instrument_Transaction_Costs_Ex_Post
- Field 9008080_Financial_Instrument_Incidental_Costs_Ex_Post
- Field 9108090_Beginning_Of_Reference_Period
- Field 9208100_End_Of_Reference_Period
- Field 9308110_Structured_Securities_Reference_Price_Ex_Post
- Field 9408120_Structured_Securities_Notional_Reference_Amount
- Field 9509010_Financial_Instrument_Transaction_Costs_Ex_Ante_UK
- Field 9609020_Financial_Instrument_Transaction_Costs_Ex_Post_UK
- Field 9709030_EMT_Data_Reporting_VFM_UK
- Field 9809040_Is_Assessment_Of_Value_Required_Under_COLL_UK
- Field 9909050_Outcome_Of_COLL_Assessment_Of_Value_UK
- Field 10009060_Outcome_Of_PRIN_Value_Assessment_Or_Review_UK
- Field 10109070_Other_Review_Related_To_Value_And_Or_Charges_UK
- Field 10209080_Further_Information_UK
- Field 10309090_Review_Date_UK
- Field 10409100_Review_Next_Due_UK
- Field 10510000_Financial_Instrument_Indirect_Costs_Open_Ended_Ex_Ante_UK
- Field 10610010_Financial_Instrument_Indirect_Costs_Closed_Ended_Ex_Ante_UK
- Field 10710020_Financial_Instrument_Real_Assets_Costs_Ex_Ante_UK
- Field 10810030_Financial_Instrument_Indirect_Costs_Open_Ended_Ex_Post_UK
- Field 10910040_Financial_Instrument_Indirect_Costs_Closed_Ended_Ex_Post_UK
- Field 11010050_Financial_Instrument_Real_Assets_Costs_Ex_Post_UK
- Field 11110060_Does_Financial_Instrument_Produce_Client_Facing_Disclosures_UK
- Field 11211000_EMT_Data_Reporting_VCA_FR
- Field 11311010_Used_VCA_Methodology_FR
- Field 11411020_Hyperlink_To_VCA_Methodology_FR
Upload a TPT, EET, EMT or EPT file and get a quality score, every finding grouped by rule, and an Excel report. No login; the file is never stored.
Open the validator