Data analyst portfolio

Three data problems,
worked end to end.

I'm a data analyst who works across the full pipeline — raw files and SQL at one end, a dashboard someone actually opens at the other. Python, SQL, Power BI, Tableau, and a locally-run LLM, applied to retail revenue, lending risk, and inventory data.

Noida, India · Open to relocation · Available to join immediately

Curious by nature. Analytical by training.

I graduated with a B.Tech in Computer Science in 2023 and I'm building my career in data analytics. I like connecting the technical work — cleaning data, writing queries, building models — to the actual business question it needs to answer.

I currently hold a contract role at Innodata evaluating AI-generated dashboards, charts and reports for accuracy — which has made me considerably more careful about the details in my own work.

I'm looking for a Data Analyst or BI Analyst role where I can contribute with SQL, Python, Excel, and BI reporting that people actually use.

Explore my GitHub
Open to full-time and contract roles · Immediate joiner
  • 01

    Start with the business question

    Define what matters, who needs the answer, and which metrics will help.

  • 02

    Make the numbers trustworthy

    Validate the data, document assumptions, and reconcile results across tools.

  • 03

    Make the insight usable

    Build clear dashboards and explain the decisions the analysis can support.

What I work with

Pulled straight from the tools actually used across the three projects below — nothing listed here that isn't demonstrated in a repo.

Languages & querying

Python Pandas & NumPy SQL Server (T-SQL) MySQL Snowflake SQL DAX

BI, visualization & modeling

Power BI Tableau Power Query Excel Jupyter Notebook

Data engineering

Snowflake warehousing (RAW/STAGING/ANALYTICS) SQL Server → MySQL migration Data-quality remediation

Applied methods

RFM segmentation Cohort retention analysis Local GenAI classification (Ollama / Qwen3:4B) Git & GitHub

Retail analytics · Python, Snowflake, Tableau, local GenAI

Customer Revenue & Retention Analytics

Using the public UCI Online Retail II dataset from a UK-based online retailer, I asked which customers actually drive revenue, how much cancellations cost, and whether first-time buyers come back. The project analyzes 1,033,036 cleaned transactions from December 2009 through December 2011 to answer it.

1.03M
Cleaned transactions analyzed
£19.6M
Gross merchandise sales
72.35%
Of known customers are repeat buyers
96.74%
Of identified-customer sales came from repeat customers
Tableau Revenue Overview dashboard showing gross sales, net revenue, invoice count, and monthly revenue trend
Revenue Overview — Tableau, connected to the Snowflake ANALYTICS layer
Tableau Retention Overview dashboard showing cohort retention heatmap and segment revenue contribution
Retention Overview — cohort heatmap and segment contribution

What this shows

  • Built a 3-layer Snowflake warehouse — RAW, STAGING, ANALYTICS — and reconciled row counts and revenue totals across every layer before building a single dashboard.
  • Ran RFM segmentation on 5,852 identified customers; the "Champions" segment is 24.74% of them but generates 74.04% of identified-customer net revenue.
  • Built monthly cohort retention curves — retention drops sharply after month 1, then stabilizes near 20-23% through month 12.
  • Classified 4,725 products into 12 categories using a locally-hosted LLM (Qwen3:4B via Ollama), so no transaction data left the machine and no paid API was needed.

Credit risk analytics · Power BI, Power Query, DAX

Loan Default Risk Analysis

A single blended default rate hides where the risk is. Using a public loan-default dataset, this dashboard asks which borrower segments carry the most risk and how much loan value that risk represents, breaking down 255,347 loans by credit score, income, employment, interest rate, and dependent status.

255,347
Loans in the portfolio
11.61%
Overall default rate
19.71%
Default rate, Young Adult borrowers — the highest segment
13.15%
Share of loan value in default, vs. 11.61% by loan count
Executive Overview page showing portfolio size, default performance, and annual default-rate trend
Executive Overview — portfolio size and default trend
Default Risk Drivers page analyzing default rate by credit score, income, and interest rate segments
Default Risk Drivers — with a field-parameter toggle
Financial Exposure page comparing total loan exposure with defaulted amount share by loan purpose
Financial Exposure — exposure by loan purpose, with a decomposition tree
Portfolio Trends page tracking monthly loan amount, monthly default rate, and year-over-year change
Portfolio Trends — monthly and year-over-year movement

What this shows

  • Modeled a dedicated date table, a centralized measures table, and time-intelligence DAX (YTD, YoY) rather than relying on flat aggregates.
  • Built a field-parameter so one visual pivots between co-signer, mortgage, and dependent status without duplicating pages.
  • Used a decomposition tree so a viewer can investigate defaulted exposure by any borrower characteristic themselves.
  • Separated default rate (by loan count) from defaulted amount share (by loan value) — the two disagree by 1.5 points, which changes which segments actually matter for exposure.

Inventory analytics · SQL Server, MySQL, Power BI

Inventory Demand & Supply Analysis

Before this could be a Power BI story, it was a data-trust problem: could the inventory data even be relied on? The project validates the data first, migrates the reporting pipeline from SQL Server to MySQL, then quantifies exactly where shortages are costing revenue.

79.97%
Demand fulfillment rate
$97.37K
Revenue at risk from unfulfilled demand
81.82%
Of inventory records show some shortage (81 of 99)
2
Mismatched product IDs caught, escalated, and corrected pre-report
Inventory Overview page showing total demand, available inventory, unfulfilled demand, and fulfillment rate
Inventory Overview — demand vs. availability over time
Financial Impact page showing potential demand value, fulfilled demand value, and revenue at risk
Financial Impact — potential vs. fulfilled demand value
Product Analysis page with a conditional-formatted matrix of demand, inventory, fulfillment rate, and revenue at risk by product
Product Analysis — conditional-formatted, product-level detail

What this shows

  • Caught a real referential data-quality issue — two product IDs in production data that didn't exist in the product master — and followed a documented detect → investigate → escalate → confirm → correct → validate workflow before touching the report.
  • Migrated the entire reporting pipeline from SQL Server to MySQL, reapplied every data-quality correction, and re-validated that the numbers still matched.
  • Modeled fulfillment rate, revenue at risk, and value fulfillment rate as DAX measures, not simple row counts.
  • Showed that the products with the highest unfulfilled demand aren't always the ones with the highest revenue at risk — shortage quantity and financial exposure need to be prioritized separately.

Compare the work

The same skill set applied three different ways — one on the Microsoft BI stack, one on cloud warehousing plus Tableau, and one bridging both.

Click a project name to isolate what it actually used.

Skill / technique Revenue & Retention Loan Default Risk Inventory
Python & Pandas
SQL (Snowflake / SQL Server / MySQL)
Power BI & DAX
Tableau
Cloud data warehousing (RAW/STAGING/ANALYTICS)
Database migration
Local GenAI / LLM classification
RFM & cohort retention analysis
Production data-quality remediation
Excel

At a glance

ProjectBusiness questionDatasetPrimary toolHeadline result
Revenue & Retention Who drives revenue, and who comes back? UCI Online Retail II (public) · 1,033,036 transactions, 5,852 customers Snowflake + Tableau 72.35% of identified customers are repeat buyers, driving 96.74% of identified-customer sales
Loan Default Risk Which borrower segments actually carry default risk? Public loan dataset · 255,347 loans Power BI + DAX 11.61% default rate overall, up to 19.71% in the riskiest segment
Inventory Demand & Supply Where does unmet demand become a business risk? 99 product-level inventory records SQL Server → MySQL + Power BI $97.37K in revenue at risk identified down to the SKU
Back to top