Skip to content

thed700/uzbekistan-procurement-analytics

Repository files navigation

πŸ›οΈ Uzbekistan Public Procurement Analytics

Vendor Risk Intelligence Β· Spend Optimization Β· Contract Clustering


πŸ“Œ Project Overview

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.

🎯 Business Questions Answered

# 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

πŸ“Š Dataset

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)

Key Fields

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

πŸ”¬ Methodology

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)

πŸ“ˆ Key Findings

πŸ’° Spend Concentration β€” CRITICAL

  • 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

πŸ” Vendor Transparency Gap

  • 11 contracts (11.2%) have anonymous vendor ID (X)
  • All in Suvenir category β€” medium risk for compliance

πŸ“… End-of-Year Spending Rush

  • November–December show significant activity spike
  • Classic sign of annual budget consumption pressure

πŸ€– ML Clustering Results (K=7, Silhouette-optimized)

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

πŸ’‘ Strategic Recommendations

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

πŸ–ΌοΈ Visualizations

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

πŸ› οΈ Tech Stack

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

πŸš€ How to Run

Prerequisites

pip install pandas numpy matplotlib seaborn scikit-learn openpyxl jupyter nbformat

Clone & Run

# 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.ipynb

Project Structure

uzbekistan-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

πŸ‘€ Author

Akmal Toshpulatov
Junior Data Analyst | Termiz, Uzbekistan
πŸ”— GitHub: thed700

Certifications: Kaggle Python Β· Pandas Β· Intro to SQL Β· Advanced SQL


πŸ“œ License

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.

About

Data-driven analytics and ML clustering of Uzbekistan's public procurement registry (STIR: 201122919). Features spend optimization, vendor risk intelligence, and interactive visualizations.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors