award-allowability-terms-extraction¶
award-allowability-terms-extraction0.1.0noneTags: cost-allowability post-award award-terms extraction federal-grants research-administration
Audience: post-award-staff, sponsored-programs-staff, grant-accountants
Manifestations in repo: prompt.md
Extracts the federal award terms that govern cost allowability — period of performance, approved budget categories, caps and exclusions, sponsor prior-approval triggers, indirect-cost treatment, and institutional compliance-approval requirements — into one structured record. It is an input-normalization step of the federal cost-allowability analysis workflow.
Output contract: schema.json
Contract scope: repo-local
Inputs¶
A federal award notice, agreement, or terms-and-conditions document, as pasted text, an attachment, or a URL.
Outputs¶
A single JSON object — see schema.json — capturing the award-side constraints on allowability. Missing scalars are null; missing lists are empty arrays. The component records terms only; it does not review an expense.
Contract scope¶
Repo-local. The record is a prompt-library normalization contract consumed by the downstream cost-allowability check components. It deliberately separates prior_approval_triggers (federal sponsor prior approval, 2 CFR 200.407-style) from compliance_approval_requirements (institutional IRB / IACUC / IBC approvals), because the two are distinct regulatory regimes. It is not a shared AI4RA-UDM schema.
Triad integration¶
- Evaluation datasets: none yet — repo-local synthetic coverage planned.
- Harness notes: canonical manifestation is
prompt.md; validation surface isschema.json. Invoked as a Step 1 task of thecost-allowability-analysisworkflow. - Shared UDM relationship: aligned to sponsored-project award and budget semantics; does not define or depend on a shared UDM schema.
Manifestations¶
prompt.md— canonical, LLM-agnostic prompt
Evals¶
See evals/.
Provenance¶
Created 2026-05-21 as an input-normalization component of the federal cost-allowability analysis component set.
Contract scope¶
-
Output format:
json_object -
Contract scope:
repo_local_normalization_contract -
Validation surfaces:
json_schema -
Schema entrypoints:
# -
Notes: Repo-local record of the federal award terms that govern cost allowability — period of performance, approved budget, caps and exclusions, federal prior-approval triggers, indirect-cost treatment, and institutional compliance-approval requirements. Input-normalization contract for the cost-allowability analysis workflow; not a shared AI4RA-UDM schema.
-
Machine-readable catalog entry:
component_catalog.json
Triad integration¶
-
UDM alignment:
repo_local_normalization_contract— Aligns to sponsored-project award and budget semantics. It deliberately separates federal prior-approval triggers from institutional IRB / IACUC / IBC compliance-approval requirements; the record is a prompt-library normalization contract, not a shared UDM schema. -
Evaluation datasets: no shared
evaluation-data-setscatalog entry recorded yet; current references are repo-local eval artifacts. -
Harness notes: Validate JSON output against schema.json. Canonical invocation surface is prompt.md. Invoked as a Step 1 task of the workflows/cost-allowability-analysis Vandalizer workflow.
-
Related component:
cost-award-terms-conformance-check(provides_input_to) — Supplies the caps, exclusions, and restrictions the conformance check evaluates.
Prompt body¶
Source: prompt.md.
Show prompt
Award Allowability Terms Extraction¶
Purpose: Extract the award terms that govern whether a cost is allowable — period of performance, approved budget, caps and exclusions, prior-approval triggers, indirect-cost treatment, and compliance-approval requirements.
Expected input: A federal award notice, agreement, or terms-and-conditions document.
Expected output: One JSON object conforming to
schema.json.
This component is an input-normalization step of the federal cost-allowability analysis workflow. It captures only the award-side constraints; it does not review any expense.
Prompt¶
You are a research-administration award-terms extraction assistant. Read the supplied federal award document and emit one structured record of the terms that bear on cost allowability.
Return only a single JSON object. No prose, Markdown, comments, or code fences.
What to extract¶
-
award_number— the Federal Award Identification Number as printed. -
sponsor— the awarding federal agency or pass-through entity. -
recipient— the recipient institution. -
period_of_performance— an object withstart_dateandend_dateas the document states them. -
pre_award_cost_window— any explicitly authorized pre-award spending window (e.g., "90 days before the start date"); null when none is stated. -
applicable_cost_principles— the cost principles the award invokes (e.g., "2 CFR 200 Subpart E (Uniform Guidance)"); null when not stated. -
approved_budget_categories— one row per approved budget category, each withcategory,approved_amount(a JSON number or null), andrestrictions(string or null). -
caps_and_exclusions— explicit dollar caps, percentage limits, prohibited cost types, or use restrictions the award imposes. One concise string per restriction. Empty array when none. -
prior_approval_triggers— actions the award says require federal sponsor prior approval before the cost may be incurred — e.g., rebudgeting above a threshold, scope change, foreign travel, equipment not in the approved budget. One string per trigger. Empty array when none. -
indirect_cost— an object withrate(string, e.g. "54%"),base(string, e.g. "MTDC"), andmtdc_exclusions(array of cost types the base excludes). Use null and an empty array for parts not stated. -
compliance_approval_requirements— award terms that condition spending or performance on an institutional regulatory approval being in place: human-subjects (IRB), animal care (IACUC), biosafety (IBC), or similar. One string per requirement, quoting the award's language. Empty array when none. -
special_conditions— high-risk conditions, enhanced monitoring, or other special terms. Empty array when none. -
referenced_documents— governing documents the award incorporates by reference (Research Terms and Conditions, agency policy statements, grants policy statements). Empty array when none.
Rules¶
-
No fabrication. Quote the document. Use null for missing scalars and empty arrays for missing lists. Never invent a cap, a rate, a date, or a prior-approval rule.
-
Distinguish federal prior approval from institutional compliance approval.
prior_approval_triggersis for federal sponsor prior approval (2 CFR 200.407-style).compliance_approval_requirementsis for institutional protocol approvals (IRB / IACUC / IBC). Do not merge the two. -
Verbatim where it matters. Quote dollar caps, rates, dates, and restriction language as written.
-
Stay neutral. Record terms; do not evaluate any expense against them.
Produce the JSON object now.
Output schema¶
Source: schema.json.
Show schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/AI4RA/prompt-library/components/award-allowability-terms-extraction/schema.json",
"title": "Award Allowability Terms Extraction \u2014 Output",
"description": "Structured record of the federal award terms that govern cost allowability: period of performance, approved budget, caps and exclusions, federal prior-approval triggers, indirect-cost treatment, and institutional compliance-approval requirements. Input-normalization contract for the federal cost-allowability analysis workflow.",
"version": "0.1.0",
"type": "object",
"additionalProperties": false,
"required": [
"award_number",
"period_of_performance",
"applicable_cost_principles",
"approved_budget_categories",
"caps_and_exclusions",
"prior_approval_triggers",
"compliance_approval_requirements"
],
"properties": {
"award_number": {
"type": [
"string",
"null"
],
"description": "Federal Award Identification Number as printed on the award."
},
"sponsor": {
"type": [
"string",
"null"
],
"description": "Awarding federal agency or pass-through entity."
},
"recipient": {
"type": [
"string",
"null"
],
"description": "Recipient institution."
},
"period_of_performance": {
"type": "object",
"additionalProperties": false,
"description": "Award period of performance.",
"required": [
"start_date",
"end_date"
],
"properties": {
"start_date": {
"type": [
"string",
"null"
],
"description": "Period start date as stated."
},
"end_date": {
"type": [
"string",
"null"
],
"description": "Period end date as stated."
}
}
},
"pre_award_cost_window": {
"type": [
"string",
"null"
],
"description": "Authorized pre-award spending window, when stated."
},
"applicable_cost_principles": {
"type": [
"string",
"null"
],
"description": "Cost principles the award invokes (e.g., 2 CFR 200 Subpart E)."
},
"approved_budget_categories": {
"type": "array",
"description": "Approved budget categories. Empty array when the award does not enumerate them.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"category"
],
"properties": {
"category": {
"type": "string",
"minLength": 1,
"description": "Budget category name as stated."
},
"approved_amount": {
"type": [
"number",
"null"
],
"description": "Approved amount as a JSON number; null when not stated."
},
"restrictions": {
"type": [
"string",
"null"
],
"description": "Category-specific restriction language, when stated."
}
}
}
},
"caps_and_exclusions": {
"type": "array",
"description": "Explicit dollar caps, percentage limits, prohibited cost types, or use restrictions. Empty array when none.",
"items": {
"type": "string",
"minLength": 1
}
},
"prior_approval_triggers": {
"type": "array",
"description": "Actions requiring federal sponsor prior approval before a cost is incurred. Empty array when none.",
"items": {
"type": "string",
"minLength": 1
}
},
"indirect_cost": {
"type": "object",
"additionalProperties": false,
"description": "Indirect-cost treatment.",
"required": [
"rate",
"base",
"mtdc_exclusions"
],
"properties": {
"rate": {
"type": [
"string",
"null"
],
"description": "Indirect-cost rate as stated (e.g., '54%')."
},
"base": {
"type": [
"string",
"null"
],
"description": "Indirect-cost base as stated (e.g., 'MTDC')."
},
"mtdc_exclusions": {
"type": "array",
"description": "Cost types the base excludes. Empty array when not stated.",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"compliance_approval_requirements": {
"type": "array",
"description": "Award terms conditioning spending or performance on an institutional regulatory approval (IRB, IACUC, IBC, or similar). Empty array when none.",
"items": {
"type": "string",
"minLength": 1
}
},
"special_conditions": {
"type": "array",
"description": "High-risk conditions, enhanced monitoring, or other special terms. Empty array when none.",
"items": {
"type": "string",
"minLength": 1
}
},
"referenced_documents": {
"type": "array",
"description": "Governing documents incorporated by reference. Empty array when none.",
"items": {
"type": "string",
"minLength": 1
}
}
}
}
Changelog¶
Source: CHANGELOG.md.
All notable changes to this component. Versions follow semver: MAJOR for output-contract breaks, MINOR for backward-compatible additions, PATCH for wording or clarity.
[0.1.0] — 2026-05-21¶
- Initial experimental release.
- Structured award-terms record covering period of performance, approved budget categories, caps and exclusions, federal prior-approval triggers, indirect-cost treatment, compliance-approval requirements, and special conditions.
prior_approval_triggers(federal sponsor prior approval) andcompliance_approval_requirements(institutional IRB / IACUC / IBC approvals) are kept as separate fields because they are distinct regulatory regimes.- No eval cases yet — status
experimentaluntil at least one golden extraction is added underevals/cases/.