---
schema: formation.doc/v0.1
kind: doc
visibility: public
canonical_url: https://topologyindex.com/docs/schemas/evaluation_plan/v0.1.md
document_kind: evaluation_plan
document_schema: formation.evaluation_plan/v0.1
max_document_bytes: 262144
path: /docs/schemas/evaluation_plan/v0.1.md
product_api_version: v1
schema_version: v0.1
title: formation.evaluation_plan/v0.1
---

# formation.evaluation_plan/v0.1

Frontmatter fields of a `evaluation_plan` document. Every security-, cost- and execution-relevant
value is a typed field; prose in the body can explain a rule but never override it. Undeclared
fields are rejected.

## Fields

- `schema` (required): exactly `formation.evaluation_plan/v0.1`
- `kind` (required): exactly `evaluation_plan`
- `created_at` (required): ISO 8601 UTC timestamp, pattern `^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?Z$`, at most 30 characters
- `visibility` (required): one of `private`, `public`
- `expires_at` (required): ISO 8601 UTC timestamp, pattern `^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?Z$`, at most 30 characters
- `workload_profile` (required): sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `suite` (required): sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `configurations` (required): array of 1 to 16 items, each map (fields listed below)
- `configurations[].execution_lock` (required): sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `configurations[].roles` (required): array of 1 to 3 items, each one of `baseline`, `single_agent_reference`, `candidate`
- `assignments` (required): map (fields listed below)
- `assignments.split` (required): one of `development`, `selection`, `final_holdout`
- `assignments.unique_tasks` (required): integer from 1 to 1000000000
- `assignments.repetitions` (required): integer from 1 to 100
- `assignments.configurations` (required): integer from 1 to 16
- `assignments.episodes` (required): integer from 1 to 1000000000
- `assignments.allocation_method` (required): one of `interleaved_randomized`, `fixed_order`
- `assignments.allocation_seed` (required): integer from 0 to 9007199254740991
- `assignments.schedule_digest` (required): sha256 digest, pattern `^sha256:[0-9a-f]{64}$`, at most 71 characters
- `objective` (required): one of `minimize_mean_total_episode_cost`
- `requirements` (required): map (fields listed below)
- `requirements.minimum_success_rate` (required): number from 0 to 1
- `requirements.maximum_p95_latency_seconds` (required): integer from 1 to 2678400
- `requirements.maximum_episode_cost_usd_micros` (required): integer from 0 to 1000000000000000
- `reliability_qualification` (required): one of `absolute_lower_bound`, `paired_non_inferiority`, `both`
- `non_inferiority_margin` (required): number from 0 to 1
- `uncertainty_method` (required): one of `task_cluster_bootstrap`, `repository_cluster_bootstrap`, `binomial_wilson`
- `stopping_rule` (required): one of `fixed_sample`, `fixed_checkpoints`
- `analysis_checkpoints` (required): array of 0 to 16 items, each integer from 1 to 1000000000
- `missing_data_policy` (required): one of `require_complete`, `exclude_incomplete_tasks`, `missing_as_failure`, `worst_case_for_candidate`
- `cost_reservation` (required): map (fields listed below)
- `cost_reservation.per_attempt_ceiling_usd_micros` (required): integer from 0 to 1000000000000000
- `cost_reservation.job_allowance_usd_micros` (required): integer from 0 to 1000000000000000
- `cost_reservation.estimated_total_usd_micros` (required): integer from 0 to 1000000000000000
- `max_concurrency` (required): integer from 1 to 64
- `evidence_stage` (required): one of `exploratory`, `confirmatory`
- `analysis_version` (required): version label, pattern `^[a-z0-9][a-z0-9._/-]{0,63}$`, at most 64 characters
- `spending_policy_version` (required): integer from 0 to 1000000000
