> ## Documentation Index
> Fetch the complete documentation index at: https://docs.learningcommons.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Evaluation

> Understand input & output fields returned by Python SDK Text Complexity evaluators.

Once you've configured your evaluator, you can start evaluating text inputs for grade level appropriateness:

```python example.py theme={null}
from learning_commons_evaluators import (
  GradeLevelAppropriatenessEvaluator,
  GradeLevelAppropriatenessEvaluationInput,
  GoogleLLMProviderConfig,
  create_config,
)

# Create evaluator config
# NOTE: Telemetry is not yet implemented in v0.2.0
config = create_config(
  google_llm_provider_config=GoogleLLMProviderConfig(api_key="your-google-key"),
  telemetry_partner_id="your-learning-commons-api-key",
)

# Instantiate evaluator
evaluator = GradeLevelAppropriatenessEvaluator(config)

# Evaluate text for grade level appropriateness
result = evaluator.evaluate_sync(
  GradeLevelAppropriatenessEvaluationInput(text="The cat's out of the bag now.")
)
```

## Inputs

[Grade Level Appropriateness](/evaluators/text-complexity-evaluators/grade-level-appropriateness) takes `{ text }`:

| Field | Type | Description |
| :- | :- | :- |
| `text` | `string` | Informational text to evaluate. 10–10,000 characters |

All other Text Complexity evaluators take `{ text, grade }`:

| Field | Type | Description |
| :- | :- | :- |
| `text` | `string` | Informational text to evaluate. Length limits vary by evaluator (typically 1–10,000 characters) |
| `grade` | `int` | Target student grade, 3–12. Passed as an integer; `VocabularyEvaluationInput(text=..., grade=5)` |

```python theme={null}
from learning_commons_evaluators import VocabularyEvaluationInput

result = evaluator.evaluate_sync(
  VocabularyEvaluationInput(text="The cat's out of the bag now.", grade=5)
)
```

## Output

[Text Complexity](/evaluators/text-complexity-evaluators/introduction) evaluators have the following output fields:

| Field | Type | Description |
| :- | :- | :- |
| `answer` | [`EvaluationAnswer`](https://github.com/learning-commons-org/evaluators/blob/sdks-python-v0.2.0/sdks/python/src/learning_commons_evaluators/schemas/evaluator.py) ↗ | Complexity score returned by the evaluation |
| `explanation` | [`EvaluationExplanation`](https://github.com/learning-commons-org/evaluators/blob/sdks-python-v0.2.0/sdks/python/src/learning_commons_evaluators/schemas/evaluator.py) ↗ | Reasoning for the complexity score and evaluator-specific fields (`explanation.details` – see table below) |
| `metadata` | [`EvaluationMetadata`](https://github.com/learning-commons-org/evaluators/blob/sdks-python-v0.2.0/sdks/python/src/learning_commons_evaluators/schemas/metadata.py) ↗ | Evaluation run metadata like timing, status, token usage, and per-step details |

The `explanation.details` field includes detailed internal analysis data specific to that evaluator.

| Evaluator | `explanation.details` description | `explanation.details` type |
| :- | :- | :- |
| [Grade Level Appropriateness](/evaluators/text-complexity-evaluators/grade-level-appropriateness)  <Badge color="green">v0.2.0</Badge> | [Output fields](/evaluators/text-complexity-evaluators/grade-level-appropriateness#output) | [`GradeLevelAppropriatenessOutput`](https://github.com/learning-commons-org/evaluators/blob/sdks-python-v0.2.0/sdks/python/src/learning_commons_evaluators/schemas/grade_level_appropriateness.py) ↗ |
| [Vocabulary Complexity](/evaluators/text-complexity-evaluators/vocabulary-complexity) | [Output fields](/evaluators/text-complexity-evaluators/vocabulary-complexity#output) | [`VocabularyComplexityOutput`](https://github.com/learning-commons-org/evaluators/blob/sdks-python-v0.2.0/sdks/python/src/learning_commons_evaluators/schemas/vocabulary.py) |
| [Meaning Directness](/evaluators/text-complexity-evaluators/meaning-directness) | [Output fields](/evaluators/text-complexity-evaluators/meaning-directness#output) | [`ConventionalityOutput`](https://github.com/learning-commons-org/evaluators/blob/sdks-python-v0.2.0/sdks/python/src/learning_commons_evaluators/schemas/conventionality.py) |

## Related topics

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/evaluators/getting-started/quickstart#sdk">
    Install the SDK and run your first evaluator.
  </Card>

  <Card title="Configuration" icon="gear" href="/evaluators/sdk-api-reference/python/configuration">
    Configure evaluators, including API keys and options.
  </Card>

  <Card title="Error handling" icon="triangle-exclamation" href="/evaluators/sdk-api-reference/python/error-handling">
    Handle configuration, validation, and API errors.
  </Card>
</CardGroup>
