← Back

2026-09-10

The Regulatory Gap Between What SEDDK Publishes and What EGM Validates

Anyone who has built a BES data pipeline in Türkiye knows the setup: SEDDK issues the regulation, EGM enforces the submission. On paper this is a clean separation of concerns. In practice, it is the single biggest source of silent data-quality failures I have seen in this industry.

The assumption most teams start with is that if you comply with the SEDDK genelge, EGM will accept your file. That assumption is wrong, and the cost of discovering it is measured in rejected batches, manual corrections, and reconciliation reports that nobody wants to sign.

Where the Two Frameworks Drift Apart

SEDDK publishes the rules — field definitions, calculation methodologies, contribution thresholds, state contribution eligibility criteria, transfer procedures. EGM implements the validation layer that actually accepts or rejects your XML submissions. Between those two layers sit three recurring gaps:

A Concrete Example

A few years back, a change in state contribution (devlet katkısı) eligibility rules came through. The SEDDK circular was clear about the new calculation. We updated the pipeline, ran regression tests against our own logic, everything matched.

EGM rejected the batch. The reason: their validator was still applying the previous month's eligibility window to a specific participant segment — likely a phased rollout on their side. We had two choices: roll back our logic and be non-compliant with SEDDK, or hold the batch and miss the submission deadline.

We ended up with a third option, which is the one that eventually became architecture: submit under the interpretation EGM enforces today, log the divergence, and carry the SEDDK-correct value in a shadow field for later reconciliation.

Treating Regulatory Authority as a Versioned Input

After enough of these incidents, the only architecture that stops bleeding is one that stops treating "the regulation" as a single source. You have to model two authorities, each with their own effective timeline:

Every calculated field in the pipeline gets tagged with both. When they diverge, the pipeline produces two values: the submission value (EGM-accepted) and the compliance value (SEDDK-correct). Reconciliation happens against the compliance value. Submission happens with the accepted value.

This sounds like overengineering until the first audit where SEDDK asks why your submitted numbers do not match the current regulation, and you can show a timestamped record proving the validator was rejecting the correct value on that date.

What This Looks Like in Practice

A few architectural rules that have earned their keep:

The Uncomfortable Part

The uncomfortable truth is that in a two-authority regime, "correct" is not a single value. It is a pair of values that happen to agree most of the time. Pipelines built on the assumption of a single truth will keep breaking, and the breakage will always look like a data quality problem when it is actually an architectural one.

The teams that stop firefighting are the ones that accept this and design for it. Regulatory authority is not a constant. It is a temporally scoped, versioned input — and once you treat it that way, most of the recurring pain in BES pipelines simply stops recurring.