How to prepare audit and tax workpapers as Foundation and Nonprofit Ops Teams

Finance & FP&AFor Foundation and Nonprofit Ops Teams2 apps12 steps~24 min to set up

Your auditors ask for a trial balance, a list of grants paid by program area, and a reconciliation of restricted vs. unrestricted net assets. You spend two days pulling QuickBooks reports, cross-referencing them against the budget spreadsheet your program officer owns in Google Sheets, and manually matching grant disbursements to the award letters sitting in a DocuSign folder. The 990 preparer needs expenditure responsibility documentation for foreign grants and a schedule of functional expense allocations you have to reconstruct by hand. With a team of four, audit prep season means every other project stops for three weeks.

Finance & FP&AFor Foundation and Nonprofit Ops Teams2 apps12 steps~24 min to set up
Outcome

What you'll set up

A live reconciliation view that pulls QuickBooks transactions on a schedule and matches them against your grant budget lines in Google Sheets, flagging any unmatched disbursements before your auditor asks
A workpaper generator that assembles restricted-vs-unrestricted schedules, functional expense allocations, and grant disbursement logs into a structured document you can hand directly to your CPA or 990 preparer
An anomaly alert that catches unusual vendor charges or duplicate payments in your bank accounts before they surface as audit findings
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your QuickBooks data on a schedule (invoices, bills, vendors, payments, journal entries — all entity-level data) and your Plaid-connected bank accounts on a schedule for transaction-level anomaly detection. Google Sheets is connected from Starch's integration catalog and queried live when your reconciliation app runs. Notion is synced on a schedule so your policy documents and grant templates are searchable inside the Knowledge Management app. DocuSign and your donor portal are automated through your browser — no API required.

Prompts to copy
Pull all QuickBooks transactions from the last fiscal year, group them by program area using the class field, and show me a reconciliation against the grant budget amounts in our Google Sheet at [URL]. Flag any line where spending exceeds the budgeted amount or where a transaction has no matching grant award number.
Build me a workpaper package for our fiscal year audit: include a schedule of grants payable, a restricted vs. unrestricted net asset rollforward pulling from QuickBooks, a functional expense allocation table split 60% program / 25% G&A / 15% fundraising, and a list of all vendors paid more than $10,000 this year with payment dates.
Monitor our connected bank accounts and alert me whenever a vendor we haven't paid before charges more than $500, or whenever a recurring charge increases by more than 20% compared to the same month last year.
Create a knowledge base article for our 990 preparer that documents our expenditure responsibility procedures for foreign grantees, pulls in our standard equivalency determination checklist, and links to the relevant grant agreement stored in Notion.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect QuickBooks: Starch syncs your QuickBooks data on a schedule, pulling invoices, bills, vendors, payments, and journal entries. No manual export needed.
2 Connect Plaid: link your foundation's operating and grant disbursement accounts so Starch has a transaction-level view to cross-check against the GL.
3 Connect your budget Google Sheet from Starch's integration catalog; the agent queries it live each time your reconciliation app runs, so it always reflects the current approved budget.
4 Sync Notion so your grant agreement templates, expenditure responsibility checklists, and board-approved policies are searchable inside your Knowledge Management app.
5 Use the Transaction Insights starter app to build a live spending dashboard: set it to flag any new vendor, any charge that's 20%+ above its trailing average, and any payment without a matching QuickBooks class code.
6 Build a grant reconciliation app in natural language — tell Starch to match every QuickBooks disbursement to a row in your budget spreadsheet by grant award number and surface any gaps as a red-line report.
7 Generate your functional expense allocation schedule by describing the split to Starch: 'Take all QuickBooks transactions for FY2025, allocate each expense category by our 60/25/15 program-G&A-fundraising policy, and produce a schedule formatted for our 990 Part IX.'
8 Use the Knowledge Management app to store your 990 workpaper narrative, your expenditure responsibility documentation for foreign grants, and your auditor's prior-year PBC list so your team can find any of it in seconds next cycle.
9 Automate browser-based tasks through Starch — for example, have Starch log into your state charitable registration portal, check your filing deadlines, and drop the due dates into a Notion page your whole team can see.
10 Run a pre-audit checklist automation: every September 1st, Starch pulls the current reconciliation status, flags outstanding items, and Slacks you a summary so you're not starting from zero when the auditors send their PBC list.
11 Export the final workpaper package — grant disbursement log, restricted asset rollforward, vendor list over $10k, functional expense schedule — as a structured document to hand to your CPA.
12 After audit close, update your Knowledge Management knowledge base with any new procedures your auditor required, so the institutional knowledge survives staff turnover.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

FY2025 Audit Prep — October 2025 close

Sample numbers from a real run
Program grants paid — Education1,840,000
Program grants paid — Economic Mobility920,000
Program grants paid — Foreign grantees (ER required)310,000
G&A expenses — salaries and benefits187,000
Fundraising — events and communications43,000
Total disbursements reconciled to GL3,300,000

The foundation closed FY2025 with $3.3M in grants paid across three program areas plus $230K in operating expenses. Before Starch, your grants manager spent the first two weeks of October manually pulling QuickBooks reports, cross-referencing 47 grant disbursements against the award-letter amounts in a shared Google Drive folder, and emailing the 990 preparer a Word document with the functional expense allocation she'd calculated by hand. This year, Starch's QuickBooks sync had the entity-level data — every bill, payment, and journal entry — ready on day one. The reconciliation app matched all 47 disbursements to budget lines by grant award number and flagged three payments in the Economic Mobility program that lacked a QuickBooks class code, catching them before the auditor did. The $310K in foreign grants triggered expenditure responsibility documentation requirements; Starch pulled the relevant equivalency determination checklists from Notion and assembled a draft workpaper section in about four minutes. The functional expense allocation (60% program, 25% G&A, 15% fundraising applied to the $230K operating base) was generated as a formatted schedule ready for 990 Part IX. Total time from 'start audit prep' to 'package sent to CPA': six days instead of eighteen.

Measurement

How you'll know it's working

Days to deliver auditor PBC package after fiscal year close
Number of audit findings or adjusting journal entries required (target: zero surprises)
Percentage of grant disbursements with a matched award number and class code in QuickBooks at close
Expenditure responsibility documentation completion rate for foreign grantees before 990 filing deadline
Hours of ops staff time consumed by audit prep per cycle
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

Fluxx or Foundant (purpose-built grants management platforms)
Full grants lifecycle management with audit trails built in, but six-figure annual contracts designed for teams with a dedicated grants manager — not a four-person ops team that also handles HR, board relations, and compliance.
QuickBooks + manual Excel/Google Sheets reconciliation
Free beyond your existing QuickBooks subscription, but the reconciliation, functional expense allocation, and workpaper assembly are entirely manual — three weeks of ops time every audit cycle.
Blackbaud Financial Edge NXT
Purpose-built nonprofit accounting with audit-ready reporting, but implementation costs, per-seat pricing, and a feature set sized for $200M+ foundations mean you're paying for a lot you won't use.
Hiring a fractional CFO or accounting consultant for audit prep
Gets the workpapers done without tying up your ops team, but $150–300/hr for 40–60 hours each cycle adds up fast, and institutional knowledge walks out the door when the engagement ends.
On Starch RECOMMENDED

One platform — transaction insights, knowledge management all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

Does Starch sync QuickBooks report views like P&L and Transaction List?
Not right now — QuickBooks report views (P&L, Transaction List, Vendor Expenses) are temporarily disabled pending an upstream fix. Entity-level data — bills, invoices, vendors, payments, journal entries — syncs normally on a schedule. For most audit workpaper needs, entity-level data is what your CPA actually needs anyway. We'll update when report views come back online.
We use NetSuite, not QuickBooks. Does that work?
Yes. Starch syncs your NetSuite data on a schedule — invoices, expenses, journal entries, balance sheets, and income statements. The Investor Reporting starter app uses NetSuite as a primary connection, and you can build a custom audit workpaper app on top of the same sync.
Our grant agreements and 990 workpapers have sensitive donor information. Is Starch SOC 2 certified?
Not yet — Starch is not SOC 2 Type II certified as of today. If your foundation's data governance policy requires SOC 2 before connecting financial data, that's a real constraint worth knowing upfront. It's on the roadmap.
Can Starch pull data from our donor portal or state charitable registration site to check filing deadlines?
Yes. Starch automates any website through your browser — no API needed. If you can log in and click through the site, Starch can navigate it, pull the relevant data, and drop it into a Notion page or Slack you a summary.
We track grants in Salesforce, which someone set up a few years ago. Can Starch connect to that?
Yes. Connect Salesforce from Starch's integration catalog; the agent queries it live when your grant pipeline view or reconciliation app runs. You can build a custom app that joins your Salesforce grant records to QuickBooks disbursements so you always know which awards have been paid, partially paid, or are outstanding.
What about Xero? We're considering switching from QuickBooks.
Xero is available from Starch's integration catalog and queried live when your apps run. It doesn't have the same scheduled-sync depth as QuickBooks today, but you can build dashboards and workpaper apps on top of it through the live query connection.
Can Starch generate the actual 990 filing?
No — Starch builds the workpapers and schedules your 990 preparer needs (functional expense allocation, grants paid by program area, vendor lists, restricted asset rollforwards), but it doesn't generate or e-file the 990 itself. Think of it as cutting prep time for whoever signs the 990, not replacing them.

Ready to run prepare audit and tax workpapers on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.