Marks in. Results out. कोई Excel formula नहीं। Totals, percentages, ranks, grades — class-wise, एक click में।
जब हर subject LOCKED हो जाए, Calculate Results एक बार click करें। Inkwelly components के across marks aggregate करता है, grace और best-of-N apply करता है, percentages compute करता है, configured scale से grade bands picks करता है, class में students को rank करता है और पूरी sheet Excel में export करता है — principal की morning meeting के लिए।

आज ज़्यादातर भारतीय schools exam results कैसे calculate करते हैं
Class 10 के pre-board के बाद का Saturday है — Pune के एक CBSE स्कूल में। Exam coordinator के पास 11 sections और 12 subjects के across 412 बच्चे हैं, marks 132 separate Excel sheets में shared drive में dropped। Sunday का plan paper पर straightforward है — sheets master spreadsheet में import, हर बच्चे के marks sum, percentages compute, grades derive, rank sort, और Monday morning के staff meeting के लिए class-wise topper list। Reality है दो interns, एक accountant, ग्यारह घंटे और तीन percentage typos जिन्हें parent principal से पहले spot करेगा।
खर्चा सिर्फ़ Sunday का नहीं है। Master spreadsheet में encoded aggregation logic brittle है — absent बच्चे को zero mark करने वाली teacher percentage skew करती है। Best-of-3 best-of-2 component वाला Sanskrit तीन बार incorrectly summed होता है। Grace marks सिर्फ़ principal की notebook में tracked हैं और कभी printed marksheet तक नहीं पहुँचते। दो students की percentage exact 89.4 पर tie होती है और rank-2 vs rank-3 decision accountant की discretion से होता है, tie-break rule से नहीं। Class 11 commerce stream का aggregate कभी 'optional' subjects exclude करता है, कभी include। Trustees Sunday 6 PM तक school topper list माँगते हैं, और coordinator एक list deliver करती हैं जिसमें एक mistake है जो वो तीन साल बाद alumni magazine reprint में देखेंगी।
यह खर्चा है Excel में exam results compute करने का। Inkwelly का Examinations module पूरी process को एक button click में collapse करता है — rules grace, best-of-N, scaling, optional, tie-break — subject configuration से baked, ताकि coordinator कभी re-derive न करे और कभी Excel formula से ना जूझे।

Inkwelly में exam results computation कैसे काम करता है
Coordinator जब Exam → Results screen खोलती हैं एक ऐसे exam के लिए जिसमें हर subject LOCKED status पर पहुँच गया है, ऊपर Calculate Results button दिखता है। Button तब तक disabled रहता है जब तक हर class का हर subject LOCKED नहीं हो जाता और हर component verified नहीं होता। State — 'eligible to calculate' या 'X subjects pending' — explicitly दिखाया जाता है, और 'Take me to the pending subjects' link Subjects screen पर सही filter के साथ route करता है।
Click के बाद Inkwelly का results engine server-side run होता है। Class assignment के through linked हर student के लिए, engine हर component-level mark pull करता है, per-subject scalingFactor apply करता है, configured isBestOfEligible पर best-of-N picks करता है, principal-authorised gracePoints add करता है — marks audit log से, totals subject-wise sum करता है, overall total compute करता है, percentage derive करता है, exam के gradingScaleId से grade band picks करता है (per-subject overrides honoured), overallPassMarks per subject पर fail flags check करता है, और resulting studentResult row database में write करता है। पूरा compute 412-बच्चे वाले exam के लिए seconds में complete; 4,000-बच्चे वाले senior secondary chain के लिए minutes में।
Compute के बाद results page ऊपर summary card render करता है — total students, pass count, fail count, average marks, average percentage, top scorer name और percentage। Card के नीचे दो views — rankings table (rank, name, roll number, total marks, percentage, grade, pass status) और results table (student-by-student subject-wise breakdown)। दोनों class से filterable, हर column से sortable, class-and-board-aware column layout के साथ Excel में exportable। दोनों read-only हैं इस stage पर — marks LOCKED upstream, इसलिए rankings results screen पर edit नहीं होते। Re-computation के लिए upstream subject unlock करना पड़ता है और engine re-run; audit log दोनों compute runs capture करता है।
Results engine क्या-क्या करता है
- हर subject के हर component के LOCKED marks से पढ़ता है — in-flight या DRAFT data से कुछ compute नहीं
- CBSE/ICSE/State Board rules के per theory/practical aggregation के लिए per-subject
scalingFactorapply करता है isBestOfEligibleset हो तो best-of-N components automatically picks करता है; marksheet header '(Best 2 of 3)' read करता है- Principal-authorised
gracePointsmarks audit log से total में add करता है, marksheet पर footnote के साथ isOptionalsubjects को aggregate से exclude करता है; marksheet पर record के लिए include पर promotion के लिए नहीं- Exam का
gradingScaleIdapply करता है, language और elective bridging के लिए per-subject overrides honour करता है - Overall percentage compute करता है (total marks obtained / total max marks) — two decimal places के साथ, कभी silently round नहीं
- हर class में students को explicit tie-break rules से rank करता है — percentage, फिर total marks, फिर English marks, फिर alphabetical
- हर student के लिए हर exam पर एक
studentResultrow historical results table में write करता है — long-term student profile के लिए - Same screen पर rankings table, results table और summary card render करता है — principal scroll करते हैं, extra clicks नहीं
- Class-aware column layouts के साथ Excel में export करता है — Class 10 CBSE export Class 12 ISC export से अलग
- On-demand safely recompute करता है — हर recompute audit log में prior values और reason के साथ लिखा जाता है
Results computation flow देखें




Aggregation rules — हर formula एक बार लिखा जाता है
Excel में exam results ग़लत होने की सबसे बड़ी वजह यह है कि formulas accountant के सिर में रहते हैं। दो साल बाद जब वो स्कूल छोड़ चुकी है और नया accountant same exam compute करता है, formulas drift करते हैं — यहाँ अलग rounding decision, वहाँ अलग best-of-N choice, optional subjects का inconsistent treatment। स्कूल की दो-साल topper list अब comparable नहीं रहती।
Inkwelly हर aggregation rule subject और exam configuration में लिख के fix करता है, formula में नहीं। Grace mark marks-audit-log row पर field है, spreadsheet के hidden cell में नहीं। Best-of-N subject component पर flag है, SUMIF formula नहीं। Scaling subject row पर numeric scalingFactor है, hand-applied multiplier नहीं। Tie-break order स्कूल level पर configurable list है, हर exam पर uniformly applied। दो साल बाद नया accountant Class 10 result compute करे, वो same number पाएगी।

Class-wise rankings explicit tie-breaks के साथ
Real Class 10 में 2026 में typically हर rank position पर 1-3 ties होते हैं अगर सिर्फ़ percentage पर compute करें। स्कूल का tie-break order rule है जो उन्हें resolve करता है। ज़्यादातर schools CBSE-style tie-break follow करते हैं — percentage first, फिर total marks, फिर English marks, फिर alphabetical by first name। Inkwelly इस order को स्कूल level पर store करता है और हर session के हर exam पर uniformly apply करता है।
Rankings table rank, name, roll number, total marks, percentage, grade और pass status के साथ render करती है। Tied ranks same rank दिखाती हैं — next position skipped — अगर rank 2 दो students share करते हैं, next student rank 4 है, rank 3 नहीं। Class teacher ranks पढ़ते वक़्त immediately जान जाती हैं कि principal ने tie-break rule use किया या नहीं, और audit log tie-break decision plain text में capture करता है। Parents जो rank challenge करते हैं उन्हें exact rule दिखाया जा सकता है।


Per-student breakdown — subject by subject, component by component
Rankings table में student का name click करें और Inkwelly per-student page खोल देता है जो हर subject के हर component दिखाता है — marks obtained, max marks, grace marks (अगर हों), resulting subject total, grade band, और per subject pass status। Same page overall total, overall percentage, overall grade, class में rank और grade में rank दिखाता है।
Footnotes result के part के रूप में store होते हैं — 'Class 10 Sanskrit — grace 1 mark on principal’s discretion' Sanskrit row के next render होता है। 'Class 10 Maths — best 2 of 3 unit tests selected' best-of-N components के लिए render होता है। 'Class 11 Photography — elective, not counted in aggregate' optional subjects के लिए। Page marksheet template का source of truth है; same data parent app, WhatsApp PDF और printed report card में render होता है। Footnotes maintain करने को कोई separate workflow नहीं; same marks-audit-log entries से आते हैं जो aggregation drove।
Excel export — class-aware, board-aware, staff meeting के लिए ready
एक Excel format जो Class 10 और Class 12 दोनों के लिए principal के desk पर काम कर जाए — वो fiction है; जो स्कूल एक use करते हैं, वो दो grades में से एक के लिए manually edit कर रहे हैं। Inkwelly इसे recognise करता है और class-aware Excel files export करता है — Class 10 CBSE export CBSE-prescribed columns carry करता है (Roll, Name, English, Hindi, Maths, Science, SST + IT/AI elective, Total, Percentage, Grade, Result), Class 12 ICSE export ICSE-prescribed columns (with stream subjects), Class 6 export एक simpler primary-school layout use करता है।
Export server-side generated है, single .xlsx file के रूप में download होता है, और typical 400-बच्चे वाले exam के लिए 10 second से कम में generated होता है। Principal trustees को email कर सकती हैं, staff briefing के लिए print कर सकती हैं, या स्कूल के affiliation portal पर directly upload। Export स्कूल का letterhead, exam name, result की date, principal signature placeholder और verification QR code carry करता है जो Inkwelly result page से link करता है।

“पिछली बार Sunday रात 11 बजे result calculate कर रहे थे। इस बार Inkwelly में 'Calculate Results' button click किया, 30 second में सारी class की ranking ready हो गई। Topper list trustees को 4 बजे ही भेज दिया।”
Real-world scenarios results engine के लिए
-
दो students 89.4% पर tied। स्कूल का tie-break order percentage → total → English → alphabetical। दोनों students के same total और same English marks। Inkwelly alphabetical order apply करता है और उन्हें अलग rank देता है — rank-2 candidate alphabetically first student है। Audit log capture करता है 'tie-break rule applied: alphabetical, after percentage, total and English'। Principal challenge करने वाले parent को यह rule दिखा सकती हैं।
-
Results computation के बाद grace mark added। Sunday compute के बाद principal Class 10 के एक बच्चे के लिए 1-mark grace authorize करते हैं। Coordinator marks audit log खोलती हैं, reason 'principal discretion — health emergency' के साथ grace add करती हैं, और Calculate Results re-run करती हैं। New compute percentage, grade band और rank update करता है। Audit log दोनों runs दिखाता है।
-
Re-evaluation के लिए publish के बाद subject unlocked। Class 12 ISC का बच्चा Physics re-evaluation request करता है। Principal publish के बाद subject unlock करते हैं, marks reviewed, नया mark entered। Calculate Results re-run होता है; new aggregate, percentage और rank computed। Parent app दोनों copies दिखाती है; marksheet re-prints।
-
Optional subject aggregate से excluded। Class 11 commerce का बच्चा एक Photography elective
isOptional=truemark किए हुए। Aggregate elective exclude करता है; marksheet elective marks separately दिखाती है — footnote के साथ। Percentage सिर्फ़ non-optional subjects के over compute होता है। -
Class 10 ICSE three-section English aggregation। Class 10 ICSE English में Section A (40), Section B (40), Internal (20)। Engine तीन sections sum करता है (per-section pass के साथ), subject total 100 में से compute करता है, और overall aggregate में roll करता है। Marksheet तीन-section breakdown render करती है।
इस screen पर common operations
- हर subject LOCKED होते ही Calculate Results click — पूरे workflow का एक manual step
- ऊपर summary card देखें — total students, pass count, fail count, average marks, average percentage, top scorer
- Rankings को class से filter, हर column से sort, किसी भी student पर click करके per-student breakdown
- Per-student breakdown देखें — subject-wise marks, components, grace marks, footnotes, grade, pass status
- Class-aware और board-aware column layouts के साथ Excel में export; per class एक .xlsx या combined file
- Upstream marks change के बाद Calculate Results re-run — हर recompute audit log में reason के साथ
- Marks audit log में drill करें — हर cell पर कब किसने enter/verify/approve किया
- Grade distribution chart — A1, A2, B1, B2, C1, C2, D1, D2, E1, E2 bands में per class कितने percent children
- Rankings को class-wise topper sheet के रूप में print करें — staff briefing या trustees meeting के लिए
- Session के across exams compare करें — same student का Class 10 half-yearly vs pre-board
अपने school के data पर exam results computation running देखें
Last term के marks Excel लाइए; हम sample exam में load करके आपके सामने Calculate Results run करेंगे। Output वही है जो आपके principal को real production में मिलेगा।
Limits, safety और small print
Results engine सिर्फ़ LOCKED marks से पढ़ता है। किसी और state में subject — NOT_STARTED, DRAFT, SUBMITTED, VERIFIED, APPROVED, PUBLISHED — results में contribute नहीं कर सकता। Engine approximate नहीं करता, skip नहीं करता, silently ignore नहीं करता। अगर कोई एक subject भी LOCKED नहीं है, Calculate Results button disabled है और screen coordinator को बता देती है की कौन-से subjects block कर रहे हैं — one-click navigation के साथ।
Results computation server-side और stateless है। Same input (locked marks + subject config + grading scale) हमेशा same output produce करता है। कोई caching नहीं जो stale हो जाए, कोई client-side computation नहीं जो दो browsers के बीच drift करे। Audit log हर compute run input snapshot hash, output, user और timestamp के साथ capture करता है। Same inputs के दो compute runs same hash produce करते हैं; different inputs के runs different hash; trustees results compare कर के chain of custody verify कर सकते हैं।
Re-evaluation policies वाली schools के लिए (parent का right to request re-check within 30 days of publish), Inkwelly का re-evaluation workflow नया compute run create करता है जो original को re_evaluation_of के through link करता है। Original result preserved; re-evaluation result afresh computed; parent app दोनों side-by-side दिखाती है — हर एक की date के साथ। Failing बच्चों के supplementary exams same way modeled हैं — एक supplementary_for link — और student की profile दोनों attempts दिखाती है।
किस मॉड्यूल का हिस्सा
1 moduleअक्सर पूछे गए सवाल
7 सवालMarks correction के बाद Calculate Results re-run कर सकते हैं?
हाँ। Re-running supported workflow है जब subject unlocked, re-marked और re-locked हो। Engine current LOCKED state से scratch से recompute करता है। Audit log दोनों runs को input hashes, output values और reason के साथ capture करता है। Marksheet template re-renders; parent app audit timeline में corrected version दिखाती है।
Engine absent students को कैसे handle करता है?
Marks-entry row पर absent flag numeric mark की जगह `ABSENT` लिखता है। Aggregation total max marks और total marks obtained से absent subjects exclude करता है, फिर percentage सिर्फ़ जिन subjects पर बैठा उन over compute करता है। क्या absent promotion के लिए fail count होता है — यह per-school policy है exam पर configured; Inkwelly chosen policy uniformly apply करता है।
Inkwelly कौन-सा tie-break order use करता है?
Default tie-break order percentage → total marks → English marks → alphabetical by first name है। हर step separate comparator है और system next सिर्फ़ तब apply करता है जब previous step tie हो। स्कूल configuration level पर order override कर सकता है। हर tie-break decision audit log में applied rule के साथ captured।
Final aggregate के लिए स्कूल अलग exams को अलग weight दे सकता है?
हाँ। Examination row में `weightagePercentage` field है। CBSE schools commonly Periodic Test 1 को 5%, Periodic Test 2 को 5%, Half-Yearly को 30% और Annual को 60% weight देते हैं। Engine session aggregates compute करते वक़्त इसे respect करता है। Weightage exam creation पर locked; mid-session changes logged।
Export स्कूल letterhead और signatures include करता है?
हाँ। Excel export और printed PDF स्कूल letterhead, principal signature placeholder, result की date, exam name और verification QR code carry करते हैं जो Inkwelly result page से resolve करता है। Marksheet design [Marksheet Templates](/features/marksheet-templates) feature के through separately configured (when available); results export स्कूल की default template use करता है तब तक।
कौन-से grade scales supported हैं?
सारे commonly used भारतीय board scales — CBSE A1-E2 (8 bands plus E1/E2 for fail), ICSE percentage with descriptors, IGCSE 9-1, IB MYP 1-7, Maharashtra State Board Distinction/A/B/C, Karnataka PUC। Schools custom scales define कर सकते हैं — उन boards के लिए जो हमने model नहीं किए। हर scale band thresholds, band labels और descriptor text store करता है।
Publish करने से पहले result देख सकते हैं?
हाँ। Calculate Results step preview है — जब तक principal [Results Publish](/modules/examinations) workflow पर Publish click नहीं करते, parents को कुछ भी publish नहीं होता। Coordinator और class teacher rankings, per-student breakdown और Excel export immediately देख सकते हैं। PUBLISHED status (with WhatsApp और parent app delivery) separate audited transition है।
आपको ये भी पसंद आ सकता है
2 लेखInkwelly आपके स्कूल पर — खुद देखें
30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।