Extract South African Census Data
Budget: $30 – $250 USD
### **Project Title:** South Africa Census Data Extraction & Formatting (2011 Household Income by Ward Level)
### **Project Description:**
I am seeking a data engineer or web scraper to extract and clean a specific public dataset from Statistics South Africa (Stats SA) or the Wazimap portal.
The goal is to generate a clean, unaggregated cross-tabulation table of **Annual Household Income at the Ward level** for all ~4,468 geographical wards in South Africa, matching the 2020 Municipal Demarcation Board (MDB) structure.
#### **Source Data Access Points (Where you can find this):**
You can successfully extract this data via:
1. The **Wazimap API / Backend Database** (wazimap.co.za) using the 2011 Census tables for "Annual Household Income" by Ward.
2. The official **Stats SA SuperWEB2 Interactive Portal** by cross-tabulating Geography (Wards) as Rows against Economics (Annual Household Income Brackets) as Columns.
#### **Required Deliverables:**
A single, flat **CSV file** structured exactly as follows:
* **Column 1:** Ward_Code (Must be formatted as the standard 8-digit numeric string identifier used by the MDB, e.g., 19100001).
* **Columns 2 to 13:** The exact household counts for each of the 12 official Stats SA income brackets:
* No income
* R 1 - R 4 800
* R 4 801 - R 9 600
* R 9 601 - R 19 600
* R 19 601 - R 38 200
* R 38 201 - R 76 400
* R 76 401 - R 153 800
* R 153 801 - R 307 600
* R 307 601 - R 614 400
* R 614 001 - R 1 228 800
* R 1 228 801 - R 2 457 600
* R 2 457 601 or more
#### **Data Validation Requirement:**
* The total row count must match the total number of valid South African wards (approx. 4,460 to 4,468 entries).
* Missing data, null values, or unmapped ward boundaries must be clearly flagged as NaN rather than left blank or filled with zeroes.
#### **Skills Required:**
* Data Extraction / ETL
* Web Scraping (Python / BeautifulSoup / Requests)
* Excel / CSV Formatting
* Experience with South African geographic data (Stats SA / MDB shapefiles) is a major advantage.
Please state your estimated turnaround time and your approach to handling the extraction when bidding.
### **Project Description:**
I am seeking a data engineer or web scraper to extract and clean a specific public dataset from Statistics South Africa (Stats SA) or the Wazimap portal.
The goal is to generate a clean, unaggregated cross-tabulation table of **Annual Household Income at the Ward level** for all ~4,468 geographical wards in South Africa, matching the 2020 Municipal Demarcation Board (MDB) structure.
#### **Source Data Access Points (Where you can find this):**
You can successfully extract this data via:
1. The **Wazimap API / Backend Database** (wazimap.co.za) using the 2011 Census tables for "Annual Household Income" by Ward.
2. The official **Stats SA SuperWEB2 Interactive Portal** by cross-tabulating Geography (Wards) as Rows against Economics (Annual Household Income Brackets) as Columns.
#### **Required Deliverables:**
A single, flat **CSV file** structured exactly as follows:
* **Column 1:** Ward_Code (Must be formatted as the standard 8-digit numeric string identifier used by the MDB, e.g., 19100001).
* **Columns 2 to 13:** The exact household counts for each of the 12 official Stats SA income brackets:
* No income
* R 1 - R 4 800
* R 4 801 - R 9 600
* R 9 601 - R 19 600
* R 19 601 - R 38 200
* R 38 201 - R 76 400
* R 76 401 - R 153 800
* R 153 801 - R 307 600
* R 307 601 - R 614 400
* R 614 001 - R 1 228 800
* R 1 228 801 - R 2 457 600
* R 2 457 601 or more
#### **Data Validation Requirement:**
* The total row count must match the total number of valid South African wards (approx. 4,460 to 4,468 entries).
* Missing data, null values, or unmapped ward boundaries must be clearly flagged as NaN rather than left blank or filled with zeroes.
#### **Skills Required:**
* Data Extraction / ETL
* Web Scraping (Python / BeautifulSoup / Requests)
* Excel / CSV Formatting
* Experience with South African geographic data (Stats SA / MDB shapefiles) is a major advantage.
Please state your estimated turnaround time and your approach to handling the extraction when bidding.