# Willow Community Fund: donation receipt, pledge, grant and restricted-fund documents

The giving and stewardship pack a small community fund produces: donation receipts that split the deductible amount from the value of benefits received, the schedule of pledge instalments behind them and its aging, the grant register with budget against actual, the restricted and unrestricted fund report, the campaign summary, and the donor, volunteer, event and in-kind records that feed them.

All parties, amounts and identifiers are fictional. Fixed snapshot: 2026-09-08. Every record is derived from the shared operating model `nonprofit-fundraising`, so identifiers join across this set and across the business-kit fixtures that use the same model.

## Reconciliation identities this set asserts

- gross_amount minus value_of_benefits equals deductible_amount on all 9 receipts, 1669.50 in total.
- The instalments of each pledge sum to its pledge total, 2850.00 overall, with the final instalment absorbing the rounding.
- Unpaid instalments total 1050.00, the outstanding pledge value, and bucket cleanly by age.
- Each grant's budget lines sum to the amount awarded, 4500.00 together.
- opening + receipts - expenditure = closing on every fund, closing at 3104.75 of which 1904.75 is restricted.
- Campaign total_raised is 6300.00 and excludes the 1050.00 of pledges not yet received.
- The 285.00 of in-kind gifts appears in no cash total anywhere in the set.

## Files

| File | Format | Validity | What it is |
| --- | --- | --- | --- |
| `benefit-value-schedule.csv` | csv | reference | Fair market value of donor benefits |
| `donation-receipts.csv` | csv | valid | Donation receipts with benefit split |
| `donation-receipts.json` | json | valid | Donation receipts JSON |
| `donation-receipts-deductible-overstated.csv` | csv | invalid | Donation receipts that treat a quid pro quo gift as fully deductible |
| `donation-receipt-RCPT-2026-0001.pdf` | pdf | valid | Donation receipt PDF, pure gift |
| `donation-receipt-RCPT-2026-0009.pdf` | pdf | valid | Donation receipt PDF, quid pro quo gift |
| `pledge-schedule.csv` | csv | valid | Pledge instalment schedule |
| `pledge-schedule.xlsx` | xlsx | valid | Pledge and receipt workbook |
| `pledge-aging.csv` | csv | valid | Pledge aging at 2026-09-08 |
| `grant-register.csv` | csv | valid | Grant register |
| `grant-budget-vs-actual.csv` | csv | valid | Grant budget against actual |
| `grant-budget-vs-actual.xlsx` | xlsx | valid | Grant reporting workbook |
| `restricted-funds-report.csv` | csv | valid | Restricted and unrestricted fund report |
| `restricted-funds-report.json` | json | valid | Restricted fund report JSON |
| `fund-balance-rollforward.csv` | csv | valid | Fund balance roll-forward by restriction class |
| `campaign-summary.csv` | csv | valid | Campaign summary against goal |
| `donor-export.csv` | csv | valid | Donor summary export |
| `donor-export.json` | json | valid | Donor summary export JSON |
| `volunteer-hours.csv` | csv | valid | Volunteer hours by person |
| `event-attendance.csv` | csv | valid | Fundraising event attendance |
| `in-kind-gift-register.csv` | csv | valid | In-kind gift register |
| `acknowledgement-letter-DON-01.pdf` | pdf | valid | Annual donor acknowledgement letter PDF |
| `nonprofit-reconciliation.json` | json | reference | Nonprofit reconciliation assertions |

## Deliberate defects

These files are broken on purpose. Each one is a single named mutation of a correct file in the same directory, so a parser under test can be checked against both.

- **`donation-receipts-deductible-overstated.csv`** The 3 pure gifts pass. All 6 quid pro quo rows fail by their own stated benefit value, for example RCPT-2026-0009 which claims 300.00 deductible while declaring 25.50 of benefits received. The total overstatement is 130.50. The file is internally detectable, which is exactly why an importer has no excuse for accepting it.

## Notes and limits

- A pledge is a promise; a receipt records money actually received. The two are separate files on purpose, and adding outstanding pledges to raised income is the error the campaign summary is shaped to prevent.
- No de minimis exception is applied to donor benefits. Every benefit reduces the deductible amount, however small, which keeps the arithmetic uniform across the set.
- Volunteer hours are never priced and in-kind gifts are never treated as cash. Both are recorded in their own files with their own units.
- The pending grant is in the register with an awarded amount of 0.00 and contributes nothing to the funds. Treating a request as income is a common and expensive mistake.
- Supporters, funders and volunteers are fictional and the export carries no contact or payment data.
- These are accounting fixtures. They are not tax receipts, they establish no charitable status or deductibility, and nothing here is tax advice.
