In-kind donation tracker for nonprofits
Short answer: use one SharePoint list where each gift of goods or services is one row, with columns for donor, item, quantity, value, date received, and receipt sent. A small flow can email the person who owes a receipt. This page shows the build. It does not tell you how to value a gift or what a receipt must say.
Valuation and receipts are not decided here
Rules for valuing donated goods and for donor acknowledgments come from tax authorities. For the United States, read IRS Publication 1771, Charitable Contributions: Substantiation and Disclosure Requirements (https://www.irs.gov/pub/irs-pdf/p1771.pdf), and IRS Publication 561, Determining the Value of Donated Property (https://www.irs.gov/publications/p561), or ask your organization's tax advisor. This list only records the number your team decided on, and who decided it.
Start the list
In Microsoft Lists, select +New list and pick a blank list. Microsoft's page says: "To add different types of information to the list, select + Add column." Exact names may differ on your screen.
Columns
Use Title for a short gift label, such as the item name. Then add:
- Donor: Single line of text, or a Lookup to a separate Donors list if the same donors give again.
- Item description: Multiple lines of text.
- Category: Choice, 1 Food, 2 Clothing, 3 Equipment, 4 Services, 5 Other.
- Quantity: Number.
- Estimated value: Currency.
- Value set by: Person, the staff member who decided the value.
- Value basis: Single line of text, a short note on how the number was chosen.
- Date received: Date.
- Receipt sent: Yes/No. Set its default value to No.
- Coordinator notified: Yes/No. Set its default value to No.
- Receipt date: Date.
- Photo or paperwork link: Hyperlink to the file in a library.
Our advice, not a Microsoft rule: keep Estimated value and Value basis as separate columns. A reviewer can then read the number and the reason side by side.
A running total
Do not try a total inside a calculated column. Microsoft's page says: "Calculated fields can only operate on their own row, so you can't reference a value in another row." A total across rows belongs in the view. A line total in each row is fine: =[Quantity]*[Estimated value]. Microsoft's example for multiplying says: "To multiply numbers in two or more columns in a row, use the multiplication (*) operator". Name that column Line value.
Lookup columns are not allowed in formulas. Microsoft says: "Lookup fields are not supported in a formula." So keep Quantity and Estimated value as plain Number and Currency columns.
Views
Microsoft explains how to filter: click a column heading, choose Filter by, then "select the Apply button." To keep it: "choose Save view as from the menu options."
- Receipts owed: filter Receipt sent to No.
- Last 12 months: Date received is greater than or equal to [Today]-365. Microsoft says [Today] works on date columns, but only in the classic view editor, not from a column header.
- By donor: sort on Donor then Date received. Microsoft: "you can specify sorting on one or two columns."
A flow for missing receipts
Microsoft's SharePoint trigger "When an item is created or modified" runs on creation and "each time you modify it in a SharePoint list." The flow:
- Trigger: When an item is created.
- Action: Send an email to the gift coordinator with the donor and item. Subject: "Receipt owed".
- Action: Update item, set a Coordinator notified column to Yes.
Use a loop guard: the Update item action edits the row, and a created-or-modified trigger would fire again. With the created-only trigger above, there is no loop. If you switch to created-or-modified, add a Condition first: Coordinator notified is No. Send, then set it to Yes. See.
A weekly list of unsent receipts
Use a recurrence flow and the Get items action. Get items returns 100 rows unless you change it: open Advanced options, set Top Count as high as 5,000, and turn Pagination on. Add a Filter Query in Get items. Microsoft supports "Location eq 'Midwest'" style filters, written with the column's internal name. Microsoft's own example writes a column as Start_x0020_Date, which is how a space shows up in an internal name. Check the internal name in the column settings.
What to keep out
- Do not store donor bank or card details.
- Do not record a value you cannot explain in Value basis.
- Do not edit Receipt sent back to No to reuse a row. Add a new row.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
What should an in-kind donation tracking spreadsheet include?
Donor, item, quantity, estimated value, date received, who set the value, and receipt sent.
Is there an in-kind donation tracking form?
A SharePoint list has a built-in form for each row. Add the columns on this page and the form follows.
Should I use Excel or a SharePoint list for in-kind gifts?
A list gives each gift an owner, a Yes/No receipt flag, and a flow. See.
How do I value donated goods?
This list does not decide that. Ask your organization's tax advisor or read the official IRS charity pages.
Can the list tell me which receipts are still owed?
Yes. Filter Receipt sent to No in a saved view.
Sources
- Microsoft Support, Create a list
- Microsoft Support, Examples of common formulas in lists
- Microsoft Support, Use filtering to modify a SharePoint view
- Microsoft Support, Use sorting to modify a SharePoint view
- Microsoft Learn, Microsoft SharePoint Connector for Power Automate
- Microsoft Learn, In-depth analysis into 'Get items' and 'Get files' SharePoint actions