eDiscovery Decoder News/Calc
Free educational MCP for read-only eDiscovery news and TAR/review calculators.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.ediscoverydecoder.com/mcp"
}
}
}Remote endpoints
https://mcp.ediscoverydecoder.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (15)
🟢ping
Health check: confirm the eDiscovery Decoder News/Calc MCP server is reachable before a demo or when troubleshooting a connection. Returns server name and version. No inputs.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"server": {
"type": "string"
},
"version": {
"type": "string"
}
},
"required": [
"ok",
"server",
"version"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_capabilities
List the full eDiscovery Decoder MCP surface — every tool, prompt, and resource, plus the suggested demo flow and safety boundaries — with an example prompt for each. Call this first when you are unsure which tool fits the user's question, or when tool-search shows only a partial list.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"server": {
"type": "string"
},
"version": {
"type": "string"
},
"purpose": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"tools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"purpose": {
"type": "string"
},
"example_prompt": {
"type": "string"
}
},
"required": [
"name",
"purpose",
"example_prompt"
],
"additionalProperties": false
}
},
"prompts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"purpose": {
"type": "string"
}
},
"required": [
"name",
"purpose"
],
"additionalProperties": false
}
},
"resources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"purpose": {
"type": "string"
}
},
"required": [
"uri",
"purpose"
],
"additionalProperties": false
}
},
"demo_flow": {
"type": "array",
"items": {
"type": "string"
}
},
"safety_boundaries": {
"type": "array",
"items": {
"type": "string"
}
},
"claude_note": {
"type": "string"
}
},
"required": [
"server",
"version",
"purpose",
"endpoint",
"tools",
"prompts",
"resources",
"demo_flow",
"safety_boundaries",
"claude_note"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_demo_guide
Return a short, human-readable walkthrough for testing this server: the endpoint, the tool/prompt/resource names, and ready-to-paste sample prompts. Use to give someone a guided demo. For the full machine-readable capability catalog, use list_capabilities instead.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"purpose": {
"type": "string"
},
"tools": {
"type": "array",
"items": {
"type": "string"
}
},
"prompts": {
"type": "array",
"items": {
"type": "string"
}
},
"resources": {
"type": "array",
"items": {
"type": "string"
}
},
"suggested_test_prompts": {
"type": "array",
"items": {
"type": "string"
}
},
"safety_boundaries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"title",
"endpoint",
"purpose",
"tools",
"prompts",
"resources",
"suggested_test_prompts",
"safety_boundaries"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_resource_content(uri)
Fetch the JSON behind a supported edd:// resource — the demo guide, TAR learning path, glossary, or news (latest / brief / by-date). Use when you want resource content but the client cannot read MCP resources directly, e.g. to pull glossary definitions or the news brief as a normal tool result.
Input Schema
{
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^edd:\\/\\/(?:mcp\\/demo-guide|resources\\/tar-learning-path|glossary\\/core|news\\/latest|news\\/brief|news\\/\\d{4}-\\d{2}-\\d{2})$"
}
},
"required": [
"uri"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"mimeType": {
"type": "string"
},
"text": {
"type": "string"
},
"payload": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"uri",
"mimeType",
"text",
"payload"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_prompt_template(prompt_name, audience, matter_description, week_start)
Return the rendered text of one of this server's guided prompts (mcp-demo-tour, tar-matter-kickoff, weekly-digest). Use when the client can call tools but cannot open MCP prompts directly, or when you want to inspect a prompt's wording before using it.
Input Schema
{
"type": "object",
"properties": {
"prompt_name": {
"type": "string",
"enum": [
"mcp-demo-tour",
"tar-matter-kickoff",
"weekly-digest"
]
},
"audience": {
"type": "string",
"minLength": 1
},
"matter_description": {
"type": "string",
"minLength": 1
},
"week_start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"prompt_name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"arguments": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"template_text": {
"type": "string"
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string",
"enum": [
"user",
"assistant"
]
},
"content": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string"
}
},
"required": [
"type",
"text"
],
"additionalProperties": false
}
},
"required": [
"role",
"content"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"arguments",
"template_text",
"messages"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_news(query, tags, date_from, date_to, limit)
Find recent eDiscovery / legal-AI / TAR news by topic, tag, or date range. Use when the user asks what's new or recent in eDiscovery, wants stories on a subject, or asks about a time window. For a ready-made top-stories roundup instead, use get_news_brief.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1
},
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"$ref": "#/properties/date_from"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"source_url": {
"type": "string"
},
"published_at": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"title",
"summary",
"source_url",
"published_at",
"tags"
],
"additionalProperties": false
}
}
},
"required": [
"items"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_news_brief(current_limit, week_limit)
Get the current eDiscovery Decoder news brief: top stories plus a Week in Review breakdown, returned both as structured data and as display-ready Markdown (formatted_brief) with a 'why it matters' line per story. Use when the user wants a roundup or summary of current eDiscovery AI news rather than a keyword search.
Input Schema
{
"type": "object",
"properties": {
"current_limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 7
},
"week_limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 3
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"generated_at": {
"type": "string"
},
"source_url": {
"type": "string"
},
"formatted_brief": {
"type": "string"
},
"story_bullets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"source_url": {
"type": "string"
},
"published_at": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"why_it_matters": {
"type": "string"
}
},
"required": [
"id",
"title",
"summary",
"source_url",
"published_at",
"tags",
"why_it_matters"
],
"additionalProperties": false
}
},
"top_stories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"source_url": {
"type": "string"
},
"published_at": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"title",
"summary",
"source_url",
"published_at",
"tags"
],
"additionalProperties": false
}
},
"week_so_far": {
"type": "object",
"properties": {
"generated_at": {
"type": "string"
},
"source_url": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/properties/top_stories/items"
}
},
"breakdowns": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/properties/top_stories/items/properties/id"
},
"title": {
"$ref": "#/properties/top_stories/items/properties/title"
},
"summary": {
"$ref": "#/properties/top_stories/items/properties/summary"
},
"source_url": {
"$ref": "#/properties/top_stories/items/properties/source_url"
},
"published_at": {
"$ref": "#/properties/top_stories/items/properties/published_at"
},
"tags": {
"$ref": "#/properties/top_stories/items/properties/tags"
},
"why_it_matters": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "number"
},
"score_breakdown": {
"type": "object",
"additionalProperties": {
"type": "number"
}
}
},
"required": [
"id",
"title",
"summary",
"source_url",
"published_at",
"tags"
],
"additionalProperties": false
}
}
},
"required": [
"generated_at",
"source_url",
"items",
"breakdowns"
],
"additionalProperties": false
}
},
"required": [
"generated_at",
"source_url",
"formatted_brief",
"story_bullets",
"top_stories",
"week_so_far"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_review_metrics(true_positives, false_positives, false_negatives, true_negatives)
Score a coded sample when you have a full confusion matrix (true/false positives and negatives) — e.g. comparing a TAR model's calls against a reviewer's. Returns recall, precision, F1, accuracy, and in-sample elusion. Use calculate_control_set_recall if you only have relevant-found vs relevant-missed; calculate_elusion for a discard/null-set sample. Aggregate counts only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"true_positives": {
"type": "integer",
"minimum": 0
},
"false_positives": {
"type": "integer",
"minimum": 0
},
"false_negatives": {
"type": "integer",
"minimum": 0
},
"true_negatives": {
"type": "integer",
"minimum": 0
}
},
"required": [
"true_positives",
"false_positives",
"false_negatives",
"true_negatives"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"recall": {
"type": "object",
"properties": {
"value": {
"type": [
"number",
"null"
]
},
"formula": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"value",
"formula"
],
"additionalProperties": false
},
"precision": {
"$ref": "#/properties/recall"
},
"f1": {
"$ref": "#/properties/recall"
},
"accuracy": {
"$ref": "#/properties/recall"
},
"elusion_in_sample": {
"$ref": "#/properties/recall"
}
},
"required": [
"recall",
"precision",
"f1",
"accuracy",
"elusion_in_sample"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_elusion(relevant_found_in_sample, sample_size, confidence_level)
Estimate how much responsive/relevant material may remain in a set you chose NOT to review (the discard, null, or 'elusion' set). Use when a random sample of that excluded set has been coded — e.g. 'we sampled 400 culled docs and found 2 relevant.' Returns the elusion rate and a Wilson confidence interval. For an overall recall % from the same sample, use calculate_tar_recall_estimate. Aggregate counts only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"relevant_found_in_sample": {
"type": "integer",
"minimum": 0
},
"sample_size": {
"type": "integer",
"exclusiveMinimum": 0
},
"confidence_level": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1,
"default": 0.95
}
},
"required": [
"relevant_found_in_sample",
"sample_size"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"elusion_rate": {
"type": "number"
},
"confidence_interval": {
"type": "object",
"properties": {
"lower": {
"type": "number"
},
"upper": {
"type": "number"
},
"method": {
"type": "string",
"const": "wilson"
}
},
"required": [
"lower",
"upper",
"method"
],
"additionalProperties": false
},
"formula": {
"type": "string"
},
"assumptions": {
"type": "object",
"properties": {
"relevant_found_in_sample": {
"type": "number"
},
"sample_size": {
"type": "number"
},
"confidence_level": {
"type": "number"
},
"z_score": {
"type": "number"
}
},
"required": [
"relevant_found_in_sample",
"sample_size",
"confidence_level",
"z_score"
],
"additionalProperties": false
}
},
"required": [
"elusion_rate",
"confidence_interval",
"formula",
"assumptions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_sample_size(population_size, confidence_level, margin_of_error, estimated_prevalence)
Work out how many documents to randomly sample to estimate a proportion (e.g. richness or elusion) at a target confidence level and margin of error, with finite-population correction. Use when planning a sample before review — 'how big a sample do we need?' Aggregate inputs only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"population_size": {
"type": "integer",
"exclusiveMinimum": 0
},
"confidence_level": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1,
"default": 0.95
},
"margin_of_error": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
"estimated_prevalence": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0.5
}
},
"required": [
"population_size",
"margin_of_error"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"recommended_sample_size": {
"type": "integer",
"minimum": 0
},
"raw_sample_size": {
"type": "number",
"minimum": 0
},
"assumptions": {
"type": "object",
"properties": {
"population_size": {
"type": "number"
},
"confidence_level": {
"type": "number"
},
"margin_of_error": {
"type": "number"
},
"estimated_prevalence": {
"type": "number"
},
"z_score": {
"type": "number"
}
},
"required": [
"population_size",
"confidence_level",
"margin_of_error",
"estimated_prevalence",
"z_score"
],
"additionalProperties": false
},
"formula": {
"type": "string"
}
},
"required": [
"recommended_sample_size",
"raw_sample_size",
"assumptions",
"formula"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_tar_recall_estimate(responsive_found, excluded_population_size, elusion_responsive_hits, elusion_sample_size, confidence_level)
Estimate overall TAR recall and how many responsive docs were missed, by combining the responsive count already found with an elusion sample of the excluded set. Use when the user wants a recall % for the whole workflow, not just the elusion rate. For only the elusion rate and its interval, use calculate_elusion. Aggregate counts only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"responsive_found": {
"type": "integer",
"minimum": 0
},
"excluded_population_size": {
"type": "integer",
"minimum": 0
},
"elusion_responsive_hits": {
"type": "integer",
"minimum": 0
},
"elusion_sample_size": {
"type": "integer",
"exclusiveMinimum": 0
},
"confidence_level": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1,
"default": 0.95
}
},
"required": [
"responsive_found",
"excluded_population_size",
"elusion_responsive_hits",
"elusion_sample_size"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"responsiveFound": {
"type": "integer",
"minimum": 0
},
"excludedPopulationSize": {
"type": "integer",
"minimum": 0
},
"elusion": {
"type": "object",
"properties": {
"sampleSize": {
"type": "integer",
"minimum": 0
},
"responsiveHits": {
"type": "integer",
"minimum": 0
},
"pointEstimate": {
"type": [
"number",
"null"
]
},
"confidenceInterval": {
"type": "object",
"properties": {
"lower": {
"type": [
"number",
"null"
]
},
"upper": {
"type": [
"number",
"null"
]
},
"method": {
"type": "string",
"const": "wilson"
}
},
"required": [
"lower",
"upper",
"method"
],
"additionalProperties": false
},
"estimatedMissed": {
"type": [
"number",
"null"
]
},
"estimatedMissedLower": {
"type": [
"number",
"null"
]
},
"estimatedMissedUpper": {
"type": [
"number",
"null"
]
},
"confidenceLevel": {
"type": "number"
}
},
"required": [
"sampleSize",
"responsiveHits",
"pointEstimate",
"confidenceInterval",
"estimatedMissed",
"estimatedMissedLower",
"estimatedMissedUpper",
"confidenceLevel"
],
"additionalProperties": false
},
"estimatedRecall": {
"anyOf": [
{
"type": "object",
"properties": {
"estimate": {
"type": "number"
},
"lower": {
"type": "number"
},
"upper": {
"type": "number"
}
},
"required": [
"estimate",
"lower",
"upper"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"formula": {
"type": "string"
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"responsiveFound",
"excludedPopulationSize",
"elusion",
"estimatedRecall",
"formula",
"assumptions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_prevalence_richness(positive_hits, sample_size, population_size, confidence_level)
Estimate how rich or prevalent a population is — the share that is responsive/relevant/positive — from positive hits in a random sample, with a Wilson confidence interval. Use for 'what % of this set is relevant?' or to size review scope and cost expectations. Aggregate counts only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"positive_hits": {
"type": "integer",
"minimum": 0
},
"sample_size": {
"type": "integer",
"exclusiveMinimum": 0
},
"population_size": {
"type": "integer",
"exclusiveMinimum": 0
},
"confidence_level": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1,
"default": 0.95
}
},
"required": [
"positive_hits",
"sample_size"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"sampleSize": {
"type": "integer",
"minimum": 0
},
"positiveHits": {
"type": "integer",
"minimum": 0
},
"pointEstimate": {
"type": "number"
},
"confidenceInterval": {
"type": "object",
"properties": {
"lower": {
"type": "number"
},
"upper": {
"type": "number"
},
"method": {
"type": "string",
"const": "wilson"
}
},
"required": [
"lower",
"upper",
"method"
],
"additionalProperties": false
},
"confidenceLevel": {
"type": "number"
},
"estimatedPositiveCount": {
"type": [
"number",
"null"
]
},
"estimatedPositiveLower": {
"type": [
"number",
"null"
]
},
"estimatedPositiveUpper": {
"type": [
"number",
"null"
]
},
"formula": {
"type": "string"
}
},
"required": [
"sampleSize",
"positiveHits",
"pointEstimate",
"confidenceInterval",
"confidenceLevel",
"estimatedPositiveCount",
"estimatedPositiveLower",
"estimatedPositiveUpper",
"formula"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_control_set_recall(relevant_found, relevant_missed, confidence_level)
Calculate recall against a known control set: the share of documents already confirmed relevant that the workflow found, with a Wilson confidence interval. Use when you have relevant-found and relevant-missed counts from a fixed reference set. For recall from a confusion matrix use calculate_review_metrics; from a discard-set sample use calculate_tar_recall_estimate. Aggregate counts only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"relevant_found": {
"type": "integer",
"minimum": 0
},
"relevant_missed": {
"type": "integer",
"minimum": 0
},
"confidence_level": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1,
"default": 0.95
}
},
"required": [
"relevant_found",
"relevant_missed"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"relevantFound": {
"type": "integer",
"minimum": 0
},
"relevantMissed": {
"type": "integer",
"minimum": 0
},
"totalRelevant": {
"type": "integer",
"minimum": 0
},
"recall": {
"type": [
"number",
"null"
]
},
"confidenceInterval": {
"type": "object",
"properties": {
"lower": {
"type": [
"number",
"null"
]
},
"upper": {
"type": [
"number",
"null"
]
},
"method": {
"type": "string",
"const": "wilson"
}
},
"required": [
"lower",
"upper",
"method"
],
"additionalProperties": false
},
"confidenceLevel": {
"type": "number"
},
"formula": {
"type": "string"
}
},
"required": [
"relevantFound",
"relevantMissed",
"totalRelevant",
"recall",
"confidenceInterval",
"confidenceLevel",
"formula"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_tar_cutoffs(scored_document_count, cutoffs)
Compare candidate TAR score or rank cutoffs side by side: for each cutoff, how many docs sit above it, its share of the scored set, and (if responsive counts are given) an estimated precision. Use when deciding where to draw the review/cull line. Aggregate counts only; not legal advice.
Input Schema
{
"type": "object",
"properties": {
"scored_document_count": {
"type": "integer",
"exclusiveMinimum": 0
},
"cutoffs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1
},
"cutoff": {
"type": "number"
},
"document_count": {
"type": "integer",
"minimum": 0
},
"responsive_count": {
"type": "integer",
"minimum": 0
}
},
"required": [
"cutoff",
"document_count"
],
"additionalProperties": false
},
"minItems": 1
}
},
"required": [
"scored_document_count",
"cutoffs"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"scoredDocumentCount": {
"type": "integer",
"exclusiveMinimum": 0
},
"cutoffs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"cutoff": {
"type": "number"
},
"documentCount": {
"type": "integer",
"minimum": 0
},
"shareOfScored": {
"type": "number"
},
"responsiveCount": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
},
"precisionEstimate": {
"type": [
"number",
"null"
]
}
},
"required": [
"label",
"cutoff",
"documentCount",
"shareOfScored",
"responsiveCount",
"precisionEstimate"
],
"additionalProperties": false
}
},
"questions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"scoredDocumentCount",
"cutoffs",
"questions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢validate_sample_design(population_size, sample_size, confidence_level, margin_of_error, sampling_frame, ...)
QC a TAR validation sampling plan: check whether it has the documented elements needed for a defensibility discussion (population, sample size, confidence level, sampling frame/method, randomization, etc.) and flag what is missing or inconsistent. Use to sanity-check a sampling protocol before relying on it. Reviews metadata only — not a legal sufficiency opinion.
Input Schema
{
"type": "object",
"properties": {
"population_size": {
"type": "integer"
},
"sample_size": {
"type": "integer"
},
"confidence_level": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1,
"default": 0.95
},
"margin_of_error": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
"sampling_frame": {
"type": "string",
"minLength": 1
},
"sampling_method": {
"type": "string",
"minLength": 1
},
"random_seed": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"excluded_population_size": {
"type": "integer"
}
},
"required": [
"population_size",
"sample_size"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ready",
"needs_attention",
"blocked"
]
},
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warning",
"critical"
]
},
"detail": {
"type": "string"
}
},
"required": [
"id",
"title",
"severity",
"detail"
],
"additionalProperties": false
}
},
"summary": {
"type": "object",
"properties": {
"populationSize": {
"type": "integer"
},
"sampleSize": {
"type": "integer"
},
"samplingRate": {
"type": [
"number",
"null"
]
},
"confidenceLevel": {
"type": "number"
},
"marginOfError": {
"type": [
"number",
"null"
]
}
},
"required": [
"populationSize",
"sampleSize",
"samplingRate",
"confidenceLevel",
"marginOfError"
],
"additionalProperties": false
}
},
"required": [
"status",
"issues",
"summary"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence