Skip to content
Back to projects

Predictive Analytics

Dr Bhatia MDS Predictor

A data-driven predictor using historical admission data to forecast MDS counselling outcomes.

Deployed — 2025Solo build — data modeling and prediction logic
Next.jsTypeScriptPrismaMongoDB

Overview

Problem

MDS aspirants going through counselling had no reliable, data-backed way to estimate their admission chances at a given rank and category — decisions were being made on guesswork and word-of-mouth.

Solution

A predictor tool that models historical counselling round data — rank, category, and college outcomes — to give aspirants a data-backed estimate of where they're likely to be placed.

Architecture

Client

Next.js form for rank/category input and results visualization.

API

Prediction endpoint querying historical outcome data via Prisma.

Data

MongoDB storing structured historical counselling round outcomes.

Analytics

Ranking/probability model built over historical rank-to-outcome data.

  • Prisma provides a typed data layer over the historical counselling dataset, making the prediction queries straightforward to reason about and extend as more rounds of data become available.
  • Predictions are computed from actual historical outcomes rather than a black-box model, so results can be explained in terms of comparable past ranks — important for a decision aspirants are trusting.

Feature Breakdown

  • Rank and category-based prediction of likely counselling outcomes
  • Historical outcome data as the basis for every prediction, not a black box
  • Clear results view for a non-technical audience under time pressure during counselling

Implementation Detail

Predicting outcomes from comparable historical ranks
async function predictOutcome(rank: number, category: Category) {
  const comparable = await prisma.counsellingRound.findMany({
    where: { category, rank: { gte: rank - 500, lte: rank + 500 } },
  });
  return summarizeOutcomes(comparable);
}

Challenges & Solutions

Predictions needed to be trustworthy and explainable to users making real admission decisions, not just statistically plausible.

Grounded predictions in comparable historical outcomes rather than an opaque model, so a result can be traced back to similar past ranks and categories.

Historical counselling data was inconsistent across sources and rounds, and needed to be normalized before it was usable.

Built a structured schema via Prisma that normalizes rank, category, and outcome fields at ingestion, so the prediction logic operates on clean, consistent data.

Results

  • Aspirants get a rank-and-category estimate grounded in real counselling-round outcomes, instead of relying on forum threads and word-of-mouth during a narrow decision window.
  • Every prediction can be traced back to the comparable historical ranks behind it, rather than presented as an unexplained number.
  • Data that was previously inconsistent across sources and rounds is now normalized into one schema, making it usable for prediction at all.

Lessons Learned

  • Resisting the pull toward a more sophisticated model was the right call here — for a decision this consequential, aspirants trusted 'here's what happened to similar ranks before' more than a score they couldn't interrogate.

Gallery

Screenshots to be added.