River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Grant Boilerplate Library Template

Three documents and three sheets that separate a block's last edit from whether the event behind it already made it wrong.

Free download  ·  No account needed

Every boilerplate guide gives the same instruction: keep your reusable language current, and update it after a big milestone or the annual report. None of them explains how you would notice a block went stale in between, so most organizations find out from a program officer's question instead of from their own files. A library with only a last-edited date cannot answer that question either, since the date says when someone touched the text, not whether the fact behind it is still true.

The stakes go beyond a missed update. Candid's 2024 survey of grantmakers found two-thirds still undecided about accepting AI-generated applications, and 23 percent said they would reject one outright. Some funders, including the Spencer Foundation, now require applicants to disclose substantive AI use in a proposal. Nobody can predict which policy the next funder on the list runs, and reused language that reads as generic invites exactly the scrutiny a specific, sourced block does not.

Cedar Line's Content Register runs two checks on every block. One is a naive count of days since it was last touched. The other names the real event that would make the block wrong: a fiscal year closing, or a signed agreement expiring. Checked against Cedar Line's eighteen real blocks on one date, the two disagree on seven, in both directions. One program description, reviewed ten days before the close, reads forty-six days from due and has been wrong for a month already. That register is what a grant proposal's narrative draws from.

Two staleness checks on the same eighteen blocks, and where they split

The naive-versus-event comparison, the urgency-sorted calendar, and where each block was actually reused.

Content Register

Illustrative, for a fictional organisation called Cedar Line Community Health. Checked 2026-08-03 against a fiscal year that closed 2026-06-30.

BlockTrigger typeNaive 90-day cadenceEvent-based statusVerdict
Statement of NeedFiscal-year-bound5 days remainingDUE, 34 days overdueReads fine, already wrong
Diabetes Program, StandardFiscal-year-bound5 days remainingDUE, 34 days overdueReads fine, already wrong
Community OutreachFiscal-year-bound46 days remainingDUE, 34 days overdueReads fine, already wrong
Primary Care AccessFiscal-year-bound64 days overdueDUE, 34 days overdueSame verdict, different math
Organizational OverviewEditorial, annual floor37 days remainingCurrentSame verdict
Mission StatementEditorial, board decision638 days overdueCurrentReads overdue, nothing wrong
Tax-Exempt StatusEditorial, static1,279 days overdueCurrentReads overdue, nothing wrong
Board and GovernanceGovernance-cycle296 days overdueCurrent, 73 days to Annual MeetingReads overdue, nothing wrong

Three of these eight rows would ship a superseded fiscal year figure under nothing but a day-count clock. Three more would land in a reviewer's queue with nothing to actually fix. The event column is the one the register actually acts on.

Update Calendar

The register's rows, sorted by urgency against the same 2026-08-03 check date.

BlockNext trigger eventDateCountdown
Statement of NeedFY2026 close2026-06-30Due, 34 days overdue
Diabetes Program, LongFY2026 close2026-06-30Due, 34 days overdue
Community OutreachFY2026 close2026-06-30Due, 34 days overdue
Sustainability and Revenue MixFY2026 close2026-06-30Due, 34 days overdue
Organizational OverviewAnnual review floor2026-09-1237 days remaining
Audited Financial PositionFY2026 audit expected2026-10-13 est.71 days remaining
Board and GovernanceAnnual Meeting2026-10-1573 days remaining
Indirect Cost RateNICRA expiration2027-06-30331 days remaining

Four rows are already due for the same reason: the fiscal year they cite closed June 30. Nothing else on this calendar comes due for another thirty-seven days at minimum.

Reuse Tracker

Where each block actually went, pulled from four submitted proposals.

BlockProposalSubmittedOutcome
Organizational Overview, LongCommunity Health Innovation Fund2026-02-14Funded $85,000 of $120,000
Mission StatementHRSA Supplemental2025-09-30Declined
Diabetes Program, LongHRSA Supplemental2025-09-30Declined
Primary Care AccessCommunity Health Innovation Fund2026-02-14Funded $85,000 of $120,000
Board and GovernanceHRSA Supplemental2025-09-30Declined
Community OutreachHarlow Family Foundation2026-06-01Pending
Audited Financial PositionHarlow Family Foundation2026-06-01Pending
Statement of NeedCommunity Health Innovation Fund2026-02-14Funded $85,000 of $120,000

Four blocks went into the declined HRSA proposal and every one of them still reads current today. The decline tracked to federal fit, not to stale language, which the register would have shown as the actual problem if it were one.

What is in the pack

01

Content Library

Real language pulled from your own submitted proposals and organizational documents, sized in short, standard and long variants for a letter of inquiry or a full narrative.

02

Content Register

Every block's word count, last-reviewed date, and the specific event that would make it wrong, checked against today rather than assumed from the date alone.

03

Naive-versus-event comparison, run for you

A plain day-count cadence and the real event-based status, side by side on the same block, so a false sense of freshness never ships in a proposal.

04

Reuse Tracker

Which proposal every block actually went into, when, and what the funder decided, so reuse is a real record instead of institutional memory.

05

Update Calendar

The register's rows sorted by urgency against today's date, so what actually needs attention is a five-second read instead of a walk through every row.

06

Tailoring Guidance

How to fit a block to a funder's stated page or word limit, whether that is a federal notice's rigid format or a foundation's shorter form, without editing the canonical version.

07

How Review Triggers Are Set

The seven trigger types behind the register, and the arithmetic showing where a fixed review cadence disagrees with the real event and in which direction.

How it works

  1. 1

    Send what you've submitted

    Your last several proposals or letters of inquiry in full, your current Form 990 or annual report, your board roster, and whatever prospect research already named as a good fit.

  2. 2

    Extract and set a trigger

    Language worth keeping becomes a block with a real word count and the specific event that would make it wrong, not a guessed review date.

  3. 3

    Check before every reuse

    The register's naive and event-based columns get read before any block goes into a new proposal, so a superseded figure is caught before it ships.

  4. 4

    Tailor without overwriting

    A funder-specific draft adapts the block's length and terminology in its own file, and the reuse gets logged once the proposal actually clears a funder portal's requirements.

Frequently asked questions

How is this different from a boilerplate document in Word or Google Docs?

A shared document tracks what the text says and when someone last opened the file. It has no field for why a given paragraph might now be wrong. The register adds that field, naming the actual event, so staleness is something you check rather than something you eventually notice.

What is a refresh trigger, and why not just review everything quarterly?

It is the specific event, not a day count, that would make a block wrong: a fiscal year closing, an agreement expiring, a named person leaving a role. A quarterly review flags blocks with nothing wrong and misses others that went stale the week after the last check.

What if a proposal built from library blocks still gets declined?

Run it through a declined proposal review against the funder's own stated criteria. A decline usually tracks to fit or budget, not to reused language, and the review tells you which one before you touch the library.

What happens when a block's trigger fires but nobody updates it right away?

The register keeps showing it as due, and the Update Calendar keeps it near the top sorted by urgency, rather than letting a missed update quietly disappear. Nothing removes a block from the due list except actually rewriting it and resetting the review date.

Can I tailor a block for one funder without ruining the original?

Yes. Tailoring Guidance treats the canonical block as read-only source material. A funder-specific version gets written in that proposal's own draft, and any number in the block only changes if the register gets updated first, in a separate, deliberate step.

Does the Indirect Cost Rate block replace a real budget?

No. It states the negotiated rate and the base it applies to. Building the budget itself in the funder's own categories, with the crosswalk back to your chart of accounts, is separate work this block only supports.

Do funders actually check whether proposal language is AI-generated?

Policy is unsettled. Candid's 2024 survey found two-thirds of funders undecided about accepting AI-generated applications, and a minority now require disclosure. A library of your own specific, sourced language holds up regardless of which policy a given funder eventually adopts.

Find out which blocks in your own boilerplate are already due

Send your last few submitted proposals and current organizational documents. The first thing back is a register with a real trigger on every block, not a guessed review date.

Check my content library