Project repository

https://github.com/ninadrathod/cap-priority-list

CAP Priority List

A practical helper for Maharashtra CAP engineering admissions. Filling the option form means ranking dozens of college–branch pairs under time pressure. This project turns published CAP cutoff history into a short, ordered preference list tailored to one candidate.

You provide a CET Final Merit Status page (recommended) or an MHT-CET scorecard. The tool reads category, gender, percentile, and — when available — PCM State General Merit No. It then compares those against three years of CAP Round 1–3 closings already parsed into data/cutoffs_db.csv.

The result is a CSV of about 100 college–branch options split into aspirational, moderate, and safe buckets. Government, government-aided, and university institutes are preferred when they qualify. Use it as a starting preference list — not a guarantee of allotment. See Assumptions below for every modeling choice.

CLI · generate_recommendations.py · open-source on GitHub

Inputs

Merit .mht (preferred) or CET scorecard PDF + raw CAP cutoff PDFs

Output

output/recommendations.csv — priority-ordered choices

Who it’s for

Candidates (and families) preparing CAP preference forms for FE engineering

01→04

Pipeline

Parse DB → read candidate → filter → score & shortlist

Recommendation logic

How matching works

Per choice code (college–branch), each year×round keeps the easiest eligible historical closing. Then: would this candidate have cleared it?

Merit mode: State General Merit No vs CAP closing ranks (lower rank = better; cleared if candidate ≤ closing)
Percentile mode: scorecard fallback (cleared if candidate ≥ closing %)

primary signal = merit when .mht provided

Eligible seats

  • Category + OPEN
  • e.g. DT/VJ → GVJ* + GOPEN*
  • Gender: male G* only; female also L*
  • HU: not applied (H/O/S pooled)
filters before scoring

Difficulty

year: .50 / .30 / .20 round: 1.0 / .75 / .55 difficulty = Σ(pct × yw × rw) / Σ(yw × rw)
orders options inside a bucket

Aspirational

Stretch — near history, low clear rate

×30

Moderate

Realistic — clears a fair share of past rounds

×40

Safe

Comfortable CAP1 clearance + margin

×30

Shortlist

Govt → Aided → Univ → Private

~100 rows

Bucket rules

Merit-mode thresholds

  • Safe: CAP1 clear ≥ 67% and median gap ≥ +3,000
  • Moderate: clear ≥ 35%, or CAP1 ≥ 33% with gap ≥ −2,000
  • Aspirational: reachable ≥ 25% and gap ≥ −8,000
  • Gap = closing_merit − candidate_merit (positive = stronger candidate)

Percentile-mode thresholds

  • Safe: CAP1 clear ≥ 67% and median ≤ candidate − 3
  • Moderate: clear ≥ 35%, or CAP1 ≥ 33% with median ≤ candidate + 2
  • Aspirational: reachable ≥ 25% and median ≤ candidate + 8
  • Hopeless / ultra-easy filler options are dropped

Run

Command line

pip install -r requirements.txt
python scripts/parse_cutoffs.py
python generate_recommendations.py "candidate.mht" --streams all
python generate_recommendations.py scorecards/scorecard.pdf --streams 1,2
flags: --streams · --aspirational/--moderate/--safe · --female/--male · -o

Not a guarantee

Past closings only — pools change yearly

No HU filter

Home University not applied yet

No reputation rank

Cutoff strength + ownership bias

Merit first

.mht State Merit drives clear/bucket

Made with by your's truly