
One bank deposit hits your account on Tuesday. Inside it: a $250 unrestricted gift from a recurring donor, $1,200 in event-ticket revenue from last month's gala, a $500 sponsorship with a logo placement obligation, a $5,000 grant tranche that depends on hitting a program milestone you haven't hit yet, and $400 of in-kind goods someone "valued at retail." Your job, as the treasurer who isn't a CPA, is to record each of those correctly so the year-end tax letter reconciles to the penny and the auditor (if one ever shows up) doesn't flag a single line.
That is nonprofit revenue recognition. It is 80% getting the categorization right at intake and 20% applying the standard. Get the intake right and the rules largely take care of themselves. Get the intake wrong and no amount of ASC literacy will save the audit.
This guide covers the rules in full: the five-step model under ASC 606, contribution accounting under ASC 958-605, the barrier plus right of return test, multi-year grant treatment, and journal entries you can mirror. Every section also answers the only question a working treasurer has: what do I actually do on Monday?
Revenue recognition is the nonprofit accounting rule for when a dollar counts as earned income on your books, and under which framework. For a for-profit, this is mostly one question: when did we deliver the product or service? For a nonprofit, it is two: was this an exchange or a contribution, and if a contribution, are there conditions or restrictions attached?
Nonprofits face this double-track problem because gifts and earned revenue both flow into the same bank account, but they live under different FASB standards. ASC 606 governs exchange transactions (a ticket sale, a store purchase, a sponsorship with quantifiable benefit). ASC 958-605 governs contribution accounting (a donation, a grant, a peer-to-peer gift). ASU 2018-08 is the FASB update that clarified which transfers count as which (CPA Journal, 2025).
Why this matters operationally: misclassifying revenue at intake propagates everywhere. It changes when revenue appears on the statement of activities. It changes whether a balance sits in deferred revenue or net assets with donor restrictions. It changes how the donor's year-end tax letter reads. And misclassification is one of the recurring patterns auditors look for in nonprofit engagements, especially around event sponsorships and grants that look like contributions but contain exchange elements.
For a small nonprofit: you do not need to memorize the Codification. You need one rule applied consistently at the moment money comes in. The rest of this guide is that rule, in full, with the journal entries.
This classification happens at the intake form, not in the journal entry. If your donation page, ticketing page, and membership page are the same form with different dropdowns, you are setting yourself up for a forensic reconciliation at year end. If they are separate forms, the classification is already done before the money lands.
An exchange transaction is one where your nonprofit receives payment and the payer receives something of commensurate value in return. A contribution is a transfer of assets in which the donor receives no commensurate value (the public-benefit exception: a transfer that benefits the public at large is not "commensurate value" to the donor, even if the donor is a member of the public). ASU 2018-08 walks through the indicators for distinguishing the two (CPA Journal, 2025; AICPA CPEA NFP Revenue Recognition Series).
The practical takeaway: this is a categorization problem that lives at the intake layer. Set up donation forms that capture donor intent at the source so the contribution flag is set the moment the gift is captured. Use a separate form for exchange revenue (ticketing, store, membership) so it never gets commingled with contributions on the way to your accounting system.
For a small nonprofit: if you remember one thing, remember this. The donor's intent ("I meant it as a donation") does not control the classification. What the donor received controls it. A $200 gala ticket that comes with a $60 dinner is a $60 exchange plus a $140 contribution. Categorize at the form and you will never have to reconstruct that split from a bank statement.
When a transaction is an exchange, FASB ASC 606 walks you through five steps to determine when and how much revenue to recognize. Below, each step is paired with a working nonprofit example: a $150 annual gala ticket that includes dinner (fair value $60) and the rest of the night's program (entertainment, auction access). Source: AICPA CPEA, Revenue Recognition for Not-for-Profit Entities.
The "contract" is the agreement creating enforceable rights and obligations. For a gala ticket, it is the purchase confirmation: the buyer pays $150, your org commits to admitting them to the gala. For a multi-year sponsorship agreement with deliverables, the signed sponsorship contract is the document.
List every distinct good or service you promised. For the gala ticket, the obligation is admission to the event on the specified date (which bundles dinner, program, and entertainment delivered as one experience on one night). For a sponsorship, obligations might be: logo on event signage, mention in the program, a booth, and post-event impressions data. If you sell separate event-ticketing forms (an exchange transaction under ASC 606), the performance obligation is automatically tied to one event, which keeps step 2 clean.
This is the amount you expect to be entitled to. For the gala, $150 per ticket. If the ticket price exceeds the fair value of what attendees receive ($60 dinner), the excess ($90) is a contribution and is carved out before ASC 606 applies (this dual treatment is the most common source of audit findings on event revenue).
For the gala ticket, after carving out the $90 contribution, the full $60 is allocated to the single performance obligation (the event experience). For a sponsorship with multiple obligations, allocate the transaction price across them based on standalone selling prices.
For the gala, recognize the $60 exchange portion on the night of the event. The $90 contribution portion is recognized when the contribution is unconditional (typically at ticket purchase, since the donor's right to the gift portion does not depend on the event happening). For a multi-month sponsorship, recognize ratably as obligations are delivered.
For a small nonprofit: the five-step model sounds heavier than it is in practice. If you sell tickets through a dedicated ticketing form, the contract, performance obligation, and price are decided before the first ticket sells. Your only judgment call each year is the dinner's fair market value. Document it once and reuse it.
Once you have decided a transfer is a contribution, the operative subtopic is ASC 958-605 (Not-for-Profit Entities, Revenue Recognition). The two questions ASC 958-605 makes you answer for every contribution are: (1) is it conditional or unconditional, and (2) is it restricted or unrestricted? These are independent questions with independent consequences.
An unconditional contribution is recognized as revenue immediately when the promise is made (a signed pledge, a wire transfer, an irrevocable bequest notification). No deferral.
A conditional contribution is deferred until conditions are met. Under ASU 2018-08, a contribution is conditional only if it has BOTH of the following (CPA Journal, 2025):
Both must be present. A grant that says "use these funds for the literacy program by December 31" is not conditional under this test (no real barrier; it is a purpose restriction). A grant that says "we will reimburse you up to $50,000 for documented program expenses, and unspent funds must be returned" is conditional (barrier: documented expenses; right of return: unspent funds).
A donor-imposed restriction limits how or when the nonprofit may use the contribution (purpose restriction: "for the literacy program"; time restriction: "to be used in our next fiscal year"). Restrictions do not delay revenue recognition. They affect which net asset class the revenue lands in:
A common small-org mistake is treating a purpose restriction as a condition and deferring revenue. Under ASC 958-605, you recognize the revenue now and classify it as "with donor restrictions"; you release the restriction (reclassify to "without donor restrictions") when the purpose is satisfied.
For a small nonprofit: a designated giving page for each restricted fund saves you this entire judgment call every time a gift comes in. The fund tag is the restriction, set by the donor at the moment of giving. The conditional/unconditional question is rarer and usually tied to grant agreements (next section).
Grants are where small-org treasurers get tripped up most often, because grant agreements use language that sounds transactional ("in consideration of," "deliverables," "milestones") but most grants are contributions under ASU 2018-08. The AICPA CPEA series spells out the indicators for treating a grant as a contribution vs. an exchange (AICPA CPEA, NFP Revenue Recognition Series, Part I).
Ask: does the grantor receive direct, commensurate value? If a federal agency funds you to deliver services it would otherwise procure (and the services benefit the agency directly), it is an exchange under ASC 606. If a foundation funds a literacy program that benefits the public (and the foundation only receives indirect benefit such as mission alignment or naming recognition), it is a contribution under ASC 958-605. The vast majority of foundation and government grants to nonprofits fall on the contribution side after ASU 2018-08.
Once classified as a contribution, apply the barrier plus right of return test:
Simplified illustrative example; consult your CPA for your nonprofit's chart of accounts. Suppose a foundation awards your org a $100,000 grant payable $25,000 per year over four years, with each year's tranche conditioned on submitting a program report showing at least 50 program participants served, and unspent funds at year end must be returned.
Each year's $25,000 is a separate conditional contribution. You do not recognize $100,000 of revenue at signing. You recognize $25,000 of contribution revenue each year, in the year the condition (50 participants plus report submitted) is met. The unrecognized future tranches are not on the statement of financial position as a receivable until they are unconditional.
If a grant reimburses documented expenses up to a cap, the barrier is incurring qualifying expenses. Revenue is recognized as qualifying expenses are incurred, dollar-for-dollar up to the cap, with the unfunded balance staying off the books until it is earned.
If your org expends $1,000,000 or more in federal awards in a fiscal year, you are subject to a single audit under the Uniform Guidance. This threshold was raised from the older $750,000 effective October 1, 2024 (2 CFR 200.501). Verify the current threshold on ecfr.gov before relying on it for audit planning. Nonprofit grants at this scale should always be reviewed with your auditor.
Operationally, this is where intake categorization pays its largest dividend. Zeffy's free QuickBooks integration syncs payouts pre-sorted by campaign and fund, so each conditional tranche, once recognized, lands in the correct QuickBooks account without a manual reclassification entry.
For a small nonprofit: the first time a grant agreement crosses your desk, send it to your CPA for a single billable hour of review before signing. That hour saves you from accepting a barrier you can't meet, or missing one that turns "easy revenue" into a deferred liability.
Use this static decision logic at intake for every gift over your materiality threshold (most small orgs set this at $1,000 or $5,000).
Simplified illustrative examples; consult your CPA for your nonprofit's chart of accounts. Account names follow standard nonprofit COA terminology.
Debit: Cash $500
Credit: Contributions — Without Donor Restrictions $500
Recognized immediately upon receipt under ASC 958-605.
No journal entry at signing. The agreement is disclosed in the notes to the financial statements, but no revenue or receivable is recorded because the contribution is conditional under ASU 2018-08.
Debit: Cash $25,000
Credit: Contributions — With Donor Restrictions $25,000
If the grant is also purpose-restricted, the credit lands in the "With Donor Restrictions" net asset class. When program expenses are incurred against it, reclassify with a release entry (debit Net Assets Released from Restrictions, credit Net Assets Released from Restrictions — without donor restrictions).
At the time of sale:
Debit: Cash $150
Credit: Deferred Revenue — Event $60
Credit: Contributions — Without Donor Restrictions $90
On the night of the event (performance obligation satisfied under ASC 606):
Debit: Deferred Revenue — Event $60
Credit: Event Revenue $60
At the time of purchase:
Debit: Cash $120
Credit: Deferred Membership Revenue $120
Monthly recognition over the membership year:
Debit: Deferred Membership Revenue $10
Credit: Membership Revenue $10
If the membership confers no commensurate benefit (pure philanthropy with a "member" label), treat the dues as a contribution under ASC 958-605 instead.
Revenue is recognized when earned, not when cash is received. For exchanges, that is when the performance obligation is satisfied. For unconditional contributions, that is when the gift is received or promised. For conditional contributions, that is when conditions are met. Booking revenue too early violates GAAP and the relevant ASC subtopic (CPA Journal).
Cash accounting recognizes revenue when received. Accrual accounting recognizes revenue when earned or promised. GAAP requires accrual for any nonprofit issuing audited financial statements. If you have run on cash accounting and are heading toward your first audit, talk to your CPA about a clean transition (AICPA CPEA).
Contributions with donor restrictions live in a different net asset class than unrestricted contributions. Treating them as a single bucket masks how much truly unrestricted operating cash you have. Set up your nonprofit financial statements chart of accounts so every contribution credit lands in the right net asset class at the moment of recognition.
The most common error: recognizing the full multi-year grant in year one. Each tranche is its own conditional contribution and is recognized only when its condition is satisfied. Track each grant in a deferred-revenue or commitment schedule, not in the operating revenue line.
Sponsorships with logo placement, gala tickets with dinners, and "donations" that include event admission all have an exchange component. Treating them as pure contributions overstates contribution revenue and understates exchange revenue, with downstream effects on Form 990 program-service revenue lines. ASU 2018-08 is the source to lean on when this question comes up (CPA Journal, 2025). When in doubt, split the transaction and document the fair-value calculation.
The realistic small-org compliance posture is not "become a CPA." It is "set up your intake so consistent categorization is automatic, and reconcile monthly so nothing piles up."
For a small nonprofit: the goal is not to do your own CPA work. The goal is to hand your CPA clean, pre-sorted data once a year so the engagement is short and uneventful. The intake layer is where you earn that.
Zeffy is a 100% free fundraising platform. It is not accounting software, and it does not apply ASC 606 or ASC 958-605 judgment for you. What Zeffy does is make the intake layer clean, so the standards work is straightforward when your bookkeeper or CPA applies it.

.avif)
Learn about nonprofit accounting processes, regulations, compliance, and best practices. Grab all the details you need to know to run efficient accounting for your mission.

.webp)
Is your organization struggling to manage donations and finances? This guide to the top accounting software will simplify your finances with top features, pricing, reviews, and more.

.avif)
Learn about nonprofit tax obligations, exemptions, and maintaining tax-exempt status. Streamline compliance with Zeffy's IRS-compliant tax receipt generation.
.webp)