Guide · DOH Clinical Costing Dictionary

The DOH Clinical Costing Dictionary: XML Schema, Cost Buckets & Validation

What the Shafafiya dictionary is, how the clinical costing XML schema is structured, which cost buckets are approved, and how to validate your files against it before submission.

0
Primary XML Blocks
0MB
Maximum File Size
HAAD
ReceiverID Value
AED
Costs to 3 Decimals

The Shafafiya dictionary is the authoritative rulebook for Abu Dhabi healthcare data exchange. For clinical costing it defines the XML schema, approved cost buckets, cost types and field-level validation rules that the DOH gateways enforce. A single deprecated tag, a formatting mismatch, or a reconciliation gap is enough to trigger an automatic rejection. This guide covers every layer, from the three primary XML blocks to the full cost bucket and cost type reference, so your file passes before it leaves your building.

What is the DOH Clinical Costing Dictionary?

Shafafiya (Arabic: "transparency") is the DOH's health information exchange programme for Abu Dhabi. The dictionary is its versioned data standard - a precise definition of every accepted field, code set, structural rule and value constraint. Clinical costing submissions are validated against this dictionary alongside the DOH Clinical Costing Standards V2 (2025), which govern how the underlying costs are produced and reconciled. The dictionary controls what data looks like; the standards control how it is generated.

The current active version is V2 (January 2026), reference DoH/ST/FPS/ADCC/V2/2025. It deprecates several tags and cost bucket codes from V1 (2024) and introduces stricter reconciliation requirements. Files referencing retired tags are blocked at the gateway without explanation, which is why pre-submission validation matters.

The three primary XML blocks

Every clinical costing XML file must contain exactly three top-level structural blocks. Missing or misnamed blocks cause immediate schema rejection.

BlockTagPurposeCritical fields
Submission Header <Header> Identifies sender, receiver and submission context SenderID (facility licence code), ReceiverID must equal HAAD, TransactionDate in DD/MM/YYYY HH:MM, RecordCount, DispositionFlag (PRODUCTION or PTE_SUBMIT)
Claim & Encounter <Claim> / <Encounter> Describes the patient episode being costed PatientID, FacilityID, encounter Type (1, 2, 3, 4, 41, 42), Start/End dates, ActivityClinicianID, Specialty, ICD-10 diagnosis, HCPCS/CPT procedure codes, CriticalCareTime, VentilationTime
Financial Aggregation <Activity> Carries cost values per encounter CostBucketDirect and CostBucketOverheads tags with AED values to 3 decimal places; direct + overhead sum must reconcile to encounter total

Encounter types reference

The Type field inside each <Encounter> block must use one of the DOH-defined numeric codes. Mismatching the encounter type with procedure codes is a common submission error.

CodeEncounter typeNotes
1OutpatientUse outpatient E&M CPT codes (99202-99215)
2Emergency DepartmentUse ED E&M codes (99281-99285)
3InpatientUse inpatient E&M codes (99221-99223, 99231-99233)
4Day CaseProcedure completed within single calendar day without overnight stay
41Emergency Day CaseEmergency admission resolved as same-day case
42Emergency InpatientEmergency admission converted to inpatient stay

Approved cost buckets (V2)

Cost buckets aggregate final direct cost centres into standardised reporting categories. V2 defines 16 approved codes. Using any unlisted code, including retired V1 names, causes automatic gateway rejection.

CodeDescriptionScope
AlliedAllied Health ServicesPhysiotherapy, OT, dietetics, audiology, social work and other allied health professionals
AnaesthesiaAnaesthesia ServicesAll anaesthesia costs including pre-op assessment and recovery room
DentalDental ServicesAll dental chair, consumable and clinical costs
EDEmergency DepartmentED triage, resuscitation, acute care and observation
HomeHome Healthcare ServicesCosts delivered in a patient home setting
ICUIntensive / Critical CareICU, CCU, HDU and neonatal critical care units
ImagingImaging ServicesRadiology, MRI, CT, ultrasound, nuclear medicine
LaboratoryLaboratory ServicesPathology, biochemistry, microbiology and other lab services
OPOutpatient ClinicsAll scheduled outpatient consultation costs
OROperating RoomTheatre time, surgical nursing and instrument costs
OtherOther ServicesServices not captured by a more specific bucket
PharmacyPharmacy ServicesDrug dispensing, clinical pharmacy and IV preparation
PhysicianPhysician ServicesAttending physician and specialist consultation costs
ProsthesisProstheses & ImplantsPatient-specific implants, human tissue items and other medical devices
SPSSpecial Procedure SuitesEndoscopy, cath lab, cardiac electrophysiology and similar suites
WardWard ServicesInpatient ward nursing, hotel and general ward costs
V1 → V2 deprecation warning
The Supplies cost bucket from V1 is not accepted in V2. Replace it with Ward (general ward consumables), OR, or Other as appropriate. Files still referencing Supplies are silently rejected at the gateway.

Cost Types (V2): Expense Account Mapping

Cost types aggregate general ledger expense accounts into standardised reporting categories. Unlike cost buckets (which identify where care was delivered), cost types identify what kind of resource was consumed. Every GL line item must map to one of the following codes.

CodeDescriptionCovers
SWNursSalaries & Wages: NursingRegistered nurses, enrolled nurses, establishment-based student nurses, trainee nurses
SWDocSalaries & Wages: MedicalConsultants, registrars, residents, interns and other medical officers
SWAlliedSalaries & Wages: Allied HealthAllied health professionals and OR / procedure-room technicians
SWNonClinSalaries & Wages: Non-ClinicalAdministrative, maintenance and clerical staff recorded in direct cost centres
LaboratoryLaboratory SuppliesReagents, stains, calibration products and billed lab service costs
ImagingImaging SuppliesFilm, contrast media and billed imaging service costs
PharmacyPharmacy: Drugs & ServicesDrug purchase, production, distribution, supply, storage and clinical pharmacy
ProsthesisProstheses & ImplantsPatient-specific prostheses, implants and human tissue items (mapped per GL prosthesis accounts)
MSMedical & Surgical SuppliesMedical and surgical consumables excluding prostheses
HotelHotel ServicesCleaning, linen, laundry, patient food services and general hotel
GSOther Goods & ServicesRent, security, utilities and any GS not classified above
DepAmDepreciation & AmortisationDepreciation of assets recorded in direct cost centres
OHFOverhead FacilityAll overhead cost centre expenses except depreciation
OHDepOverhead DepreciationDepreciation recorded in overhead cost centres, reported separately from OHF
OHCorpOverhead CorporateExpenses allocated from corporate office or shared services to overhead

Annotated XML skeleton

The minimal valid structure for a single-claim V2 file. Every field shown is required, omit any one and the file fails schema validation at the gateway.

<?xml version="1.0" encoding="utf-8"?>
<Cost.Submission>

  <Header>
    <SenderID>MF118</SenderID>                  <!-- DOH facility licence code -->
    <ReceiverID>HAAD</ReceiverID>                <!-- Must be exactly HAAD -->
    <TransactionDate>15/05/2026 09:30</TransactionDate>  <!-- DD/MM/YYYY HH:MM -->
    <RecordCount>1</RecordCount>                 <!-- Must match Claim count -->
    <DispositionFlag>PRODUCTION</DispositionFlag> <!-- or PTE_SUBMIT -->
  </Header>

  <Claim>
    <ID>CLM-2026-00001</ID>
    <ProviderID>MF118</ProviderID>

    <Encounter>
      <FacilityID>MF118</FacilityID>
      <ID>ENC-10001</ID>
      <Type>1</Type>                             <!-- 1=Outpatient 2=ED 3=Inpatient 4=DayCase -->
      <Start>12/04/2026 10:15</Start>
      <End>12/04/2026 11:30</End>
      <ActivityClinicianID>GD83792</ActivityClinicianID>
      <PatientID>PAT-90812</PatientID>
      <Specialty>General Practitioner</Specialty>

      <Activity>
        <Procedure>
          <Code>99213</Code>                    <!-- HCPCS / CPT code -->
          <CostBucketDirect>
            <Physician>185.500</Physician>      <!-- AED to 3 decimals -->
            <OP>42.250</OP>
          </CostBucketDirect>
          <CostBucketOverheads>
            <Ward>18.000</Ward>
          </CostBucketOverheads>
        </Procedure>
      </Activity>
    </Encounter>
  </Claim>

</Cost.Submission>

Reconciliation requirements

V2 tightens reconciliation controls. All of the following must hold or the file will be flagged:

  • Record count match: RecordCount in the header must exactly equal the number of <Claim> records in the file.
  • Three decimal precision: all AED values must be expressed to exactly three decimal places: rounding to two triggers a precision anomaly flag.
  • Cost hierarchy: direct costs must be greater than or equal to overhead costs at the encounter level.
  • Encounter totals: the sum of all cost bucket values within an encounter must reconcile to the encounter total.
  • Annual reconciliation report: a signed report reconciling costs, encounter volumes and product volumes against source data must accompany each annual submission.

Common Rejection Reasons and How to Fix Them

RejectionCauseFix
Deprecated bucket tagUsing a V1 code (e.g. Supplies) not in the V2 approved listReplace with the correct V2 code: MS, Ward, or Other
Schema mismatchMissing required field, wrong tag name (case-sensitive), or incorrect nestingValidate against the annotated skeleton above; every shown tag is mandatory
Financial imbalanceDirect + overhead bucket values do not reconcile to the encounter totalRe-run cost allocation and verify bucket subtotals before export
ReceiverID errorValue is not exactly HAAD: wrong case, trailing space, or alternate valueSet <ReceiverID>HAAD</ReceiverID> with no variation
Date formatTransactionDate not in DD/MM/YYYY HH:MM; missing zero-paddingUse 05/06/2026 09:30, not 5/6/2026
CPT/encounter mismatchInpatient CPT codes submitted against encounter Type=1 (outpatient)Match CPT range to encounter type; codes 99221-99223 are inpatient-only
File size exceededFile exceeds the 5 MB DOH gateway limitSplit into multiple batches and remove redundant whitespace
Encoding errorFile not UTF-8, or contains a UTF-8 BOM at the startSave as UTF-8 without BOM: a BOM causes an XML parse failure at the gateway

Validate Against the DOH Clinical Costing Dictionary

Cyscode's DOH Clinical Costing Validator encodes every V2 dictionary rule described in this guide. Upload your XML and it checks schema structure, cost bucket codes, encounter-type consistency, CPT benchmark alignment, reconciliation balance and common field errors - then returns an itemised findings list with severity levels and the exact line to fix. Everything runs in your browser; no patient or financial data is transmitted anywhere.

Check your file against the Shafafiya dictionary now.

Free  ·  runs in browser  ·  zero data leakage

Open the Clinical Costing Validator →

For the wider regulatory context, read the Abu Dhabi Clinical Costing Road Map and the white paper Navigating the Clinical Costing Mandate in Abu Dhabi. For guidance on how costs are produced and reconciled, see DOH Clinical Costing Standards & Guidelines.