Multiple choice exam score
18 right, 4 wrong and 3 blank with a quarter-mark penalty give 17 out of 25, or 68%. Enter the three tallies, the marks per question and any guessing penalty, and blanks are never penalized. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Correct
- 18
- Incorrect
- 4
- Blank
- 3
- Marks per question
- 1
- Penalty
- 0.25
- Answered
- 22
- Total questions
- 25
- Points correct
- 18
- Points penalty
- 1
Teachers, tutors, and exam boards score multiple-choice papers from three simple tallies: how many items were right, how many wrong, and how many left blank. Hand arithmetic is error-prone when each correct answer is worth more than one mark or when a guessing penalty subtracts a fraction of a mark per wrong choice. This multiple choice exam score calculator accepts those counts, optional marks per question, and an optional penalty for incorrect answers, then returns raw points, maximum possible score, percentage, and accuracy figures you can paste into a gradebook or LMS. Blank questions earn zero and are never penalized, matching standard formula-scoring practice.
How formula scoring works with correct, incorrect, and blank
A multiple-choice exam score is built from item outcomes, not from free-form text. Count every question as correct, incorrect, or blank. Total questions equals the sum of those three counts.
Points from correct answers equal correct times M. If your policy applies formula scoring against random guessing, set penalty to the marks deducted per wrong answer—for example zero point two five when each incorrect choice costs a quarter of a mark. Raw score is then correct times M minus incorrect times penalty.
Blank items contribute neither points nor penalty, which is why leaving hard items empty often beats a pure guess under classic formula scoring. Percentage is raw score divided by maximum score times one hundred, so it always sits on the same zero-to-one-hundred scale as the full paper even when M is not one. Accuracy on the whole paper is correct over total; accuracy on answered items only is correct over correct plus incorrect, and that second figure is omitted when nothing was answered.
Who turns answer-sheet tallies into scores
Classroom teachers and exam invigilators use a multiple choice exam score calculator to turn optical-mark or bubble-sheet tallies into a single percentage without rebuilding a spreadsheet for every class. Tutoring centers and self-study platforms show learners both raw points and accuracy so a student can see whether blanks or wrong guesses are costing more under the published penalty. Learning-management systems and assessment vendors call the same pure module from server jobs or edge workers to normalize imported scan files into gradebook columns that match the syllabus formula.
Research and psychometrics pipelines need a deterministic oracle that applies formula scoring consistently when comparing papers with different marks per item or different wrong-answer penalties. Failed validation does not consume balance.
What you can do with it
Formula scoring with guessing penalty
Apply a quarter-mark or other fixed penalty per wrong answer while leaving blanks unpenalized, and show students the resulting percentage.
LMS import normalization
Convert imported tally rows from many quiz formats into one consistent raw score, max score, and percentage for reporting dashboards.
FAQ
Are blank answers penalized?
No. Blank (omitted) questions contribute zero points and zero penalty. Only incorrect answers consume the penalty field.
How is a multiple-choice score calculated with a guessing penalty?
Multiply the correct answers by the marks per question and subtract the wrong answers times the penalty. With 18 right, 4 wrong and a 0.25 penalty, that is 18 minus 1, so 17 out of 25, or 68%.
What is the difference between the percentage and the accuracy?
The percentage uses the score after the penalty. Accuracy only counts right answers: 18 of 25 questions is 72% overall, and 18 of the 22 answered is 81.82%, which shows how reliable the attempted answers were.
Can the score go below zero?
Not by default. If the penalties would push the total under zero, the score stops at zero, as most schools and exam boards require. You can switch this off if your scheme allows negative scores.
What if each question is worth more than one mark?
Enter the marks per question and the maximum becomes the number of questions times that value. The percentage is still on a scale of 0 to 100, and the penalty uses the same units as the marks.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/edu/multiple-choice-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"correct":18,"incorrect":4}'const res = await fetch("https://api.kit.forhosting.com/edu/multiple-choice-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"correct": 18,
"incorrect": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/multiple-choice-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"correct": 18,
"incorrect": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/multiple-choice-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"correct":18,"incorrect":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"correct":18,"incorrect":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/multiple-choice-score", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"correct": 18,
"incorrect": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.multiple_choice_score",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How formula scoring works with correct, incorrect, and blank
With marks_per_question equal to M (default one), the maximum score is total times M. When penalties would drive the raw total below zero, floor_at_zero defaults to true so reported scores stay non-negative, matching most school and board policies; set it false only when your scheme allows negative net scores. The endpoint does not mark individual item keys or scramble choices—it scores tallies you already have from an answer sheet, optical scan, or LMS export.
Input contract, response fields, and validation rules
Pair this tool with your own letter-grade cutoffs or curves; the numeric raw score and percentage are the only policy this capability encodes beyond the optional wrong-answer penalty and zero floor. POST a JSON body with correct and incorrect as required non-negative integers. blank is optional and defaults to zero; it must also be a non-negative integer when supplied. marks_per_question is a positive finite number defaulting to one. penalty is a non-negative finite number defaulting to zero and uses the same units as marks_per_question. floor_at_zero is a boolean defaulting to true. decimals is an integer from zero through six defaulting to two and controls half-up rounding on scores and percentages. On success the body echoes the counts, answered as correct plus incorrect, total_questions, marks and penalty, points_correct and points_penalty, raw_score, max_score, percentage, accuracy_total, a short formula string, and decimals. When at least one item was answered, accuracy_answered is included; when the floor was applied, score_floored is true. Missing required fields, non-integers for counts, negative values where forbidden, a zero total (all three counts zero), or decimals outside zero through six fail with invalid_input and are not billed.
Where a multiple-choice exam score API earns its keep
Content sites that rank for multiple choice exam score benefit from a free in-browser path that matches the paid API byte-for-byte on the analytic module. Keep payloads small, pin rounded fields in tests, and you get reproducible scores for gradebooks, LMS plugins, and exam boards without standing up a full item-response engine of your own.
Integration use cases
Bubble-sheet and scan tally to percentage
Enter correct, incorrect, and blank counts from an optical scan, set marks and optional penalty, and post raw_score plus percentage into the gradebook.
Technical questions
How do I calculate a multiple choice exam score?
Send non-negative integers correct and incorrect, optional blank, optional marks_per_question and penalty. The API returns raw_score = correct×marks − incorrect×penalty and percentage = raw_score/max_score×100.
What does the penalty field mean?
Penalty is marks deducted per incorrect answer in the same units as marks_per_question. Example: marks_per_question=1 and penalty=0.25 subtracts a quarter mark for each wrong choice.
Can the raw score go negative?
By default floor_at_zero is true, so raw_score is reported as 0 if penalties would make it negative. Set floor_at_zero false to allow negative net scores.
What does the multiple choice exam score calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.