| CSL | Name | Grade | DoR |
|---|
| Sl. | CSL | Name | Grade | DoB | DoR | Ministry | Cat |
|---|
| # | Type | Grade Vacated | Officer Name | CSL | Promoted To | Effective Date | Ministry | Notes |
|---|
How the Promotion Predictor Works
This tool models the CSS promotion queue using the seniority list (US Main List) updated as of 01 Jan 2026. It dynamically calculates vacancies from 4 sources and predicts promotion dates based on your queue position.
📅 Date of Retirement (DoR) Rule
- Retirement age = 60 years
- Born on 1st of the month → retires on last day of the previous month
Example: DoB 01.06.1967 → DoR 31.05.2027 - Born on any other date → retires on last day of the birth month
Example: DoB 02.06.1967 → DoR 30.06.2027
🔄 4 Types of Vacancies
- 🔼 Promotion to Higher Grade — a DS→Director promotion frees a DS seat → 1 US gets promoted to DS
- 🎓 Retirement — auto-calculated from DoB; creates a vacancy in that officer's grade
- ✈️ Deputation — officer goes outside CSS; seat treated as vacant for promotion
- 💀 Death / VRS / Other — premature vacancy added manually
📈 Cascade Effect
Every JS/Director retirement creates a chain: JS retires → Dir gets promoted to JS → DS gets promoted to Dir → US gets promoted to DS. So higher-level retirements give 3× the benefit to US officers.
🎯 Prediction Logic
The tool counts how many officers in your grade have a lower (earlier) seniority number than you, then walks through the retirement calendar to find when enough vacancies accumulate to cover all those ahead of you — that estimated date is your likely promotion window.
⚠️ Limitations
- DPC meets are periodic — actual promotion dates depend on DPC schedule
- Vigilance clearance, court stays, or ACR objections can defer individual promotions
- Sanctioned vs actual strength differences affect the real vacancy count
- This is an indicative planning tool — not an official Government record
📊 Google Sheets Integration Architecture
Recommended stack: This HTML file as frontend + Google Sheets as live data backend (no server needed).
Setup steps:
- Upload the Excel to Google Sheets. Share as "Anyone with link can view".
- Enable Google Sheets API and get a free API key from Google Cloud Console.
- Replace the embedded
CSS_DATAin this file with afetch()call:
https://sheets.googleapis.com/v4/spreadsheets/{SHEET_ID}/values/US%20Main%20List?key={API_KEY} - For vacancy entries: use a linked Google Form → responses auto-go to a "Vacancies" sheet → HTML reads that sheet too.
- For write access: deploy a Google Apps Script Web App as a simple POST endpoint.
HTML (this file, on GitHub Pages / any static host)
↕ fetch() calls
Google Sheets API (read-only, public API key)
├── "US Main List" ← seniority + grade data
├── "Vacancies" ← Google Form responses (deputations, deaths, promos)
└── (optional) Apps Script Web App ← for writes/edits