Negative marking, sectional cut-offs and time management
35 min · Beginner
Need help? Ask a tutor on WhatsApp (opens in a new tab)Your test has negative marking and 60 seconds a question. A wrong guess costs marks, an unsolved easy question costs marks, and a section minimum can fail you anyway. You need a quick rule for when to guess and in what order to attempt.
Expected value of a guess
Expected value is the average marks a choice earns if you repeated it many times. For a guess it is (chance right × marks for right) minus (chance wrong × penalty).
With 4 options a blind guess is right 1/4 of the time. The example below computes the value of a blind guess for common marking schemes.
Example 1 · Expected value of a blind guess
def expected(options, penalty): p_right = 1 / options value = p_right * 1 - (1 - p_right) * penalty return round(value, 10) + 0.0 # round away tiny float errors
schemes = [ ("4 options, -0.25:", 4, 0.25), ("4 options, -1/3:", 4, 1 / 3), ("4 options, -0.5:", 4, 0.5), ("5 options, -0.25:", 5, 0.25), ("4 options, -1:", 4, 1.0),]for label, options, penalty in schemes: print(f"{label:<17} {expected(options, penalty):.4f}")4 options, -0.25: 0.0625 4 options, -1/3: 0.0000 4 options, -0.5: -0.1250 5 options, -0.25: 0.0000 4 options, -1: -0.5000
What this code does
- Only the first scheme makes a blind guess slightly positive. With -1/3 or with 5 options and -0.25 it is exactly zero, and harsher penalties make it negative.
- The function
expectedis the formula from the section: chance right × 1 - chance wrong × penalty.
With +1/-0.25 marking a blind guess is worth 1/4 × 1 - 3/4 × 0.25 = 0.0625 marks: slightly positive. With +1/-1/3 marking (often written -0.33) it is exactly 0, so a blind guess gains nothing and adds risk. With 5 options and -0.25 it is also 0.
When eliminating options makes a guess worth it
The break-even chance is the chance of being right at which a guess is worth exactly zero marks. When a right answer scores 1 it is penalty / (1 + penalty). Guess only when your chance is higher.
Ruling out options raises your chance. The example below shows how the value of a guess grows as options are removed.
Example 2 · Guess value after eliminating options
def expected(options_left, penalty): p_right = 1 / options_left return round(p_right - (1 - p_right) * penalty, 10) + 0.0
for name, penalty in [("-0.25", 0.25), ("-1/3", 1 / 3)]: print(f"Marking +1/{name}:") for left in (4, 3, 2): print(f" {left} options left: {expected(left, penalty):.4f}") break_even = penalty / (1 + penalty) print(f" Break-even chance: {break_even * 100:.0f}%")Marking +1/-0.25: 4 options left: 0.0625 3 options left: 0.1667 2 options left: 0.3750 Break-even chance: 20% Marking +1/-1/3: 4 options left: 0.0000 3 options left: 0.1111 2 options left: 0.3333 Break-even chance: 25%
What this code does
- Removing one wrong option lifts a guess from about zero to clearly positive under both schemes. Removing two makes it worth about a third of a mark.
- The break-even line shows the minimum chance of being right that makes a guess worth it: 20% and 25% here.
On a 4-option question with two options ruled out, a guess is right half the time: 0.5 - 0.5 × 0.25 = 0.375 marks with -0.25. The break-even is 0.25 / 1.25 = 20% for -0.25 marking and (1/3) / (4/3) = 25% for -1/3 marking, so removing even one option (chance 1/3) makes a guess worth it.
Sectional cut-offs
A sectional cut-off is the minimum score you need in each section, on top of any overall cut-off. A very strong section cannot hide a very weak one.
A strong total can still fail. The example below checks three candidates against a minimum for each section and an overall minimum.
Example 3 · A strong total that still fails
def report(name, a, b, c): section_cut, overall_cut = 7, 25 total = a + b + c all_sections = min(a, b, c) >= section_cut cleared = all_sections and total >= overall_cut print(f"{name}: total {total}, every section >= 7: {all_sections} -> {'cleared' if cleared else 'not cleared'}")
report("Aditi", 15, 12, 6.5)report("Bharat", 9, 8.5, 8)Aditi: total 33.5, every section >= 7: False -> not cleared Bharat: total 25.5, every section >= 7: True -> cleared
What this code does
- Aditi scores 8 marks more than Bharat in total but misses the cut-off of the third section by half a mark, so she is out.
- Bharat is just safe everywhere. For a test with sectional cut-offs, "safe in every section" beats "brilliant in one".
This changes how you plan. Moving from 6 to 8 marks in your weakest section can matter more than moving from 15 to 18 in your best one, because the weak section decides pass or fail.
The two-pass strategy
The two-pass strategy means you go through a section twice. In pass one you answer every question you can do quickly and mark the slow ones. In pass two you return to the marked questions, shortest first.
The example below compares one pass in order with two passes over the same ten questions in a 10-minute section.
Example 4 · One pass in order versus two passes
seconds = [40, 150, 55, 60, 120, 45, 90, 50, 200, 35]limit = 600
used = solved = 0for s in seconds: if used + s > limit: break used += s solved += 1print(f"One pass in order: {solved} solved")
quick = [s for s in seconds if s <= 60] # pass 1: quick questions onlymarked = sorted(s for s in seconds if s > 60) # pass 2: marked ones, shortest firstused, solved = sum(quick), len(quick)print(f"After pass 1: {solved} solved, {limit - used} s left")for s in marked: if used + s > limit: break used += s solved += 1print(f"After pass 2: {solved} solved")One pass in order: 7 solved After pass 1: 6 solved, 315 s left After pass 2: 8 solved
What this code does
- Going in order, the 150-second second question and the 120-second fifth question eat the clock, and time runs out before question 8, a 50-second question.
- Two passes collect all six quick questions first (285 s), then spend the remaining 315 s on the marked ones from shortest to longest, for one extra correct answer in the same time.
This works because all questions usually carry the same marks. A 40-second question and a 3-minute question are worth the same, so quick ones should never be lost because a hard one ate the clock. Use it only when the test lets you go back; adaptive tests often do not.
Clock checkpoints at 25%, 50% and 75%
A checkpoint is a time at which you check how many questions you have finished. Work out where you should be at 25%, 50% and 75% of the section time.
For 24 questions in 30 minutes: 6 questions by 7:30, 12 by 15:00 and 18 by 22:30. The example below prints checkpoints for any section.
Example 5 · Checkpoints for a section
minutes, questions = 30, 24total_seconds = minutes * 60
for percent in (25, 50, 75): at = total_seconds * percent // 100 target = questions * percent // 100 print(f"At {percent}% ({at // 60}:{at % 60:02d}): about {target} questions done")At 25% (7:30): about 6 questions done At 50% (15:00): about 12 questions done At 75% (22:30): about 18 questions done
What this code does
at // 60gives whole minutes andat % 60the leftover seconds;:02dprints seconds with two digits, so 15 minutes shows as 15:00.- Write these three lines on your rough sheet before the section starts. If you have done only 4 questions at 7:30, skip to the next quick one.
If you are behind at a checkpoint, stop polishing and move to the next quick question. Write the three checkpoints on your rough sheet before you start, so checking takes one glance.
Next step
Check your understanding
12 quick questions