Data Analyst — Field Ledger Vol. 01

I read the data
so the decision
doesn't have to guess.

Marvis Obanor. Nine logged projects spanning Python, SQL, machine learning and Power BI — each one a record of a question asked of a dataset, and what it answered back.

09
Logged Projects
86.6%
Best Model Accuracy
04
Dashboards Built
2014–17
Data Span Covered

I started this practice with no formal record — just raw data and a question to answer. Every project here is a logged entry: a hypothesis, a method, a finding.

The range is deliberate. Banking churn, HR attrition, retail performance, customer segmentation — different domains, same discipline: clean the data, ask the right question, let the numbers argue their case.

I work across the full stack of analysis — Python for exploration and modelling, SQL for structured querying, Power BI for the story a stakeholder actually needs to see.

SpecializationApplied Analytics
Primary ToolsPython, SQL, Power BI
Strongest ModelRandom Forest
Industries LoggedBanking, HR, Retail
StatusOpen to Roles

What's in the kit

The tools logged into every entry in this ledger, organized by how they get used.

Languages
PythonSQLDAX
Python Stack
PandasNumPyMatplotlibSeabornScikit-learn
Modeling
Random ForestLogistic RegressionLinear RegressionK-Means
BI & Query
Power BISQLiteDBeaverWindow Functions
Practice
EDAData CleaningFeature EngineeringVersion Control

Nine entries, logged in order

Drag your eye along — the ledger scrolls itself. Hover to pause on any entry.

Bank Customer Churn Analysis
Entry No. 01
Python + Power BI
Customers
10,000
Churn Rate
20.4%
Model Acc.
86.6%
AUC Score
0.858
Churn Rate by Country
Germany
32%
Spain
17%
France
16%
Top Risk Factors (RF)
Age
.22
Balance
.16
Salary
.12

End-to-end capstone joining Python EDA with a Random Forest churn model and a four-page Power BI dashboard across 10,000 bank customers. Age and account balance surfaced as the strongest churn predictors — the model correctly calls 9 in 10 customers.

HR Analytics Dashboard
Entry No. 02
Power BI
Employees
1,470
Attrition
16.12%
Avg Income
$6,503
Left Total
237
Attrition by Department
Sales
21%
HR
19%
R&D
14%
Attrition by Age Group
Under 25
39%
26-35
20%
36-45
11%

Four-page interactive dashboard analyzing IBM HR data across 1,470 employees. Sales Representatives logged the highest attrition at 39.8%, with employees under 25 leaving at nearly double the company average.

Superstore Sales Analysis
Entry No. 03
SQL — SQLite
Total Sales
$142.4K
Margin
11.87%
Orders
120
Tables
04
Sales by Category
Tech
$109K
Furniture
$31K
Office
$3K
Sales by Region
West
$51K
South
$47K
East
$17K

Four-table star schema queried with JOINs, window functions and aggregate business logic. Found Furniture sales volume masking a net loss caused by 20%+ discounting — the kind of finding that only shows up when you query, not just visualize.

House Price Prediction
Entry No. 04
Python — Scikit-learn
R² Score
0.797
Model
Linear Reg.
Dataset
Ames, IA
Features
12
Top Correlated Features
OverallQual
.79
GrLivArea
.71
GarageCars
.64
Model Performance
R²
.797
RMSE
low

Linear Regression model predicting residential sale prices on the Ames Housing dataset. Overall quality rating and above-ground living area carried the strongest correlation to final sale price.

Customer Segmentation
Entry No. 05
Python — K-Means
Clusters
05
Method
Elbow
Features
Income / Score
Algorithm
K-Means
Cluster Distribution
Cluster 1
39
Cluster 2
46
Cluster 3
32
Segment Profile
High Spend
21%
Budget
38%

K-Means clustering identifying 5 distinct mall customer segments by annual income and spending score, with optimal cluster count determined through the Elbow Method rather than guessed.

HR Employee Attrition Analysis
Entry No. 06
Python — EDA
Records
1,470
Attrition
16.1%
Variables
35
Source
IBM HR
Income vs Attrition
Stayed
$6.8K
Left
$5.0K
Overtime Correlation
Overtime
31%
Standard
10%

Exploratory pass on IBM HR data preceding the Power BI build — identifying that overtime status correlates more strongly with attrition than department or job role alone.

Bank Customer Churn Analysis
Entry No. 01
Python + Power BI
Customers
10,000
Churn Rate
20.4%
Model Acc.
86.6%
AUC Score
0.858
Churn Rate by Country
Germany
32%
Spain
17%
France
16%
Top Risk Factors (RF)
Age
.22
Balance
.16
Salary
.12

End-to-end capstone joining Python EDA with a Random Forest churn model and a four-page Power BI dashboard across 10,000 bank customers. Age and account balance surfaced as the strongest churn predictors — the model correctly calls 9 in 10 customers.

HR Analytics Dashboard
Entry No. 02
Power BI
Employees
1,470
Attrition
16.12%
Avg Income
$6,503
Left Total
237
Attrition by Department
Sales
21%
HR
19%
R&D
14%
Attrition by Age Group
Under 25
39%
26-35
20%
36-45
11%

Four-page interactive dashboard analyzing IBM HR data across 1,470 employees. Sales Representatives logged the highest attrition at 39.8%, with employees under 25 leaving at nearly double the company average.

Superstore Sales Analysis
Entry No. 03
SQL — SQLite
Total Sales
$142.4K
Margin
11.87%
Orders
120
Tables
04
Sales by Category
Tech
$109K
Furniture
$31K
Office
$3K
Sales by Region
West
$51K
South
$47K
East
$17K

Four-table star schema queried with JOINs, window functions and aggregate business logic. Found Furniture sales volume masking a net loss caused by 20%+ discounting — the kind of finding that only shows up when you query, not just visualize.

— hover any entry to pause the ledger —

Open to the next entry

Actively looking for data analyst roles where the work is reading real signal out of real noise. Reach out — I reply quickly.