effort-reporting-extraction-udm¶
effort-reporting-extraction-udm0.1.0noneTags: 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_number → Award.Award_Number; pi_name → Personnel.First_Name/Last_Name; project_title → Award.Award_Title; certification_method → Effort.Certification_Method; pi_committed_effort → Effort.Committed_Percent; pi_person_months → Effort.Committed_Person_Months; per-row key_personnel_commitments → Effort + ProjectRole; cost_shared_effort → CostShare.Committed_Amount; record_retention → Terms.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 isschema.json. The companion top-levelworkflows/effort-reporting-extractionVandalizer 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_frequencyandcertification_methodcarry 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_commitmentsmirrors thepi_committed_effortandpi_person_monthsscalars.
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-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/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_number → Award.Award_Number; pi_name → Personnel.First_Name/Last_Name; project_title → Award.Award_Title; certification_method → Effort.Certification_Method; pi_committed_effort → Effort.Committed_Percent; pi_person_months → Effort.Committed_Person_Months; per-row key_personnel_commitments → Effort; cost_shared_effort → CostShare.Committed_Amount; record_retention → Terms.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") ornull. -
certification_method— one of"After-the-Fact","Plan-Confirmation","Payroll-Based", ornull. -
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 ornull. -
governing_regulation— string naming the primary governing regulation (e.g.,"2 CFR 200.430") ornull. -
record_retention— string with retention period (e.g.,"3 years","per sponsor requirements") ornull. -
referenced_documents— array of strings naming each referenced governing document (RTCs, CA-FATC, etc.). Empty array when none are stated.
Encoding rules¶
-
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 withname: "Dr. Jane Smith",role: "PI",committed_effort: "2.0 summer months",cost_shared_effort: "0.5 summer months". -
Quote effort phrasing verbatim.
"2.0 summer months"not"two summer months"."25% academic year"not"a quarter of the academic year". -
pi_committed_effortandpi_person_monthsare required. They are the most important post-award commitment to track. The PI's row inkey_personnel_commitmentsshould mirror these scalars exactly. -
certification_methodenum values follow 2 CFR 200.430(i). Use the standard term that matches what the document describes. -
reporting_frequencyis the certification cadence, not the FFR cadence. If the document does not specify, returnnull. -
referenced_documentsis for governing instruments only — RTCs, CA-FATC, NSF PAPPG, NIH GPS — not for cited regulations (those go ingoverning_regulation). -
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-extractionv2 Vandalizer workflow inui-insight/ProcessMapping(single Extraction task + Formatting task; 13 source fields). key_personnel_commitmentsrealized as an array of{name, role, committed_effort, person_months, cost_shared_effort, notes}objects (rather than the sourceTablefield) so per-row effort details attach to the right individual.reporting_frequencyenum matches the sourceReporting_FrequencyEnum_Values (Monthly,Quarterly,Semi-Annual,Annual).certification_methodenum matches the sourceCertification_MethodEnum_Values (After-the-Fact,Plan-Confirmation,Payroll-Based).- Source-workflow requiredness preserved:
award_number,pi_name,project_title,reporting_frequency,pi_committed_effort, andkey_personnel_commitmentsare required (matching the source workflow'sIs_Required: true). - UDM column bindings preserved:
award_number→Award.Award_Number;pi_name→Personnel.First_Name/Last_Name;project_title→Award.Award_Title;certification_method→Effort.Certification_Method;pi_committed_effort→Effort.Committed_Percent;pi_person_months→Effort.Committed_Person_Months;cost_shared_effort→CostShare.Committed_Amount;record_retention→Terms.Record_Retention_Years. - No eval cases yet — status
experimentaluntil at least one golden extraction is added underevals/cases/.