NIH vs NSF vs DoD: compliance pipeline differences

A team that automates proposals for only one funder can bake that funder’s rules into the code; a team building across all three federal science sponsors cannot, because the National Institutes of Health (NIH), the National Science Foundation (NSF), and the Department of Defense (DoD) disagree at nearly every pipeline stage — which document carries the binding rules, how a solicitation is structured, what the formatting envelope permits, which forms and portals accept the package, and which conditions trigger extra obligations. The only maintainable design is a single pipeline parameterized per agency, where every stage reads its behavior from an agency profile rather than from a hard-coded branch. This reference maps those differences stage by stage for teams building on the core architecture and Request for Proposal (RFP) taxonomy, so you can see exactly where one shared pipeline must fork and where it can stay uniform. It is deliberately pipeline-oriented: not a restatement of any single agency’s rulebook, but a side-by-side of how the same five stages behave under three different regimes.

The unifying idea is that agency identity is a parameter, resolved once from the agency schema registry and threaded through every stage. The diagram shows the shared pipeline with its three agency lanes; the sections that follow walk each stage in detail.

One parameterized compliance pipeline with three agency lanes across four stages A single agency schema registry feeds three parallel lanes — NIH, NSF, and DoD — that share the same four pipeline stages down the left edge: ingest and parse, compliance envelope, assembly and forms, and submission portal. Each cell shows how that stage differs per agency: NIH ingests an FOA or NOFO with its application guide, enforces a twelve-page eleven-point half-inch envelope, assembles SF424 R&R and PHS398 forms, and submits through Grants.gov into eRA Commons; NSF ingests the PAPPG and solicitation, enforces a fifteen-page ten-to-eleven-point one-inch envelope, assembles Research.gov forms, and submits through Research.gov; DoD ingests a BAA with addenda, enforces per-BAA limits often twelve-point, assembles BAA volumes one through four, and submits through eBRAP or SAM.gov. Agency schema registry · one pipeline, parameterized per agency NIH NSF DoD Ingest & parse Compliance envelope Assembly & forms Submission portal FOA / NOFO + application guide PAPPG + program solicitation BAA + agency addenda 12 pp · 11 pt 0.5 in margins 15 pp · 10–11 pt 1 in margins per-BAA limits often 12 pt SF424 (R&R) + PHS398 forms Research.gov native forms BAA volumes I–IV structure Grants.gov → eRA Commons Research.gov direct submit eBRAP / SAM.gov registration-gated
The same four stages behave differently in each lane — which is why agency identity is a resolved parameter, not a hard-coded branch.

Governing documents and where the rules live

The first divergence is jurisdictional: each agency keeps its binding rules in a different kind of document, updated on a different clock. NIH publishes a Funding Opportunity Announcement (FOA), increasingly styled a Notice of Funding Opportunity (NOFO), for each opportunity, and layers the general application guide beneath it; the opportunity-specific notice always wins where the two disagree, which is why NIH FOA schema mapping treats the FOA as the source of record. NSF concentrates its rules in one periodically renumbered Proposal & Award Policies & Procedures Guide (PAPPG), so the NSF proposal guide taxonomy tracks discrete editions and their effective dates. DoD scatters its rules across individual Broad Agency Announcements (BAAs), each effectively a standalone rulebook with its own volumes and addenda, which is why DoD BAA requirement extraction parses each announcement fresh rather than against a stable central guide.

The practical upshot for a pipeline is that the unit of versioning differs. An NSF rule change is a scheduled edition bump; an NIH rule change is a per-FOA reissue with no central calendar; a DoD rule change is a new announcement. A pipeline that assumes any one cadence for all three will miss updates for the other two, which is exactly why the registry resolves rules by (agency, mechanism, deadline) rather than by a single global “current version.”

Ingestion and parsing differences

Because the source documents differ in structure, the ingestion stage cannot use one parser configuration. NIH FOAs and NOFOs are largely single-column narratives with tabulated page-limit and budget matrices, so extraction tunes for ruled tables and a moderate font floor. NSF program solicitations frequently use two-column layouts and cite PAPPG section codes (for example, Chapter II.C.2) that a parser must preserve intact to resolve the referenced rule. DoD BAAs are the hardest: dense, multi-column, clause-numbered under Federal Acquisition Regulation conventions, and prone to burying binding language — export-control triggers, data-rights assertions — in fine print that a permissive font floor would drop. These layout differences feed the same coordinate-aware extraction stage but with agency-specific parameters, and the compliance validation rule engines downstream depend on that fidelity.

The consequence is that “parse the solicitation” is really three parameterized behaviors sharing one code path: different column strategies, different font floors, different section-numbering schemes to preserve. What stays uniform is the contract — every lane emits the same structured intermediate representation, so the stages after ingestion do not need to know which agency produced it beyond the agency field.

Compliance envelope: page limits, fonts, and margins

The compliance envelope is where the three regimes diverge most visibly, and where a single wrong constant silently rejects a submission. The table below is pipeline-stage oriented — it compares the envelope each lane enforces, not the underlying rulebook prose — and every row is a value the validator must read from the resolved profile rather than assume.

Envelope dimension NIH (R01 baseline) NSF (standard) DoD (typical BAA)
Length-limited unit Research Strategy Project Description Volume I technical narrative
Page ceiling 12 pages 15 pages Set per BAA (commonly 15–20)
Excluded from count Specific Aims, refs, biosketches, budget, plans References, biosketches, budget, some plans Cover/admin volumes, cost volume
Minimum font size 11 pt 10–11 pt by typeface Per BAA; frequently 12 pt
Minimum margins 0.5 in all edges 1 in all edges Per BAA; often 1 in
Approved typefaces Arial, Helvetica, Palatino Linotype, Georgia Arial, Courier New, Palatino Linotype, and similar Named per BAA; often Times New Roman
Line spacing rule No more than 6 lines/inch No explicit lines/inch cap Per BAA
Where the number lives Activity-code FOA Current PAPPG edition The specific announcement
Enforcement failure mode eRA Commons hard reject Research.gov auto-check Contracting-officer non-conformance

Two structural facts drive the code. First, the scoped unit differs — NIH caps a Research Strategy, NSF a Project Description, DoD a technical volume — so the validator must isolate a different section per agency before it counts anything. Second, the numbers are version-scoped: an NIH ceiling is authoritative only for the FOA in force, and an NSF ceiling only for the effective PAPPG edition, which is why numeric limits belong in the threshold tuning for compliance layer and never in source code. A validator that hard-codes “12 pages” is correct for exactly one mechanism of one agency for one cycle.

Assembly and forms

Once content passes the envelope, assembly diverges again because each agency accepts a different form set through a different mechanism. NIH assembles the SF424 Research & Related (R&R) form family, often with PHS398-derived components, into a single package bound for Grants.gov. NSF has largely moved off external forms entirely, collecting equivalent data through Research.gov’s native web forms, so “assembly” for NSF is as much structured data entry as document generation. DoD organizes a proposal into numbered BAA volumes — commonly a technical volume, a cost volume, and administrative volumes — each with its own formatting and content rules set by the announcement.

The design implication is that a shared assembly stage must select its output shape from the agency parameter: the same normalized budget object renders as an NIH modular or detailed R&R budget, an NSF Research.gov budget, or a DoD cost volume. Reusing one budget object across all three without re-selecting the render path is a classic cross-agency defect, because a value valid in one shape is malformed in another.

Submission portals

The final stage is where the pipeline meets systems it does not control, and the three lanes barely resemble one another. NIH submissions flow through Grants.gov and are then validated inside eRA Commons, so a package can clear Grants.gov and still fail Commons validation minutes later — a two-phase gate the pipeline must poll rather than assume. NSF submits directly through Research.gov, collapsing assembly and submission into one platform. DoD routes through announcement-specific portals such as eBRAP, gated by registration in SAM.gov, where an unregistered or expired entity registration blocks submission regardless of proposal quality. The mechanics of driving these portals — system-to-system transfer, status polling, and registration checks — are the subject of the submission portal sync workflows.

Because these portals fail in different ways and on different timelines, the submission stage cannot treat “submitted” as a single terminal state. NIH needs a poll-until-validated loop against eRA Commons; NSF needs an immediate accept/reject from Research.gov; DoD needs a pre-flight registration check before the portal will even accept a package. One shared stage, three failure envelopes.

Conditional and override triggers

Beyond the stage-by-stage differences, each agency layers conditional obligations that fire only under specific circumstances, and these are where a pipeline most often silently under-complies. NIH triggers additional requirements for human-subjects and clinical-trial research, adding forms and review steps when those flags are set. NSF triggers requirements around data-management planning and postdoctoral mentoring, and applies a fundamental-research posture that usually — but not always — exempts it from export control. DoD carries the heaviest conditional load: International Traffic in Arms Regulations (ITAR) and Export Administration Regulations (EAR) triggers activate on controlled technology or foreign participation, and dollar thresholds pull in cost-reasonableness narratives that smaller awards omit.

Trigger NIH NSF DoD
Human subjects Adds protection/clinical-trial forms Rare; IRB assurance if applicable Adds human-use protocol volume
Export control (ITAR/EAR) Case-by-case, uncommon Fundamental-research exclusion usually applies Common; triggers on tech + foreign persons
Dollar threshold Modular vs detailed budget path Detailed budget always required Cost-reasonableness narrative above threshold
Foreign involvement Foreign-component justification Disclosed; current-and-pending Can bar participation or add controls
Data plan Data Management & Sharing Plan required Data Management Plan (2 pp) required Data-rights assertions per BAA

The engineering pattern is uniform even though the triggers are not: each condition is a boolean gate that injects or suppresses a section, evaluated against the same normalized proposal object. Modeling these as data-driven gates rather than nested conditionals is what keeps the pipeline honest across agencies — a new trigger is a new rule in the registry, not a new branch buried in assembly code.

Frequently asked questions

Can one pipeline really serve NIH, NSF, and DoD, or do I need three?

One pipeline, parameterized per agency. The five stages — ingest, envelope, assembly, submission, and conditional triggers — are structurally the same; what differs is the configuration each stage reads from the resolved agency profile. Building three separate pipelines duplicates the shared skeleton and multiplies maintenance, whereas a parameterized pipeline localizes every agency difference to data resolved from the registry.

Which single difference causes the most avoidable rejections?

The compliance envelope, because its values are both agency-specific and version-scoped. A page ceiling or margin minimum that is correct for one agency and one cycle is wrong for the others, and an over-length or under-margined package is rejected before review. Reading every envelope value from the resolved profile, rather than hard-coding it, removes the largest class of avoidable failures.

Why does NIH submission need extra handling that NSF does not?

NIH submission is a two-phase gate: a package clears Grants.gov and is then separately validated inside eRA Commons, so acceptance is not final until Commons validation passes. NSF’s Research.gov collapses assembly and submission into one platform with an immediate verdict. The pipeline must therefore poll eRA Commons after a Grants.gov accept, but can treat a Research.gov response as terminal.

Where should the agency-specific numbers actually live?

In the agency schema registry, resolved by agency, mechanism, and deadline, with the numeric limits managed in the threshold-tuning layer. Keeping them there — rather than in code — means a policy change is a versioned data edit, and every stage that reads the resolved profile stays consistent automatically. Hard-coding any limit guarantees a future disagreement between stages.

Up one level: Core Architecture & RFP Taxonomy