Skip to content

award-allowability-terms-extraction

Slugaward-allowability-terms-extraction
Version0.1.0
Statusexperimental
Last fully evaluatednone
Eval stateno validated eval cases
Categoryextraction
Domainresearch-administration
Manifestationsprompt
Created2026-05-21
Updated2026-05-21

Tags: 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 is schema.json. Invoked as a Step 1 task of the cost-allowability-analysis workflow.
  • 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-sets catalog 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 with start_date and end_date as 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 with category, approved_amount (a JSON number or null), and restrictions (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 with rate (string, e.g. "54%"), base (string, e.g. "MTDC"), and mtdc_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

  1. 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.

  2. Distinguish federal prior approval from institutional compliance approval. prior_approval_triggers is for federal sponsor prior approval (2 CFR 200.407-style). compliance_approval_requirements is for institutional protocol approvals (IRB / IACUC / IBC). Do not merge the two.

  3. Verbatim where it matters. Quote dollar caps, rates, dates, and restriction language as written.

  4. 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) and compliance_approval_requirements (institutional IRB / IACUC / IBC approvals) are kept as separate fields because they are distinct regulatory regimes.
  • No eval cases yet — status experimental until at least one golden extraction is added under evals/cases/.