{"openapi":"3.1.0","info":{"title":"Grades & Study Calc","version":"1.0.0","description":"Grade needed on a final, weighted grades, GPA, percent to letter, curves, percentile rank, reading plans and study time. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Grades & Study Calc: Grade needed on a final, weighted grades, GPA, percent to letter, curves, percentile rank, reading plans and study time. Use /final-grade-needed to find the score you need, /weighted-grade for a class average, /gpa for a 4.0 GPA, /percent-to-letter for a letter grade, /grade-curve to curve scores, /percentile-rank to place a score in a class, /reading-planner to split a reading assignment and /study-time for weekly study hours. Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://grades-calc.x402tookit.com"}],"paths":{"/final-grade-needed":{"get":{"operationId":"final_grade_needed","summary":"Score needed on a final exam (or any remaining work) to reach a target class grade, from current grade and its weight.","description":"Score needed on a final exam (or any remaining work) to reach a target class grade, from current grade and its weight.","tags":["grades","final-exam","school","homework"],"parameters":[{"name":"currentGrade","in":"query","required":true,"description":"Your current class grade in percent (for example 85)","schema":{"type":"number"}},{"name":"finalWeight","in":"query","required":true,"description":"Weight of the remaining work as a percent of the whole grade (for example 30)","schema":{"type":"number"}},{"name":"targetGrade","in":"query","required":true,"description":"The class grade you want, in percent (for example 90)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"currentGrade":{"type":["null","number"]},"remainingWeightPercent":{"type":["null","number"]},"targetGrade":{"type":["null","number"]},"scoreNeededPercent":{"type":["null","number"]},"rawComputedScore":{"type":["null","number"]},"gradeIfZero":{"type":["null","number"]},"gradeIfPerfect":{"type":["null","number"]},"targetLetter":{"type":["null","string"]},"reachable":{"type":["boolean","null"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"You need 68.33% on the remaining 30% to finish with 80%.","reasons":["Needed = (target - current x (1 - weight)) / weight."],"currentGrade":85,"remainingWeightPercent":30,"targetGrade":80,"scoreNeededPercent":68.333,"rawComputedScore":68.333,"gradeIfZero":59.5,"gradeIfPerfect":89.5,"targetLetter":"B-","reachable":true,"degraded":false,"notChecked":["your teacher's rounding (some round 89.5 up to 90)","dropped lowest scores, extra credit and grade replacement policies","…1 more"],"source":"computed locally (weighted average solved for the last score)","asOf":"2026-10-12T01:53:41.493Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/final-grade-needed"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/final-grade-needed"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/final-grade-needed"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/final-grade-needed"}}]}}},"/gpa":{"get":{"operationId":"gpa","summary":"GPA on the 4.0 scale from letter grades and credits, with optional honors (+0.5) and AP/IB (+1.0) weighting.","description":"GPA on the 4.0 scale from letter grades and credits, with optional honors (+0.5) and AP/IB (+1.0) weighting.","tags":["gpa","grades","school","college"],"parameters":[{"name":"courses","in":"query","required":true,"description":"JSON array of up to 60 objects like {\"grade\":\"B+\",\"credits\":4,\"level\":\"ap\"}; level is regular (default), honors or ap","schema":{"type":"string"}},{"name":"weighted","in":"query","required":false,"description":"true to add +0.5 for honors and +1.0 for AP/IB courses (only to passing grades; default false)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"gpa":{"type":["null","number"]},"unweightedGpa":{"type":["null","number"]},"weighted":{"type":["boolean","null"]},"totalCredits":{"type":["null","number"]},"totalQualityPoints":{"type":["null","number"]},"courses":{"type":["array","null"],"items":{"type":"object","properties":{"grade":{"type":["null","string"]},"credits":{"type":["null","number"]},"level":{"type":["null","string"]},"points":{"type":["null","number"]},"qualityPoints":{"type":["null","number"]}}}},"gpaToTwoPlaces":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"GPA 3.12 on 10 credits (31.2 quality points).","reasons":["GPA = total quality points / total credits; each course's quality points = grade points x credits."],"gpa":3.12,"unweightedGpa":3.12,"weighted":false,"totalCredits":10,"totalQualityPoints":31.2,"courses":[{"grade":"A","credits":3,"level":"regular","points":4,"qualityPoints":12},{"grade":"B+","credits":4,"level":"regular","points":3.3,"qualityPoints":13.2}],"gpaToTwoPlaces":3.12,"degraded":false,"notChecked":["your school's own scale (some give A+ 4.3, no plus/minus, or different honors bonuses)","repeated-course and pass/fail policies","…1 more"],"source":"computed locally (quality points / credits; standard 4.0 plus/minus scale)","asOf":"2026-10-12T01:53:41.747Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/gpa"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/gpa"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/gpa"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/gpa"}}]}}},"/grade-curve":{"get":{"operationId":"grade_curve","summary":"Curve test scores by adding points, scaling so the top score is 100, or the square-root method, with before and after averages.","description":"Curve test scores by adding points, scaling so the top score is 100, or the square-root method, with before and after averages.","tags":["grades","curve","scores","teacher"],"parameters":[{"name":"scores","in":"query","required":true,"description":"Comma-separated scores out of 100 (up to 200)","schema":{"type":"string"}},{"name":"method","in":"query","required":true,"description":"add, scale-to-top or sqrt","schema":{"type":"string"}},{"name":"points","in":"query","required":false,"description":"Points to add for method add (default 5)","schema":{"type":"number"}},{"name":"cap","in":"query","required":false,"description":"false to allow results above 100 (default true caps at 100)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"method":{"type":["null","string"]},"scores":{"type":["array","null"],"items":{"type":"object","properties":{"original":{"type":["null","number"]},"curved":{"type":["null","number"]},"change":{"type":["null","number"]}}}},"averageBefore":{"type":["null","number"]},"averageAfter":{"type":["null","number"]},"highestBefore":{"type":["null","number"]},"highestAfter":{"type":["null","number"]},"capped":{"type":["boolean","null"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"sqrt: average 75 becomes 86.36.","reasons":["Curved score = 10 x square root of the score, which helps low scores most."],"method":"sqrt","scores":[{"original":60,"curved":77.46,"change":17.46},{"original":70,"curved":83.67,"change":13.67}],"averageBefore":75,"averageAfter":86.36,"highestBefore":90,"highestAfter":94.87,"capped":true,"degraded":false,"notChecked":["your teacher's actual curving policy","bell-curve (z-score) grading, which depends on the whole class distribution","…1 more"],"source":"computed locally (three standard curving methods)","asOf":"2026-10-12T01:53:42.011Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/grade-curve"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/grade-curve"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/grade-curve"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/grade-curve"}}]}}},"/percent-to-letter":{"get":{"operationId":"percent_to_letter","summary":"Letter grade and 4.0 GPA points for a percentage on the common US scale, with plus/minus, and points to the next grade.","description":"Letter grade and 4.0 GPA points for a percentage on the common US scale, with plus/minus, and points to the next grade.","tags":["grades","letter-grade","percent","school"],"parameters":[{"name":"percent","in":"query","required":true,"description":"Score in percent, 0 to 120","schema":{"type":"number"}},{"name":"plusMinus","in":"query","required":false,"description":"false for a plain A/B/C/D/F scale (default true)","schema":{"type":"string"}},{"name":"roundHalfUp","in":"query","required":false,"description":"true to round to the nearest whole percent first, the way many teachers do (default false)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"percentUsed":{"type":["null","number"]},"letter":{"type":["null","string"]},"gpaPoints":{"type":["null","number"]},"nextLetterUp":{"type":["null","string"]},"pointsToNextLetter":{"type":["null","number"]},"lowestPercentForThisLetter":{"type":["null","number"]},"passingTypical":{"type":["boolean","null"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"92.9% is A- (3.7 GPA points). 0.1 more percentage point(s) reach A.","reasons":["Plus and minus bands: 97 and up A+, 93 A, 90 A-, then the same pattern at each tens boundary."],"percentUsed":92.9,"letter":"A-","gpaPoints":3.7,"nextLetterUp":"A","pointsToNextLetter":0.1,"lowestPercentForThisLetter":90,"passingTypical":true,"degraded":false,"notChecked":["your school's own cut-offs (many use 93/90 or 94/90 or 92.5)","teacher rounding policy","…1 more"],"source":"computed locally (common 10-point scale: 90 A, 80 B, 70 C, 60 D, with plus/minus at 3 and 7)","asOf":"2026-10-12T01:53:42.274Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percent-to-letter"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percent-to-letter"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percent-to-letter"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percent-to-letter"}}]}}},"/percentile-rank":{"get":{"operationId":"percentile_rank","summary":"Percentile rank of a score in a class list (mean-rank method), with rank from the top, mean, median and z-score.","description":"Percentile rank of a score in a class list (mean-rank method), with rank from the top, mean, median and z-score.","tags":["grades","percentile","rank","class"],"parameters":[{"name":"scores","in":"query","required":true,"description":"Comma-separated class scores, 2 to 500","schema":{"type":"string"}},{"name":"yourScore","in":"query","required":true,"description":"The score to place in the class","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"score":{"type":["null","number"]},"classSize":{"type":["null","number"]},"scoresBelow":{"type":["null","number"]},"scoresEqual":{"type":["null","number"]},"scoresAbove":{"type":["null","number"]},"percentileRank":{"type":["null","number"]},"rankFromTop":{"type":["null","number"]},"mean":{"type":["null","number"]},"median":{"type":["null","number"]},"sampleStandardDeviation":{"type":["null","number"]},"zScore":{"type":["null","number"]},"minimum":{"type":["null","number"]},"maximum":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"70 is at the 50th percentile of 5 scores (3 from the top counting ties as better); class mean 70.","reasons":["Percentile rank = (scores below + half the ties) / number of scores."],"score":70,"classSize":5,"scoresBelow":2,"scoresEqual":1,"scoresAbove":2,"percentileRank":50,"rankFromTop":3,"mean":70,"median":70,"sampleStandardDeviation":15.811,"zScore":0,"minimum":50,"maximum":90,"degraded":false,"notChecked":["whether your score is included in the list (include it for the usual rank)","different percentile conventions (some use below / n or below / (n-1))","…1 more"],"source":"computed locally (percentile rank = (below + 0.5 x equal) / n)","asOf":"2026-10-12T01:53:42.538Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percentile-rank"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percentile-rank"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percentile-rank"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/percentile-rank"}}]}}},"/reading-planner":{"get":{"operationId":"reading_planner","summary":"Pages per day to finish a reading assignment by the due date, daily minutes at your pace, and a day-by-day page schedule.","description":"Pages per day to finish a reading assignment by the due date, daily minutes at your pace, and a day-by-day page schedule.","tags":["reading","homework","planner","school"],"parameters":[{"name":"totalPages","in":"query","required":true,"description":"Total pages in the assignment, 1 to 5000","schema":{"type":"integer"}},{"name":"pagesAlreadyRead","in":"query","required":false,"description":"Pages already done (default 0)","schema":{"type":"integer"}},{"name":"days","in":"query","required":true,"description":"Days you have left to read, 1 to 120","schema":{"type":"integer"}},{"name":"pagesPerHour","in":"query","required":false,"description":"Your reading speed in pages per hour (default 30; novels 40 to 60, textbooks 15 to 25)","schema":{"type":"number"}},{"name":"restDays","in":"query","required":false,"description":"Days among those you will not read (default 0)","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"pagesLeft":{"type":["null","number"]},"readingDays":{"type":["null","number"]},"restDays":{"type":["null","number"]},"pagesPerDay":{"type":["null","number"]},"pagesPerDayRoundedUp":{"type":["null","number"]},"minutesPerDay":{"type":["null","number"]},"totalHoursLeft":{"type":["null","number"]},"percentDone":{"type":["null","number"]},"schedule":{"type":["array","null"],"items":{"type":"object","properties":{"day":{"type":["null","number"]},"pages":{"type":["null","number"]},"fromPage":{"type":["null","number"]},"toPage":{"type":["null","number"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"PLANNED","summary":"300 pages over 12 reading day(s) is 25 pages a day, about 38 minutes at 40 pages an hour.","reasons":["Rest days are taken at the end of the window; spread them out in real life if you like."],"pagesLeft":300,"readingDays":12,"restDays":0,"pagesPerDay":25,"pagesPerDayRoundedUp":25,"minutesPerDay":37.5,"totalHoursLeft":7.5,"percentDone":0,"schedule":[{"day":1,"pages":25,"fromPage":1,"toPage":25},{"day":2,"pages":25,"fromPage":26,"toPage":50}],"degraded":false,"notChecked":["how hard the text is (dense textbooks slow reading a lot)","notes, re-reading and discussion time","…1 more"],"source":"computed locally (pages / days)","asOf":"2026-10-12T01:53:42.801Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/reading-planner"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/reading-planner"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/reading-planner"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/reading-planner"}}]}}},"/study-time":{"get":{"operationId":"study_time","summary":"Weekly study hours from credit hours using the 2 to 3 hours per credit rule, with total weekly workload and a daily plan.","description":"Weekly study hours from credit hours using the 2 to 3 hours per credit rule, with total weekly workload and a daily plan.","tags":["study","college","credit-hours","workload"],"parameters":[{"name":"creditHours","in":"query","required":true,"description":"Credit hours you are taking this term (for example 15)","schema":{"type":"number"}},{"name":"hoursPerCredit","in":"query","required":false,"description":"Study hours per credit hour per week: 2 (default), 3 for hard courses","schema":{"type":"number"}},{"name":"classDaysStudied","in":"query","required":false,"description":"Days a week you will study (default 5)","schema":{"type":"integer"}},{"name":"jobHoursPerWeek","in":"query","required":false,"description":"Paid work hours a week, to show the total load","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"studyHoursPerWeek":{"type":["null","number"]},"studyHoursPerStudyDay":{"type":["null","number"]},"classHoursPerWeekApprox":{"type":["null","number"]},"jobHoursPerWeek":{"type":["null","number"]},"totalHoursPerWeek":{"type":["null","number"]},"remainingHoursAfterSleep8h":{"type":["null","number"]},"hoursPerCredit":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"15 credit hours at 2 h each means 30 study hours a week (6 h on each of 5 days); with class the week is 45 hours.","reasons":["The total stays within a typical full-time workload."],"studyHoursPerWeek":30,"studyHoursPerStudyDay":6,"classHoursPerWeekApprox":15,"jobHoursPerWeek":0,"totalHoursPerWeek":45,"remainingHoursAfterSleep8h":67,"hoursPerCredit":2,"degraded":false,"notChecked":["how demanding your particular courses are","sleep, commuting and family time","…1 more"],"source":"computed locally (common college guidance: 2 to 3 study hours per credit hour)","asOf":"2026-10-12T01:53:43.063Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/study-time"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/study-time"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/study-time"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/study-time"}}]}}},"/weighted-grade":{"get":{"operationId":"weighted_grade","summary":"Overall class grade from categories or assignments with scores, maximums and weights, normalizing weights that do not total 100.","description":"Overall class grade from categories or assignments with scores, maximums and weights, normalizing weights that do not total 100.","tags":["grades","weighted-average","school","gradebook"],"parameters":[{"name":"items","in":"query","required":true,"description":"JSON array of up to 50 objects like {\"name\":\"Homework\",\"score\":45,\"max\":50,\"weight\":20}; max defaults to 100","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"overallPercent":{"type":["null","number"]},"letter":{"type":["null","string"]},"gpaPoints":{"type":["null","number"]},"weightsTotal":{"type":["null","number"]},"weightsNormalized":{"type":["boolean","null"]},"items":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":["null","string"]},"percent":{"type":["null","number"]},"weight":{"type":["null","number"]},"pointsContributed":{"type":["null","number"]}}}},"lowestItem":{"type":["null","string"]},"highestItem":{"type":["null","string"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"Overall 84% (B) from 2 item(s).","reasons":[],"overallPercent":84,"letter":"B","gpaPoints":3,"weightsTotal":100,"weightsNormalized":false,"items":[{"name":"Homework","percent":90,"weight":40,"pointsContributed":36},{"name":"Exams","percent":80,"weight":60,"pointsContributed":48}],"lowestItem":"Exams","highestItem":"Homework","degraded":false,"notChecked":["dropped lowest scores and category caps","teacher rounding rules","…1 more"],"source":"computed locally (sum of weight x score/max, divided by total weight)","asOf":"2026-10-12T01:53:43.327Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/weighted-grade"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/weighted-grade"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/weighted-grade"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://grades-calc.x402tookit.com/weighted-grade"}}]}}}}}