AP World History score calculator
42 multiple-choice answers, 7 short-answer points, a 5 on the DBQ and a 4 on the long essay give a composite just under 74, so the predicted AP World score is a 4. Each section keeps its official weight. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Multiple choice
- 42
- Short answer
- 7
- Dbq
- 5
- Leq
- 4
- Mc max
- 55
- Saq max
- 9
- Dbq max
- 7
- Leq max
- 6
The AP World History: Modern exam is scored as a composite of four independently weighted sections: a 55-question multiple-choice set worth 40 percent, three short-answer questions worth three points each for 20 percent, one document-based question on a seven-point rubric for 25 percent, and one long essay on a six-point rubric for 15 percent. College Board reports a single integer from 1 to 5, but practice tests only give you raw section counts. This calculator accepts those four counts, rejects any negative value or any count above the official section maximum, builds a 0–100 weighted composite, and maps it onto a predicted AP score of 1 through 5 with a published practice conversion table.
How the AP World composite is built from four section counts
The current AP World History: Modern exam is not a single sitting with one raw total. College Board splits the paper into four scored pieces with published weights that this calculator applies exactly. Section I Part A is fifty-five multiple-choice questions; each correct response counts once, so the section maximum is 55 and that block is worth 40 percent of the composite.
Section I Part B is three short-answer questions, each scored zero through three on a content rubric, for a section maximum of 9 points and 20 percent of the composite. Section II Part A is the document-based question, scored zero through seven, worth 25 percent. Section II Part B is the long essay, scored zero through six, worth 15 percent.
The capability never invents a secret annual College Board table. A published practice conversion then maps it onto the familiar 1–5 AP score so a practice booklet, a tutoring dashboard, and a classroom gradebook can share one deterministic oracle.
Where an AP World predicted-score oracle earns its keep
Students finishing a released AP World practice exam want the same 1–5 headline they will see in July, not a homemade percentage that no admissions officer uses. Teachers running a mock administration need a shared conversion so every section’s question counts become one predicted score the department can discuss without arguing over spreadsheets. Tutoring platforms store raw multiple-choice ticks and free-response rubric points for diagnostics, then call a deterministic combiner when the student dashboard must show a single predicted AP score.
Exam-prep generators need an oracle that rejects a 56 on a 55-question set instead of minting a plausible 5 from an impossible paper. Failed validation does not consume balance. Keep requests small, pin the integer score in tests, and you get reproducible 1–5 predictions for LMS plugins, counseling CRMs, and edge workers without standing up a full College Board scoring warehouse.
What you can do with it
Practice AP World score reports
After a timed AP World History: Modern practice exam, enter MC, SAQ, DBQ, and LEQ counts to show the same 1–5 predicted score students expect on an unofficial score report.
Classroom mock administrations
Teachers convert every student’s four section counts with one published table so department conversations compare predicted scores, not four incomparable raw columns.
Tutoring dashboards and LMS plugins
Store rubric ticks for diagnostics, then combine them into one predicted AP score when a student view, parent report, or eligibility export needs a single 1–5 headline.
FAQ
What are the AP World section maxima?
Multiple-choice 55 questions, short-answer 9 rubric points (three questions × 3), document-based question 7 points, and long essay 6 points.
Is this the official College Board AP World curve?
No. College Board does not publish the operational conversion before scores are released. This tool uses the public section weights plus a documented practice cutoff table so every caller gets the same 1–5 prediction from the same counts.
What inputs does the AP World score calculator require?
Fractions, missing fields, negatives, and over-max counts are rejected.
What composite do I need for a 5 in AP World History?
A composite of 74 or more predicts a 5, 59 a 4, 44 a 3 and 32 a 2; anything below 32 predicts a 1. These cutoffs come from a published practice conversion, not from a secret annual College Board table.
Which AP World section carries the most weight?
Multiple choice carries 40 percent, the document-based question 25, the three short answers 20 and the long essay 15. With only seven rubric points, each DBQ point moves the composite more than a single multiple-choice answer.
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/ap-world \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"multiple_choice":42,"short_answer":7,"dbq":5,"leq":4}'const res = await fetch("https://api.kit.forhosting.com/edu/ap-world", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"multiple_choice": 42,
"short_answer": 7,
"dbq": 5,
"leq": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/ap-world",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"multiple_choice": 42,
"short_answer": 7,
"dbq": 5,
"leq": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/ap-world", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"multiple_choice":42,"short_answer":7,"dbq":5,"leq":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"multiple_choice":42,"short_answer":7,"dbq":5,"leq":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/ap-world", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"multiple_choice": 42,
"short_answer": 7,
"dbq": 5,
"leq": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.ap_world",
"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
The same pure module runs free in the browser and as the paid API, so a homework check and a production gradebook plugin always agree.
How the AP World composite is built from four section counts
It applies those public weights to the four counts you supply with the identity composite equals 40 times multiple_choice over 55, plus 20 times short_answer over 9, plus 25 times dbq over 7, plus 15 times leq over 6. That composite lives on a 0–100 scale. Negative counts and counts above a section maximum fail closed with invalid_input instead of being clamped, because a clamped 56 on a 55-question set is not a legal AP World section and must not produce a predicted 5.
Input contract, section maxima, and the 1–5 conversion table
The practice conversion is: composite at or above 74 predicts 5, at or above 59 predicts 4, at or above 44 predicts 3, at or above 32 predicts 2, and anything below 32 predicts 1. A perfect paper of 55, 9, 7, and 6 produces composite 100 and score 5. A zero paper produces composite 0 and score 1. POST a JSON body with four required integer counts. multiple_choice (aliases mc, mc_correct, mcq, multiple_choice_correct) is the number of correct multiple-choice items, from 0 through 55 inclusive. short_answer (aliases saq, saq_points, short_answer_points) is the combined short-answer rubric total, from 0 through 9. dbq (aliases dbq_points, document_based) is the document-based-question rubric score, from 0 through 7. leq (aliases leq_points, long_essay) is the long-essay rubric score, from 0 through 6. Values may arrive as JSON numbers or as numeric strings; 42.0 is accepted as 42, but a fraction such as 42.5 is rejected because a question count is a whole number. On success the response echoes the cleaned counts, the four section maxima, the four weighted contributions, the 0–100 composite, the predicted score from 1 to 5, the practice cutoffs, a formula string, and method ap_world_weighted_composite. Example: multiple_choice 42, short_answer 7, dbq 5, and leq 4 produce a composite just under 74 and therefore a predicted 4. Missing fields, non-numeric values, negatives, and counts above a section maximum fail with invalid_input and are not billed.
Technical questions
How is the predicted AP World History score calculated?
The four public weights are applied to your section counts: composite = 40×(multiple_choice/55) + 20×(short_answer/9) + 25×(dbq/7) + 15×(leq/6). That 0–100 composite is then mapped with a practice table: ≥74 → 5, ≥59 → 4, ≥44 → 3, ≥32 → 2, otherwise 1.
What does the AP World predicted-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.