This project delivers a full data science pipeline applied to Uzbekistan's government procurement registry β specifically the direct contracts register of a public entity (STIR: 201122919) covering Q4 2025.
Government procurement is one of the most impactful yet underanalyzed data domains. This analysis transforms raw contract records into actionable intelligence for policymakers, auditors, and transparency researchers.
| # | Question | Method |
|---|---|---|
| 1 | Where does public money go? | Category-level Pareto analysis |
| 2 | Is there vendor concentration risk? | HHI index + Lorenz curve |
| 3 | Are there seasonal spending patterns? | Temporal trend analysis |
| 4 | Can contracts be segmented by risk profile? | K-Means + PCA clustering |
| 5 | What actions should procurement managers take? | Data-driven recommendations |
| Attribute | Value |
|---|---|
| Source | Uzbekistan E-Procurement Portal (xarid.uzex.uz) |
| Type | Direct Contracts Registry |
| Period | September 22 β December 24, 2025 |
| Records | 98 contracts |
| Columns | 13 original + 8 engineered features |
| Entity | Single government buyer (STIR: 201122919) |
contract_value β Contract amount in UZS
category β Procurement category (18 unique)
funding_source β Budget / Off-Budget / Reserve
vendor_id β Supplier tax ID (STIR)
delivery_days β Contractual delivery deadline
contract_date β Contract signing date
Raw Excel Data
β
βΌ
1. Data Cleaning & Normalization
βββ Language normalization (Uz/Ru β Uz)
βββ Column aliasing (PEP 8 names)
βββ Type casting & validation
β
βΌ
2. Feature Engineering (8 new features)
βββ log_value β Handles value skewness
βββ contract_month β Seasonality signal
βββ is_fast_delivery β Urgency binary flag
βββ spend_tier β Quartile-based bucket
βββ funding_eng β English funding label
β
βΌ
3. Exploratory Data Analysis
βββ Distribution & outlier analysis
βββ Category Pareto (80/20 spend)
βββ Temporal trend (monthly/quarterly)
βββ Vendor concentration (HHI index)
βββ Correlation matrix + multivariate plots
β
βΌ
4. Machine Learning β K-Means Clustering
βββ Feature standardization (StandardScaler)
βββ Optimal K via Elbow + Silhouette methods
βββ PCA dimensionality reduction (2D projection)
βββ Cluster profiling & business labeling
β
βΌ
5. Business Recommendations (5 actionable insights)
- 1 vendor (
200903001) accounts for ~89% of total spend in Waste Disposal - HHI Score > 7,000 β classified as Highly Concentrated Market
- Top 3 vendors control >95% of all spend
- 11 contracts (11.2%) have anonymous vendor ID (
X) - All in Suvenir category β medium risk for compliance
- NovemberβDecember show significant activity spike
- Classic sign of annual budget consumption pressure
| Cluster | Profile | Dominant Category |
|---|---|---|
| 0 | High-value, known vendors | Waste Disposal |
| 1 | Low-value, fast delivery | Souvenirs |
| 2 | Medium-value, budget-funded | Hotel Services |
| 3 | Off-budget, rapid procurement | Catering |
| 4 | Micro contracts, anonymous vendors | Souvenirs |
| 5 | Utility contracts, long-term | Energy/Heating |
| 6 | Travel & transport cluster | Aviation |
| Priority | Recommendation | Expected Impact |
|---|---|---|
| π΄ HIGH | Mandate competitive bidding > 5M UZS | Cost savings 10-20% |
| π‘ MED | Require STIR for all vendors | Compliance improvement |
| π’ MED | Quarterly budget smoothing | Reduce year-end rush |
| π΅ MED | Cluster-based audit targeting | Audit efficiency +40% |
| π£ LOW | Consolidate Suvenir purchases | Admin cost reduction |
| Figure | Description |
|---|---|
fig_01_distribution.png |
Contract value distribution (raw + log + tier) |
fig_02_category_spend.png |
Pareto spend analysis by category |
fig_03_funding_temporal.png |
Funding structure + monthly trends |
fig_04_vendor_concentration.png |
Vendor HHI + Lorenz curve |
fig_05_correlation.png |
Correlation matrix + multivariate scatter |
fig_06_optimal_k.png |
Elbow method + Silhouette score |
fig_07_pca_clusters.png |
PCA 2D cluster visualization |
fig_08_cluster_dashboard.png |
Cluster profile comparison dashboard |
Language : Python 3.10+
Notebook : Jupyter Notebook
Data : pandas 2.x Β· numpy 1.x
ML : scikit-learn (KMeans, PCA, StandardScaler, silhouette_score)
Viz : matplotlib Β· seaborn
File I/O : openpyxl
pip install pandas numpy matplotlib seaborn scikit-learn openpyxl jupyter nbformat# 1. Clone the repository
git clone https://github.com/thed700/uzbekistan-procurement-analytics.git
cd uzbekistan-procurement-analytics
# 2. Place the dataset
mkdir data
# Copy procurement_data.xlsx into the data/ folder
# 3. Launch notebook
jupyter notebook uzbekistan_procurement_analytics.ipynb
# OR run all cells non-interactively
jupyter nbconvert --to notebook --execute uzbekistan_procurement_analytics.ipynbuzbekistan-procurement-analytics/
βββ data/
β βββ procurement_data.xlsx β Input dataset
βββ uzbekistan_procurement_analytics.ipynb β Main notebook
βββ fig_01_distribution.png
βββ fig_02_category_spend.png
βββ fig_03_funding_temporal.png
βββ fig_04_vendor_concentration.png
βββ fig_05_correlation.png
βββ fig_06_optimal_k.png
βββ fig_07_pca_clusters.png
βββ fig_08_cluster_dashboard.png
βββ README.md
Akmal Toshpulatov
Junior Data Analyst | Termiz, Uzbekistan
π GitHub: thed700
Certifications: Kaggle Python Β· Pandas Β· Intro to SQL Β· Advanced SQL
This project is licensed under the MIT LICENSE.
Dataset is sourced from Uzbekistan's public procurement portal and is publicly available.
"Data is the new oil β but only if you refine it."
This project demonstrates that even small government datasets can yield strategic intelligence when analyzed rigorously.