EMIR reporting: what a trade repository submission contains
The three tables, the identifiers and the reconciliation model.
Read the guide →They are named together, they cover overlapping trades, and they are routinely scoped as one programme. That decision is the single most reliable predictor of a remediation exercise eighteen months later.
A useful test for whether two reporting obligations can be run as one: do they share the same population, the same filing destination and the same dataset? Frameworks that pass all three can be built once. CRS and the crypto-asset framework pass it comfortably. EMIR and MiFIR fail all three.
| Dimension | EMIR | MiFIR |
|---|---|---|
| Purpose | Systemic risk monitoring | Market abuse detection and market supervision |
| Sidedness | Dual-sided, with pairing and matching between counterparties | Single-sided — no counterparty report to reconcile against |
| Unit | The contract, across its whole life | The executed transaction, at a point |
| Lifecycle | Modifications, valuations, collateral and terminations all reported | Only cancellations and amendments of the report itself |
| Key identifier | Unique transaction identifier, agreed with the counterparty | Instrument identifier from reference data, plus person and algorithm identifiers |
| Reporting party | Both counterparties, with responsibility assigned in defined cases | The investment firm, with the chain deciding which one |
| Success measure | Proportion paired and matched | Completeness and accuracy against the authority’s own checks |
| Failure mode | Accepted but unmatched — invisible without reconciliation reporting | Missing, duplicated or misattributed reports — usually a scope or chain error |
The case for one programme is not baseless — it is just narrower than it looks. What shares well:
What does not share: scope logic, field mapping, identifier generation, submission, exception handling and reconciliation. That is most of the build.
The failure is rarely dramatic. It looks like a single scope engine with a growing set of framework-specific exceptions, a shared field model where half the fields are populated for one framework and null for the other, and an exception queue where two unrelated classes of break are triaged by one team that understands one of them well. The cost surfaces as reconciliation statistics that do not improve, and as a remediation programme that has to separate the two before it can fix either.
Primary instruments only. Each is named in full so the reference remains traceable even if a link moves.
Yes, to two different recipients, with two different datasets and two different deadlines. The trade repository receives the contract and its life; the competent authority receives the execution and its attribution. Neither discharges the other.
It can, and several do. The question to ask is whether the two are separate pipelines inside it or one pipeline with conditional logic. The first is fine; the second accumulates exceptions until it needs rebuilding.
The entity and instrument reference data, and the trade capture feed if it carries enough fields. The scope logic, the mapping and the exception handling do not carry across, because the two frameworks are asking different questions of the same trade.
Usually MiFIR, because its failure mode is silent gaps that grow, whereas EMIR failures surface continuously as reconciliation breaks. But the honest answer depends on which produces the larger unreported population, and that is worth measuring before choosing.
REGREP is an independent software provider. This record explains a reporting framework in plain language and is not legal, tax or regulatory advice. Confirm scope, thresholds and submission dates with your competent authority before you file.
More on this framework, and the module that produces the filing.
The three tables, the identifiers and the reconciliation model.
Read the guide →Scope, the chain and the field groups.
Read the guide →The framework page for the derivative reporting obligation.
Read the requirements →Where both obligations apply we scope them in a single exercise and then build them as separate pipelines over a shared data layer.