Stakeholder dashboard. Enter password to continue.
| Date | Income | Expense | Cash | UPI |
|---|
| Class | Students |
|---|
| Class | Adm No | Student | Father | Phone | Prev (₹) | Current (₹) | Total (₹) |
|---|
For the selected month: Month Fee = annual fee ÷ 12. Paid is allocated sequentially — April first, then May. Prior months pending = unpaid balance from earlier months in this session (April unpaid carries into May, etc.). Total Due = this month's remaining + prior months pending + previous year dues — the full amount the parent owes when you call them.
| Class | Adm No | Student | Father | Phone | Month Fee (₹) | Paid (₹) | Remaining (₹) | Status | Prior Months Pending (₹) | Prev Year Dues (₹) | Total Due (₹) |
|---|
Direction-grouped to plan transport routes. South + SE + West/SW are mostly unexplored.
| Corridor | Villages | Population | School-age kids | GJMS students | Capture % | Untapped kids |
|---|
Click any village in the table or on the map — draws a red line from school to village with straight-line distance.
| # | Village | Block | Corridor | Distance (km) | Population | School-age | GJMS | Capture % | Untapped | Notes |
|---|
| Date | Source | Name | Type | Mode | Amount | Remark |
|---|
Data-quality flags from the Simption scrape . Send this list to the office to verify against admission forms / Aadhaar.
| Name | Father | Class | Phone | DOB | Age | Issue |
|---|
Edit the template — placeholders {name} {father} {class} {amount} fill in per student. Click a row's WhatsApp button: your WhatsApp opens with the parent's number and this message ready to send.
Outstanding as of — — verify payment status in Simption before sending, the snapshot may be a few days old.
| Name | Father | Class | Phone | Outstanding | Send |
|---|
Commission rate % · Recovered = assigned arrear − current arrear, from live snapshot —. ⚠ A balance drop is not proof a caller caused it — a parent may have paid at the office on their own.
| Caller | Students | Assigned Arrears | Recovered | Recovery % | Commission |
|---|
| Name | Father | Class | Caller | Assigned ₹ | Current ₹ | Recovered ₹ | Match |
|---|
| Vehicle | Number | Status | Speed | Last Location | Last Update | Today KM | Map |
|---|
This tab renders vehicles.json. New vehicles appear here automatically once the live feed is wired up — no code change needed.
To go live: the GitHub Actions scraper needs to log into FleetTrack's tracking platform (the in.gpstrack.lite app's web portal — not the account.fleettrack.in store page) and write the vehicle list to vehicles.json. A scaffold is ready at scraper/fleettrack-scrape.js — it needs the FleetTrack tracking-platform URL + login added as the FLEETTRACK_USER / FLEETTRACK_PASS GitHub secrets.
Until then you can edit vehicles.json by hand with your real vehicle numbers and it works the same way.
One row per integration — green check = live and refreshing, grey dot = action needed (deep link provided).
| Channel / Source | Leads | Contacted | Visits | Admissions | Conv. |
|---|
Where the ads are pulling enquiries from — cross-check against the Geo / Market tab.
| Village / Town | Leads | Admissions |
|---|
Each platform's reach & engagement, side by side. YouTube connects live with a free API key.
For Meta, Instagram & Google Business, type the numbers from each platform's own dashboard, then Save.
Full auto-sync setup is documented in gjms-ads/Dashboard-Connections-Guide.md.
Reach, link clicks & results from Meta Ads Manager. This is where most leads originate.
Or enter manually from Meta Ads Manager:
Followers, reach & profile visits — runs on the same Meta ad campaign.
Make sure your Instagram business account is linked to the Facebook Page above. Then click below — the same Page Access Token unlocks IG insights.
Or enter manually from Instagram Insights:
The standalone WhatsApp Business app has no public data API — Meta intentionally doesn't expose one. What we CAN do is the school's outbound channel: wa.me click-to-chat links work without any API and don't risk a ban.
Conversation count (from Meta Ads → "messaging conversations started"):
Connects live with a free YouTube Data API key. Use your @handle (easy) or paste the Channel ID directly.
Public listing data (rating, reviews, photos, hours) loads automatically using the dashboard's existing Google Maps key — no extra setup. Performance metrics (views/calls/directions) still need manual entry: they require OAuth + verified Business ownership, which is overkill for now.
Manual (from your Google Business Profile dashboard at business.google.com):
Media spend auto-fills from the Lead Tracker's Daily Spend sheet on import; override it here if needed. Annual fee drives the Year-1 fee-value estimate.