award-compliance-extraction-udm¶
award-compliance-extraction-udm0.1.0noneTags: post-award compliance financial-management federal-awards terms-and-conditions 2-cfr-200 audit udm structured-extraction json
Audience: sponsored-programs-staff, post-award-teams, ingest-pipelines
Manifestations in repo: prompt.md
Extracts the compliance framework and financial-management requirements from a federal award document into a single structured JSON object that drives a consolidated "Award Compliance & Financial Overview" deliverable for post-award setup and monitoring. Produces two main blocks (compliance framework with 10 fields including a normalized compliance calendar; financial management with 10 fields including budget periods and budget categories).
Output contract: schema.json
Contract scope: repo-local, UDM-aligned
Inputs¶
Full text of a federal award notice / agreement / terms-and-conditions document.
Outputs¶
A single JSON object with two main blocks:
compliance_framework—{uniform_guidance_applicability, rtc_applicability, financial_reporting_requirements, progress_reporting_requirements, prior_approval_requirements[], budget_modification_restrictions, property_requirements, deliverable_requirements[], high_risk_conditions[], compliance_calendar[]}financial_management—{total_award_amount, budget_period_amounts[], cost_share_requirements, fa_rate, fa_rate_base, performance_period, budget_categories[], ffr_requirements, audit_requirements (enum), record_retention (enum)}
See schema.json for the authoritative definition and prompt.md for the encoding rules (verbatim quotation of dollar amounts and rates; one-row-per-deadline compliance_calendar; single-period awards return empty budget_period_amounts; the placement contract that keeps procedural prior-approval mechanics in prior-approval-extraction-udm).
Contract scope¶
Repo-local, UDM-aligned. Extensive UDM column bindings preserved verbatim (see prompt.md). The structured shape does not duplicate any shared UDM schema — it mirrors the deliverable produced by the award-compliance-extraction Vandalizer workflow in the ui-insight/ProcessMapping process-mapping corpus.
Relationship to sibling components¶
| Concern | This component | Related |
|---|---|---|
| Award-level compliance framework + financial overview | award-compliance-extraction-udm |
— |
| FFR submission detail (cadence, system, preparation timeline) | (drives ffr_requirements summary only) |
ffr-management-extraction-udm |
| Prior-approval procedural mechanics (threshold/timeline/consequences table) | (drives prior_approval_requirements[] category list only) |
prior-approval-extraction-udm |
| Effort and personnel commitments | — | effort-reporting-extraction-udm |
Triad integration¶
- Evaluation datasets: none yet — planned: NSF cooperative agreement (multi-year, complex compliance calendar); NIH R01 (single-year, RTC-eligible); high-risk recipient award (enhanced monitoring, special conditions).
- Harness notes: canonical manifestation is
prompt.md. Validation surface isschema.json. The companion top-levelworkflows/award-compliance-extractionVandalizer workflow at v0.1.0 implements the contract as two parallel Extraction tasks (compliance framework + financial management) plus a Consolidation Prompt; record both single-call and post-consolidation signals when both are available.
Runtime topology — the Vandalizer workflow¶
The canonical runtime is the award-compliance-extraction workflow shipped at the top level of this repo.
- Step 1 (parallel Extraction) — two Extraction tasks.
extract-compliance-frameworkcovers the regulatory framework;extract-financial-managementcovers the financial structure. - Step 2 (Consolidation Prompt) — assembles the two fragments into the schema-conformant object, normalizes the
audit_requirementsandrecord_retentionenums, and ensurescompliance_calendarconsolidates deadlines from across both fragments.
Manifestations¶
prompt.md— canonical, LLM-agnostic prompt
Evals¶
See evals/ for reference inputs and known-good outputs.
Provenance¶
Authored 2026-04-30 against the award-compliance-extraction (Workflow_ID: WF-AWARD-COMPLIANCE-EXTRACTION) process-mapping workflow in ui-insight/ProcessMapping at commit b7176b0c913833a205efdb5e4ba00c17ff88af0f.
Contract scope¶
-
Output format:
json_object -
Contract scope:
shared_udm_semantics_repo_local_schema -
Validation surfaces:
json_schema -
Schema entrypoints:
# -
Notes: Repo-local post-award compliance and financial-overview contract. Two main blocks (compliance_framework with a normalized compliance calendar; financial_management with budget periods and budget categories). Extensive UDM bindings across Award, AwardBudget, AwardBudgetPeriod, AwardDeliverable, CostShare, IndirectRate, Modification, and Terms.
-
Machine-readable catalog entry:
component_catalog.json
Triad integration¶
-
UDM alignment:
shared_udm_semantics_repo_local_schema— Broad UDM alignment via leaf-field column bindings (see prompt.md). The two-block shape itself is repo-local. -
Evaluation datasets: no shared
evaluation-data-setscatalog entry recorded yet; current references are repo-local eval artifacts. -
Harness notes: Validate JSON outputs against schema.json. Canonical single-call invocation surface is prompt.md. The companion top-level workflows/award-compliance-extraction Vandalizer workflow at v0.1.0 implements the contract as two parallel Extraction tasks (compliance framework + financial management) plus a Consolidation Prompt that merges/dedupes compliance_calendar entries across both fragments and normalizes the audit_requirements and record_retention enums.
-
Related component:
ffr-management-extraction-udm(drilldown_target) — financial_management.ffr_requirements is a summary; ffr-management-extraction-udm is the deeper drilldown. -
Related component:
prior-approval-extraction-udm(drilldown_target) — compliance_framework.prior_approval_requirements is a category list; prior-approval-extraction-udm is the deeper drilldown into the procedural mechanics.
Prompt body¶
Source: prompt.md.
Show prompt
Award Compliance & Financial Overview Extraction — UDM JSON¶
Purpose: Extract the compliance framework and financial-management requirements from a federal award document into a single structured JSON object that drives a consolidated "Award Compliance & Financial Overview" deliverable for post-award setup and monitoring.
Expected input: Full text of a federal award notice / agreement / terms-and-conditions document.
Expected output: A single JSON object that validates against
schema.json. No prose, no markdown outside the JSON.
When to use this contract¶
This is the post-award setup cut of a federal award. It produces two main blocks — compliance_framework (10 fields covering Uniform Guidance applicability, RTC applicability, financial reporting, progress reporting, prior approvals, budget modification, property, deliverables, high-risk conditions, and a normalized compliance calendar) and financial_management (10 fields covering total award amount, budget periods, cost-share, F&A rate and base, performance period, budget categories, FFR cadence, audit requirements, and record retention).
UDM-aligned: total_award_amount → Award.Current_Total_Funded; budget_period_amounts → AwardBudgetPeriod; cost_share_requirements → CostShare.Committed_Amount; fa_rate → IndirectRate.Rate_Percentage; fa_rate_base → IndirectRate.Base_Type; performance_period → Award.Original_Start_Date; budget_categories → AwardBudget; ffr_requirements and financial_reporting_requirements → Terms.Reporting_Requirements; progress_reporting_requirements and deliverable_requirements → AwardDeliverable; prior_approval_requirements → Modification.Requires_Prior_Approval; property_requirements → Terms.Property_Requirements; record_retention → Terms.Record_Retention_Years; high_risk_conditions → Terms.Special_Conditions.
This component does not cover the FFR submission cadence in detail — that lives in ffr-management-extraction-udm. It does not cover the prior-approval procedures table — that lives in prior-approval-extraction-udm.
Prompt¶
You are extracting the compliance framework and financial-management requirements from a federal award document. Capture both the regulatory framework that governs the award (Uniform Guidance, RTC, agency policy, high-risk conditions) and the financial management structure (award amounts, budget structure, cost share, F&A, FFR cadence, audit thresholds).
Be 100% accurate. Numeric fields and string fields have different rendering rules — the contract is the schema, not the surface form:
-
Schema fields typed as
number(total_award_amount,budget_period_amounts[].amount,budget_categories[].approved_amount) must be emitted as JSON numbers — no quotes, no currency symbol, no thousand-separators.$1,234,567.89in the document →1234567.89in JSON. Use the document's exact value; do not round or truncate. -
Schema fields typed as
string(fa_rate,fa_rate_base,cost_share_requirements,performance_period, etc.) must be quoted verbatim — preserve the document's exact rendering including currency symbols, percent signs, and date format.
When a field is not specified, set it to null (or — for arrays/tables — return an empty array). Do not invent values.
Search the entire document for content in or near sections titled Terms and Conditions, Special Terms and Conditions, Administrative Requirements, Programmatic Requirements, High Risk Terms, Federal Requirements, Award Amount, Budget Information, Financial Management, Cost Sharing/Matching, Indirect Costs, or Financial Reporting. Keywords to follow: condition, requirement, must, shall, comply, report, submit, approve, prior, deadline, CFR, federal, audit, monitor, budget, cost, financial, funding, allowable, FFR, PMS, drawdown, match, share, indirect, record.
Return a single JSON object that validates against schema.json with these top-level keys:
-
award_number— federal award identification number (FAIN). String ornull. -
compliance_framework— object covering the regulatory framework: -
uniform_guidance_applicability— string ornull. -
rtc_applicability— string ornull. -
financial_reporting_requirements— string. Required. -
progress_reporting_requirements— string ornull. -
prior_approval_requirements— array of strings categorized by approval type. Empty when not applicable. -
budget_modification_restrictions— string ornull. -
property_requirements— string ornull. -
deliverable_requirements— array of strings. Empty when none. -
high_risk_conditions— array of strings naming each high-risk condition. Empty when not high-risk. -
compliance_calendar— array of{requirement_type, deadline, responsible_party, consequences}objects. Required, empty array when no calendar can be derived. -
financial_management— object covering the financial structure: -
total_award_amount— number (decimal). Required. -
budget_period_amounts— array of{period, start_date, end_date, amount}objects. Empty when single-period. -
cost_share_requirements— string ornull. -
fa_rate— string with rate percentage as stated (e.g.,"42.5%") ornull. -
fa_rate_base— string (e.g.,"MTDC","TDC") ornull. -
performance_period— string with date range (e.g.,"2026-07-01 to 2031-06-30"). Required. -
budget_categories— array of{category_name, approved_amount, restrictions, prior_approval_required}objects. -
ffr_requirements— string ornull. -
audit_requirements— one of"Single Audit","A-133","Program-Specific Audit","Not applicable", ornull. -
record_retention— one of"3 years","5 years","7 years","Per sponsor requirements", ornull.
Encoding rules¶
-
compliance_calendaris the consolidated deadline view. Every requirement that has a recurring or fixed deadline (FFR, progress reports, equipment inventory, audit submission, RTC milestones) becomes one row. Pull from across the document, not just the calendar section. -
prior_approval_requirementsis a categorized list, not a table. This component exposes only the categories (e.g.,"Equipment over $5,000 requires PO approval"); the procedural mechanics (threshold / timeline / consequences) belong inprior-approval-extraction-udm. -
budget_period_amountscovers multi-year awards. For single-period awards, return an empty array; the total still lives intotal_award_amount. -
high_risk_conditionsis for designations the document calls out — enhanced monitoring, additional reporting, specific restrictions tied to the recipient's risk classification. -
fa_rateandfa_rate_baseare two distinct strings."42.5% MTDC"is two fields:fa_rate: "42.5%"(string, percent sign preserved),fa_rate_base: "MTDC". -
total_award_amountis a JSON number, not a quoted string.budget_period_amounts[].amountandbudget_categories[].approved_amountare also JSON numbers. The sum ofbudget_period_amounts[].amountmust reconcile tototal_award_amount(downstream cross-field check CFR-01). -
Do not output any text outside the single JSON object.
Output¶
A single JSON object. No surrounding markdown.
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-compliance-extraction-udm/schema.json",
"title": "Award Compliance & Financial Overview Extraction \u2014 UDM Output",
"description": "JSON contract for the compliance framework and financial-management requirements distilled from a federal award document. Two main blocks (compliance_framework, financial_management) drive a consolidated post-award setup and monitoring deliverable. UDM-aligned to Award, AwardBudget, AwardBudgetPeriod, AwardDeliverable, CostShare, IndirectRate, Modification, and Terms.",
"version": "0.1.0",
"type": "object",
"additionalProperties": false,
"required": [
"compliance_framework",
"financial_management"
],
"properties": {
"award_number": {
"type": [
"string",
"null"
],
"description": "Federal Award Identification Number. Resolves to UDM Award.Federal_Award_ID."
},
"compliance_framework": {
"type": "object",
"additionalProperties": false,
"required": [
"financial_reporting_requirements",
"compliance_calendar"
],
"properties": {
"uniform_guidance_applicability": {
"type": [
"string",
"null"
],
"description": "2 CFR 200 Uniform Guidance applicability details."
},
"rtc_applicability": {
"type": [
"string",
"null"
],
"description": "Research Terms and Conditions applicability."
},
"financial_reporting_requirements": {
"type": "string",
"minLength": 1,
"description": "Financial reporting frequency, deadlines, and systems. Resolves to UDM Terms.Reporting_Requirements."
},
"progress_reporting_requirements": {
"type": [
"string",
"null"
],
"description": "Progress report type, frequency, and format. Resolves to UDM AwardDeliverable."
},
"prior_approval_requirements": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Categorized list of prior-approval requirements. Resolves to UDM Modification.Requires_Prior_Approval. Procedural mechanics live in prior-approval-extraction-udm."
},
"budget_modification_restrictions": {
"type": [
"string",
"null"
],
"description": "Budget modification restrictions and re-budgeting rules."
},
"property_requirements": {
"type": [
"string",
"null"
],
"description": "Equipment and property management requirements. Resolves to UDM Terms.Property_Requirements."
},
"deliverable_requirements": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Deliverable requirements and deadlines. Resolves to UDM AwardDeliverable."
},
"high_risk_conditions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Enhanced monitoring, additional reporting, or specific restrictions tied to the recipient's risk classification. Resolves to UDM Terms.Special_Conditions."
},
"compliance_calendar": {
"type": "array",
"description": "Consolidated calendar of compliance requirements with deadlines. Empty array when no calendar can be derived.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"requirement_type",
"deadline"
],
"properties": {
"requirement_type": {
"type": "string",
"minLength": 1
},
"deadline": {
"type": "string",
"minLength": 1
},
"responsible_party": {
"type": [
"string",
"null"
]
},
"consequences": {
"type": [
"string",
"null"
]
}
}
}
}
}
},
"financial_management": {
"type": "object",
"additionalProperties": false,
"required": [
"total_award_amount",
"performance_period",
"budget_categories"
],
"properties": {
"total_award_amount": {
"type": "number",
"description": "Total award amount as printed on the award. Resolves to UDM Award.Current_Total_Funded."
},
"budget_period_amounts": {
"type": "array",
"description": "Per-period budget amounts for multi-year awards. Empty array for single-period awards. Sum should reconcile to total_award_amount (downstream CFR-01). Resolves to UDM AwardBudgetPeriod.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"period",
"amount"
],
"properties": {
"period": {
"type": "string",
"minLength": 1
},
"start_date": {
"type": [
"string",
"null"
]
},
"end_date": {
"type": [
"string",
"null"
]
},
"amount": {
"type": "number"
}
}
}
},
"cost_share_requirements": {
"type": [
"string",
"null"
],
"description": "Cost sharing/matching requirements (amount and type). Resolves to UDM CostShare.Committed_Amount."
},
"fa_rate": {
"type": [
"string",
"null"
],
"description": "Indirect cost rate percentage as stated (e.g., '42.5%'). Resolves to UDM IndirectRate.Rate_Percentage."
},
"fa_rate_base": {
"type": [
"string",
"null"
],
"description": "Base for F&A rate calculation (e.g., 'MTDC', 'TDC', 'Salary & Wages'). Resolves to UDM IndirectRate.Base_Type."
},
"performance_period": {
"type": "string",
"minLength": 1,
"description": "Period of performance dates as stated (e.g., '2026-07-01 to 2031-06-30')."
},
"budget_categories": {
"type": "array",
"description": "Budget categories with approved amounts, restrictions, and prior-approval flags. Resolves to UDM AwardBudget.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"category_name",
"approved_amount"
],
"properties": {
"category_name": {
"type": "string",
"minLength": 1
},
"approved_amount": {
"type": "number"
},
"restrictions": {
"type": [
"string",
"null"
]
},
"prior_approval_required": {
"type": [
"boolean",
"null"
]
}
}
}
},
"ffr_requirements": {
"type": [
"string",
"null"
],
"description": "Federal Financial Report frequency and deadlines. Resolves to UDM Terms.Reporting_Requirements."
},
"audit_requirements": {
"type": [
"string",
"null"
],
"enum": [
"Single Audit",
"A-133",
"Program-Specific Audit",
"Not applicable",
null
],
"description": "Single Audit thresholds and requirements."
},
"record_retention": {
"type": [
"string",
"null"
],
"enum": [
"3 years",
"5 years",
"7 years",
"Per sponsor requirements",
null
],
"description": "Record retention requirements. Resolves to UDM Terms.Record_Retention_Years."
}
}
}
}
}
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-04-30¶
- Initial experimental release.
- Schema derived from the
award-compliance-extractionv2 Vandalizer workflow inui-insight/ProcessMapping(two parallel Extraction tasks + Formatting task; 20 source fields). - Two-block shape:
compliance_framework(10 keys) +financial_management(10 keys). compliance_calendarrealized as an array of{requirement_type, deadline, responsible_party, consequences}objects (rather than the sourceTablefield) so per-deadline ownership and consequences are attached to the right entry.budget_period_amountsrealized as an array of{period, start_date, end_date, amount}objects (rather than the sourceTablefield) so the cross-field reconciliation rule (CFR-01: sum should equal total_award_amount) can be checked structurally.budget_categoriesrealized as an array of{category_name, approved_amount, restrictions, prior_approval_required}objects so per-category restrictions and prior-approval flags are attached to the right category.audit_requirementsenum matches the sourceAudit_RequirementsEnum_Values (Single Audit,A-133,Program-Specific Audit,Not applicable).record_retentionenum matches the sourceRecord_RetentionEnum_Values (3 years,5 years,7 years,Per sponsor requirements).- Cross-field rule from the source workflow (CFR-01: sum(budget_period_amounts) == total_award_amount) is encoded by the schema shape and validation_plan rather than as a constraint.
- UDM column bindings preserved verbatim (see prompt.md):
total_award_amount→Award.Current_Total_Funded;budget_period_amounts→AwardBudgetPeriod;cost_share_requirements→CostShare.Committed_Amount;fa_rate→IndirectRate.Rate_Percentage;fa_rate_base→IndirectRate.Base_Type;performance_period→Award.Original_Start_Date;budget_categories→AwardBudget;ffr_requirementsandfinancial_reporting_requirements→Terms.Reporting_Requirements;progress_reporting_requirementsanddeliverable_requirements→AwardDeliverable;prior_approval_requirements→Modification.Requires_Prior_Approval;property_requirements→Terms.Property_Requirements;record_retention→Terms.Record_Retention_Years;high_risk_conditions→Terms.Special_Conditions. - No eval cases yet — status
experimentaluntil at least one golden extraction is added underevals/cases/.