Starter contract

telecoms_cdr

15 rules · plain YAML · starts in observation mode

OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. Telecoms Call Detail Record (CDR) validation aligned with Ofcom General Conditions of Entitlement (GC), GSMA PRD IR.21 roaming data standards, and 3GPP TS 32.297 CDR file format specifications. Enforces E.164 MSISDN format (ITU-T E.164), IMEI 15-digit format (GSMA IMEI specification), PLMN network code format (MCC + MNC per ITU-T E.212), call end >= call start monotonicity, rating status lifecycle, and roaming country ISO validation. Prevents billing disputes, revenue leakage, and Ofcom compliance failures caused by malformed CDRs entering mediation, rating, and NRTRDE (Near Real Time Roaming Data Exchange) pipelines.

These are starting points you own. Every rule below ships in the trial, starts in observation mode, and is yours to read, edit, or delete from day one. Rules that reference a lookup list (lookup_file) validate against reference data you control in your tenant.
Rules as at 29 August 2026 — starting points you own, not a maintained regulatory feed. We correct errors in these samples; tracking regulatory change in your active contracts is yours.
RuleFieldSeverityWhat it enforces (the message your team sees)
record_id_requiredrecord_iderrorrecord_id is required
msisdn_requiredmsisdnerrormsisdn is required
msisdn_e164_formatmsisdnerrormsisdn must be in E.164 format (e.g. +447911123456) — malformed MSISDNs cause CDR mediation rejection and roaming settlement failure (ITU-T E.164, GSMA IR.21)
call_start_formatcall_starterrorcall_start must be a valid datetime (YYYY-MM-DDTHH:MM:SS)
call_end_formatcall_enderrorcall_end must be a valid datetime (YYYY-MM-DDTHH:MM:SS)
call_end_after_startcall_enderrorcall_end must be on or after call_start — negative duration CDRs indicate NTP clock drift or timezone error and cause NRTRDE roaming exchange rejection (GSMA IR.21)
duration_seconds_minduration_secondserrorduration_seconds must be > 0 — a zero-duration CDR is a failed connection attempt that should not generate a billing record (signalling-only attempts belong in a separate failed-call-attempt feed, not the CDR stream)
imei_formatimeiwarningimei must be exactly 15 decimal digits (GSMA IMEI format, e.g. 490154203237518) — invalid IMEI bypasses Ofcom EIR blacklist checking
call_type_requiredcall_typeerrorcall_type is required
call_type_validcall_typeerrorcall_type must be one of: voice, sms, mms, data, roaming_voice, roaming_sms, roaming_data, premium_rate, emergency, voip (3GPP TS 32.297 — roaming CDRs require NRTRDE within 4 hours per GSMA IR.21)
network_code_plmn_formatnetwork_codewarningnetwork_code must be in PLMN format MCC-MNC (e.g. 234-30 for UK EE, 234-20 for UK Three) — invalid PLMN prevents roaming partner identification (GSMA IR.21)
roaming_country_formatroaming_countrywarningroaming_country must be a 2-letter ISO 3166-1 alpha-2 country code (e.g. DE, FR, ES) — required for GSMA IR.21 NRTRDE and EU Roaming Regulation RLAH enforcement
rating_status_valuesrating_statuswarningrating_status must be one of: rated, unrated, error, disputed, fraud_suspect, suppressed, reprocessing (unrated = revenue leakage risk; fraud_suspect requires FMS referral within 24h per GSMA FS.11)
charge_amount_mincharge_amounterrorcharge_amount must be >= 0
data_volume_mb_mindata_volume_mberrordata_volume_mb must be >= 0

Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →