Minister of Economy and Planning inaugurates virtual workshop as part of Road to Riyadh events

GaStat_Logo
24-12-2025

H.E. the Minister of Economy and Planning and Chairman of the Board of Directors of GASTAT, Faisal F. Alibrahim, inaugurated a virtual workshop titled “Statistical Practices: Saudi statistical data… a pivotal role in supporting national development”. The workshop is organized by GASTAT as part of Road to Riyadh events in preparation for Saudi Arabia’s preparations hosting of the 6th UNWDF in November 2026.
In his opening speech, H.E. emphasized that this workshop represents an important step in strengthening the role of statistical data as a fundamental basis for national policy-making, formulating development plans, and measuring their impact. He highlighted that the integration of government efforts in developing a national statistical ecosystem that serves decision-makers, enhances transparency, and improves government performance. H.E. also stressed the importance of statistical data in monitoring Saudi Arabia’s progress toward achieving the objectives of Saudi Vision 2030 and SDGs, affirming that statistics have become a strategic enabler to support flexible decision-making that keeps pace with global economic and social changes.
During the workshop, the President of GASTAT, Fahad Aldossari, delivered a detailed presentation on GASTAT’s transformation journey over the past years. He reviewed the pre-transformation phase, during which GASTAT provided around 50 statistical products, and highlighted the post-transformation phase, which marked a major leap in the statistical product system, now exceeding 80 products. Furthermore, he discussed the development of existing products, the implementation of modern methodologies aligned with international standards, and the increased frequency, level of detail, and statistical coverage of publications.
He also emphasized that the Council of Ministers approval of the Statistical Law represented a pivotal milestone in the development of the statistical ecosystem, enhancing the governance of statistical work and organizing roles and responsibilities in line with international best practices. He highlighted GASTAT’s key roles in collecting comprehensive data and information from various sources, producing and developing official statistics, publishing them, and providing them to government entities, private establishments, individuals, and international organizations.
Furthermore, he highlighted key statistical products issued by GASTAT, including GDP, industrial production index, international trade statistics, household income and expenditure survey, housing statistics, labor market statistics, and transportation and renewable energy statistics, emphasizing the role of these products in supporting decision-makers with accurate and reliable indicators.
In addition, he highlighted GASTAT’s efforts to facilitate access to statistical data, increase compliance with statistical publication to 94% and raise the number of website users to 8.5 million in 2025. He also noted the development of the website and the launch of the Microdata Lab as an advanced electronic service designed to meet clients’ requests using the best and fastest technological means.
Moreover, he highlighted Saudi Arabia’s success in securing the hosting of the 6th UNWDF 2026 in Riyadh. He noted Saudi Arabia’s membership in the High-level Group for Partnership, Coordination and Capacity-Building for statistics (HLG-PCCG) and its co-chairing of the Data Governance Working Group. Also, he emphasized GASTAT’s efforts to strengthen community and scientific partnerships through the Saudi Statistical Forum, the Universities and Statistical Associations Forum, and the launch of Saudi Arabia’s first specialized statistics Innovation Lab.
Additionally, he emphasized the progress achieved in institutional performance, noting that the Digital Transformation Measurement Index rose to 86% in 2025. He also highlighted programs for developing future leaders and Saudi statisticians, the transition to accrual-based accounting, the achievement of the Expenditure Efficiency Index, and advancement in the assessment of performance management practices from the transitional stage to the advanced stage.
Moreover, he addressed future focus areas, which include the growth and expansion of statistics, enhancing the use of advanced technologies such as artificial intelligence, leveraging new data sources, supporting statistical innovation, raising awareness, and building statistical capacity through training programs and the provision of statistical certifications for users, students, and professionals. These efforts aim to strengthen statistical literacy and increase the utilization of national data.
It is noteworthy that this workshop is part of a series of ongoing efforts by GASTAT within Road to Riyadh events, emphasizing Saudi Arabia’s readiness to host the 6th UNWDF in 2026 and reinforcing its leading role in the development of statistical work at both regional and international levels.
 

Infographic

An error occurred while processing the template.
The following has evaluated to null or missing:
==> carouselId  [in template "11099719610328#20119#59266" at line 139, column 29]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${carouselId}  [in template "11099719610328#20119#59266" at line 139, column 27]
----
1<section class="section pt-5"> 
2	<div class="read-also container"> 
3		<#if entries?has_content> 
4 
5			<h1 class="fs-3 fw-bolder pb-3"> 
6				<@liferay.language key="read-also" /> 
7			</h1> 
8 
9			<#assign 
10				journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
11				StructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") 
12				currentUrlParts = themeDisplay.getURLCurrent()?split("/") 
13				currentUrlTitle = currentUrlParts[currentUrlParts?size - 1] 
14				filteredEntries = [] 
15			/> 
16 
17			<#list entries as entry> 
18				<#assign 
19					article = journalArticleLocalService.getLatestArticle(entry.classPK?number) 
20					structure = StructureLocalService.getStructure(article.getDDMStructure().getPrimaryKey()) 
21					structureName = structure.getName() 
22				/> 
23 
24				<#if currentUrlTitle != article.urlTitle> 
25					<#assign filteredEntries = filteredEntries + [entry] /> 
26				</#if> 
27			</#list> 
28 
29			<#if filteredEntries?has_content> 
30 
31				<#assign 
32					cardsPerSlide = 3 
33					totalItems = filteredEntries?size 
34					totalSlides = (totalItems / cardsPerSlide)?ceiling 
35					portletId = themeDisplay.getPortletDisplay().getId()?replace("_", "")?replace("INSTANCE", "") 
36					carouselId = "readAlsoCarousel_" + portletId 
37				/> 
38 
39				<div 
40					id="${carouselId}" 
41					class="carousel slide" 
42					data-bs-ride="false" 
43					data-bs-interval="false" 
44					data-bs-touch="true" 
45
46 
47					<div class="carousel-inner"> 
48 
49						<#list 0..(totalSlides - 1) as slideIndex> 
50							<#assign 
51								startIndex = slideIndex * cardsPerSlide 
52								endIndex = startIndex + cardsPerSlide - 1 
53							/> 
54 
55							<#if endIndex gt totalItems - 1> 
56								<#assign endIndex = totalItems - 1 /> 
57							</#if> 
58 
59							<div class="carousel-item <#if slideIndex == 0>active</#if>"> 
60								<div class="row g-4"> 
61 
62									<#list startIndex..endIndex as itemIndex> 
63										<#assign 
64											entry = filteredEntries[itemIndex] 
65											article = journalArticleLocalService.getLatestArticle(entry.classPK?number) 
66										/> 
67 
68										<div class="col-12 col-md-6 col-xl-4"> 
69											${articleService.getContentByClassPK(entry.classPK?number, "50306")} 
70										</div> 
71									</#list> 
72 
73								</div> 
74							</div> 
75						</#list> 
76 
77					</div> 
78 
79					<div class="carousel-indicators position-static d-flex justify-content-center align-items-center gap-2 mt-4 mb-0 mx-0"> 
80						<#list 0..(totalSlides - 1) as slideIndex> 
81							<#assign 
82								startItem = (slideIndex * cardsPerSlide) + 1 
83								endItem = startItem + cardsPerSlide - 1 
84							/> 
85 
86							<#if endItem gt totalItems> 
87								<#assign endItem = totalItems /> 
88							</#if> 
89 
90							<button 
91	type="button" 
92	data-bs-target="#${carouselId}" 
93	data-bs-slide-to="${slideIndex}" 
94	class="rounded-circle m-0 flex-shrink-0 <#if slideIndex == 0>active</#if>" 
95	style="width: 16px; height: 16px; padding: 0; opacity: 1; border: 2px solid <#if slideIndex == 0>#1b8354<#else>#d2d6db</#if>; background-color: <#if slideIndex == 0>#1b8354<#else>#ffffff</#if>;" 
96	<#if slideIndex == 0> 
97		aria-current="true" 
98	</#if> 
99	aria-label="عرض الأخبار من ${startItem} إلى ${endItem}"> 
100</button> 
101						</#list> 
102					</div> 
103 
104				</div> 
105 
106			</#if> 
107 
108		</#if> 
109	</div> 
110</section> 
111<script> 
112(function () { 
113	function updateDotsStyle(carouselId) { 
114		var carousel = document.getElementById(carouselId); 
115 
116		if (!carousel) { 
117			return; 
118
119 
120		var dots = carousel.querySelectorAll('.carousel-indicators button'); 
121 
122		dots.forEach(function (dot) { 
123			dot.style.width = '16px'; 
124			dot.style.height = '16px'; 
125			dot.style.padding = '0'; 
126			dot.style.borderRadius = '50%'; 
127			dot.style.opacity = '1'; 
128 
129			if (dot.classList.contains('active')) { 
130				dot.style.backgroundColor = '#1b8354'; 
131				dot.style.border = '2px solid #1b8354'; 
132			} else { 
133				dot.style.backgroundColor = '#ffffff'; 
134				dot.style.border = '2px solid #d2d6db'; 
135
136		}); 
137
138 
139	var carouselId = '${carouselId}'; 
140 
141	updateDotsStyle(carouselId); 
142 
143	var carousel = document.getElementById(carouselId); 
144 
145	if (carousel) { 
146		carousel.addEventListener('slid.bs.carousel', function () { 
147			updateDotsStyle(carouselId); 
148		}); 
149 
150		carousel.addEventListener('slide.bs.carousel', function () { 
151			setTimeout(function () { 
152				updateDotsStyle(carouselId); 
153			}, 50); 
154		}); 
155
156})(); 
157</script>