Skip to content

effort-reporting-extraction-udm

Slugeffort-reporting-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: effort-reporting post-award certification personnel cost-share 2-cfr-200 compliance udm structured-extraction json

Audience: sponsored-programs-staff, post-award-teams, ingest-pipelines

Manifestations in repo: prompt.md

Extracts effort-reporting and personnel-compliance requirements from a federal award document into a structured JSON object that drives an "Effort Compliance Brief" for post-award compliance tracking. Captures the reporting cadence, certification method (per 2 CFR 200.430(i)), PI commitments, per-person key-personnel commitments, cost-shared effort, governing regulation, record-retention requirement, and referenced governing documents.

Output contract: schema.json Contract scope: repo-local, UDM-aligned

Inputs

Full text of a federal award notice / agreement / terms-and-conditions document — pasted text, attached PDF/DOCX, or URL. Optional knowledge-base context from 2 CFR 200 (Uniform Guidance) or the Research Terms and Conditions is injected by the runtime workflow but not required by the prompt itself.

Outputs

A single JSON object with award-identifying scalars (award_number, pi_name, project_title), an effort-reporting cadence (reporting_frequency enum, certification_deadline, certification_method enum), PI commitments (pi_committed_effort, pi_person_months), a per-person key_personnel_commitments table, cost_shared_effort, governing_regulation, record_retention, and a referenced_documents list.

See schema.json for the authoritative definition and prompt.md for the encoding rules (verbatim effort-phrasing quotation, one-row-per-individual rule, the distinction between governing_regulation and referenced_documents).

Contract scope

Repo-local, UDM-aligned. Selected leaf fields reference UDM columns: award_numberAward.Award_Number; pi_namePersonnel.First_Name/Last_Name; project_titleAward.Award_Title; certification_methodEffort.Certification_Method; pi_committed_effortEffort.Committed_Percent; pi_person_monthsEffort.Committed_Person_Months; per-row key_personnel_commitmentsEffort + ProjectRole; cost_shared_effortCostShare.Committed_Amount; record_retentionTerms.Record_Retention_Years. The structured shape does not duplicate any shared UDM schema — it is repo-local to this component and mirrors the deliverable produced by the effort-reporting-extraction Vandalizer workflow in the ui-insight/ProcessMapping process-mapping corpus.

Triad integration

  • Evaluation datasets: none yet — planned: NIH R01 with explicit summer-month commitment; NSF award with cost-shared academic-year effort; HHS-funded award using After-the-Fact certification.
  • Harness notes: canonical manifestation is prompt.md. Validation surface is schema.json. The companion top-level workflows/effort-reporting-extraction Vandalizer workflow at v0.1.0 implements the contract as a single Extraction task plus a Consolidation Prompt; record both single-call and post-consolidation signals when both are available.
  • Shared UDM relationship: aligned, not owning. UDM column bindings preserved verbatim; the shape itself is repo-local.

Runtime topology — the Vandalizer workflow

The canonical runtime is the effort-reporting-extraction workflow shipped at the top level of this repo.

  • Step 1 (Extraction) — one Extraction task with an embedded SearchSet whose item titles mirror this component's schema field names. reporting_frequency and certification_method carry their respective enums.
  • Step 2 (Consolidation Prompt) — assembles the extraction fragment into the schema-conformant object, normalizes the enums, and ensures the PI's row in key_personnel_commitments mirrors the pi_committed_effort and pi_person_months scalars.

Manifestations

  • prompt.md — canonical, LLM-agnostic prompt

Evals

See evals/ for reference inputs and known-good outputs.

Provenance

Authored 2026-04-30 against the effort-reporting-extraction (Workflow_ID: WF-EFFORT-REPORTING-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 effort-reporting and personnel-compliance contract. Captures the certification cadence, certification method (per 2 CFR 200.430(i)), PI commitments, per-person key-personnel commitments table, cost-shared effort, governing regulation, record retention, and referenced governing documents.

  • Machine-readable catalog entry: component_catalog.json

Triad integration

  • UDM alignment: shared_udm_semantics_repo_local_schema — award_number / pi_name / project_title resolve to UDM Award and Personnel; certification_method, pi_committed_effort, pi_person_months, and per-row key_personnel_commitments resolve to UDM Effort + ProjectRole; cost_shared_effort resolves to CostShare.Committed_Amount; record_retention resolves to Terms.Record_Retention_Years.

  • 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/effort-reporting-extraction Vandalizer workflow at v0.1.0 implements the same contract as a single Extraction task plus a Consolidation Prompt that normalizes the reporting_frequency and certification_method enums and enforces the PI-mirror rule between pi_committed_effort, pi_person_months, and the PI's row in key_personnel_commitments.

Prompt body

Source: prompt.md.

Show prompt

Effort Reporting Compliance Extraction — UDM JSON

Purpose: Extract effort-reporting and personnel-compliance requirements from a federal award document into a structured JSON object that drives an "Effort Compliance Brief" for post-award compliance tracking.

Expected input: Full text of a federal award notice / agreement / terms-and-conditions document, optionally with 2 CFR 200 (Uniform Guidance) or Research Terms and Conditions as knowledge-base context.

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 effort-and-personnel cut of a federal award. It produces award-identifying scalars (award_number, pi_name, project_title), an effort-reporting cadence (reporting_frequency, certification_deadline, certification_method), PI-specific commitments (pi_committed_effort, pi_person_months), a normalized personnel commitments table with cost-shared effort, and a list of referenced governing documents (RTCs, CA-FATC, 2 CFR 200.430).

UDM-aligned: award_numberAward.Award_Number; pi_namePersonnel.First_Name/Last_Name; project_titleAward.Award_Title; certification_methodEffort.Certification_Method; pi_committed_effortEffort.Committed_Percent; pi_person_monthsEffort.Committed_Person_Months; per-row key_personnel_commitmentsEffort; cost_shared_effortCostShare.Committed_Amount; record_retentionTerms.Record_Retention_Years.

This component does not cover the broader compliance framework or the FFR submission cadence — those live in award-compliance-extraction-udm and ffr-management-extraction-udm.


Prompt

You are extracting effort-reporting and personnel-compliance requirements from a federal award document. Capture the cadence and method of effort certification, the PI's committed effort, all key-personnel commitments, any cost-shared effort, the governing regulation (typically 2 CFR 200.430), the record-retention requirement, and the list of referenced governing documents.

Be 100% accurate. Quote effort percentages, person-months, and day-counts verbatim ("2.0 summer months", "25%", "6 years"); never paraphrase. When a field is not specified, set it to null or — for arrays — return an empty array. Do not invent values.

Search the entire document for content in or near sections titled Effort Reporting, Time and Effort, Personnel, Key Personnel, Budget Justification, or Research Terms and Conditions. Keywords to follow: effort reporting, time and effort, personnel, key personnel, salary, certification, 2 CFR 200.430, cost share effort, person-months, summer months, FATC, RTC, principal investigator, co-principal investigator.

Return a single JSON object that validates against schema.json with these top-level keys:

  • award_number — federal award identification number. String. Required.

  • pi_name — principal investigator full name. String. Required.

  • project_title — full project title as stated in the award. String. Required.

  • reporting_frequency — one of "Monthly", "Quarterly", "Semi-Annual", "Annual". Required.

  • certification_deadline — string (e.g., "30 days after period end") or null.

  • certification_method — one of "After-the-Fact", "Plan-Confirmation", "Payroll-Based", or null.

  • pi_committed_effort — string with sponsor's effort phrasing (e.g., "2.0 summer months", "25% academic year"). Required.

  • pi_person_months — string converting to person-months when the document provides it (e.g., "2.0"). Null otherwise.

  • key_personnel_commitments — array of {name, role, committed_effort, person_months, cost_shared_effort, notes} objects. One row per named individual. Required, may be a single-element array if only the PI is named.

  • cost_shared_effort — string describing total cost-shared effort obligations or null.

  • governing_regulation — string naming the primary governing regulation (e.g., "2 CFR 200.430") or null.

  • record_retention — string with retention period (e.g., "3 years", "per sponsor requirements") or null.

  • referenced_documents — array of strings naming each referenced governing document (RTCs, CA-FATC, etc.). Empty array when none are stated.

Encoding rules

  1. One row per named individual in key_personnel_commitments. A row that says "Dr. Jane Smith (PI), 2.0 summer months committed, 0.5 cost-shared" becomes one entry with name: "Dr. Jane Smith", role: "PI", committed_effort: "2.0 summer months", cost_shared_effort: "0.5 summer months".

  2. Quote effort phrasing verbatim. "2.0 summer months" not "two summer months". "25% academic year" not "a quarter of the academic year".

  3. pi_committed_effort and pi_person_months are required. They are the most important post-award commitment to track. The PI's row in key_personnel_commitments should mirror these scalars exactly.

  4. certification_method enum values follow 2 CFR 200.430(i). Use the standard term that matches what the document describes.

  5. reporting_frequency is the certification cadence, not the FFR cadence. If the document does not specify, return null.

  6. referenced_documents is for governing instruments only — RTCs, CA-FATC, NSF PAPPG, NIH GPS — not for cited regulations (those go in governing_regulation).

  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/effort-reporting-extraction-udm/schema.json",

  "title": "Effort Reporting Compliance Extraction \u2014 UDM Output",

  "description": "JSON contract for effort-reporting and personnel-compliance requirements distilled from a federal award document. Produces award-identifying scalars, an effort-reporting cadence, PI commitments, a per-person key-personnel table, cost-shared effort, governing regulation, record-retention period, and referenced governing documents. UDM-aligned to Award, Personnel, Effort, ProjectRole, CostShare, and Terms.",

  "version": "0.1.0",

  "type": "object",

  "additionalProperties": false,

  "required": [

    "award_number",

    "pi_name",

    "project_title",

    "reporting_frequency",

    "pi_committed_effort",

    "key_personnel_commitments",

    "referenced_documents"

  ],

  "properties": {

    "award_number": {

      "type": "string",

      "minLength": 1,

      "description": "Federal Award Identification Number as printed on the award. Resolves to UDM Award.Award_Number. Required by source workflow."

    },

    "pi_name": {

      "type": "string",

      "minLength": 1,

      "description": "Principal Investigator full name. Resolves to UDM Personnel.First_Name + Personnel.Last_Name. Required by source workflow."

    },

    "project_title": {

      "type": "string",

      "minLength": 1,

      "description": "Full project title as stated in the award. Resolves to UDM Award.Award_Title. Required by source workflow."

    },

    "reporting_frequency": {

      "type": "string",

      "enum": [

        "Monthly",

        "Quarterly",

        "Semi-Annual",

        "Annual"

      ],

      "description": "Cadence at which effort must be certified. Distinct from the FFR submission cadence. Required by source workflow."

    },

    "certification_deadline": {

      "type": [

        "string",

        "null"

      ],

      "description": "Deadline for effort certification after each reporting period end. Quote day-counts verbatim."

    },

    "certification_method": {

      "type": [

        "string",

        "null"

      ],

      "enum": [

        "After-the-Fact",

        "Plan-Confirmation",

        "Payroll-Based",

        null

      ],

      "description": "Effort certification method per 2 CFR 200.430(i). Resolves to UDM Effort.Certification_Method."

    },

    "pi_committed_effort": {

      "type": "string",

      "minLength": 1,

      "description": "PI committed effort using the sponsor's exact phrasing (e.g., '2.0 summer months', '25% academic year'). Resolves to UDM Effort.Committed_Percent."

    },

    "pi_person_months": {

      "type": [

        "string",

        "null"

      ],

      "description": "PI committed effort expressed as person-months when the document provides it (e.g., '2.0'). Resolves to UDM Effort.Committed_Person_Months."

    },

    "key_personnel_commitments": {

      "type": "array",

      "minItems": 1,

      "description": "Per-person key-personnel commitments. Each row covers one named individual. Resolves to UDM Effort rows.",

      "items": {

        "type": "object",

        "additionalProperties": false,

        "required": [

          "name",

          "role",

          "committed_effort"

        ],

        "properties": {

          "name": {

            "type": "string",

            "minLength": 1,

            "description": "Personnel full name as stated."

          },

          "role": {

            "type": "string",

            "minLength": 1,

            "description": "Project role (e.g., 'PI', 'Co-PI', 'Senior Personnel'). Resolves to UDM ProjectRole."

          },

          "committed_effort": {

            "type": "string",

            "minLength": 1,

            "description": "Committed effort using the sponsor's exact phrasing."

          },

          "person_months": {

            "type": [

              "string",

              "null"

            ],

            "description": "Effort expressed in person-months when the document provides it."

          },

          "cost_shared_effort": {

            "type": [

              "string",

              "null"

            ],

            "description": "Cost-shared portion of the commitment, when separately documented."

          },

          "notes": {

            "type": [

              "string",

              "null"

            ],

            "description": "Optional clarifying note (e.g., conditional effort, ceiling, dependent on enrollment)."

          }

        }

      }

    },

    "cost_shared_effort": {

      "type": [

        "string",

        "null"

      ],

      "description": "Total cost-shared effort obligations across the award. Resolves to UDM CostShare.Committed_Amount."

    },

    "governing_regulation": {

      "type": [

        "string",

        "null"

      ],

      "description": "Primary governing regulation cited (e.g., '2 CFR 200.430')."

    },

    "record_retention": {

      "type": [

        "string",

        "null"

      ],

      "description": "Record retention period requirement (e.g., '3 years', 'per sponsor requirements'). Resolves to UDM Terms.Record_Retention_Years."

    },

    "referenced_documents": {

      "type": "array",

      "description": "Referenced governing documents (RTCs, CA-FATC, agency policy statements). Empty array when none are stated.",

      "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-04-30

  • Initial experimental release.
  • Schema derived from the effort-reporting-extraction v2 Vandalizer workflow in ui-insight/ProcessMapping (single Extraction task + Formatting task; 13 source fields).
  • key_personnel_commitments realized as an array of {name, role, committed_effort, person_months, cost_shared_effort, notes} objects (rather than the source Table field) so per-row effort details attach to the right individual.
  • reporting_frequency enum matches the source Reporting_Frequency Enum_Values (Monthly, Quarterly, Semi-Annual, Annual).
  • certification_method enum matches the source Certification_Method Enum_Values (After-the-Fact, Plan-Confirmation, Payroll-Based).
  • Source-workflow requiredness preserved: award_number, pi_name, project_title, reporting_frequency, pi_committed_effort, and key_personnel_commitments are required (matching the source workflow's Is_Required: true).
  • UDM column bindings preserved: award_numberAward.Award_Number; pi_namePersonnel.First_Name/Last_Name; project_titleAward.Award_Title; certification_methodEffort.Certification_Method; pi_committed_effortEffort.Committed_Percent; pi_person_monthsEffort.Committed_Person_Months; cost_shared_effortCostShare.Committed_Amount; record_retentionTerms.Record_Retention_Years.
  • No eval cases yet — status experimental until at least one golden extraction is added under evals/cases/.