protocol-approval-allowability-check¶
protocol-approval-allowability-check0.1.0noneTags: cost-allowability compliance irb iacuc biosafety review research-administration
Audience: post-award-staff, sponsored-programs-staff, research-compliance-staff
Manifestations in repo: prompt.md
Checks whether an expense tied to a regulated activity is backed by a current, in-scope institutional protocol approval — IRB (human subjects), IACUC (animals), or IBC (biosafety). It is one of the single-requirement checks in the federal cost-allowability analysis workflow and emits a structured finding consumed by the final determination step.
Output contract: schema.json
Contract scope: repo-local
Inputs¶
A normalized expense record, extracted award terms, a regulated-activity classification, and any protocol-approval evidence the reviewer supplied, from the cost-allowability-analysis workflow. The classification (see regulated-activity-classifier) determines which oversight regimes this check verifies.
Outputs¶
A single structured finding — see schema.json — carrying a status of pass, issue, not_allowable, needs_info, or not_applicable, with rationale, cited evidence, follow-up actions, and a confidence level.
The check¶
For each oversight regime the classifier flagged, verifies that the supplied protocol-approval evidence shows an approval that exists, is active, has effective dates covering the expense date, and has an approved scope covering the activity. It applies the Common Rule (45 CFR 46), PHS Policy and the Animal Welfare Act regulations (9 CFR), and the NIH Guidelines for recombinant or synthetic nucleic acids (with 42 CFR 73 for select agents).
When a regime is flagged but no protocol records are attached, the check returns needs_info — its purpose is to route the expense to a human for verification against the institutional IRB / IACUC / IBC system of record, not to disallow the cost on absence of evidence alone. When no regime is flagged, it returns not_applicable.
Contract scope¶
Repo-local. The finding object is the shared single-requirement finding contract used across the cost-allowability check components; check_id, check_name, and regulation_anchor are fixed for this check. 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 isschema.json. Invoked as a Step 2 task of thecost-allowability-analysisworkflow; its applicability is gated by theregulated-activity-classifieroutput. - Shared UDM relationship: aligned to research-compliance semantics; does not define or depend on a shared UDM schema.
Manifestations¶
prompt.md— canonical, LLM-agnostic prompt
Related components¶
regulated-activity-classifier— produces the regime flags that gate this check.cost-prior-approval-check— the companion check for federal sponsor prior approval, a distinct regulatory regime from institutional protocol approval.
Evals¶
See evals/.
Provenance¶
Created 2026-05-21 as the compliance-oversight check in the federal cost-allowability analysis component set, to catch costs tied to IRB-, IACUC-, and IBC-regulated activities that lack a current, in-scope protocol approval.
Contract scope¶
-
Output format:
json_object -
Contract scope:
repo_local_single_requirement_finding_contract -
Validation surfaces:
json_schema -
Schema entrypoints:
# -
Notes: Repo-local single-requirement allowability finding for the protocol approval allowability check, covering institutional IRB (45 CFR 46), IACUC (PHS Policy / 9 CFR), and IBC (NIH Guidelines for Recombinant or Synthetic Nucleic Acid Molecules / 42 CFR 73) oversight. Emits the shared cost-allowability finding object.
-
Machine-readable catalog entry:
component_catalog.json
Triad integration¶
-
UDM alignment:
repo_local_single_requirement_finding_contract— Aligns to research-compliance semantics; the finding object is a prompt-library contract shared across the cost-allowability check components, not a shared UDM schema. -
Evaluation datasets: no shared
evaluation-data-setscatalog 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 2 task of the workflows/cost-allowability-analysis Vandalizer workflow; its applicability is gated by the regulated-activity-classifier output.
-
Related component:
regulated-activity-classifier(gated_by) — The classifier's regime flags determine whether this check applies. -
Related component:
cost-prior-approval-check(sibling_distinct_regime) — Covers institutional IRB / IACUC / IBC approval; cost-prior-approval-check covers federal sponsor prior approval, a distinct regulatory regime.
Prompt body¶
Source: prompt.md.
Show prompt
Protocol Approval Allowability Check¶
Purpose: Decide whether an expense tied to a regulated activity is backed by a current, in-scope institutional protocol approval.
Expected input: A normalized expense record, extracted award terms, a regulated-activity classification, and any supplied protocol-approval evidence.
Expected output: One structured finding conforming to
schema.json.
This component is a single-requirement check in the federal cost-allowability analysis workflow. It evaluates institutional compliance-approval coverage only.
Prompt¶
You are a federal cost-allowability reviewer performing one specific check: Protocol Approval Allowability. Review one expense and return a single structured finding for this check only — do not evaluate any other allowability requirement.
Return only a single JSON object conforming to the finding contract. No prose, Markdown, comments, or code fences.
Input¶
You receive a normalized expense record, extracted award terms, a regulated-activity classification, and any protocol-approval evidence the reviewer supplied. Any of these may be partial or missing. The classification flags whether the expense implicates human-subjects research, live-animal use, or biosafety-regulated work.
What this check evaluates¶
Whether an expense tied to a regulated activity is backed by a current, in-scope institutional protocol approval. Three oversight regimes apply:
-
Human subjects (IRB) — governed by the Common Rule at 45 CFR 46 (and, for FDA-regulated research, 21 CFR 50 and 56).
-
Animal use (IACUC) — governed by the PHS Policy on Humane Care and Use of Laboratory Animals and the Animal Welfare Act regulations at 9 CFR.
-
Biosafety (IBC) — governed by the NIH Guidelines for Research Involving Recombinant or Synthetic Nucleic Acid Molecules and, for select agents and toxins, 42 CFR 73.
A cost that supports an activity which lacked the required approval — or whose approval was expired, suspended, or out of scope — when the cost was incurred is not allowable, because the activity itself was not authorized to proceed.
For each regime the classifier flagged, verify the supplied protocol-approval evidence:
-
an approval exists (a protocol number and an approving committee);
-
it is active — not pending, expired, or suspended;
-
its effective date range covers the expense
transaction_date; and -
its approved scope covers the activity the expense supports.
Decision rule¶
Set status to exactly one of:
-
not_applicable— the classifier flagged no regulated-activity regime for this expense. -
pass— every flagged regime has approval evidence showing a current, in-scope protocol whose effective dates cover the expense date. -
issue— approval evidence exists but its currency or scope coverage is uncertain and must be confirmed. -
not_allowable— for a flagged regime the approval is expired, suspended, or lapsed; or the expense date precedes the approval; or the approved scope clearly excludes the activity. -
needs_info— a regime is flagged but no protocol-approval evidence was supplied.
needs_info is the expected and most common outcome for a flagged expense reviewed without protocol records attached. The job of this check is to route the expense to a human for verification against the institutional system of record — not to disallow the cost on the absence of evidence alone. When the status is needs_info, set follow_up_actions to verify the protocol number, status, effective dates, and approved scope in the institutional IRB / IACUC / IBC system of record.
Use the most conservative status the evidence supports.
Evidence and non-fabrication¶
-
Ground every finding in the supplied evidence. Populate
evidencewith shortsource_label/detailpairs (e.g.,classification:human_subjects,protocol:approval_date,expense:transaction_date). -
Do not invent a protocol number, an approval date, an approval status, or a scope. A flagged regime with no approval evidence is
needs_info, neverpass.
Output¶
Emit the finding object:
-
check_id— "protocol-approval-allowability" -
check_name— "Protocol Approval Allowability" -
regulation_anchor— "45 CFR 46; PHS Policy / 9 CFR; NIH Guidelines for Recombinant or Synthetic Nucleic Acid Molecules / 42 CFR 73" -
expense_id— the expense reference from the input, or null -
status— one of the values above -
summary— one sentence stating the outcome -
rationale— the evidence-grounded reasoning, naming each flagged regime and its verification result -
evidence— array of {source_label, detail} -
follow_up_actions— concrete actions needed before the cost is approved or charged; empty array when none -
confidence— "high", "medium", or "low", reflecting evidence completeness
Produce the finding 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/protocol-approval-allowability-check/schema.json",
"title": "Protocol Approval Allowability Check \u2014 Finding",
"description": "Structured single-requirement allowability finding for the protocol approval allowability check, covering institutional IRB (45 CFR 46), IACUC (PHS Policy / 9 CFR), and IBC (NIH Guidelines for Recombinant or Synthetic Nucleic Acid Molecules / 42 CFR 73) oversight. Part of the federal cost-allowability analysis workflow.",
"version": "0.1.0",
"type": "object",
"additionalProperties": false,
"required": [
"check_id",
"check_name",
"regulation_anchor",
"status",
"summary",
"rationale",
"evidence",
"follow_up_actions",
"confidence"
],
"properties": {
"check_id": {
"const": "protocol-approval-allowability",
"description": "Stable identifier for this check."
},
"check_name": {
"const": "Protocol Approval Allowability",
"description": "Human-readable check name."
},
"regulation_anchor": {
"const": "45 CFR 46; PHS Policy / 9 CFR; NIH Guidelines for Recombinant or Synthetic Nucleic Acid Molecules / 42 CFR 73",
"description": "Primary regulatory anchors for the three oversight regimes covered by this check."
},
"expense_id": {
"type": [
"string",
"null"
],
"description": "Expense reference carried from the input."
},
"status": {
"type": "string",
"enum": [
"pass",
"issue",
"not_allowable",
"needs_info",
"not_applicable"
],
"description": "Outcome of this check."
},
"summary": {
"type": "string",
"minLength": 1,
"description": "One-sentence statement of the outcome."
},
"rationale": {
"type": "string",
"minLength": 1,
"description": "Evidence-grounded reasoning behind the status, naming each flagged regime and its verification result."
},
"evidence": {
"type": "array",
"description": "Evidence relied on. May be empty only when status is not_applicable.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"source_label",
"detail"
],
"properties": {
"source_label": {
"type": "string",
"minLength": 1,
"description": "Short source label, e.g. classification:animal or protocol:approval_date."
},
"detail": {
"type": "string",
"minLength": 1,
"description": "Concise summary of what the source shows."
}
}
}
},
"follow_up_actions": {
"type": "array",
"description": "Concrete actions needed before the cost is approved or charged. Empty array when none.",
"items": {
"type": "string",
"minLength": 1
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
],
"description": "Reviewer confidence in this finding."
}
}
}
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.
- Single-requirement check covering institutional IRB (45 CFR 46), IACUC (PHS Policy / 9 CFR), and IBC (NIH Guidelines for Recombinant or Synthetic Nucleic Acid Molecules / 42 CFR 73) protocol-approval coverage.
- Emits the shared cost-allowability finding object (
status,summary,rationale,evidence,follow_up_actions,confidence) withcheck_id"protocol-approval-allowability". - Applicability is gated by the regulated-activity-classifier output; an unflagged expense returns
not_applicable. - A flagged expense with no protocol evidence returns
needs_infoto route it for human verification, rather than disallowing the cost on absence of evidence alone. - No eval cases yet — status
experimentaluntil at least one golden finding is added underevals/cases/.