Changes for page Guidelines for SDMX Data Structure Definitions
Last modified by Artur K. on 2026/05/29 14:28
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 13 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -325,36 +325,22 @@ 325 325 326 326 **Table 7. Data structuring approaches by level of data exchange** 327 327 328 -|**Level of data exchange**|**Data structuring approa one DSD**|(% colspan="2" %)((( 329 -**ch** 330 - 331 -**master + satellite DSDs** 332 -)))|**multiple, indep. DSDs** 328 +|(% colspan="1" rowspan="2" %)**Level of data exchange**|(% colspan="4" rowspan="1" %)**Data structuring approach** 329 +|**one DSD**|(% colspan="2" %)**master + satellite DSDs**|**multiple, indep. DSDs** 333 333 |**within organization**|((( 334 -best for single-domain, single-purpose can be created on the 335 - 336 -fly from structured databases 331 +best for single-domain, single-purpose can be created on the fly from structured databases 337 337 )))|(% colspan="2" %)use if harmonization is important in covered domains or purposes or if such a set of DSDs is already available at international level|easier to do than master + satellite approach each domain/purpose can maintain DSDs independently can be created on the fly from structured databases 338 338 |**between national organizations**|(% colspan="4" %)the same applies as to the “within organization” scenario 339 -|**Level of data exchange**|(% colspan="3" %)((( 340 -**Data structuring approach** 341 - 342 -**one DSD master + satellite DSDs** 343 -)))|**multiple, indep. DSDs** 344 344 |**between int. organization and national organizations**|(% colspan="2" %)best for single domain, single purpose scenarios that are usually rather restricted with very clear specification of what needs to be exchanged|preferable over multiDSD approach in case of multi-domain and/or multi-purpose scenarios with highly correlated data flows for maintenance reasons|((( 345 -for multi-domain and/or multipurpose scenarios; only recommended if overlap of domains/purposes is minor (e.g. just w.r.t. cross-domain concepts) 346 - 347 -equivalent to multiple “one DSD” solutions, one for each domain / purpose 335 +for multi-domain and/or multipurpose scenarios; only recommended if overlap of domains/purposes is minor (e.g. just w.r.t. cross-domain concepts) equivalent to multiple “one DSD” solutions, one for each domain / purpose 348 348 ))) 349 349 |**between international organizations**|(% colspan="3" %)comparable to “national to international” scenario| 350 350 |**dissemination to public**|(% colspan="2" %)for single-domain, single-purpose cases in more complex cases this may be the preferable approach for data discovery tools (one data structure to find and access all data)|(% colspan="2" %)((( 351 351 in multi-purpose or –domain scenarios: 352 352 353 -if it is relevant for the public to see the relationship between the data structures: use master + satellites approach 354 - 355 -otherwise the multi-DSD option is preferable, although with the highest possible degree of re-use of code lists and concepts 356 - 357 -in both cases: important to include only concepts, code lists, and codes actually available / used by the data 341 +* if it is relevant for the public to see the relationship between the data structures: use master + satellites approach 342 +* otherwise the multi-DSD option is preferable, although with the highest possible degree of re-use of code lists and concepts 343 +* in both cases: important to include only concepts, code lists, and codes actually available / used by the data 358 358 ))) 359 359 360 360 In general, finding the “perfect” data structure is less important for bilateral data exchange. Independent, custom-tailored DSDs may do the job quite well, as harmonization and standardization are typically not of high importance. If the data exchange is just a part of a more comprehensive scenario (e.g. multi-purpose, multi-domain, gateway, or data-sharing scenarios), a master DSD with satellite DSDs is preferable. ... ... @@ -363,20 +363,17 @@ 363 363 364 364 **Table 8. Data structuring approaches by role in data exchange** 365 365 366 -|**Role in data exchange**|**One DSD vs. master + satellite DSDs vs. multiple, indep. DSDs** 367 -|**Data provider**|It is easier to set up a data submission process against a single DSD (= less initial costs) than against multiple DSDs. 368 -|**Data collector**|((( 352 +|(% style="width:216px" %)**Role in data exchange**|(% style="width:1399px" %)**One DSD vs. master + satellite DSDs vs. multiple, indep. DSDs** 353 +|(% style="width:216px" %)**Data provider**|(% style="width:1399px" %)It is easier to set up a data submission process against a single DSD (= less initial costs) than against multiple DSDs. 354 +|(% style="width:216px" %)**Data collector**|(% style="width:1399px" %)((( 369 369 Data validation is easier with DSDs that only cover what needs to be collected. This is achieved via constraints in the master + satellites approach or via tailor-made independent DSDs. If a single DSD is used in a multi-domain or –purpose scenario, necessary constraints can be specified in the data flow definition or data provision agreement. 370 - 371 371 Further processing of collected data is more flexible and easier if relations are transparent and code lists are shared as in the one DSD or master + satellite DSDs approaches. The “shared context” created through the master DSD increases harmonization and standardization and this way facilitates combined usage of data. 372 372 ))) 373 -|**Role in data exchange**|**One DSD vs. master + satellite DSDs vs. multiple, indep. DSDs** 374 -|**DSD maintenance**|((( 358 +|(% style="width:216px" %)**DSD maintenance**|(% style="width:1399px" %)((( 375 375 The complexity and initial costs for developing and maintaining master + satellite DSDs are higher than for independent DSDs as this involves managing constraints and managing impacts of changes in shared code lists to all DSDs. 376 - 377 377 In the multiple independent DSDs approach, development and maintenance efforts may be distributed. This can be seen as an advantage, but on the other hand requires coordination in case the DSDs are only partially independent (i.e. share some code lists). 378 378 ))) 379 -|**End user (“the public”)**|For data discovery and retrieval the user needs to know what data is actually available (instead of what might be collected/disseminated with a certain data structure). This means that the potential sparseness should be hidden from the user. A reduced DSD derived from the data structure used in the background is more useful in most cases. Whether this is done via one DSD and constraints, master + satellite DSDs, or independent DSDs does not matter that much for the user. 362 +|(% style="width:216px" %)**End user (“the public”)**|(% style="width:1399px" %)For data discovery and retrieval the user needs to know what data is actually available (instead of what might be collected/disseminated with a certain data structure). This means that the potential sparseness should be hidden from the user. A reduced DSD derived from the data structure used in the background is more useful in most cases. Whether this is done via one DSD and constraints, master + satellite DSDs, or independent DSDs does not matter that much for the user. 380 380 381 381 = 5 MINIMUM STRUCTURAL AND SEMANTIC REQUIREMENTS = 382 382 ... ... @@ -406,19 +406,19 @@ 406 406 407 407 **Table 9. Minimum requirements for DSDs~*~*** 408 408 409 -|**Question**|**Concept**|**COG**|**Code list**|**Time series Cross-section** 410 -|Where?|reference area|X|revision|mand. attribute or dimension 411 -|What?|“indicator”|-|domain|one or multiple dimensions 412 -|How?|unit of measure|X|development|mand. attribute or dimension 413 -|How?|unit multiplier|X|available|mandatory attribute 414 -|How?|decimals|X|available|mandatory attribute 415 -|How?|//adjustment//|X|development|mand. att. not relevant 416 -|When?|time period|X|format|dimension mand. att. 417 -|When?|time format|X|available|mandatory attribute 418 -|When?|time period – collection|X|development|mand. att. cond. att. 419 -|When?|data update – last update|X|time stamp|mandatory attribute 420 -|How often?|//frequency//|X|available|mand. att. or not relevant 421 -|(% colspan="2" %)How much? observation value|-|numeric|dimension measure 392 +|(% style="width:205px" %)**Question**|(% style="width:272px" %)**Concept**|(% style="width:178px" %)**COG**|(% style="width:270px" %)**Code list**|(% style="width:690px" %)**Time series Cross-section** 393 +|(% style="width:205px" %)Where?|(% style="width:272px" %)reference area|(% style="width:178px" %)X|(% style="width:270px" %)revision|(% style="width:690px" %)mand. attribute or dimension 394 +|(% style="width:205px" %)What?|(% style="width:272px" %)“indicator”|(% style="width:178px" %)-|(% style="width:270px" %)domain|(% style="width:690px" %)one or multiple dimensions 395 +|(% style="width:205px" %)How?|(% style="width:272px" %)unit of measure|(% style="width:178px" %)X|(% style="width:270px" %)development|(% style="width:690px" %)mand. attribute or dimension 396 +|(% style="width:205px" %)How?|(% style="width:272px" %)unit multiplier|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mandatory attribute 397 +|(% style="width:205px" %)How?|(% style="width:272px" %)decimals|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mandatory attribute 398 +|(% style="width:205px" %)How?|(% style="width:272px" %)//adjustment//|(% style="width:178px" %)X|(% style="width:270px" %)development|(% style="width:690px" %)mand. att. not relevant 399 +|(% style="width:205px" %)When?|(% style="width:272px" %)time period|(% style="width:178px" %)X|(% style="width:270px" %)format|(% style="width:690px" %)dimension mand. att. 400 +|(% style="width:205px" %)When?|(% style="width:272px" %)time format|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mandatory attribute 401 +|(% style="width:205px" %)When?|(% style="width:272px" %)time period – collection|(% style="width:178px" %)X|(% style="width:270px" %)development|(% style="width:690px" %)mand. att. cond. att. 402 +|(% style="width:205px" %)When?|(% style="width:272px" %)data update – last update|(% style="width:178px" %)X|(% style="width:270px" %)time stamp|(% style="width:690px" %)mandatory attribute 403 +|(% style="width:205px" %)How often?|(% style="width:272px" %)//frequency//|(% style="width:178px" %)X|(% style="width:270px" %)available|(% style="width:690px" %)mand. att. or not relevant 404 +|(% colspan="2" style="width:477px" %)How much? observation value|(% style="width:178px" %)-|(% style="width:270px" %)numeric|(% style="width:690px" %)dimension measure 422 422 423 423 ~*~*Concepts in //italics// are only relevant for time series DSDs. An “X” in the COG column means the concept is defined in the COG. Code list “development” means that the SWG will develop a code list to be recommended in the COG; “revision” means that the code list is recommended by the COG and under revision by the SWG; “format” means that a format is defined by another concept; “text”, “time stamp”, and “numeric” provide data types used for uncoded concepts. 424 424 ... ... @@ -426,25 +426,19 @@ 426 426 427 427 **Table 10. Suggested additional concepts for certain scenarios~*~*** 428 428 429 -|**Question**|**Concept**|**COG**|**Code list**|**TS CS**|**Scenario**412 +|**Question**|**Concept**|**COG**|**Code list**|**TS**|**CS**|**Scenario** 430 430 |Who?|compiling agency|X|development|((( 431 -conditional conditional 432 - 433 - (sibling) (obs. level) 434 -)))|data provider different from data compiler 414 +conditional (sibling) 415 +)))|conditional (obs. level)|data provider different from data compiler 435 435 |Who?|((( 436 -confidentiality 437 - 438 -status – observation 439 -)))|X|available|mandatory (obs. level)|except dissemination 440 -|How?|observation status|X|available|conditional (obs. level)|except orig. collection 417 +confidentiality status – observation 418 +)))|X|available|(% colspan="2" rowspan="1" %)mandatory (obs. level)|except dissemination 419 +|How?|observation status|X|available|(% colspan="2" rowspan="1" %)conditional (obs. level)|except orig. collection 441 441 |How much?|((( 442 -//observation pre-// 421 +//observation pre-break value// 422 +)))|-|numeric|cond. (obs.)|not relevant|except orig. collection 423 +|What and how?|//time series title//|X|text|cond. (TS)|not relevant|dissemination 443 443 444 -//break value// 445 -)))|-|numeric|cond. (obs.) not relevant|except orig. collection 446 -|What and how?|//time series title//|X|text|cond. (TS) not relevant|dissemination 447 - 448 448 ~** The legend of Table 9 applies to Table 10 as well. The suggested attachment level of attributes (if any) is provided in parentheses in the TS (time series) or CS (cross-section) columns. In case an attribute does not vary at that level in a certain use case, it should be attached at the highest possible level. 449 449 450 450 == 5.2 Attribute attachment levels and definition of groups == ... ... @@ -466,10 +466,8 @@ 466 466 * //ID//: a unique identifier of the message 467 467 * //Test//: a Boolean attribute that indicates whether the message is for test purposes or not 468 468 * //Prepared//: the date the message was prepared 469 -* //Sender//: the identification of the organization that is transmitting the message 446 +* //Sender//: the identification of the organization that is transmitting the message (recommended: code from the agency code list in the SDMX COG) 470 470 471 -(recommended: code from the agency code list in the SDMX COG) 472 - 473 473 From a business perspective, the inclusion of the //Name// element is highly recommended, as it can help to understand the purpose of the exchange message. Other header elements such as //Receiver// are optional. 474 474 475 475 = 6 STEP-BY-STEP GUIDE = ... ... @@ -480,13 +480,15 @@ 480 480 481 481 Figure 1 provides an overview of the overall process. As a first step, the context of the data exchange(s) that should be covered by the DSD(s) is defined in terms of purpose, domains, level of exchange, type of data, type of recipient, role of in data exchange, process pattern, and GSBPM phase (see Figure 2). Since reusing existing artefacts is one of the guiding principles, the second step identifies existing DSDs that may be reused (see Figure 3). In case relevant DSDs are available, their suitability in the present context is evaluated in step 3. Aspects to be taken into account are concept coverage, concept roles, attribute attachment levels, and code lists (see Figure 4). Step 4 is subject to the outcome of step 3. In case of a favorable assessment, the DSDs are simply reused. If the DSDs are partly suitable, modified versions can be derived. See section 2. for a summary of possible DSD modification scenarios. If the DSDs are not suitable or if no relevant DSDs are available at all, new DSDs will be defined as described in section 3. Finally, supporting artefacts such as data flow definitions and data provision agreements are defined (see Figure 5). 482 482 458 +(% class="wikigeneratedid" %) 459 +[[image:1768470533088-795.png]] 483 483 484 484 (% class="wikigeneratedid" id="HFigure1.OverviewoftheDSDdesignprocess" %) 485 485 Figure 1. Overview of the DSD design process 486 486 487 - 488 488 Figure 2 summarizes the characteristics of the data exchange context that is defined in step 1. These characteristics affect the decision on the data structuring approach that is part of the process of defining the concepts of a new DSD (step 4.3. in Figure 1; see Figure 7 in section 2.). 489 489 466 +[[image:1768470575978-226.png]] 490 490 491 491 (% class="wikigeneratedid" id="HFigure2.Characteristicsofdataexchangecontext" %) 492 492 Figure 2. Characteristics of data exchange context ... ... @@ -493,20 +493,23 @@ 493 493 494 494 Figure 3 recaps the priorities given to different types of existing DSDs when searching for candidates for reuse in step 2. Global DSDs maintained by the SDMX consortium are ranked the highest. They can be found via the Global SDMX Registry. 495 495 473 +(% class="wikigeneratedid" %) 474 +[[image:1768470596130-305.png]] 496 496 497 497 (% class="wikigeneratedid" id="HFigure3.PriorityrankingofexistingDSDsforreuse" %) 498 498 Figure 3. Priority ranking of existing DSDs for reuse 499 499 500 - 501 501 Figure 4 summarizes the aspects to be considered in the assessment of the suitability of existing DSDs in step 3. For a detailed description of the cases of partial unsuitability see section 2.1. above. 502 502 481 +(% class="wikigeneratedid" %) 482 +[[image:1768470626558-321.png]] 503 503 504 504 (% class="wikigeneratedid" id="HFigure4.AspectsofDSDsuitability" %) 505 505 Figure 4. Aspects of DSD suitability 506 506 507 - 508 508 Figure 5 lists the most relevant artefacts required in addition to a DSD, its concept scheme, and code lists. 509 509 489 +[[image:1768470646456-652.png]] 510 510 511 511 Figure 5. Supporting artefacts 512 512 ... ... @@ -514,31 +514,60 @@ 514 514 515 515 Figure 6 briefly recapitulates the actions that can be taken to overcome partial unsuitability of DSDs. As far as possible, existing artefacts should be reused in this case. This means that even if a DSD cannot be reused as a whole, concepts and code lists from that DSD can be included in the new DSD by reference. 516 516 517 - **Figure6.DSD modificationscenarios**497 +[[image:1768470678965-391.png]] 518 518 499 +Figure 6. DSD modification scenarios 500 + 519 519 == 6.3 Defining new DSDs == 520 520 521 521 In case no (suitable) DSD is available, the actual process of specifying a new DSD is started. Figure 7 depicts this process (step 4.3. in Figure 1). It encompasses the specification of concepts, code lists, and data formats. All three specification steps include the identification of already existing artefacts that could be reused or modified to satisfy the requirements at hand and the definition of new artefacts in case no suitable artefacts are detected. Several iterations of steps 1 (specification of concepts; see Figure 8) and 2 (specification of code lists; see Figure°13) may be necessary, including revisions of the decision concerning the data structuring approach. Finally all artefacts defined in the previous steps are put together into a DSD. 522 522 523 -==== Figure 7. New DSD specification process ==== 505 +(% class="wikigeneratedid" %) 506 +[[image:1768470705894-724.png]] 524 524 508 +(% class="wikigeneratedid" id="HFigure7.NewDSDspecificationprocess" %) 509 +Figure 7. New DSD specification process 510 + 525 525 Figure 8 outlines step 4.3.1, the process of concept specification. It covers the decision on the structuring approach, the identification of relevant concepts and the assessment of their suitability, the definition of new concepts, concept roles, and attribute attachment levels. 526 526 527 -==== Figure 8. Concept specification process ==== 513 +(% class="wikigeneratedid" %) 514 +[[image:1768470729899-225.png]] 528 528 516 +(% class="wikigeneratedid" id="HFigure8.Conceptspecificationprocess" %) 517 +Figure 8. Concept specification process 518 + 529 529 Both, the decision on reuse of existing concepts as well as the definition of new ones, may lead back to a revision of the data structuring approach. For example, it could turn out that a certain concept needs to be broken down further which may lead from a “few composite dimensions” to a “many pure dimensions” approach. Figure 9 provides the design options involved in the decision on a data structuring approach. The options are defined in terms of the number of DSDs and the number of concepts (especially dimensions). The reasonability and feasibility of these options depend on the context of the present data exchange(s) as defined in the first step of the overall design process and on the content of the data exchange with respect to concepts. 530 530 531 -==== Figure 9. DSD design options ==== 521 +(% class="wikigeneratedid" %) 522 +[[image:1768470752201-691.png]] 532 532 524 +(% class="wikigeneratedid" id="HFigure9.DSDdesignoptions" %) 525 +Figure 9. DSD design options 526 + 533 533 In the second step of new DSD design, relevant existing concepts are identified. Figure 10 indicates potential sources of those concepts such as the SDMX COG for cross-domain concepts, global or other DSDs as already identified earlier in the process, and domain standards such as the UN's System of National Accounts Manual 2008 for domain-specific concepts. 534 534 535 -==== Figure 10. Potential sources of concepts and definitions ==== 529 +(% class="wikigeneratedid" %) 530 +[[image:1768470775109-874.png]] 536 536 532 +(% class="wikigeneratedid" id="HFigure10.Potentialsourcesofconceptsanddefinitions" %) 533 +Figure 10. Potential sources of concepts and definitions 534 + 537 537 The definition of new concepts (step 4.3.1.4.2.) is necessary if no (suitable) concept can be reused. It entails giving each concept a name, a code, and a definition. Further details about the usage of the concepts in the DSD are specified in steps 4.3.1.5. (concept roles), 4.3.1.6. (dimension groups), and 4.3.1.7. (attribute attachment levels). Figure 11 and 12 summarize the possible concept roles and attribute attachment levels. 538 538 539 539 The second step in the process of defining a new DSD is the specification of code lists for all coded concepts. All dimensions must be coded (with time being an exception to this rule); attributes may be coded. For uncoded concepts, a data format has to be specified. Existing formats may be reused or new ones defined. An example is the time format that is specified in the SDMX COG. Figure 13 illustrates the code list specification process. If no relevant and suitable code list exists, a new one will be defined or a partially suitable one will be adapted (see Figure 16). Suitable code lists can simply be reused via reference. 540 540 539 +[[image:1768470796725-270.png]] 541 541 541 +(% class="wikigeneratedid" %) 542 +Figure 11. Possible concept roles 543 + 544 +(% class="wikigeneratedid" %) 545 +[[image:1768470829131-599.png]] 546 + 547 +(% class="wikigeneratedid" %) 548 +Figure 12. Possible attribute attachment levels 549 + 550 + 542 542 (% class="wikigeneratedid" id="HFigure13.Codelistspecificationprocess" %) 543 543 Figure 13. Code list specification process 544 544
- 1768470533088-795.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +48.6 KB - Content
- 1768470575978-226.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +95.8 KB - Content
- 1768470596130-305.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +44.4 KB - Content
- 1768470611326-907.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +51.5 KB - Content
- 1768470626558-321.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +51.5 KB - Content
- 1768470646456-652.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +32.7 KB - Content
- 1768470678965-391.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +117.9 KB - Content
- 1768470705894-724.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +23.9 KB - Content
- 1768470729899-225.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +66.5 KB - Content
- 1768470752201-691.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +38.0 KB - Content
- 1768470775109-874.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +36.5 KB - Content
- 1768470796725-270.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +30.7 KB - Content
- 1768470829131-599.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +30.8 KB - Content