← Back

2026-09-04

The Regulatory Interpretation Problem in BES Pipelines

After ten years of building, reviewing, and occasionally rebuilding BES (Bireysel Emeklilik Sistemi) data pipelines for pension companies and their insurance-group parents, I have stopped believing in the myth of the single correct output. Two pipelines, fed the same raw contribution files, the same fund NAVs, the same state contribution (devlet katkısı) records, can produce participant balances that differ by kuruş — sometimes by more — and both can pass an EGM audit. Neither is wrong. They just resolved different regulatory ambiguities in different ways.

That is the part nobody in the vendor deck warns you about.

The regulation is not the specification

BES-related regulation — the Bireysel Emeklilik Tasarruf ve Yatırım Sistemi Kanunu, the associated yönetmelikler, and EGM's periodic communiqués — tells you what must happen. It rarely tells you exactly when, in which order, or against which reference value. A working pipeline has to answer questions the text leaves open:

Each of these has a defensible answer. Each has at least one other defensible answer. And if two pension companies picked differently in 2015 and never revisited it, their participant balances on identical hypothetical data will diverge, permanently.

Where the divergence actually comes from

In the reviews I have done, the numerical differences almost never come from bugs. Bugs get caught. The differences come from three sources, all interpretive:

Rounding boundaries. The regulation says balances are calculated to a certain precision. It does not always say at which step you round. Round at unit purchase, round at daily valuation, round at reporting — three different balances, all lawful. A pipeline that rounds units to 6 decimals at purchase and one that carries 10 decimals until reporting will disagree by the third month, and the gap widens.

Effective date semantics. "İşlem tarihi" versus "valör tarihi" versus "muhasebe tarihi" are not synonyms, but they get treated as such in requirements documents. When contribution posting, fund allocation, and state contribution accrual each pick a different one of these three dates as their anchor, you get a pipeline that is internally consistent and externally different from a peer's.

Order of operations on the same day. If a participant contributes, changes fund allocation, and receives state contribution posting all on the same value date, the sequence matters. Contribution → allocation → devlet katkısı gives a different unit count than devlet katkısı → contribution → allocation. Regulation is silent on the ordering. Your pipeline is not silent — it just doesn't tell anyone what it decided.

Why this is worse than a bug

A bug is discoverable. It produces something obviously wrong: a negative balance, a state contribution that exceeds the legal cap, a fund unit count that doesn't match the custodian. Reconciliation catches it. Someone opens a JIRA ticket. It gets fixed.

An interpretive choice produces something perfectly reasonable. Reconciliation passes because your custodian feed and your pipeline agree — they were built by the same team, using the same assumptions. EGM's periodic reporting passes because the aggregate numbers are internally coherent. Everything looks fine until:

The documentation gap is the actual risk

In every BES pipeline review I have done, the code is fine. The SQL is fine. The batch orchestration is fine. What is missing, consistently, is a document that says: "At this step, the regulation permits interpretations A, B, and C. We chose B. Here is why. Here is the person who approved it. Here is the date."

Without that document, three things happen over a decade:

  1. The original architects leave. The interpretation is now embedded only in code, and only implicitly.
  2. A new requirement — say, a change to devlet katkısı rates — gets implemented by someone who has to reverse-engineer the original interpretation from behavior. They guess wrong half the time.
  3. When EGM asks why balance X is what it is, the answer is "that is what the system produced," which is not an answer.

What to actually do

If you own or oversee a BES pipeline, the useful exercise is not another code review. It is an interpretation audit. Sit down with the people who wrote the pipeline (if they are still around) and the current business owners, and for each of the following, force a written answer:

For each answer, cite the regulatory text you are relying on, note the alternative interpretations you rejected, and record who signed off. This document is not for EGM. It is for the version of your team that will exist five years from now, when someone asks why participant 1057382's balance is what it is.

The pipeline that survives a decade of regulatory drift is not the one with the cleanest code. It is the one whose interpretive choices are legible enough to defend, and specific enough to change when the regulation finally catches up.