دليل المُودِع لـ XBRL — الهيئة العامة للرقابة المالية
ملف القواعد القابل للقراءة آلياً: rules.json (الإصدار 2026.10.1) · Markdown · افحص ملف XBRL مجاناً

FRA XBRL filer manual (platform edition)

How the platform produces, accepts and checks XBRL. It follows the XBRL International specifications and current regulator practice (ESMA ESEF, SEC EDGAR, EBA), adapted for the Egyptian Financial Regulatory Authority.

1. Specifications

Area Specification
Instances XBRL 2.1, Dimensions 1.0
Inline reports Inline XBRL 1.1. The platform writes Transformation Registry 4 (ixt = http://www.xbrl.org/inlineXBRL/transformation/2020-02-12: ixt:num-dot-decimal, ixt:fixed-zero). Uploaded reports may use TR4 or TR5 (…/2022-02-16) — number formats (num-dot-decimal, num-comma-decimal, num-unit-decimal, the TR5 -apos variants, fixed-zero), date formats (date-day-month-year, date-year-month-day, date-monthname-day-year-en, …) and fixed-true / fixed-false / fixed-empty; TR1–3 names are still read. A format outside the registry is refused (XBRL-003).
Calculations Calculations 1.1, round-to-nearest (c11r)
Assertions Formula 1.0 (value assertions), Generic Messages, Assertion Severity 2.0
JSON / CSV Open Information Model 1.0: xBRL-JSON and xBRL-CSV
Packaging Taxonomy Packages 1.0; Report Packages 1.0 (.xbri inline, .xbr non-inline)
Labels and links Generic Links 1.0, Generic Labels 1.0 (link-role and assertion labels)
Enumerations Extensible Enumerations 2.0
Duplicate facts XII Working Group Note, 2025-01-14

Next versions (Taxonomy Packages 1.1, Report Packages 1.1, Project Tavi): docs/xbrl/ROADMAP.md.

2. Taxonomy

2.1 Namespaces (XB-TAX-002)

One namespace and one schema ({prefix}-{version}.xsd) per supervised domain, under http://xbrl.fra.gov.eg/taxonomy/{version}/{prefix}:

Prefix Domain Examples
fra FRA core: register data, filing indicators, report-level facts, enumerations FRALicenseNumber, SectorClassification, RegulatedSector, AuditOrReviewStatus, ReportingPeriodicity, FRAFilingTemplateCode
fra-ins Insurance GrossPremiumWritten, SolvencyRatio, InsuranceTechReserves, classes of business axis
fra-brk Brokerage and capital market intermediaries NetCapitalRequirement, ClientSegregatedFunds
fra-lse Financial leasing (and mortgage finance) LeasingPortfolioGross, NPLRatio, MortgageFinancePortfolioGross
fra-fct Factoring FactoringPortfolioGross, FactoringTurnover
fra-cfn Consumer finance ConsumerFinancePortfolioGross, ConsumerFinanceNonPerformingRatio
fra-mfi Microfinance MicrofinancePortfolioGross, NumberOfActiveBorrowers, PortfolioAtRisk30Days
fra-fnd Investment funds NetAssetValue, NetAssetValuePerUnit, NumberOfUnitsOutstanding
fra-egs Egyptian Accounting Standards differences from IFRS (section 2.9), each anchored to IFRS EmployeesAndBoardProfitDistributionRecognisedInEquity, ForeignExchangeDifferencesRecognisedInOtherComprehensiveIncomeUnderEas13SpecialTreatment
egx Egyptian Exchange listing items DividendWithholdingTax, NumberOfListedShares

The elements a domain declares are its templates' fields plus the curated list in resources/xbrl/extension-elements.php (types, period types, balances, labels, documentation).

Legacy prefixes fra-ci and fra-eas. The platform's pre-2025 concept registry (served by GET /api/v1/xbrl/concepts and used by the KPI services) is unchanged, but its prefixes are not namespaces of this taxonomy and no filing is tagged with them. Their equivalence to published elements is in resources/xbrl/legacy-aliases.php, published as fra-{version}-legacy-aliases.json (equivalent, closest with the difference noted, or none — e.g. fra-eas:EBITDA, a non-GAAP measure with no element).

2.2 Entry points per report type (XB-TAX-003)

A report type is template × sector × consolidated/separate × periodicity, on IAS 1 and on IFRS 18 (section 10). Each has its own entry point:

fra-{version}-{template}[-ifrs18].{sector}.{basis}.{periodicity}.xsd — e.g. fra-2025-fra-fin-insurance.ins.consolidated.annual.xsd, fra-2025-fra-fin-cis-ifrs18.egx.consolidated.interim.xsd.

Axis Values Decided by
sector gen, ins, brk, lse, fct, cfn, mfi, fnd, egx (xbrl.entry_points.sectors) the filing's FRA sector code (else the company's); a template restricted to some sectors has entry points for those only; an unknown sector is gen
basis consolidated, separate the template (XBRL_SEPARATE_TEMPLATES, default ^FRA-FIN-NC)
periodicity annual, interim, event the template's filing frequency (quarterly / half-yearly templates have both annual and interim) and the filing's period (a full year is annual)

A report-type entry point loads only its own networks: the template's presentation, calculation and definition networks; the document-and-entity-information (cover) network; its sector's supplement network (the elements of that sector's namespace); the notes network (text blocks) on annual entry points only; and the formula assertions that apply to that set of elements (…{sector}_for.xml, or the template's …report_for.xml when the sector adds none — e.g. only insurance entry points carry FRA_INS_SOLVENCY). The basis is enforced by the hypercube: a consolidated template's figures cannot carry SeparateMember; a separate template's must (the consolidated default member is not usable).

Every filing references its report-type entry point (artifacts.report_type on the document). The per-template entry points (fra-{version}-{template}[-ifrs18].xsd) remain published so filings generated before still resolve, and Channel D recognises both forms. fra-entry-{version}.xsd is the whole taxonomy (IAS 1), for browsing. XBRL_REPORT_TYPE_ENTRY_POINTS=false reverts filings to the per-template entry points.

2.3 Labels (XB-TAX-004)

2.4 Link roles and generic labels

Extended link roles follow the Link Role Registry conventions used by IFRS and ESEF: a URI under the taxonomy namespace and a definition [sort code] Group - Title (Document, Statement, Disclosure, Supplement, Enumeration), defined once in fra-roles-{version}.xsd. Each role has Arabic and English generic labels (Generic Labels 1.0) in fra-{version}_gla-{ar,en}.xml; each formula assertion has Arabic and English generic labels naming it.

2.5 Enumerations (Extensible Enumerations 2.0)

List-valued disclosures are enum2:enumerationItemType elements whose value is a member of a domain network in its own role (fra-{version}_enum_def.xml, linked from fra-{version}.xsd):

Element Domain → members
fra:AuditOrReviewStatus AuditStatusDomain → AuditedMember, ReviewedMember, UnauditedMember
fra:RegulatedSector RegulatedSectorDomain → one member per sector group (InsuranceSectorMember, MicrofinanceSectorMember…)
fra:ReportingPeriodicity ReportingPeriodicityDomain → AnnualReportMember, InterimReportMember, EventDrivenReportMember
ifrs-full:NatureOfFinancialStatements (IFRS) ConsolidatedMember, SeparateMember

In XBRL 2.1 and Inline XBRL the value is the member's expanded name ({namespace}#{localName}); in xBRL-JSON and xBRL-CSV it is the member QName (ifrs-full:SeparateMember), as OIM requires.

2.6 Regional mapping table (XB-TAX-010, XB-TAX-013)

fra-{version}-regional-alignment.csv / .json (in the package) and the public page /xbrl/taxonomy/alignment (?format=csv|json) list every element the taxonomy uses with:

No regional taxonomy package is bundled with the platform: until FRA loads one, its column reads unverified.

2.7 Hosting (XB-TAX-009)

Files (.xsd, .xml, and the .csv / .json resources), packages and the index are served with Access-Control-Allow-Origin: *, Access-Control-Allow-Methods: GET, HEAD, OPTIONS and exposed Content-Disposition, X-Content-SHA256; OPTIONS preflight answers 204.

2.8 Sustainability entry point (XB-TAX-011)

fra-{version}-issb.xsd is a separate entry point for sustainability-related disclosures on the official IFRS Sustainability Disclosure Taxonomy (IFRS Foundation, edition 2024-04-26, namespace https://xbrl.ifrs.org/taxonomy/2024-04-26/ifrs-sds, prefix ifrs-sds): it imports the official core schema (https://xbrl.ifrs.org/taxonomy/ifrs_sds/2024-04-26/ifrs_sds/ifrs_sds-cor_2024-04-26.xsd) and English label linkbase, and presents the IFRS S1/S2 elements FRA uses (statement of compliance, governance, strategy and risk management, Scope 1/2/3 GHG emissions, climate-related transition and physical risks, capital deployment, carbon price, remuneration, carbon credits — resources/xbrl/issb-elements.php), with FRA Arabic labels (fra-{version}-issb_lab-ar.xml), and the platform's ESG/carbon template elements beside them. Element names, item types and period types are copied from the official schema; php artisan fra:xbrl:import-issb loads the full official element list and fails if the list ever drifts from it. fra-{version}-issb-mapping.json maps the template elements to the official ones (exact, wider, none) and the fra-issb stand-ins of taxonomy versions before 2026.10.15 to their official replacements. Other entry points do not load the ISSB schema.

2.9 EAS differences and anchoring (XB-TAX-001)

The FRA entry points import the IFRS element schema only, never the IFRS entry points' calculation networks. The IFRS 2025 calculation networks are nevertheless imported (fra:xbrl:import-ifrs reads every cal_*.xml the IFRS entry point links) as reference data: each FRA calculation relationship is classified against them (ifrs-same, ifrs-descendant, fra-only, weight-conflict) in fra-{version}-ifrs-calculation-alignment.csv.

Where the Egyptian Accounting Standards treat a line item differently from IFRS and IFRS therefore has no element, the fra-egs namespace declares one, with Arabic and English labels and documentation of the difference: employees' share of profit and board remuneration distributed from equity (Companies Law 159 of 1981; IAS 19 treats it as an expense) and its payment in financing cash flows, and the exchange differences of the EAS 13 special treatment (recognised in OCI or capitalised). The template lines concerned are tagged with them (XBRL_EAS_EXTENSIONS, default on). Where IFRS has the element, no extension is made (legal reserve: ifrs-full:StatutoryReserve; transfer to it: IncreaseDecreaseThroughTransferToStatutoryReserve).

Every extension element carries an anchoring decision (resources/xbrl/extension-anchors.php): the closest IFRS element, wider or narrower, published as fra-{version}_def-anchoring.xml with the arcrole http://xbrl.fra.gov.eg/arcrole/wider-narrower (declared in fra-roles-{version}.xsd#wider-narrower with cyclesAllowed="undirected", definition wider-narrower (anchoring of extension elements) and usedOn link:definitionArc — a filer extension that declares the arcrole itself must declare exactly this, XBRL 2.1 §5.1.4 — the arcrole filer extensions use, section 4), or none with the reason (register data, prudential measures).

2.10 FRA-authored rules as Formula assertions (FR-VAL-005)

Rules FRA staff publish in the admin rule stores (financial validation rules: arithmetic over line items within a tolerance; XBRL validation rules: a {Concept} expression against a threshold) are translated into XBRL Formula 1.0 value assertions FRA_ADMIN_<code> in the formula linkbases of the entry points they apply to (template- and sector-scoped), with Arabic and English messages and severity. A line item named by label is resolved to the element the templates tag it with; a rule is published only when every operand resolves to exactly one element. fra-{version}-admin-rules-formula.json lists every rule with its assertion test or the reason it cannot be expressed (ambiguous label, no element, one element at two dates, structural check with no expression…). Drafts and retired rules are never published.

3. Report conventions

Item Rule
Entity identifier LEI under http://standards.iso.org/iso/17442 when the company has one; otherwise the FRA licence number under http://xbrl.fra.gov.eg/entity/license.
Periods One duration context per fiscal year and one instant context per year end, for the current and the comparative year.
Units iso4217:EGP (or the presentation currency) for amounts (xbrli:monetaryItemType); xbrli:shares for share counts (xbrli:sharesItemType); iso4217:EGP / xbrli:shares for per-share amounts (dtr-types:perShareItemType); xbrli:pure for ratios and percentages (decimal fractions, 0.15 = 15 %); utr:tCO2e (UTR, namespace http://www.xbrl.org/2009/utr) for greenhouse-gas emissions, whose elements are typed dtr-types:ghgEmissionsItemType (Data Types Registry http://www.xbrl.org/dtr/type/2022-03-31, imported by the FRA schemas that use it) — the UTR binds tCO2e to that item type, so an emission tagged as a plain decimal would fail the Units Registry check (Arelle --utr).
Signs Values are tagged in the element's natural sign. Expenses and cash outflows printed as negatives are tagged positive; their balance attribute says they reduce the total. A loss, negative equity or a net outflow stays negative.
Precision decimals only, never precision. Amounts are tagged in units; decimals comes from the declared presentation scale (XB-GEN-005), any power of ten: the filer's statement (filing page «مقياس عرض المبالغ», API reporting_flags.presentation_scale = 3 for thousands, 6 for millions…), else the scale printed on the extracted page («القيمة بالألف جنيه»), else the template field's unit («EGP thousands», «ألف جنيه»). A figure printed with fraction digits keeps that accuracy: 12.5 in millions → value 12500000, decimals="-5". Only when nothing is declared is the rounding inferred from the figures — the report then carries the finding FRA.rounding.inferred. LevelOfRoundingUsedInFinancialStatements states the scale (Units, Thousands, Millions, Billions, or 10^n units).
Report-level facts Name of the reporting entity, domicile, presentation currency, level of rounding, end of reporting period, period covered, consolidated/separate basis (ifrs-full:NatureOfFinancialStatements), audit/review status (fra:AuditOrReviewStatus: as stated by the filing, else an accredited auditor's seal — annual audited, interim reviewed — else the template: one the auditor signs is audited annually and reviewed in the interim, XBRL_AUDIT_STATUS_FALLBACK), FRA licence number and sector classification (always emitted: xsi:nil when the register has none — the FRA_REQ_* existence assertions then report it), supervised sector (fra:RegulatedSector), periodicity, template code, and the comparability flags below.
Hyperinflation and currency changes (XB-TAX-012) Every report states fra:HyperinflationaryEconomyIndicator (IAS 29), fra:ChangeInPresentationCurrencyIndicator (IAS 21) and fra:ComparativeInformationRestatedIndicator; with IAS 29 also the IFRS restatement flag and LevelOfPriceIndex; with a currency change the previous currency and the reason. Comparatives in the statements are the restated / re-presented figures, in the current presentation currency (the default member of RetrospectiveApplicationAndRetrospectiveRestatementAxis); amounts as previously reported are tagged PreviouslyStatedMember in the currency they were reported in, and the adjustment (…CorrectionsOfPriorPeriodErrors…, policy change or error correction member) only when both are in the same currency. Flags come from disclosure_submissions.xbrl_reporting_flags (JSON), else the same keys (xbrl_ prefixed) in the filing's form data. They are captured on every channel (XB-TAX-011): the creation wizard and the filing page («بيانات العرض والمراجعة لتقرير XBRL»), the structured API (reporting_flags in the Channel B payload), and — for an uploaded XBRL report (Channel D) — derived from its own facts. They are validated (IAS 29 requires the price index; a currency change requires the previous ISO currency, different from the current one; a report stating a flag without its value carries FRA.ias29.priceIndex / FRA.ias21.priorCurrency) and shown to the FRA reviewer on the filing.
File name <entity id>-<period end>-<reference> (.xhtml, .xbri, .xml, .json, -facts.csv + -metadata.json, .xbr).
Dimensions Explicit members in the context segment (section 12). A default member is never reported.

4. Filing XBRL (Channel D)

A company files an XBRL report produced by its own tagging tool in two ways, with the same intake and the same validation:

How the report is read:

5. Validation

Every report is validated in the layers of the FRA RFP (§7.5), in this order. Each finding carries a numbered rule id, its layer, its severity and its message in Arabic and English. The rule set is versioned (XBRL_RULES_VERSION, currently 2026.10.1) and published as a machine-readable rules file:

Severities: error — the report is refused; warning — accepted, to be explained or corrected; info — information only.

5.1 Layers

  1. Package safety — the upload is untrusted (section 15).
  2. XBRL conformance — the platform's own reading (XBRL 2.1, Inline XBRL 1.1 incl. document sets, continuations and exclusions, OIM) and Arelle on the uploaded report itself, against the FRA entry point it references, resolved from the frozen FRA taxonomy package of that version. Arelle runs sandboxed: offline (XBRL_INTAKE_ARELLE_OFFLINE, taxonomies only from the FRA package, XBRL_ARELLE_PACKAGES and the warm cache), with a hard timeout (XBRL_INTAKE_ARELLE_TIMEOUT), on a private temporary copy. Any Arelle error (XBRL-100, with the Arelle message code) refuses the report. Where Arelle is not configured the run is reported (XBRL-102) — a warning, or an error when XBRL_INTAKE_ARELLE_REQUIRED=true.
  3. Calculations 1.1 — round-to-nearest intervals from decimals, on the calculation network of the referenced entry point, and the balance-sheet identity.
  4. Duplicate facts — XII WGN 2025-01-14: complete and consistent duplicates are accepted (DUP-003); inconsistent duplicates are errors (DUP-001, DUP-002).
  5. FRA filing rules — FRA-101 … FRA-128.
  6. Data quality — DQC-style rules DQ-001 … DQ-006.
  7. FRA business rules — FRA-001 … FRA-006, FRA-W001 (on the published document of the filing) and the solvency assertion FRA_INS_SOLVENCY.

5.2 Calculations 1.1 policy

A total is consistent when the interval its decimals allow overlaps the interval of the weighted sum of its items reported in the same context and unit; a total with no item reported is not checked. The FRA policy for an inconsistency (CALC-001, XBRL_CALC_POLICY):

Policy Severity
tiered (default) error when the difference exceeds XBRL_CALC_ERROR_THRESHOLD (0.5 %) of the larger of the total and the sum of its items; warning below — a rounding-sized difference is explained, a material one is corrected.
error every inconsistency is an error.
warning no inconsistency blocks the filing.

Arelle's own Calculations 1.1 messages on the upload are reported under CALC-001 too; the platform's check gives the tiered verdict with the amounts.

5.3 Extension elements and anchoring

A filer may declare its own elements in an extension schema inside its report package (as ESEF filers do). Every extension line item (a concrete xbrli:item that is not a domain member) must be anchored in the filer's definition linkbase: a definitionArc with the arcrole http://xbrl.fra.gov.eg/arcrole/wider-narrower (the ESEF arcrole http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower is accepted too) from an IFRS or FRA element (the wider one) to the extension element (the narrower one). The anchor must have the same data type as the extension, or a type it derives from (monetaryItemType → monetaryItemType or decimalItemType). Unanchored: FRA-114; incompatible type: FRA-115; an element in an unknown namespace without schema: FRA-116. Severity: XBRL_ANCHORING_SEVERITY (default error).

5.4 Rules

<!-- generated from RuleBook (php artisan fra:xbrl:rules-export); keep in step with rules.json -->

Package safety (package)

Rule Severity Rule (EN) القاعدة (AR)
PKG-001 error Report packages (.xbri, .xbr, .zip) must be valid ZIP archives. الملف ليس أرشيف ZIP مقروءاً.
PKG-002 error Entry names must be relative, without "..", drive letters, backslashes or NUL (path traversal). مسار غير آمن داخل الحزمة: ….
PKG-003 error (XBRL_PKG_MAX_ENTRIES) Entry-count limit (XBRL_PKG_MAX_ENTRIES). الحزمة تحتوي على … ملفاً؛ الحد الأقصى ….
PKG-004 error (XBRL_PKG_MAX_UNCOMPRESSED, XBRL_PKG_MAX_ENTRY) The ACTUAL inflated bytes are counted while reading: an entry larger than its header declares, larger than XBRL_PKG_MAX_ENTRY, or a package larger than XBRL_PKG_MAX_UNCOMPRESSED is refused. حجم الحزمة بعد فك الضغط يتجاوز الحد المسموح عند … (… بايت، الحد …).
PKG-005 error (XBRL_PKG_MAX_RATIO) Per-entry inflated/compressed ratio, judged on the header and again on the bytes actually inflated. نسبة ضغط الملف … هي …:1 (الحد …:1) — رُفض كقنبلة ضغط محتملة.
PKG-006 error Nested archives are refused by extension and by content signature (ZIP, gzip, 7z, RAR, bzip2, xz, CAB). أرشيف داخل الحزمة: …. لا تُقبل الأرشيفات المتداخلة.
PKG-007 error Entries whose Unix mode is a symbolic link are refused. رابط رمزي داخل الحزمة: ….
PKG-008 error Report Packages 1.0 report discovery found no report. لا يوجد تقرير داخل الحزمة (المتوقع: reports/.xhtml أو reports/.xbrl أو reports/*.json).
PKG-009 error Report Packages 1.0: the HTML documents of one directory form one Inline XBRL document set; any other report file is a separate report. A filing is one report — an ambiguous package is refused, never guessed. الحزمة تحتوي على … تقارير (…)؛ يجب أن يحتوي الإيداع على تقرير واحد فقط.
PKG-010 error The documentType must be a Report Packages 1.0 type; an .xbri package holds an Inline XBRL report and an .xbr package a non-inline one. ملف META-INF/reportPackage.json غير صالح أو لا يطابق الحزمة: ….

XBRL specification conformance (xbrl)

Rule Severity Rule (EN) القاعدة (AR)
XBRL-001 error The report must be well-formed XML/XHTML (XBRL 2.1 or Inline XBRL 1.1), xBRL-JSON or an xBRL-CSV package. الملف ليس تقرير XBRL سليماً: ….
XBRL-002 error Every fact must reference a context of the report (or of the document set). البند … يشير إلى سياق غير معرّف ….
XBRL-003 error Numeric facts must be readable with their Transformation Registry format. رقم غير مقروء «…» للبند … (الصيغة …).
XBRL-004 error Fact names are QNames whose prefix must be declared. بادئة غير معرّفة في اسم البند ….
XBRL-005 error continuedAt must reference an ix:continuation in the document set, without cycles, and each continuation may be used once. سلسلة ix:continuation غير مكتملة للبند …: ….
XBRL-006 error Every numeric fact must reference a unit of the report. البند الرقمي … يشير إلى وحدة غير معرّفة ….
XBRL-007 error xBRL-JSON/xBRL-CSV reports must be complete in one metadata file (no extends, no property groups). بنية OIM غير مدعومة أو غير صالحة: ….
XBRL-008 error Context, unit and continuation ids are unique across the whole document set. المعرّف … مستخدم لأكثر من عنصر في مجموعة مستندات XBRL المضمّنة.
XBRL-100 error An error reported by Arelle when the uploaded report is validated against the FRA entry point it references (XBRL 2.1, Dimensions 1.0, Inline XBRL 1.1, OIM, Report Packages). The Arelle message code is given as arelle_code. خطأ في مطابقة مواصفات XBRL (…): ….
XBRL-101 warning A warning reported by Arelle on the uploaded report. تحذير في مطابقة مواصفات XBRL (…): ….
XBRL-102 warning (XBRL_INTAKE_ARELLE_REQUIRED) Arelle is not configured or did not answer. When XBRL_INTAKE_ARELLE_REQUIRED=true this is an error and the report is not accepted. لم يعمل المدقق المرجعي (Arelle): ….

Calculations 1.1 (calculation)

Rule Severity Rule (EN) القاعدة (AR)
CALC-001 tiered (XBRL_CALC_POLICY, XBRL_CALC_ERROR_THRESHOLD) A total lies outside the Calculations 1.1 rounding interval of its items (round-to-nearest). FRA policy (XBRL_CALC_POLICY): tiered — an ERROR when the difference exceeds XBRL_CALC_ERROR_THRESHOLD (0.5 %) of the larger of the total and the sum, otherwise a WARNING; "error" or "warning" apply one severity to all. «…» (…) = … بينما مجموع بنوده … (فرق …؛ Calculations 1.1، decimals …).
CALC-002 error The balance-sheet identity (formula assertions FRA_BS_IDENTITY / FRA_BS_IDENTITY_EL), within the rounding interval. إجمالي الأصول … لا يساوي الالتزامات + حقوق الملكية … في ….
CALC-003 warning Segments and insurance classes against the figure without the axis; reconciling items must be explained (IFRS 8.28). مجموع أعضاء … للبند … لا يساوي إجمالي المنشأة (…).

Duplicate facts (duplicates)

Rule Severity Rule (EN) القاعدة (AR)
DUP-001 error Numeric duplicates (same concept, period, dimensions, unit) whose values differ once rounded to the least precise decimals. Complete and consistent duplicates are accepted. بيانات مكررة غير متسقة للبند … (……): ….
DUP-002 error Non-numeric duplicates (same concept, period, dimensions, language) with different values. بيانات نصية مكررة غير متسقة للبند … (……، اللغة …).
DUP-003 info Complete or consistent duplicates (the more precise value rounds to the less precise one) are allowed. … بيانات مكررة متسقة للبند … (…)؛ مقبولة.

FRA filing rules (filing)

Rule Severity Rule (EN) القاعدة (AR)
FRA-101 error The entity identifier is an LEI (ISO 17442) or the FRA licence number. مخطط معرّف المنشأة … غير مقبول؛ استخدم … (LEI) أو … (رقم ترخيص الهيئة).
FRA-102 error The report must be about the filing company. معرّف المنشأة في التقرير (…) لا يطابق رقم ترخيص الشركة لدى الهيئة أو رمز LEI.
FRA-103 error The entity check is never skipped: without a licence number or LEI on the profile the report is refused unless the FRA recorded an override for the company. ملف الشركة لا يتضمن رقم ترخيص الهيئة ولا رمز LEI، فلا يمكن التحقق من معرّف المنشأة في التقرير. أكمل ملف الشركة (رقم الترخيص أو LEI) قبل الإيداع بصيغة XBRL.
FRA-104 error Every context of a report identifies the same entity. التقرير يستخدم أكثر من معرّف منشأة: ….
FRA-105 error The schemaRef is an FRA entry point fra-{version}-{template}[-ifrs18].xsd, directly or through the filer's extension schema that imports it. التقرير لا يشير إلى نقطة دخول من تصنيف الهيئة (schemaRef: …).
FRA-106 error One report, one template, one entry point. التقرير يشير إلى أكثر من نقطة دخول من تصنيف الهيئة: ….
FRA-107 error The entry point must belong to a released (or the configured) FRA taxonomy version. إصدار تصنيف الهيئة … الذي يشير إليه التقرير ليس إصداراً منشوراً.
FRA-108 error Durations start before they end; dates are valid xs:date values. فترة غير صالحة في السياق …: ….
FRA-109 warning The current period of the report is the filing's fiscal year. آخر فترة في التقرير تنتهي في … وليس في السنة المالية … المختارة للإيداع.
FRA-110 error Units: iso4217 currencies for amounts, xbrli:shares for shares, currency/shares for per-share amounts, xbrli:pure for ratios. البند النقدي … يستخدم الوحدة …؛ المبالغ النقدية تستخدم عملة ISO 4217 (iso4217:XXX).
FRA-111 error A report has one presentation currency. البنود النقدية مقدَّمة بأكثر من عملة: ….
FRA-112 error Numeric facts carry decimals, never precision (as in ESEF). البند … يستخدم الخاصية precision؛ استخدم decimals فقط.
FRA-113 error Every non-nil numeric fact states its accuracy with decimals. البند الرقمي … بدون الخاصية decimals.
FRA-114 error (XBRL_ANCHORING_SEVERITY) ESEF-style anchoring: every extension line item is linked in the filer's definition linkbase, with a wider-narrower arc (arcrole http://xbrl.fra.gov.eg/arcrole/wider-narrower or the ESEF one), to an IFRS/FRA element. Domain members are exempt. Severity: XBRL_ANCHORING_SEVERITY. عنصر الامتداد … غير مرتبط (anchoring) بعنصر من IFRS أو تصنيف الهيئة بعلاقة wider-narrower.
FRA-115 error (XBRL_ANCHORING_SEVERITY) The anchor must have the same data type as the extension element, or one the extension's type is derived from (the extension is the same or narrower). عنصر الامتداد … (…) مرتبط بالعنصر … (…) ونوع بياناته ليس مماثلاً ولا أعم.
FRA-116 error An element in an unknown namespace must be declared in the extension schema shipped in the report package. العنصر … غير معرّف في IFRS ولا في تصنيف الهيئة ولا في مخطط امتداد الإيداع.
FRA-117 error Facts use concrete elements of the referenced taxonomies. العنصر … غير موجود في تصنيف IFRS … أو تصنيف الهيئة، أو أنه مجرد (abstract).
FRA-118 error Name of the reporting entity, presentation currency, end of reporting period and level of rounding are mandatory. البيان الإلزامي على مستوى التقرير … غير موجود.
FRA-119 warning Text blocks (notes and policies) keep their formatting: escape="true" in Inline XBRL; a note must use an IFRS text-block element. كتلة النص … غير موسومة كـ XHTML مُهرَّب (ix:nonNumeric escape="true").
FRA-120 error A tagged note or policy must carry its text. كتلة النص … فارغة.
FRA-121 warning Package and report naming convention (filer manual §3, packaging). اسم الملف … لا يتبع الصيغة <معرّف المنشأة>-<نهاية الفترة>-<المرجع>.
FRA-122 error Facts are bound to template fields by element, period and dimension members; a report with no bound figure files nothing. لم يُطابَق أي رقم في التقرير مع بنود النموذج … للسنة ….
FRA-123 warning Unmapped facts are reported, never dropped silently (XB-IN-004). … عنصراً موسوماً ليس له حقل في النموذج: ….
FRA-124 error Two facts that bind to the same field and period (an element and its IFRS 18/IAS 1 counterpart, or a deprecated element and its replacement) must agree. قيمتان مختلفتان موسومتان لحقل النموذج … (…): ….
FRA-125 error The template comes from the entry point the report references. لم يُحدَّد نموذج الإفصاح: التقرير لا يشير إلى نقطة دخول نموذج من تصنيف الهيئة ولم يُختر نموذج.
FRA-126 warning Elements deprecated by the binding taxonomy version (filer manual §11). عناصر ملغاة قُرئت بالعناصر البديلة: ….
FRA-127 warning Detail with no template line is reported. … بياناً تفصيلياً بالأبعاد (قطاعات، فروع…) ليس له حقل في النموذج ولم يُنقل.
FRA-128 info Block tagging phase-in (filer manual §13). الإيداع يتضمن إيضاحات لكنه خارج نطاق مرحلة وسم الإيضاحات.

Data quality (data_quality)

Rule Severity Rule (EN) القاعدة (AR)
DQ-001 warning Sign rule after DQC_0015/DQC_0080: assets, liabilities, revenue, inventories, capital… are never negative. «…» مقدَّم بقيمة سالبة (…) وهو بند لا يكون سالباً عادةً — راجع الإشارة.
DQ-002 warning (XBRL_DQ_SCALE_FACTOR) Likely scale error: a figure about 1,000 times (XBRL_DQ_SCALE_FACTOR or more) its comparative or the reverse. «…» = … يساوي … ضعف قيمة المقارنة … — راجع مقياس الأرقام (بالآلاف / بالوحدات).
DQ-003 error (XBRL_DQ_MAX_MONETARY) Implausible magnitude for any FRA filer (XBRL_DQ_MAX_MONETARY). «…» = … قيمة كبيرة بشكل غير معقول (الحد …).
DQ-004 error Period type of the element (instant/duration) and of the context must agree. العنصر … من نوع فترة … لكنه مقدَّم بفترة ….
DQ-005 warning DQC-style percent rule for percentItemType elements and pure ratios. «…» = …: نسبة أكبر من 1 (100٪) — تُوسَم النسب ككسور عشرية (0.15 تعني 15٪).
DQ-006 warning A value more precise than its decimals usually means a scale or rounding error. «…» = … ليس من مضاعفات 10^… رغم أن decimals="…".

FRA business rules (business)

Rule Severity Rule (EN) القاعدة (AR)
FRA-001 error FRA licence number and sector classification (FRAValidationRules). بند الهيئة الإلزامي غير موجود: ….
FRA-002 error Asset subtotal identity (FRAValidationRules). إجمالي الأصول لا يساوي الأصول المتداولة + غير المتداولة.
FRA-003 error Assets = equity + liabilities (FRAValidationRules). معادلة الميزانية غير متحققة.
FRA-004 error FRAValidationRules. لا يجوز أن يكون إجمالي الأصول سالباً.
FRA-005 error Insurance sector (FRAValidationRules). نسبة الملاءة المالية للتأمين أقل من 100٪.
FRA-006 error FRAValidationRules. يجب أن تسبق بداية الفترة نهايتها.
FRA-W001 warning Carbon disclosure rule (FRAValidationRules). تعويضات الكربون غير كافية.
FRA_INS_SOLVENCY configurable (XBRL_SOLVENCY_SEVERITY) Formula assertion FRA_INS_SOLVENCY (XBRL_SOLVENCY_MINIMUM, XBRL_SOLVENCY_SEVERITY). نسبة الملاءة المالية …٪ أقل من الحد الأدنى المقرر.

5.5 Results

Results are stored per filing version and shown on the filing page, at /xbrl/filings/{id}/checks and in the FRA validation report (/fra/xbrl-documents/{id}/validation), exportable as JSON (…/validation/json) and PDF (…/validation/pdf): the report as filed (intake) and the published document (native checks, Arelle — messages, per-assertion results, xBRL-CSV pass — and the FRA business rules), bilingual, never recomputed or overwritten by the export.

Arelle on the published packages (when XBRL_ARELLE_CMD or XBRL_ARELLE_SERVICE_URL is set): each report package is checked against XBRL 2.1, Dimensions 1.0, Inline XBRL 1.1, Calculations 1.1 and duplicate facts, the formula assertions of its entry point are executed (--formula=run, section 9), the xBRL-CSV package is validated as a second report, and an interactive viewer (ixbrl-viewer) is generated for the filing. The stored report (arelle.report) holds the messages, the per-assertion results (assertions), the CSV pass (csv), how Arelle ran (mode, fallback), the time of all runs (total_ms) and the one-off validation of the taxonomy entry point (taxonomy_check, section 7).

6. Endpoints

Path Content
GET /xbrl/taxonomy Public taxonomy versions (released and in consultation), with packages, hashes and deprecations (JSON).
GET /xbrl/taxonomy/{version}/{file} Taxonomy files of a released version (public): .xsd, .xml, and the .csv / .json resources (alignment, legacy aliases, ISSB mapping, label review). CORS.
GET /xbrl/taxonomy/alignment Regional alignment table (page; ?format=csv or json).
GET /xbrl/taxonomy/fra-taxonomy-{version}.zip Taxonomy Package (public). …-{version}-DRAFT.zip while in consultation.
GET /xbrl/filings Index of accepted filings, with links to every format (JSON, public).
GET /xbrl/filings/{id}/{xhtml,xbri,xml,json,csv,xbr,viewer,checks} Public once accepted. Before that: FRA staff, the filer, and its appointed auditor.
GET /xbrl/filings/{id}/{file}.xsd, …_def.xml, …_lab.xml The filing's own extension (company segments), same access.
POST /xbrl/filings/{id}/publish Regenerate the report on its taxonomy version (FRA staff and the filer); regenerate=1 moves it to the version in force for its period.
POST /company/disclosures/{id}/xbrl-notes[/{note}], …/xbrl-notes/import-pdf The company's notes editor (create / PUT / DELETE, import from the source PDF) — editable filings only.
GET /xbrl/filer-manual/manual, …/manual.md, …/rules.json This manual and the machine-readable rules file (public).
POST /api/v1/xbrl/test-filing Test filing: full validation, nothing filed (section 16).
GET /fra/xbrl-documents/{id}/validation[/json|/pdf] FRA validation report of a filing version (section 5.5).
POST /company/disclosures/{id}/xbrl-dimensions The company's segment and insurance-class figures (replaces the filing's grids).

7. Operations

8. xBRL-CSV

Every filing is also published as xBRL-CSV (OIM 1.0, documentType https://xbrl.org/2021/xbrl-csv):

Channel D reads xBRL-CSV from a package: template- and column-level dimensions, decimals, $column references, report-level dimensions/parameters, #none and #nil. Property groups and extends are not supported and are reported.

9. Formula assertions

Each entry point carries a Formula 1.0 linkbase (fra-{version}-{code}[-ifrs18]_for.xml, referenced from the entry point) with value assertions on the dimensional aspect model with implicit filtering (facts are compared within one context: same period, same members):

Id Severity Test Where
FRA_BS_IDENTITY error abs($Assets - ($Liabilities + $Equity)) ≤ the sum of the facts' rounding half-intervals (½·10^-decimals, via xfi:decimals) templates with Assets, Liabilities and Equity — every year end, both periods
FRA_BS_IDENTITY_EL error Assets = Equity and liabilities, same tolerance templates with that total
FRA_BS_ASSETS / FRA_BS_LIABILITIES totals (XBRL_FORMULA_TOTALS_SEVERITY, default warning) Assets = current + non-current; Liabilities = current + non-current statements of financial position
FRA_BS_EQUITY totals Equity = owners of the parent + non-controlling interests consolidated statements of financial position
FRA_PL_GROSS_PROFIT totals Gross profit = revenue − cost of sales income statements
FRA_PL_TAX totals Profit = profit before tax − income tax (not when a discontinued-operations line exists) income statements
FRA_PL_ATTRIBUTION / FRA_CI_ATTRIBUTION totals Profit / comprehensive income = owners of the parent + NCI consolidated income statements
FRA_PL_EQUITY_TIE totals Comprehensive income = profit + OCI (the P&L figure that enters the changes in equity) templates with the three
FRA_CF_NET_CHANGE totals Net change in cash = operating + investing + financing (with or without the FX effect) cash flow statements
FRA_CF_CASH_ROLL totals Closing cash = opening cash (instant at the period's start, pf:instantDuration) + net change (± FX): ties the cash flow statement to the cash of the statement of financial position cash flow statements
FRA_INS_SOLVENCY warning (XBRL_SOLVENCY_SEVERITY) $SolvencyRatio ge 100 (XBRL_SOLVENCY_MINIMUM; the element is filed in percent) insurance entry points with fra-ins:SolvencyRatio
FRA_SIGN_NONNEGATIVE XBRL_FORMULA_SIGN_SEVERITY (warning) $Value ge 0 for elements that are never negative (DQC_0080 pattern: assets, revenue, inventories, PP&E, issued capital, expenses tagged in their natural sign…) every entry point using one
FRA_REQ_ENTITY_NAME, FRA_REQ_CURRENCY, FRA_REQ_PERIOD_END, FRA_REQ_BASIS, FRA_REQ_AUDIT_STATUS, FRA_REQ_LICENCE, FRA_REQ_SECTOR XBRL_FORMULA_EXISTENCE_SEVERITY (error) existence assertions: the report-level fact is reported (a nil licence counts as missing) report-type entry points

Every assertion has Arabic and English generic labels naming it, an Arabic and an English message for satisfied and for unsatisfied evaluations (XPath expressions in braces print the figures and the date), and its severity is an assertion-unsatisfied-severity arc to http://www.xbrl.org/2022/severities.xml. Tolerance is always the sum of the facts' rounding half-intervals. All of them are executed by Arelle on generated reports in the platform's test suite (tests/Feature/Rfp3/Xbrltax/XbrltaxArelleTest), including failing cases.

XULE is not used. Formula 1.0 is the XBRL International Recommendation implemented by every certified processor, and the FRA rules are value assertions it expresses directly; XULE is the XBRL US rule language (DQC rules) with essentially a single implementation. Rules that need procedural logic remain in the platform's native checks.

10. IFRS 18 entry points

IFRS 18 replaces IAS 1 for periods beginning on or after 1 January 2027. Each template has an IFRS 18 entry point whose presentation and calculation use the IFRS 18 element where it differs from IAS 1 (all present in the IFRS Accounting Taxonomy 2025, same balance and period type):

IAS 1 element IFRS 18 element
ProfitLossFromOperatingActivities OperatingProfitLossOperating
OtherIncome OtherOperatingIncomeOperating
OtherExpenseByFunction OtherOperatingExpensesOperating
DepreciationAndAmortisationExpense DepreciationAndAmortisationExpenseOperating
ImpairmentLossRecognisedInProfitOrLoss ImpairmentLossReversalOfImpairmentLossRecognisedInProfitOrLossOperating
InvestmentIncome InvestmentIncomeInvesting
RevenueFromDividends RevenueFromDividendsInvesting

Finance income and costs stay on their IAS 1 elements: under IFRS 18 they split between the investing and financing categories according to what produced them, which the template does not record.

A filing is generated on the IFRS 18 entry point when its period begins on or after XBRL_IFRS18_EFFECTIVE_FROM (default 2027-01-01), or when the company elected early application (corporate_profiles.ifrs18_early_adoption, recorded by FRA on the taxonomy versions screen). The inline report states the framework; Channel D accepts both.

11. Taxonomy lifecycle

FRA administers taxonomy versions at fra/xbrl-taxonomy/versions:

  1. Draft — version label (digits, letters, dots), release notes in Arabic and English, consultation window, effective date, and the elements the version deprecates with their replacements (or none) and the reason. Staff can download the draft package.
  2. Consultation — needs the window; the package (with the version's own deprecations applied) is public at /xbrl/taxonomy/fra-taxonomy-{version}-DRAFT.zip, marked DRAFT in its name, metadata and a DRAFT-NOT-FOR-FILING.txt notice. Its files are not served individually.
  3. Approved — by an officer with settings.manage who is not the version's author (maker-checker). The final package is built, frozen on disk and its SHA-256 recorded; it is served at /xbrl/taxonomy/{version}/… and as fra-taxonomy-{version}.zip (header X-Content-SHA256).
  4. Effective — the previous effective version becomes superseded; it stays public so older filings still resolve.

A new version is a new namespace (http://xbrl.fra.gov.eg/taxonomy/{version}/…). A version label without a lifecycle record (the configured one, before FRA registers it) is served live from the templates. Deprecations of approved, effective and superseded versions bind: generation tags the field with the replacement (finding FRA.concept.deprecated) and intake reads the old element as the new one with a warning. Viewing needs taxonomies.view, editing taxonomies.manage, approval settings.manage.

Which version a filing is generated on.

  1. The version in force for its period: of the effective and superseded versions, the one whose effective date is the latest on or before the filing's period end (a superseded version still binds the periods before its successor took effect: a FY 2025 report filed in 2026 stays on the 2025 taxonomy). Without one — no lifecycle yet, or a period ending before the first released version — the version in XBRL_FRA_VERSION. Approved versions do not bind until made effective.
  2. The version is recorded on the XBRL document (taxonomy_version, and artifacts.fra_version) and shown on the filing's XBRL panel («تصنيف الهيئة {version}»).
  3. Re-publishing keeps it. A filing is re-published (after a correction, a format change, a notes edit) on the version its latest document was generated with — never silently moved to a newer one. Moving it is an explicit regeneration: the panel offers «الإنشاء على الإصدار الساري {version}» when the version in force differs (POST /xbrl/filings/{id}/publish with regenerate=1).
  4. Only the deprecations of versions effective on or before the filing's version apply to it.
  5. Arelle validates the report against that version's package — the frozen package of a released version, the live one (stored once per content) for the configured version — and its files are served per version at /xbrl/taxonomy/{version}/…. GET /xbrl/taxonomy reports as current the version in force today.

12. Dimensions

Each template's definition linkbase (…_def.xml, in the template's role) makes the statement heading the primary item of a closed hypercube (contextElement="segment") and every template element its domain member. The statement of changes in equity also has a calculation network: ChangesInEquity = its movements (profit, OCI, dividends −, issue of equity, transfers…), checked within each component's context.

Axis Members Used
ifrs-full:ConsolidatedAndSeparateFinancialStatementsAxis ConsolidatedMember (default), SeparateMember every template; non-consolidated templates (XBRL_SEPARATE_TEMPLATES, default ^FRA-FIN-NC) report SeparateMember (their hypercube makes the default unusable), consolidated ones report nothing (their hypercube has no SeparateMember)
ifrs-full:CategoriesOfRelatedPartiesAxis CategoriesOfRelatedPartiesDomain (default) → ParentMember, SubsidiariesMember, AssociatesMember, JointVenturesWhereEntityIsVenturerMember, KeyManagementPersonnelOfEntityOrParentMember, OtherRelatedPartiesMember (IAS 24.19) related-party templates (XBRL_RELATED_PARTY_TEMPLATES, default `RPT
ifrs-full:RetrospectiveApplicationAndRetrospectiveRestatementAxis RestatedMember («currently stated», default) → PreviouslyStatedMember, IncreaseDecreaseDueToChangesInAccountingPolicyAndCorrectionsOfPriorPeriodErrorsMember → policy-change / error-correction members financial statement templates (XBRL_RESTATEMENT_TEMPLATES, default ^FRA-FIN-): a comparative line filed with previously_stated (and optionally restatement_reason) — section 3
ifrs-full:ComponentsOfEquityAxis ComponentsOfEquityDomain (default) → EquityAttributableToOwnersOfParentMember → IssuedCapitalMember, SharePremiumMember, TreasurySharesMember, OtherReservesMember, RetainedEarningsMember; NoncontrollingInterestsMember statements of changes in equity
ifrs-full:SegmentsAxis SegmentsDomain (default) → the company's segments income statement and insurance templates
fra-ins:ClassesOfInsuranceBusinessAxis ClassesOfInsuranceBusinessDomain (default) → motor, fire and property, marine, engineering, health, life, other (Arabic and English labels) insurance templates

13. Block tagging of the notes (XB-GEN-007)

Every note and accounting policy of an annual filing is tagged in the XBRL report as an IFRS text block (dtr-types:textBlockItemType), as ESEF requires:

14. Format versions

XbrlPublisher::FORMAT and FraTaxonomy::FORMAT are 2026.10.14 (2026.10.10: report-type entry points, enumerations, report-level and comparability facts, formula rules; 2026.10.14: decimals from the declared presentation scale, the XB-TAX-011 reporting flags, dtr-types:ghgEmissionsItemType for emissions): documents of an earlier format are regenerated on their own taxonomy version when next served. A golden-file test (XbrlWriterGoldenAndViewerTest, tests/Fixtures/xbrl/golden/writer-output.json) fails when a writer's output changes without a FORMAT bump.

Deterministic generation (XB-GEN-008). The files carry no generation timestamp: the same facts and the same generator version give byte-identical Inline XBRL, XBRL 2.1, xBRL-JSON, xBRL-CSV and report packages (zip entries have a fixed timestamp and order), and the taxonomy package is byte-identical for the same templates (tp:publicationDate is XBRL_FRA_PUBLICATION_DATE, else the day the templates last changed). When and by which generator a document was produced is recorded on the document row (artifacts.generated_at, artifacts.generator), outside the files and the facts hash.

15. Packaging and naming

Report packages (Report Packages 1.0): a ZIP with a single top-level directory, META-INF/reportPackage.json (documentType https://xbrl.org/report-package/2023/xbri for an Inline XBRL report, …/xbr for a non-inline one; .xbri/.xbr must match — PKG-010) and the report under reports/:

Untrusted-upload limits (XII guidance on safe handling of report packages; configurable):

Check Rule Default
Entry count PKG-003 300 (XBRL_PKG_MAX_ENTRIES)
Actual inflated size of the package, counted while reading PKG-004 60 MB (XBRL_PKG_MAX_UNCOMPRESSED)
Actual inflated size of one entry (and never more than its header declares) PKG-004 40 MB (XBRL_PKG_MAX_ENTRY)
Compression ratio of one entry (zip bomb) PKG-005 100:1 above 1 MB (XBRL_PKG_MAX_RATIO, XBRL_PKG_RATIO_MIN_BYTES)
Path traversal, absolute/drive paths, backslashes PKG-002 always
Archives inside the archive (by extension and by content) PKG-006 always
Symbolic-link entries PKG-007 always
Malware scan of the upload (portal, API, test filing) — always (ClamAV)

Nothing is extracted to disk; XML is parsed without network access.

Naming (FRA-121, warning): <entity id>-<period end>-<reference>, e.g. FRA-LIC-0001-2025-12-31-annual.xbri; the same stem for .xhtml, .xbrl, .json.

16. Submission and the test-filing service

  1. Test filing — POST /api/v1/xbrl/test-filing (OAuth scope filing:submit, sandbox and production credentials): send the report as multipart/form-data (file) or JSON (file_name, content_base64), optionally template_code (when the report references no template entry point) and fiscal_year. The platform runs exactly the validation of a submission and returns the validation report — nothing is filed (filed: false). The response (XbrlTestFilingResult in the OpenAPI document at /api/v1/openapi.json) holds validation: valid, status (passed/warnings/failed), summary, layers[] and findings[] (rule_id, layer, severity, message.ar, message.en, concept, context, period, arelle_code, document…) — the rule ids of the rules file.
  2. Submission — POST /api/v1/filings/submit (encrypted envelope) or the portal upload. A refused report returns 422 xbrl_validation_failed with the same validation report.
  3. Review — the FRA reviewer sees the stored validation of the filed report next to the published document's checks (section 5.5).

17. Conformance