April 2026 — Patient Flow Analysis

Where patients are getting stuck, where the funnel is leaking, and what the data actually means once CRM hygiene is accounted for.

Cohort: 3,402 leads received between 1 Apr 2026 and 30 Apr 2026 (by leadEntryDate). Snapshot taken 7 May 2026.
April leads received
3,402
100% baseline
Marked LOST
2,195
64.5% of all leads
Marked COMPLETED
64
1.9% conversion
Still open (open + active)
1,143
33.6% — most untouched

1. The headline finding

97.1% of April leads never moved past NEW_LEAD in the CRM. Of the 1,143 leads still open, 1,092 are sitting in NEW_LEAD, and not a single one of those has any entry in CaseStageHistory. They were never touched — never qualified, never lost, just sitting. Median age: 20.9 days. 929 have been there >14 days.
Only 99 leads ever got KYP'd. That is the entire qualified funnel for April. Everything downstream — hospital suggestions, pre-auth, surgery — happens within those 99.
The "71% drop after pre-auth approval" is mostly a CRM data-hygiene problem, not a real leak. Of 32 patients with PREAUTH_COMPLETE who never had an admission stage logged, 22 are already marked COMPLETED at the pipeline level — they had surgery, got paid out, but the case stage was never advanced. Real post-approval drop-off is closer to ~11%, not 71%.

2. The April funnel

Counts of leads that ever reached each case stage (via CaseStageHistory.toStage). Drop column = % retention vs the previous step.

Baseline≥80% retention50–80%<50% retention
Total April leads
3,402
100.00%
KYP done
99
2.91%
−97.09%
Hospitals suggested
98
2.88%
−1.01% (vs KYP)
Pre-auth raised
51
1.50%
−47.96% (vs hosp suggested)
Pre-auth complete
45
1.32%
−11.76% (vs PA raised)
Admitted (CRM-recorded)
13
0.38%
−71.11% (vs PA complete)
Discharged
13
0.38%
0% (vs admitted)

"Admitted" and "Discharged" are CRM-recorded values. The actual admission rate is materially higher — see Section 4.

3. What we actually care about — life after KYP

99 leads got KYP'd. Here is where each ended up, and the post-KYP retention.

KYPs raised
99
Reached hospitals suggested
98
99% of KYPs
Reached pre-auth raised
51
52% of KYPs — biggest post-KYP leak
Pre-auth approved
45
88% of PA raised
Surgery actually completed
~35
22 marked COMPLETED + 13 admitted-stage entries (overlap likely)
Lost after pre-auth approved
5
11% real drop-off

The post-KYP funnel, stage by stage

Stage reached Patients % of KYP'd (99) Drop from previous step Verdict
KYP done99100.0%baseline
Hospitals suggested9899.0%−1.0%healthy
Pre-auth raised5151.5%−48.0%major leak
Pre-auth complete4545.5%−11.8%healthy
Admitted (CRM)1313.1%−71.1%CRM hygiene, not real
Admitted (real, est.)~35~35.4%~−22%estimated from completions
Discharged (CRM)1313.1%0%stage not updated post-surgery
The single biggest fixable leak: hospitals suggested → pre-auth raised. 47 of 98 patients who received hospital suggestions never had a pre-auth filed for them. Either the patient didn't like the options, the documents never came in, or the BD/Insurance handoff broke. That's nearly half the qualified pipeline lost at one step.

Where each post-KYP patient ended up — by current case stage

Current case stage Pipeline status Patients What this means
HOSPITALS_SUGGESTEDSALES (open)47Got hospital options, no pre-auth raised yet — actively stuck
PREAUTH_RAISEDSALES (open)6Pre-auth filed, awaiting TPA decision
PREAUTH_COMPLETECOMPLETED22Surgery happened — case stage was never updated past PA approval
PREAUTH_COMPLETESALES (open)5PA approved, awaiting surgery / scheduling
PREAUTH_COMPLETELOST5Real drop-off after approval — patients who had insurance approval and walked away
INITIATED / ADMITTED4Currently in surgery / hospital
DISCHARGED / IPD_DONE9Surgery completed, recorded in CRM
CASH_* track~11Cash flow patients spread across CASH_IPD_* stages

Counts cross-referenced from the open-patients query (1,143 still-open snapshot) and the 32-patient post-PA-complete list. Some overlap is possible where stage was advanced but pipeline status not updated.

4. The 32 patients stuck at PREAUTH_COMPLETE

Of 45 leads with approved pre-auths, 32 never had a CRM stage advance to INITIATED/ADMITTED. Breakdown of what's actually going on:

Already COMPLETED at pipeline level
22
surgery happened, stage just not updated
Still SALES (open / scheduled)
5
surgery pending or in queue
LOST after approval
5
real drop-off — patients walked away with approved insurance

The 5 LOST after approval — recoverable revenue?

Lead RefPatientTreatmentBDStatus
240074Dhananjay D GaikwadCircumcisionDivyanshu SharmaLOST
241594Vikash KumarRhinoplastyMani PrakashLOST
241765Umesh VermaCircumcisionLalit KumarLOST
237713Ravi BhartiyaCircumcisionDivyanshu SharmaLOST
239591Vaibhav KarpeLipomaASHWANILOST

Pulling lostReason for these 5 would help identify whether the loss was patient-side (cold feet, found alternative) or process-side (we dropped follow-up). See Appendix A.

The 5 still-SALES with approved pre-auth — needs follow-up

Lead RefPatientTreatmentBD
239520veer vikramCircumcisionArsh Saifi
239974Vijay TakawaneCircumcisionAkshat Bajpai
241749KishoreCircumcisionMAYANK
240652Mayur ChhedaCircumcisionLalit Kumar
241329SagarLipomaSumit Pal

The 22 already-COMPLETED with stuck stage — CRM hygiene

Lead RefPatientTreatmentBDSurgery date
237691KiranGynecomastiaNeha Raj2026-04-10
237498Priyanka MeherLipomaPRASHANT SINGH2026-04-11
237960Girish LaddhaCircumcisionLalit Kumar2026-04-13
238860panchshila lokhandeRhinoplastyPRASHANT SINGH2026-04-16
238953Vikas Kishan GroverCircumcisionArsh Saifi2026-04-18
241191Santosh Prakash KariCircumcisionAmir Saifi2026-04-23
239179prakash kadganchikarCircumcisionArsh Saifi2026-04-25
239133Shekhar RawalLipomaRajat Srivastav
240028Shiv MalviyaTummy TuckAyan Siddhiqui
241534Vinayak Ambadas GudurGynecomastiaAyan Siddhiqui
239802AkshayLipomaRajat Srivastav
242277Arun AnapLipomaAdarsh Upadhyay
238999Nitin ShindeLipomaAlakh Narayan Tiwari
239840Girish SuvarnaLipomaRajat Srivastav
237504ROSHAN GAWDELipomaRajat Srivastav
240296Gautam SLipomaSumit Pal
238376BharatCircumcisionAyan Siddhiqui
238319Nitin GhadiLipomaSumit Pal
237348Suraj Chame (Mohit Refferal)Chest wall lumpRajat Srivastav
237701vijayGynecomastiaSumit Pal
241505Nilesh JadhavLipomaMani Prakash
237592PriyamGynecomastiaSumit Pal

These 22 patients all have pipelineStage = COMPLETED but their caseStage is still PREAUTH_COMPLETE. Backfilling the missing stage transitions would correct the funnel.

5. BD performance

Per-BD breakdown of April leads: how many were assigned, how many were touched in the CRM at all, how many got KYP'd, and how many got admitted.

Caveat on inactive BDs. The "0% touched" group at the bottom contains several BD accounts that are inactive (former employees, dormant accounts) but still appearing in lead assignment. The real concern is the active BDs in this list — and the high-volume BDs whose touch rate is near zero.

High-volume BDs — these are where the real bottleneck lives

BD Leads received Touched % Touched KYP done Admitted Verdict
Khushi Singh27041.5%30very low engagement on huge volume
Divyanshu Sharma23893.8%94low touch but admission rate good
Pankaj Pal22820.9%00zero qualified — flag for review
NAMAN KATIYAR21420.9%20huge volume, near-zero touch
Lalit Kumar17952.8%50below average
Arsh Saifi17374.0%71below average
Akash Pandey16731.8%30low engagement
Mani Prakash15853.2%50below average
MAYANK15253.3%50below average
ASHWANI14796.1%90decent engagement, no admissions
Rajat Srivastav146106.8%101decent engagement
Kaushal Kumar Pandey14464.2%52decent
Adarsh Upadhyay12410.8%10huge volume, basically nothing done
Sumit Pal11776.0%70decent engagement
PRASHANT SINGH10832.8%30below average

Top performers by engagement %

BD Leads Touched % Touched KYP done Admitted Lead → admission rate
Ayan Siddhiqui14642.9%600%
Harsh Kumar32928.1%8412.5%
Neha Raj1119.1%100%
Alakh Narayan Tiwari5048.0%400%
Rajat Srivastav146106.8%1010.7%
ASHWANI14796.1%900%
Sumit Pal11776.0%700%
Ujjwal Bhardwaj1915.3%100%
Kaushal Kumar Pandey14464.2%521.4%
Amir Saifi4924.1%200%

Harsh Kumar is running ~30x the company average lead→admission rate (12.5% vs 0.4%). Worth understanding what he's doing differently and feeding more leads to him.

Zero-touch BDs (likely inactive accounts — verify before action)

BD accountLeads receivedNote
vishal Kumar98Verify if active employee
Neelu Singh90Verify if active employee
Anishika Singh73Verify if active employee
Ankit Yadav55Verify if active employee
Ishant sharma46Verify if active employee
Abhishek Kashyap41Verify if active employee
BD-61141Generic ID — likely inactive / placeholder account
Ahbab20Verify if active employee
Amit Shukla18Verify if active employee
Avnish Thakur8Verify if active employee

490 leads were assigned to BDs who did not record a single CRM action all month. If any of these accounts are inactive, those leads need to be reassigned or the routing logic fixed to skip them. Either way, this many leads vanishing into dormant accounts is a routing-layer bug, not a BD-performance issue.

6. The two priorities

Priority 1 — Fix the lead routing so it doesn't dump into inactive BD accounts. 490 leads (14% of all April leads) went to BDs who never touched the CRM. Disable inactive BD accounts from the assignment pool, or filter User.status = 'ACTIVE' wherever leads are auto-assigned. This is a code/config fix, not a behavior fix.
Priority 2 — Mandate stage updates through to discharge. The PREAUTH_COMPLETE stage is treated as the end of the journey by the team, but the schema has six stages after it (INITIATED, ADMITTED, DISCHARGED, IPD_DONE, PL_PENDING, OUTSTANDING). Without these, every funnel report past pre-auth will understate reality by 60–80%. Either enforce stage advancement at the UI layer, or auto-advance to DISCHARGED when pipelineStage moves to COMPLETED.
Priority 3 — Investigate the hospitals-suggested → pre-auth-raised drop. This is the largest fixable funnel leak with active patients in it (47 leads). Sample 10 of these patients, find out from the BD what happened, and categorize: docs missing? patient went silent? hospital options rejected? This will tell you whether the fix is process (faster doc collection), product (better hospital matching), or training.

Appendix A — Drill-down queries

Why did the 5 LOST-after-approval patients walk away?

SELECT "leadRef", "patientName", "treatment", "lostReason", "lostAt"
FROM "Lead"
WHERE id IN (
  SELECT id FROM "Lead"
  WHERE "leadEntryDate" >= '2026-04-01' AND "leadEntryDate" < '2026-05-01'
    AND "pipelineStage" = 'LOST'
    AND "caseStage" = 'PREAUTH_COMPLETE'
);

The 47 patients stuck at hospitals-suggested with no pre-auth (Priority 3)

WITH ever AS (SELECT DISTINCT "leadId", "toStage" FROM "CaseStageHistory")
SELECT l."leadRef", l."patientName", l."treatment", l."hospitalName",
       u.name AS bd, l."followUpDate",
       EXTRACT(DAY FROM NOW() - h."changedAt")::int AS days_at_hosp_suggested
FROM "Lead" l
JOIN "User" u ON u.id = l."bdId"
JOIN "CaseStageHistory" h ON h."leadId" = l.id AND h."toStage" = 'HOSPITALS_SUGGESTED'
WHERE l."leadEntryDate" >= '2026-04-01' AND l."leadEntryDate" < '2026-05-01'
  AND l."pipelineStage" NOT IN ('COMPLETED', 'LOST')
  AND l."caseStage" = 'HOSPITALS_SUGGESTED'
  AND NOT EXISTS (SELECT 1 FROM ever WHERE "leadId" = l.id AND "toStage" = 'PREAUTH_RAISED')
ORDER BY days_at_hosp_suggested DESC;

BD activity status — confirm which zero-touch BDs are actually inactive

SELECT u.name, u.email, u.role, u."isActive", u."employeeStatus",
       COUNT(l.id) AS april_leads
FROM "User" u
LEFT JOIN "Lead" l ON l."bdId" = u.id
  AND l."leadEntryDate" >= '2026-04-01' AND l."leadEntryDate" < '2026-05-01'
WHERE u.id IN (
  SELECT DISTINCT "bdId" FROM "Lead"
  WHERE "leadEntryDate" >= '2026-04-01' AND "leadEntryDate" < '2026-05-01'
)
GROUP BY u.id, u.name, u.email, u.role, u."isActive", u."employeeStatus"
ORDER BY april_leads DESC;

Adjust column names to match the actual User model — isActive/employeeStatus are best guesses.

Daily LOST-marking pattern — bulk dumping or genuine triage?

SELECT DATE_TRUNC('day', "lostAt")::date AS lost_day,
       COUNT(*) AS marked_lost,
       COUNT(DISTINCT "bdId") AS distinct_bds
FROM "Lead"
WHERE "leadEntryDate" >= '2026-04-01' AND "leadEntryDate" < '2026-05-01'
  AND "pipelineStage" = 'LOST' AND "lostAt" IS NOT NULL
GROUP BY 1 ORDER BY 1;

Backfill query — fix the 22 stuck-stage COMPLETED patients

-- Sanity check first; do NOT run blindly
SELECT id, "leadRef", "patientName", "pipelineStage", "caseStage"
FROM "Lead"
WHERE "leadEntryDate" >= '2026-04-01' AND "leadEntryDate" < '2026-05-01'
  AND "pipelineStage" = 'COMPLETED'
  AND "caseStage" IN ('PREAUTH_COMPLETE', 'HOSPITALS_SUGGESTED', 'PREAUTH_RAISED');

-- Then, after review, advance to DISCHARGED:
-- UPDATE "Lead" SET "caseStage" = 'DISCHARGED'
-- WHERE id IN (...);
-- And insert backfilled CaseStageHistory rows for audit trail.

Appendix B — Method notes