Back to packs

Telecom CDR & Subscriber Data

free

Validate call detail records, subscriber identifiers, SIM data — IMSI, IMEI, ICCID, E.164 phone numbers.

10 rules 1626 downloads4.4 avg (68)
telecomcdrimsiimeiiccid3gppsubscriber
4.4(68 ratings)

Sign in to rate this pack

Test this pack with your data

Download the template, fill in your data, and see quality results instantly.

Test This Pack

Download & Install

Choose your tool — get a ready-to-run file

Run this on your data? Upload your CSV — we'll auto-map the columns, validate, and report the bad rows.Test my data
Or use the CLI
$ npx dqhub install telecom-cdr --format soda --table YOUR_TABLE

About this pack

Data quality rules for telecom operators and MVNOs. Covers: - Subscriber identifiers: IMSI (15-digit), IMEI (15-digit), ICCID (19-20 digit) - Phone number validation in E.164 format - Call duration plausibility (max 24 hours) - CDR completeness and uniqueness - Based on 3GPP TS 23.003, ITU-T E.164, ITU-T E.118

Sources & References

3GPP — 3GPP TS 23.003 (Numbering, Addressing and Identification)

The IMSI shall consist of decimal digits only and shall not exceed 15 digits

ITU-T — ITU-T E.118 (The International Telecommunication Charge Card)

ICCID numbering follows the ITU-T E.118 standard with a maximum of 19-20 digits

GSMA — GSMA SGP.02 (Remote Provisioning Architecture for eSIM)

eSIM ICCIDs follow the same E.118 format as physical SIM cards

ITU-T — ITU-T E.164 (The International Public Telecommunication Numbering Plan)

International telephone numbers must not exceed 15 digits and must include a valid country code

Industry Standard — 3GPP TS 32.298 (CDR Parameter Description)

Call duration in CDR records should represent realistic voice or data session lengths for accurate billing and network analysis

What's included

5format rules
2completeness rules
1uniqueness rules
1range rules
1freshness rules

Checks included (10)

IMSI Format (International Mobile Subscriber Identity)(imsi)

Validates that IMSI (International Mobile Subscriber Identity) values are exactly 15 digits. The IMSI uniquely identifies a mobile subscriber and consists of a 3-digit MCC (Mobile Country Code), a 2-3 digit MNC (Mobile Network Code), and a 9-10 digit MSIN (Mobile Subscriber Identification Number).

IMEI Format (International Mobile Equipment Identity)(imei)

Validates that IMEI (International Mobile Equipment Identity) values are exactly 15 digits. The IMEI uniquely identifies a mobile device and consists of a Type Allocation Code (TAC), serial number, and a Luhn check digit. This rule validates the format structure only; use a separate Luhn check rule for full check-digit verification.

SIM Card ICCID Format(iccid)

Validates that ICCID (Integrated Circuit Card Identifier) values conform to the standard format: 19 or 20 digits starting with 89. The ICCID uniquely identifies a SIM or eSIM card and is composed of an industry identifier (89 for telecom), country code, issuer identifier, individual account number, and a check digit.

Strict E.164 International Phone Number Format(phone_number)

Validates that phone numbers strictly conform to the ITU-T E.164 international format: a plus sign followed by 1 to 15 digits, where the first digit after the plus cannot be zero. This is the canonical format used in telecom systems for international call routing, SMS delivery, and subscriber records.

Plausible Call Duration Range(duration_seconds)

Validates that call duration values in CDR (Call Detail Record) data fall within a plausible range of 0 to 86400 seconds (24 hours). Durations outside this range typically indicate data corruption, system errors, or stuck call records that require investigation.

Column Not Null

Asserts that a specified column contains no null values. This is the most fundamental completeness check — every row must have a value present in the target column.

Column Completeness Threshold

Asserts that a column meets a minimum completeness threshold, measured as the percentage of non-null values. Useful when some nulls are acceptable but the overall population rate must stay above a defined level (e.g., 95%).

Column Unique

Validates that all non-null values in a specified column are unique. Useful for natural keys, email addresses, identifiers, and any column where duplicates indicate a data quality issue.

Date Not In Future

Validates that a date or timestamp column contains no values in the future. Catches data entry errors, timezone issues, and ETL bugs that produce future-dated records for columns like birth_date, transaction_date, or created_at.

Table Freshness

Asserts that a table has been updated within the specified number of hours. Uses the table's metadata (last modified timestamp) or a designated timestamp column to verify data is fresh and pipelines are running on schedule.