Sentence grammatical complexity score
The sentence grammatical complexity scorer gives you a fast, transparent estimate of how structurally demanding a sentence may feel.
Run — free
It counts the words and five common clause connectors—“and,” “but,” “which,” “because,” and “that”—then combines those signals into a score from 0 to 100. The result also shows every count and scoring component, so you can understand precisely why a sentence received its rating instead of relying on an unexplained or hidden judgment.
What the complexity score measures
Grammatical complexity often increases when a sentence joins ideas, adds qualifications, explains causes, or embeds one statement inside another. This tool uses two observable signals for that pattern: total word count and occurrences of five frequent connectors. It recognizes “and” and “but” as coordination signals, “because” as a reason signal, and “which” and “that” as common markers of dependent or relative material. Each recognized connector adds fifteen points, up to sixty connector points. Length begins contributing after the first five words, adding two points for every additional word up to forty length points. The final result is capped at 100 and mapped to simple, moderate, complex, or very complex. Because every component is returned separately, the number is reproducible and easy to audit. It is an estimate of surface grammatical structure, not a claim that a sentence is good, bad, correct, or suitable for every reader.
How to interpret and compare results
Treat the score as a consistent comparison aid rather than a universal writing grade. A short independent statement with no recognized connector will usually fall in the simple range. A longer sentence that links a reason or contrast may reach moderate or complex, while a long sentence containing several recognized connectors can reach very complex. Open the connector breakdown before revising: it shows whether the score comes from repeated coordination, dependent clauses, or mostly from length. Compare sentences written for the same audience and purpose, since an appropriate legal explanation will naturally differ from a product label or an instruction for a young reader. A high result does not automatically require simplification; complex relationships sometimes need complex syntax. Likewise, a low score does not guarantee clarity, accuracy, or elegance. Use the measure to locate sentences worth reviewing, then read them in context and decide whether their relationships remain easy to follow.
Limits of a connector-based heuristic
This analytic method deliberately avoids a language model, parser, network request, and hidden judgment. That makes it fast and deterministic, but it also defines important limits. The tool counts the exact English words “and,” “but,” “which,” “because,” and “that” wherever they occur as separate words. It does not determine whether “that” introduces a clause or acts as a demonstrative, and it cannot distinguish “and” joining two nouns from “and” joining two complete clauses. Other structures—participial phrases, semicolons, appositives, inversion, omitted conjunctions, and connectors outside the five-word list—do not directly add connector points. Punctuation does not change the formula. For reliable comparisons, submit one English sentence at a time and use the same method across the material you are assessing. The API price is $0.002 per request. If you need formal parsing, readability prediction, grammar correction, or audience-specific advice, use a specialized analysis rather than treating this score as a substitute.
What you can do with it
Review long editorial sentences
Flag sentences whose combination of length and connectors deserves a closer human edit.
Compare versions of one sentence
Measure whether a rewrite reduces visible structural load while preserving the intended meaning.
Audit writing guidelines
Apply one reproducible heuristic across instructions, help articles, or learning materials.
FAQ
What does the score range mean?
Scores from 0–24 are simple, 25–49 moderate, 50–74 complex, and 75–100 very complex.
Which connectors are counted?
The tool counts separate occurrences of and, but, which, because, and that, without regard to capitalization.
Does a high score mean the sentence is poorly written?
No. It means the sentence has more of the measured structural signals; context determines whether that complexity is appropriate.
Does the tool check grammar or readability?
No. It provides a deterministic complexity estimate and does not correct grammar, verify meaning, or predict comprehension.
What does it cost?
The API costs $0.002 per request, and the browser version can run locally on this page.
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/write/sentence-complexity-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The editor approved the article because the evidence was clear, but she requested a conclusion that addressed the remaining question."}'const res = await fetch("https://api.kit.forhosting.com/write/sentence-complexity-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The editor approved the article because the evidence was clear, but she requested a conclusion that addressed the remaining question."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/write/sentence-complexity-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The editor approved the article because the evidence was clear, but she requested a conclusion that addressed the remaining question."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/write/sentence-complexity-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The editor approved the article because the evidence was clear, but she requested a conclusion that addressed the remaining question."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The editor approved the article because the evidence was clear, but she requested a conclusion that addressed the remaining question."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/write/sentence-complexity-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
{
"text": "The editor approved the article because the evidence was clear, but she requested a conclusion that addressed the remaining question."
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "write.sentence_complexity_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.
Limits
max_tokens | 20000 |
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. |