Skip to main content
Independent hackathon prototype · All journeys and booking data are simulated · No live Railway integration
RailSaanjhDemo rail journeys
Menu
Back to impact overview

RailSaanjh / simulation evidence

Same bookings.
Far fewer PRS requests.

One opening rush. Two access models. See how controlled admission changes the number of attempts reaching the Passenger Reservation System (PRS), without changing available inventory.

20,000 unique travellers10,000 bookings in each modelSame assumed PRS capacitySimulation—not a live load test

90% aggressive · extreme stress test

New queue offers · R: 400/s   /   Active + offered slots · C: 3,000   /   Aggressive travellers: 90%

94.19%

fewer PRS request attempts

10,000 successful bookings in each model

Direct booking388,009
Queue-controlled22,532

Both bars use the direct model’s total as 100%. Counts include retryable buffer rejections.

Fewer attempts reaching PRS
365,477
PRS requests / booking · direct → queue
38.80 → 2.25
Queue-side PRS buffer rejections
0

90% aggressive · extreme stress test: 94.19% fewer PRS requests, 10,000 bookings in each model.

Same admission. Increasing retry pressure.

Retries rise. Queue-controlled PRS traffic stays flat.

Only Aggressive travellers changes below. R stays at 400/s and C at 3,000. The growing reduction comes from more direct-booking attempts—not from fewer queue-controlled bookings.

PRS requests vs aggressive travellers
Direct booking Queue-controlled

PRS request attempts

Hover to inspect. Click or tap to pin a point. Use arrow keys when the graph is focused; Escape clears the tooltip.

Linear axes: aggressive travellers from 0 to 100 percent; PRS request attempts from 0 to 400,000. At 10%: direct 87,158, queue-controlled 22,532. At 40%: direct 126,431, queue-controlled 22,532. At 70%: direct 262,557, queue-controlled 22,532. At 90%: direct 388,009, queue-controlled 22,532. Both models complete 10,000 bookings at each point. Straight lines connect recorded scenarios, not additional measurements.

Aggressive travellers (%)

Inspect a point
Direct · 90% aggressive
388,009
Queue-controlled
22,532
Fewer PRS requests
94.19%

R 400/s · C 3,000 · 10,000 bookings in each model. Lines connect the four recorded scenarios; intermediate values are not measured.

70% and 90% are adversarial stress assumptions, not measured shares of real Tatkal users. Waiting-room joins and polls still require resources; they do not disappear.

The settings behind every result

Use these values in the request lab. All rows filled 10,000 berths in both models within the 180-second experiment window.

Seed 42 · simulation model request-flow-1.1 · selected scenario highlighted
ScenarioNew offers · R /sActive + offered · CAggressive travellersDirect requestsQueue requestsQueue rejectionsReduction
Request-efficient admission1001,00010%87,15820,840076.09%
Conservative admission4003,00010%87,15822,532074.15%
Balanced admission8006,00010%87,15824,574071.81%
Higher admission1,0008,00010%87,15825,887070.30%
Retry storm · balanced admission8006,00040%126,43124,574080.56%
Excessive admission · stress test2,00016,00010%87,15849,88118,07742.77%
40% aggressive · fixed admission4003,00040%126,43122,532082.18%
70% aggressive · stress test4003,00070%262,55722,532091.42%
90% aggressive · extreme stress test (selected)4003,00090%388,00922,532094.19%

R is the maximum new turn offers per second, not completed claims. C limits offered turns awaiting a claim plus claimed turns still booking. Neither setting reserves a berth.

Shared experiment settings

Both models use these infrastructure and payment assumptions. The offer no-show and claim-window settings apply only to the queue flow.

Unique travellers
20,000
Available berths
10,000
PRS processing capacity
2,000 calls/s
Payment duration
5 s
Retry frequency multiplier
20×
Payment decline probability
3%
Queue offer no-show probability
2%
Failure injection
None · healthy services
Scenario seed
42
Simulation duration
180 s maximum
Offer claim window
60 s
Claimed booking window
120 s

What these numbers mean—and what they don’t

PRS requests are attempts at the origin boundary. They include requests rejected by the finite PRS buffer, not just successfully processed operations. They are not a measurement of CPU, database work, infrastructure cost or all system traffic.

Reduction (%) = (direct requests − queue requests) / direct requests × 100

Each synthetic booking needs two successful PRS operations: a quote and an allocation. Both modes use the same FIFO backend with a two-second request buffer. Direct clients retry rejected attempts; queue clients join and poll outside PRS, then claim a controlled turn. Offered turns never hold inventory.

The engine advances in 0.25-second steps. The configured 20× retry multiplier is limited by that resolution to at most four retry attempts per second per traveller. Identity checks, permits, payments and inventory are modelled—not real integrations.

Scope of the claim: these are deterministic seed-42 results from request-flow-1.1, not averages or confidence intervals. “Up to” refers to the largest reduction among the nine published scenarios. It is not a guarantee for other settings. The comparison is against a synthetic direct-access baseline, not a reproduction of IRCTC’s private architecture.

Results focus on request attempts per completed booking, not speed. A lower request count can involve a longer wait. Validate production throughput, fairness, latency and resilience separately with real load testing.

The lab opens with its own defaults. Copy the shared settings and your chosen scenario above to reproduce a result.

What is real and what is simulated?
Working in this prototype

Search, route-valid catalogue results, General booking, synthetic passenger verification and Tatkal party binding, deterministic protected-quota queues, refresh and reconnect recovery, admission limits, scoped permits, exact fare consent, fake-PRS allocation, mock payment outcomes, synthetic tickets, My Trips, and PNR-like retrieval.

Mocked or not connected

Real identity verification, Railway schedules and availability, Aadhaar or OTP integration, payment networks, authoritative fares, official PNRs, refunds, notifications, and every government or commercial system. Tatkal verification accepts only DEMO-PAX-* values; never enter real credentials or passenger data.