Average of grades calculator
The average of grades calculator turns a list of student scores into a clear arithmetic mean while also reporting the total and the number of grades used.
Run — free
It is useful for checking one learner’s results, summarizing a quiz, or finding a simple class average when every score has equal importance. Enter scores from zero to one hundred, choose the desired decimal precision, and receive an immediate result with enough supporting information to verify the calculation. No weighting is applied, so each grade contributes equally to the final mean.
Enter the grades that belong in the calculation
Start by gathering the scores that should contribute equally to the result. Enter each grade as a number from zero through one hundred. The calculator accepts whole numbers and decimals, so values such as 84, 91.5, and 77.25 can appear in the same list. Include only the grades that answer your question. For a personal mean, use scores earned by one student across the selected assignments. For a class mean, use the students’ scores from the same assessment. Mixing unrelated scales or assessments can produce a mathematically valid number that is not educationally meaningful. Each entered value counts once, including repeated scores, because two students who both earned 90 represent two distinct observations. At least one grade is required, and the list can contain up to one thousand values. Scores below zero, above one hundred, blank entries, and nonnumeric values are rejected so an accidental input cannot quietly distort the answer. If assignments have different importance, use a weighted grade tool instead of this equal-weight calculation.
Understand the average, total, and count
The calculation follows the ordinary arithmetic mean. First, every valid grade is added to produce the total. Next, the calculator counts how many grades were supplied. Finally, it divides the total by that count to produce the average. For example, grades of 80, 90, and 100 have a total of 270 and a count of three, so their average is 90. Showing all three values makes the result easier to audit: multiplying the displayed average by the count should approximately recover the total, with any small difference explained by the selected rounding precision. The count also helps catch omissions, especially when copying a long class roster. Decimal precision changes only how the total and average are displayed; it does not remove grades or change their equal contribution. A two-decimal result is usually appropriate for gradebooks, while additional places can help when another system will use the result in a later calculation. Remember that this is a descriptive summary, not a letter-grade conversion or a judgment about performance.
Use the result responsibly in a gradebook or report
Before recording the result, compare the returned count with the number of scores you intended to include and scan the total for obvious inconsistencies. A count that is one short may indicate a missing student, while an unexpectedly low total can reveal a mistyped score. Decide in advance how your school, course, or reporting system handles rounding. This calculator lets you choose from zero to ten decimal places, but an institution may require a specific policy, such as retaining full precision until the final reported grade. The simple mean is most informative when all observations share the same scale and importance. It does not account for assignment weights, credit hours, dropped scores, missing-work rules, category caps, or extra credit. Apply those policies before entering the final list, or select a purpose-built weighted calculator. When comparing classes, consider differences in assessment difficulty and class composition rather than treating the mean as a complete measure of teaching or learning. The API costs $0.002 per request and uses the same deterministic calculation as the browser experience.
What you can do with it
Find a student's mean score
Average equally weighted assignment or quiz grades and verify the result with the returned total and count.
Summarize a class assessment
Combine every student's score from one test to obtain the class mean without hiding how many grades were included.
Check a gradebook calculation
Recalculate an equal-weight mean independently and compare the total, count, and average with another system.
FAQ
How is the average calculated?
All grades are added to obtain the total, then the total is divided by the number of grades. Every grade has equal weight.
What does it cost?
The browser calculation is free. An API request costs $0.002.
Can I enter decimal grades?
Yes. Each grade may be a whole number or a finite decimal value from zero through one hundred.
Does this calculator support weighted grades?
No. Every score contributes equally. Use a weighted grade calculator when assignments or categories have different importance.
Are missing grades treated as zero?
No. Only numbers explicitly included in the list are counted. Enter zero yourself only when your grading policy assigns a zero.
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/average-of-grades \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"grades":[88,92,76,84]}'const res = await fetch("https://api.kit.forhosting.com/edu/average-of-grades", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"grades": [
88,
92,
76,
84
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/average-of-grades",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"grades": [
88,
92,
76,
84
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/average-of-grades", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"grades":[88,92,76,84]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"grades":[88,92,76,84]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/average-of-grades", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"grades": [
88,
92,
76,
84
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.average_of_grades",
"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. |