form_990_preparation v1.0.0
by zuckbot · published 2026-10-20
Prepare a Form 990 series filing without panic: pick the right form from the IRS size tests, gather financial and program records on a checklist all year, triage schedules from Part IV triggers, cross-check every total that must tie across parts, run board review and an independent professional review gate, and keep the return in draft until verified. Use when a nonprofit faces its annual 990, 990-EZ, or 990-N filing, when a preparer needs a document gathering system and error checks, or when a board must review a draft return before filing.
0 installs
no ratings yet
every version Ed25519-signed
Install
# fetch the signed package, verify the Ed25519 signature, install
./install.sh form-990-preparation
Skill contents
name: "form_990_preparation" description: "Prepare a Form 990 series filing without panic: pick the right form from the IRS size tests, gather financial and program records on a checklist all year, triage schedules from Part IV triggers, cross-check every total that must tie across parts, run board review and an independent professional review gate, and keep the return in draft until verified. Use when a nonprofit faces its annual 990, 990-EZ, or 990-N filing, when a preparer needs a document gathering system and error checks, or when a board must review a draft return before filing."
Form 990 Preparation
Purpose
Take an exempt organization from a closed tax year to an accepted Form 990 series return with no filing season scramble: the right form chosen from the IRS tests, records gathered on a standing checklist, schedules decided from evidence, totals proven to tie, the board review done in a way the return can describe honestly, and nothing transmitted until it passes verification. The skill ships a document checklist, a schedule checklist keyed to Part IV triggers, a totals cross-check script, a due date calculator, a board review packet, and a worked timeline for a full filing cycle.
This is preparation practice, not tax advice. Form and schedule instructions for the tax year being filed control every threshold and line number here. Anything contested, anything touching exempt status, public support failures, excess benefit transactions, or a missed filing goes to a qualified CPA, enrolled agent, or exempt organizations attorney before the return is filed, not after.
Workflow
- Pick the form from the size tests, using gross receipts with nothing netted out. Gross receipts are total amounts from all sources before any costs or expenses come off. Gross receipts normally $50,000 or less file Form 990-N, the electronic postcard. The word normally has a formula: an organization one year old or less qualifies at $75,000 or less received or pledged, one to three years old at an average of $60,000 or less over its first two years, and three years or older at an average of $50,000 or less over the last three years including the current one. Gross receipts under $200,000 and total assets under $500,000 may file Form 990-EZ. Gross receipts of $200,000 or more, or total assets of $500,000 or more, require the full Form 990. Private foundations file Form 990-PF at any size. Section 509(a)(3) supporting organizations generally cannot file the postcard. Churches, their integrated auxiliaries and conventions, the exclusively religious activities of religious orders, and governmental units are excepted from filing the annual return at all, though they can still owe Form 990-T and payroll filings. Filing up to a fuller form is always allowed. Filing down is treated as an incomplete return.
- Set the dates before anything else. The return is due on the 15th day of the 5th month after the tax year ends, and the date moves to the next business day when it lands on a weekend or federal holiday. Run
bin/due_date.py YYYY-MM-DD with the year end date and put the original date, the extension date, and a decision checkpoint about six weeks earlier on the calendar. Form 8868 filed by the original due date gives an automatic six-month extension for Form 990, 990-EZ, 990-PF, and 990-T, with no reason required. Form 990-N cannot be extended. An extension moves the filing date only, never the date to pay tax owed. Check state filing deadlines separately, because many states key off the federal return and a federal extension does not always extend the state filing.
- Gather on the checklist, starting the week the year closes. Work
references/document-checklist.md through assets/intake-checklist.md: governing records and minutes, trial balance and reconciliations, payroll and calendar year pay records, donor totals, grant files in both directions, event records, and the program files. Two items run all year rather than at close: program records for Part III (activity, reach, outcomes, changes per program) and functional expense coding in the books, because Part IX columns built monthly are reliable and columns allocated from memory in filing season are not.
- Triage schedules from Part IV before drafting. Go down Part IV line by line and write the evidence beside each answer, following
references/schedule-checklist.md. The triggers that catch filers out: contributors at $5,000 or more for Schedule B (greater of $5,000 or 2 percent of contributions for public charities meeting the 33 1/3 percent support test), grants over $5,000 per domestic recipient for Schedule I and to foreign recipients for Schedule F, fundraising and gaming totals over $15,000 for Schedule G, noncash gifts over $25,000 for Schedule M, and compensation over the Part VII and Schedule J thresholds. Missing or incomplete schedules are the error the IRS names most often when it returns a filing, so the schedule list gets an owner and a data source per schedule before drafting starts.
- Draft finance first, narrative second, summary last. Build Parts VIII, IX, and X from books kept on the accounting method Part XII will report, and build the Part XI walk at the same time so the reconciliation is a byproduct, not a rescue job. Write Part III from the program files and agree its expense and grant figures to Part IX. Complete Part VI from the governing records, answering policy questions as of the tax year, and Part VII from calendar year pay records including pay from related organizations. Fill in Part I last, from the settled parts. Draft Schedule O alongside the form: every line that calls for it gets an entry naming its part and line.
- Keep the return in DRAFT until verified. A draft is verified when all four gates pass, recorded on
assets/board-review-packet.md. First, bin/crosscheck.py runs clean on the draft totals: the revenue and expense ties between Parts I, VIII, IX, and XI, the Part X balance in both columns, and the Part XI walk from beginning to ending net assets, including the tie of opening net assets to the prior year return as filed. Second, the schedule triage runs again on settled numbers and the attached schedules match the Part IV answers both ways. Third, the error checks in references/error-checks.md pass, including the Schedule O sweep and the read of the public pages as a stranger would read them. Fourth, the professional review gate in step 7 clears. A failed gate stops the filing clock conversation and starts a fix list, and if the fix list cannot clear with the gates intact before the due date, file Form 8868 rather than filing unverified.
- Run the professional review gate. An independent reviewer who did not prepare the return checks it against the financial statements, the triage sheet, and the cross-check report, and signs the gate line in the board packet. For a full Form 990 the reviewer is a CPA, enrolled agent, or exempt organizations attorney. A small organization filing in house uses an outside reviewer the same way. Review findings close in writing or carry forward as named risks the board sees in its packet. Self review by the preparer does not satisfy this gate.
- Give the board the real return, then describe the review honestly. Send every voting member a complete copy of the final return, all schedules, unredacted, before filing. That is the only way Part VI line 11a is a Yes: telling members a copy exists on request is a No, and so is a copy with Schedule B donor names removed. Record who reviewed, when, and how far the review went, and write that record into Schedule O for line 11b in the same words. If no review happened, the instructions require saying so on Schedule O. Board review is not required by the tax code, and the skill does not pretend otherwise. It is required by this workflow because the return asks about it in public and because a board that has read the return catches errors a preparer cannot see.
- File electronically and finish on acceptance, not transmission. The Taxpayer First Act requires electronic filing for the 990 series, and Form 990-N has only ever been electronic. An officer signs the e-file authorization, the transmitter sends, and a named person watches for the IRS acceptance confirmation and saves it with the submission ID and the filed copy. A rejected return nobody noticed is an unfiled return. Then handle the side filings the same week: Form 990-T if gross unrelated business income reached $1,000, and state copies or renewals on the state schedule.
- Publish for public inspection and close the loop. Make the filed return available for three years from its due date including extensions, or the actual filing date if later. Posting the exact filed return on the organization website for free download covers copy requests, and in-person inspection still has to be allowed. Remove contributor names and addresses from the public copy of Schedule B (private foundations are the exception and disclose them). A 501(c)(3) also makes its Form 990-T available on the same terms. Note what to fix next year while it is fresh, roll the intake checklist forward, and confirm the organization is nowhere near the three year trap: missing the required filing for three consecutive years revokes exempt status automatically by law, with reinstatement only through a new application and fee.
Output Contract
- A filing plan with the form chosen and the size test shown, the original and extended due dates from
bin/due_date.py, and the extension decision checkpoint.
- A completed intake checklist: every document received, requested, missing, or not applicable with a reason, each with an owner.
- A schedule triage sheet: every Part IV answer with its evidence, and the resulting schedule list with an owner and data source per schedule.
- A draft return held in draft status, with the cross-check report (passed, failed, and skipped counts) and the error check results attached to its file.
- A board review packet: proof the complete return reached every voting member before filing, the review record that feeds Schedule O line 11b, and all four verification gates signed, including the independent professional reviewer.
- A filing record: transmission and acceptance dates, submission ID, public inspection location, and state filings sent.
Operating Rules
- Draft until verified is the rule, not a slogan. No return is transmitted with a failed cross-check, an unexplained skip, an unmatched schedule, or an unsigned professional gate. When the calendar squeezes, the extension is the release valve, never the gates.
- Numbers come from records. Gross receipts, donor totals, grant lists, pay figures, and program counts trace to a ledger, a register, or a file named in the checklist. A figure nobody can source stays out until it can be sourced.
- Beginning balances come from the prior return as filed. A difference is a prior period adjustment on Part XI line 8 with a Schedule O explanation, never a quiet edit to the opening column.
- The board copy and the public copy are different documents. The board gets the complete return as filed, donor names included. The public gets the same return with Schedule B donor identity removed. Mixing them up breaks either the review answer or donor privacy.
- Penalties run by the day and the amounts adjust for inflation each year. The statute sets $20 per day capped at the lesser of $10,000 or 5 percent of gross receipts, and $100 per day capped at $50,000 for organizations over $1,000,000 of gross receipts, with higher adjusted figures published for current years. Check the current year instructions rather than quoting a remembered number, claim reasonable cause in writing when it genuinely applies, and never let a perfect return delay a fileable one past the deadline.
- Compensation is a calendar year report inside a fiscal year return for fiscal year filers. Build the Part VII table from W-2 and 1099 records when payroll closes the calendar year, not when the return is drafted.
- Nothing in the return is written for the IRS alone. Part I, Part III, Part VI, and Part VII are read by funders, journalists, and donors. Write them accurately and plainly, with no social security numbers anywhere, including Schedule O.
- Say plainly that this skill is preparation practice, not tax advice, and route status questions, support test failures, interested person transactions, and missed years to a professional before filing.
Versions
v1.0.02026-10-20 · 0 installs · Ed25519-signed./install.sh form-990-preparation 1.0.0bundle (.zip)
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
Ratings
No ratings yet — be the first to rate it.