BCBS 239 Risk Data Aggregation Architecture: Lineage, Controls and Reporting (2026)

BCBS 239 Risk Data Aggregation Architecture: Lineage, Controls and Reporting (2026)

BCBS 239 Risk Data Aggregation Architecture: Lineage, Controls and Reporting

Systems and architecture analysis only. This is not legal, regulatory, investment or compliance advice. Regulatory expectations differ by jurisdiction and institution; consult your supervisor’s current text and your own compliance function.

Most banks that fail a supervisory review of BCBS 239 risk data aggregation do not fail because they lack a risk model. They fail because nobody can show, on demand, how one number on a board report was assembled from source systems, which version of the data it used, and who signed off on the breaks. The Basel Committee published its fourteen principles in January 2013, and the compliance date for the first wave of global systemically important banks (G-SIBs) was January 2016. Years later the Committee’s own progress reports still say that additional work is required at all banks. In Europe the European Central Bank (ECB) added a detailed supervisory guide in May 2024. The gap is architectural: lineage, reconciliation, timeliness and attestations have to be properties of the platform, not heroics performed by a reporting team at month end.

This post translates the principles into a concrete reference architecture you can build and test, with a worked lineage example for Value at Risk (VaR) and exposure aggregation.

What this covers: the fourteen principles grouped by what they demand of systems, the supervisory context including the ECB guide, a layered reference architecture, a column-level lineage walk-through with OpenLineage, data quality and reconciliation design, bitemporal storage, report generation cadence, controls and attestations, and failure modes.

Context and Background

The Basel Committee on Banking Supervision (BCBS) issued “Principles for effective risk data aggregation and risk reporting” on 9 January 2013. The stated motivation is blunt: the financial crisis showed that banks “were unable to aggregate risk exposures and identify concentrations fully, quickly and accurately.” Their IT and data architectures could not support the broad management of financial risks. The paper, universally shortened to BCBS 239, is a standard of outcomes rather than a technology specification. It never mentions a database, a message bus or a lineage tool, which is exactly why implementation teams struggle to translate it.

The fourteen principles sit in four groups. Overarching governance and infrastructure covers Principle 1 (Governance) and Principle 2 (Data architecture and IT infrastructure). Risk data aggregation capabilities covers Principle 3 (Accuracy and integrity), Principle 4 (Completeness), Principle 5 (Timeliness) and Principle 6 (Adaptability). Risk reporting practices covers Principle 7 (Accuracy), Principle 8 (Comprehensiveness), Principle 9 (Clarity and usefulness), Principle 10 (Frequency) and Principle 11 (Distribution). Supervisory review, tools and cooperation covers Principle 12 (Review), Principle 13 (Remedial actions and supervisory measures) and Principle 14 (Home/host cooperation). The principles apply to G-SIBs from January 2016 for banks designated in 2011 or 2012, and later designees get three years from designation. National supervisors are encouraged to apply them to domestic systemically important banks (D-SIBs) three years after those banks are designated.

Supervisors have been measuring progress for a decade. The Committee published a progress report on 28 November 2023 covering 31 G-SIBs designated between 2011 and 2021, and noted it came seven years after the expected compliance date. Its conclusion, in the press release wording, was that additional work is required at all banks to attain or sustain full compliance. In Europe, the ECB’s 2018 thematic review reported that none of the 25 significant institutions it examined had fully implemented the principles. On 3 May 2024 the ECB published its final Guide on effective risk data aggregation and risk reporting, organised around seven areas: responsibility of the management body, scope of the data governance framework, key roles and responsibilities, a group-wide integrated data architecture, effectiveness of data quality controls, timeliness of internal risk reporting, and implementation programmes. The ECB tells institutions to read it together with the Basel principles and says it will follow up case by case, applying proportionality.

For engineers the lesson is that supervisors now test capability, not documentation. An inspector will pick a number from a report and ask you to trace it. If your answer requires three analysts and two weeks, you have a finding. Our earlier posts on event sourcing and bitemporal data for financial audit trails and change data capture with Debezium cover two of the building blocks used below. The primary text is the Basel Committee’s BCBS 239 publication page.

Reference Architecture for BCBS 239 Risk Data Aggregation

Direct answer: A BCBS 239 compliant architecture has five layers: golden sources per risk type, a controlled ingestion layer with quality gates, a bitemporal risk data store exposed as owned data products, an aggregation engine that is largely automated, and a report service that releases only attested datasets. Lineage and control metadata run across all layers as a cross-cutting plane.

BCBS 239 risk data aggregation reference architecture with lineage and control planes

Figure 1: Layered reference architecture. Solid arrows carry data, dotted arrows carry lineage events and control checks.

Figure 1 is the skeleton. Data flows left to right from operational systems into golden sources, through ingestion and a bitemporal store, up into data products and the group-level aggregation engine, and out as board and regulator reports. The two dotted planes, lineage and control, are not optional extras; they are what turns a data pipeline into one a supervisor can inspect. Think of it as the pipeline plus its own evidence.

Golden sources and the single authoritative source rule

Principle 3 of the BIS text says banks should aim for a single authoritative source of risk data for each type of risk. That sentence drives more architecture than any other. A golden source is not a data lake. It is the one system, per risk type and per data domain, that is accountable for the content: the trade repository for derivative positions, the loan system for credit exposures, the treasury platform for liquidity cash flows, the legal-entity master for counterparty hierarchies.

In practice banks have several candidate systems for each domain, so the work is a decision record: which system is authoritative for which attribute, with the others demoted to consumers. Counterparty identity is the classic trap. The credit system, the trading system and the finance ledger each hold a legal entity, with different keys and different parent hierarchies. If the group exposure to a single obligor cannot be computed because three hierarchies disagree, no amount of downstream engineering rescues Principle 4 (completeness). The fix is a reference-data golden source with a published, versioned hierarchy that every other system maps to, plus a cross-reference table whose mapping failures are themselves monitored.

Golden status should be machine-readable. Each dataset in the catalog carries an authoritative_for attribute, an owner, a steward, and a criticality tag. Anything tagged critical must have lineage to a golden source or it cannot appear in a regulated report. That rule is cheap to enforce in a pipeline and is the first thing inspectors find missing.

Data products and domain ownership

Principle 2 asks banks to design, build and maintain data architecture and IT infrastructure that fully supports their risk data aggregation capabilities, in normal times and in stress. Data mesh vocabulary fits this well. Each risk domain publishes data products with a named owner, a schema contract, service levels for freshness and completeness, and quality metrics emitted automatically. Consumers, such as the group aggregation engine, depend on the contract, not on the producer’s private tables.

The mesh idea has a limit in this setting. Regulatory reporting needs one consistent cut across domains, and that is a central responsibility. The pattern that works is federated ownership of domain data with a central platform team owning the contracts, the lineage plane, the control framework and the cross-domain aggregation. Treat it as federated production with centralised assurance. Teams that push everything into either a monolithic warehouse or a fully decentralised mesh tend to rediscover why Principle 1 requires clear accountability at board level.

The control plane

The second cross-cutting concern is control. Principle 3 also says risk data should be reconciled with the bank’s sources, including accounting data where appropriate, and that data should be aggregated on a largely automated basis to minimise the probability of errors. Where manual processes remain, our reading is that they deserve the same documentation and control as automated ones, because manual workarounds such as spreadsheets are where many undetected errors live. The control plane therefore holds: the data quality rule catalog, the reconciliation definitions, the tolerance thresholds, the sign-off workflow, and the register of manual interventions. It publishes outcomes to the same event stream as lineage, so a report can be linked to the checks that were run and passed.

Deeper Analysis: Lineage, Quality, Time and Reports

The reference architecture only matters if each layer has mechanisms behind it. This section walks the four that auditors probe hardest: lineage, quality and reconciliation, bitemporal storage, and report generation.

Column-level lineage for a VaR number

Table-level lineage tells you that the group VaR table depends on the scenario P&L table. That is not enough for a supervisor who asks why one cell on a board report moved by 8 percent overnight. You need column-level lineage, and ideally run-level lineage that identifies the exact execution that produced the value.

OpenLineage is the open specification most tools converge on. Its object model has three core entities: a Job (a process that consumes or produces datasets), a Run (one execution of a job, identified by a client-generated runId, with UUIDv7 recommended), and a Dataset (a table, file or object, identified by namespace and name). Runtime state arrives as RunEvents, typically beginning with START and ending with COMPLETE, each timestamped and additive. Design-time metadata arrives as JobEvents and DatasetEvents. Extensibility comes through facets: schema, data source, source code location, SQL, parent run, and, for inputs, data quality metrics and assertions. The columnLineage dataset facet maps each output column to the input fields feeding it, with a transformation record that is either DIRECT (identity, transformation or aggregation) or INDIRECT (join, group by, filter, sort, window, conditional) plus a masking flag. Marquez is the reference implementation: it receives OpenLineage events, stores them and serves a lineage graph through an API and web UI. These details come from the OpenLineage object model documentation (version 1.53.0 at the time of reading) and its facet pages.

Column-level data lineage for a VaR figure from trades and market data to a board report cell

Figure 2: Lineage of one board report cell. Each box is a dataset or job; each hop would be an OpenLineage run with column-level facets.

Figure 2 shows the worked example. A board report cell, say group 99 percent one-day VaR, depends on a group roll-up job. That job reads desk VaR, which comes from a VaR aggregation job that takes a percentile over scenario profit and loss and joins reference data for the legal-entity hierarchy. Scenario P&L depends on positions and on market data risk-factor series. Positions come from the trade table. Notice what the diagram makes explicit: the hierarchy join is an INDIRECT dependency. It does not supply the VaR value, but changing the hierarchy changes which desks roll into which entity. Lineage that records only DIRECT edges misses precisely the dependency that causes unexplained movements.

Here is a trimmed OpenLineage COMPLETE event for the desk VaR job, written to show the column lineage facet. The namespaces and names are illustrative.

{
  "eventType": "COMPLETE",
  "eventTime": "2026-10-12T21:14:07.113Z",
  "run": { "runId": "0192a1c4-7f3e-7a10-9c1d-5e2b8a4f6d01" },
  "job": { "namespace": "risk-prod", "name": "desk_var_aggregation" },
  "inputs": [
    { "namespace": "risk-prod", "name": "market.scenario_pnl" },
    { "namespace": "refdata-prod", "name": "ref.legal_entity_hierarchy" }
  ],
  "outputs": [{
    "namespace": "risk-prod",
    "name": "market.desk_var",
    "facets": {
      "columnLineage": {
        "fields": {
          "var_99_1d": {
            "inputFields": [
              { "namespace": "risk-prod", "name": "market.scenario_pnl",
                "field": "pnl_usd",
                "transformations": [
                  { "type": "DIRECT", "subtype": "AGGREGATION",
                    "description": "99th percentile of loss distribution",
                    "masking": false } ] },
              { "namespace": "refdata-prod", "name": "ref.legal_entity_hierarchy",
                "field": "parent_entity_id",
                "transformations": [
                  { "type": "INDIRECT", "subtype": "GROUP_BY",
                    "description": "roll desks into legal entities",
                    "masking": false } ] }
            ]
          }
        }
      }
    }
  }],
  "producer": "https://example.internal/risk-pipelines/desk_var",
  "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/definitions/RunEvent"
}

Two engineering points matter more than the JSON. First, emit lineage from the execution engine (Spark, Flink, dbt, Airflow, or your own aggregation service), not from a documentation exercise afterwards. Hand-drawn lineage decays within a quarter. Second, add the business layer on top: a report cell registry that maps each cell in each regulated report to a dataset column, so that “trace this number” starts from the report and walks backwards. For Spark jobs, the OpenLineage docs note that a legacy mode yields a near-cartesian dependency of every output on every input unless dataset-level lineage is enabled via configuration; check your integration’s setting before trusting column graphs for sorted or filtered outputs.

Data quality rules and reconciliation as code

Principle 3 requires accuracy and integrity, and Principle 4 completeness. Both translate into rules that run on every load, not at quarter end. A useful taxonomy has five rule families.

Rule family Example for exposure data Typical action on failure
Schema and contract notional is decimal, currency is ISO 4217 reject batch
Completeness all desks present, row count within control total from source quarantine and alert
Validity maturity date later than trade date, rating in master scale flag record
Consistency trade count in risk equals trade count in booking system block publish above tolerance
Reconciliation risk book value ties to general ledger within tolerance owner attestation if within tolerance

Reconciliation deserves emphasis because the BIS text asks for risk data to be reconciled with sources, including accounting data where appropriate, and for processes that reconcile reports to the underlying risk data. That yields two reconciliation directions. Upstream: risk store versus finance ledger and source systems. Downstream: every published report versus the risk store snapshot it claims to be built from. Teams often build only the first.

Data quality gates and reconciliation control flow with quarantine and attestation

Figure 3: Quality gates on ingestion. Breaks above tolerance are quarantined and routed to the named data owner; breaks within tolerance publish with a warning flag.

A worked illustration with made-up numbers. Suppose the booking system reports 412,806 live derivative trades at end of day and the risk store loads 412,731. The 75-trade gap is 0.018 percent by count, which looks tiny. But if the control rule is expressed in notional and the missing 75 trades include one structured note with USD 900 million notional against a book of USD 310 billion, the gap is 0.29 percent of notional, and for a single-name concentration it may be material to a large-exposure limit. The lesson: tolerances must be set per measure and per risk type, ideally by materiality to the decision the number supports, and an unexplained break should never be dismissed because the percentage looks small. These figures are illustrative, not drawn from any institution.

Rules as code means versioned definitions in a repository, executed by the pipeline, with results written as data quality facets (OpenLineage defines dataQualityMetrics and dataQualityAssertions input facets for this) and stored for audit. When a rule changes, the change goes through the same review as a model change.

Bitemporal storage: knowing what you knew when

Regulatory reporting has a time problem that ordinary warehouses handle badly. A position as of 30 June can be corrected in August after a booking error is found. Which version did the July board report use, and what would the report say if rerun today? Bitemporal modelling answers both by recording two time axes: valid time (when the fact was true in the business) and transaction time (when the bank knew it). Every aggregation run pins both: an as-of date and a knowledge timestamp. Our post on event sourcing and bitemporal data for audit trails explains the storage patterns in depth.

For BCBS 239 the payoff is reproducibility. The Principle 3 and Principle 7 demand for accurate, reliable reports is hard to defend if you cannot regenerate the delivered number. A bitemporal store plus pinned run parameters plus code versions in the lineage record means a historical report can be rebuilt and compared with what was sent. Restatements then become explicit: a new knowledge timestamp produces a different number, and the delta is explainable by named corrections rather than discovered by surprise.

A practical implementation choice: keep immutable event or append-only tables as the system of record, derive current-state views, and store the knowledge timestamp as a first-class column. Table formats with time travel (such as Apache Iceberg or Delta Lake snapshots) provide a cheaper approximation of transaction time for analytical stores, though they track physical commit time rather than business correction semantics, so they complement rather than replace explicit valid-time columns.

Report generation: daily, intraday and on-demand

Principle 5 requires timely generation of aggregated, up-to-date risk data, and the BIS text calls for faster aggregation of critical risks during stress or crisis. Principle 10 puts the reporting frequency decision with the board and senior management and says frequency should rise in stress. In architecture terms this means two cadences must coexist: a scheduled end-of-day regulatory and management pack, and an on-demand or intraday path that can produce the critical exposures (large exposures, liquidity, counterparty concentration) quickly when asked.

Sequence of an aggregation run from scheduler to attested report with lineage events

Figure 4: One run end to end. The report service releases a dataset only after the control layer records the data owner’s sign-off.

Figure 4 shows the run protocol. The scheduler starts the aggregation with an as-of date and a knowledge timestamp. The engine emits a START event, reads pinned snapshots, aggregates, and emits COMPLETE with column lineage. The control layer runs reconciliation and limit checks, requests sign-off from data owners for breaks, and records attestations. Only then does the report service release the dataset and write the report version and its input datasets back to the lineage store.

Intraday capability changes the design. A pure overnight batch cannot meet an on-demand request in hours. Options include streaming position updates through change data capture (see our Debezium architecture guide) into pre-aggregated structures, keeping a hot incremental aggregate for the handful of critical measures, and regenerating the full pack nightly as the reconciled record. The incremental path is faster but less controlled, so label its outputs as provisional until the batch ties out. The same logic appears in front-office controls: a pre-trade risk engine trades governance depth for latency, and BCBS 239 reporting makes the opposite trade.

Controls, attestations and a principle-to-mechanism map

Principle 1 puts responsibility for data governance with the board and senior management, and expects the bank’s risk data aggregation and reporting framework to be validated independently. Principle 12 has supervisors review and evaluate compliance. Those two bookends mean your architecture needs evidence that is easy to hand over. The ECB guide’s seven areas point the same way: management body responsibility, a defined scope for data governance, named roles, an integrated group-wide architecture, effective data quality controls, timely reporting, and funded implementation programmes.

A compact way to keep the architecture honest is a traceability matrix from principle to mechanism to evidence. The mapping below is our engineering interpretation, not text from the Basel paper.

Principle group Mechanism in the platform Evidence an inspector can request
1 Governance Data owner and steward registry, board-approved data policy, independent validation plan Sign-offs, validation reports, policy versions
2 Architecture and infrastructure Golden source decision records, data product contracts, resilience tests Architecture inventory, failover test results
3 Accuracy and integrity Quality rules as code, reconciliation to ledger, automation ratio tracking Rule run history, break log, manual intervention register
4 Completeness Control totals, entity coverage checks, scope mapping to legal entities Coverage reports, exception reasons
5 Timeliness Run-time SLOs, critical-path monitoring, stress-mode runbook Run duration trends, drill outcomes
6 Adaptability Schema evolution policy, parameterised aggregation dimensions, ad hoc query path Time to answer a new slice request
7 to 9 Report accuracy, comprehensiveness, clarity Report cell registry, report-to-store reconciliation, definitions glossary Cell-level lineage, reconciliation reports
10 to 11 Frequency and distribution Scheduler plus on-demand path, entitlement-controlled distribution Distribution logs, access reviews

Attestations are the human control on top of the machine controls. When a reconciliation break lands within tolerance, the platform publishes with a warning and creates an attestation task for the owning data steward. The steward records an explanation, a ticket reference and an expiry. Expiry matters: an attestation that never lapses becomes a permanent excuse. Keep attestations as data in the same store as lineage, so that for any report version you can list every break that existed and who accepted it.

Tooling choices are secondary to these mechanisms, but a pragmatic stack looks like this: a stream or batch ingestion layer with contracts (Kafka with schema registry, or file drops with checksum manifests), a lakehouse table format with time travel for the risk store, a transformation framework that emits OpenLineage (dbt, Spark, Flink or Airflow integrations exist), a lineage backend such as Marquez or a commercial catalog that ingests OpenLineage, a rule engine for quality checks, and a workflow tool for attestations. We have not benchmarked any of these for this post and make no performance claims; choose on integration with your existing platform and on whether the vendor can show column-level lineage on your actual transformation languages.

A final design point on the downstream stage: transaction cost analysis systems and risk reporting share a need for time-consistent trade data. If both consume the same trade golden source and the same bitemporal snapshots, you avoid two versions of the truth between the execution desk and the risk function.

Trade-offs, Gotchas, and What Goes Wrong

Lineage coverage theatre. The most common failure is a lineage tool populated for the easy 60 percent of pipelines (SQL in a warehouse) while the critical path runs through stored procedures, spreadsheets and legacy mainframe batch. Coverage statistics at table level hide it. Measure coverage per regulated report cell, and count a cell as covered only if every hop to a golden source is captured at column level.

Reconciliation to the wrong thing. Reconciling the risk store to itself, or to a copy of the data extracted from the same source, proves nothing. The control must compare against an independent reference such as the finance ledger or the source system’s own control totals. Differences in definitions (accounting versus risk perimeter, trade date versus settlement date) cause permanent benign breaks; document each one as a standing reconciling item with an owner, or alert fatigue will bury the real breaks.

Tolerance drift. Thresholds loosened to keep the pipeline green accumulate. Review tolerance changes like model changes, and report the number of breaks accepted by attestation as a trend. A rising count is an early warning.

Spreadsheet end-user computing. Principle 3 favours largely automated aggregation. Banks routinely find that the last mile of the board pack is a spreadsheet maintained by one person. The honest design choice is to either bring that logic into the platform or put the spreadsheet under version control, access control, input reconciliation and independent review.

Over-centralisation and under-centralisation. A central team that owns every transformation becomes a bottleneck that fails Principle 6 (adaptability) when a supervisor asks for a new risk slice in days. A fully decentralised mesh without central contracts and lineage fails Principle 2 at the group level. Federated production with centralised assurance is a compromise, not a cure, and it needs funding.

Stress-time behaviour. The principles apply in normal times and in stress. Pipelines tuned for overnight batch may have no spare capacity when the board wants a recalculation under new scenarios at midday. Test the stress runbook, including degraded modes where only critical measures are produced.

Evidence rot. Logs expire, lineage stores are not backed up with the same rigour as trading systems, and retention policies differ by team. Set a single retention policy for regulatory evidence and test restoring a two-year-old report lineage.

Cost. Bitemporal storage and run-level lineage multiply metadata volume. Whether the overhead is acceptable depends on your data volumes; measure in your own environment rather than trusting vendor figures.

Practical Recommendations

Start from the report, not the platform. Pick the ten to twenty most critical report cells, such as capital ratios, large exposures, liquidity coverage and group VaR, and make those provably traceable before widening scope. For each cell, document the golden source, the owner, the transformation chain and the reconciliation that ties it to an independent reference. This gives supervisors a demonstrable slice and gives engineers a concrete backlog.

Next, put the control framework on the same footing as the data pipeline: rules in version control, results stored as data, attestation workflow integrated, and the board dashboard fed from those stored results. Instrument pipelines to emit OpenLineage events at the engine level. Add the business registry (report cell to dataset column) last, because it only works once the technical lineage is trustworthy.

Make time explicit. Pin as-of and knowledge timestamps in every run, store code versions in the lineage record, and test that a historical report can be rebuilt. Finally, treat the ECB guide’s seven areas, or your own supervisor’s equivalent, as an assessment checklist for programme governance: scope, roles, funding and milestones matter as much as technology.

Checklist:

  • Critical report cells identified, each with a named owner and golden source
  • Authoritative source decision recorded per risk type and key attribute
  • Column-level lineage emitted by the execution engine for the critical path
  • Quality and reconciliation rules versioned, with independent reference sources
  • Tolerances reviewed under change control, attestations with expiry
  • Bitemporal storage and pinned run parameters, with a tested report rebuild
  • Intraday or on-demand path for critical measures, labelled provisional
  • Stress-mode runbook exercised at least annually
  • Evidence retention policy applied uniformly to lineage and control records

Frequently Asked Questions

What is BCBS 239 in simple terms?

BCBS 239 is the Basel Committee’s January 2013 standard, “Principles for effective risk data aggregation and risk reporting.” It sets fourteen principles on governance, data architecture, aggregation capabilities, reporting practices and supervisory review. The aim is that a bank can gather risk exposures quickly, accurately and completely across the whole group, including in a crisis, and report them to its board and supervisors with confidence in their quality.

Which banks does BCBS 239 apply to?

It was written for global systemically important banks, which had to comply from January 2016 if designated by November 2012, or three years after designation otherwise. National supervisors are encouraged to apply it to domestic systemically important banks three years after designation. The ECB’s 2024 guide targets significant institutions it supervises, and it applies proportionality, so expectations vary by bank size and complexity.

What are the 14 principles of BCBS 239?

Overarching governance and infrastructure: Principle 1 Governance and Principle 2 Data architecture and IT infrastructure. Aggregation capabilities: Principle 3 Accuracy and integrity, 4 Completeness, 5 Timeliness, 6 Adaptability. Reporting practices: Principle 7 Accuracy, 8 Comprehensiveness, 9 Clarity and usefulness, 10 Frequency, 11 Distribution. Supervisory review: Principle 12 Review, 13 Remedial actions and supervisory measures, and 14 Home/host cooperation.

Does BCBS 239 require data lineage tooling?

The Basel text does not name tools or mandate a specific lineage product. It does require accurate, reconciled, documented risk data aggregation and an architecture that supports it, and supervisors test traceability in practice. Column-level lineage from engines, using an open specification like OpenLineage, is the most defensible way we know to demonstrate it, but the requirement is the capability, not the tool.

How does the ECB guide differ from BCBS 239?

The ECB’s final guide, published on 3 May 2024, is a supervisory document for significant institutions that draws on observed good practices. It organises expectations into seven areas, including management body responsibility, data governance scope, group-wide integrated data architecture, data quality controls and timeliness of internal risk reporting. The ECB says to read it together with the Basel principles; it does not replace them.

How should banks handle intraday risk reporting under BCBS 239?

Treat intraday as a separate, explicitly controlled path. Maintain incremental aggregates for critical measures, fed by streaming position updates, label the outputs provisional, and reconcile them against the nightly batch. The Basel text expects faster aggregation of critical risks in stress and higher reporting frequency when needed, so the on-demand capability should be tested and documented rather than improvised.

Further Reading

By Riju — about

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *