Skip to content

award-compliance-extraction-udm

Slugaward-compliance-extraction-udm
Version0.1.0
Statusexperimental
Last fully evaluatednone
Eval stateno validated eval cases
Categoryextraction
Domainresearch-administration
Manifestationsprompt
Created2026-04-30
Updated2026-04-30

Tags: 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 is schema.json. 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; 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-framework covers the regulatory framework; extract-financial-management covers the financial structure.
  • Step 2 (Consolidation Prompt) — assembles the two fragments into the schema-conformant object, normalizes the audit_requirements and record_retention enums, and ensures compliance_calendar consolidates 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-sets catalog 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_amountAward.Current_Total_Funded; budget_period_amountsAwardBudgetPeriod; cost_share_requirementsCostShare.Committed_Amount; fa_rateIndirectRate.Rate_Percentage; fa_rate_baseIndirectRate.Base_Type; performance_periodAward.Original_Start_Date; budget_categoriesAwardBudget; ffr_requirements and financial_reporting_requirementsTerms.Reporting_Requirements; progress_reporting_requirements and deliverable_requirementsAwardDeliverable; prior_approval_requirementsModification.Requires_Prior_Approval; property_requirementsTerms.Property_Requirements; record_retentionTerms.Record_Retention_Years; high_risk_conditionsTerms.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.89 in the document → 1234567.89 in 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 or null.

  • compliance_framework — object covering the regulatory framework:

  • uniform_guidance_applicability — string or null.

  • rtc_applicability — string or null.

  • financial_reporting_requirements — string. Required.

  • progress_reporting_requirements — string or null.

  • prior_approval_requirements — array of strings categorized by approval type. Empty when not applicable.

  • budget_modification_restrictions — string or null.

  • property_requirements — string or null.

  • 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 or null.

  • fa_rate — string with rate percentage as stated (e.g., "42.5%") or null.

  • fa_rate_base — string (e.g., "MTDC", "TDC") or null.

  • 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 or null.

  • audit_requirements — one of "Single Audit", "A-133", "Program-Specific Audit", "Not applicable", or null.

  • record_retention — one of "3 years", "5 years", "7 years", "Per sponsor requirements", or null.

Encoding rules

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

  2. prior_approval_requirements is 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 in prior-approval-extraction-udm.

  3. budget_period_amounts covers multi-year awards. For single-period awards, return an empty array; the total still lives in total_award_amount.

  4. high_risk_conditions is for designations the document calls out — enhanced monitoring, additional reporting, specific restrictions tied to the recipient's risk classification.

  5. fa_rate and fa_rate_base are two distinct strings. "42.5% MTDC" is two fields: fa_rate: "42.5%" (string, percent sign preserved), fa_rate_base: "MTDC".

  6. total_award_amount is a JSON number, not a quoted string. budget_period_amounts[].amount and budget_categories[].approved_amount are also JSON numbers. The sum of budget_period_amounts[].amount must reconcile to total_award_amount (downstream cross-field check CFR-01).

  7. 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-extraction v2 Vandalizer workflow in ui-insight/ProcessMapping (two parallel Extraction tasks + Formatting task; 20 source fields).
  • Two-block shape: compliance_framework (10 keys) + financial_management (10 keys).
  • compliance_calendar realized as an array of {requirement_type, deadline, responsible_party, consequences} objects (rather than the source Table field) so per-deadline ownership and consequences are attached to the right entry.
  • budget_period_amounts realized as an array of {period, start_date, end_date, amount} objects (rather than the source Table field) so the cross-field reconciliation rule (CFR-01: sum should equal total_award_amount) can be checked structurally.
  • budget_categories realized 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_requirements enum matches the source Audit_Requirements Enum_Values (Single Audit, A-133, Program-Specific Audit, Not applicable).
  • record_retention enum matches the source Record_Retention Enum_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_amountAward.Current_Total_Funded; budget_period_amountsAwardBudgetPeriod; cost_share_requirementsCostShare.Committed_Amount; fa_rateIndirectRate.Rate_Percentage; fa_rate_baseIndirectRate.Base_Type; performance_periodAward.Original_Start_Date; budget_categoriesAwardBudget; ffr_requirements and financial_reporting_requirementsTerms.Reporting_Requirements; progress_reporting_requirements and deliverable_requirementsAwardDeliverable; prior_approval_requirementsModification.Requires_Prior_Approval; property_requirementsTerms.Property_Requirements; record_retentionTerms.Record_Retention_Years; high_risk_conditionsTerms.Special_Conditions.
  • No eval cases yet — status experimental until at least one golden extraction is added under evals/cases/.