Skip to content
TidyOne
NONPROFIT · MULTI · ANNUAL REPORT

Annual nonprofit report → Beneficiaries + Projects + Funds + Documents

How to close the year at organization level without double-counting shared beneficiary transactions.

22–28 min read · Updated 24 September 2026
In short

Annual nonprofit report is the organization-wide view for the selected period. In a multi-beneficiary nonprofit, start with All beneficiaries, All cases, All projects and All funds so the organization's activity is counted once. TidyOne keeps income and expenses separated by currency, shows supporting-document coverage, linked donors/sponsors and fund movements. Then use beneficiary/case and project reports to explain details. The annual report is not an audit, statutory financial statement, tax filing or automatic proof of spending eligibility.

Year→Whole organization→Income & expenses→Documents→Projects & funds→Review / export

What the annual report means in TidyOne

On the Reports page, Annual nonprofit report uses the same financial source data as the other report types, labels the result as annual and sends that report type to the AI draft generator. The effective scope is controlled by the date range and filters. With no beneficiary, case, project or fund selected, TidyOne loads nonprofit transactions in the chosen period for the whole organization.

This matters because changing report type does not relocate or magically reconcile data. The report reads the transactions, documents and relationships that already exist. A duplicated income entry remains duplicated. An expense without a project remains part of the organization-wide annual total. An uploaded file that is not linked does not by itself turn a payment into documented expenditure.

Annual report ≠ the sum of individual beneficiary reports.A shared expense exists once at organization level and may have allocations across several people. Adding individual reports without reconciliation can double-count shared money or omit organization-wide costs.

Before reporting: check the year and data structure

The Current year preset sets 1 January–31 December for the current year; Previous year uses the prior calendar year. If your accounting period or funder period is different, choose Custom and enter the exact dates.

For the whole organization, leave all organizational filters on their general options. In multi-beneficiary mode, a beneficiary or case filter can apply explicit allocation amounts when no project is selected. If a project is also selected, the report keeps that project's transactions at their original amount rather than reducing them to one person's allocation. The annual organization view and beneficiary/case view therefore answer different questions.

1The date range exactly covers the year or reporting period you intend to review.
2For organization totals, Beneficiary, Case, Project and Fund remain on their all/general options.
3Transactions have the correct type, amount, currency and date.
4Material expenses have linked supporting documents.
5Projects, funds and shared allocations are reviewed separately before interpretation.

Step 1 — Generate the whole-organization report

Select Annual nonprofit report, then the year. For the global report, do not select a beneficiary, case, project or fund. Click Update report. TidyOne loads nonprofit transactions from the selected period and builds the summary: income, expenses, balance, donors/sponsors identified through linked contacts and the number of relevant documents.

There is no automatic FX conversion. If the organization has RON 120,000 of income and EUR 8,000 of income, the report displays them separately. Balance is calculated independently for each currency as income minus expenses in that same currency. Do not turn these into one combined number without a documented external FX method.

Step 2 — Read income and expenses by category and project

The Financial summary groups income and expenses by category, currency and project. A transaction without a project appears as General / no project. That may be correct for rent, bank fees or other organization-wide costs, but it can also reveal a missing project relationship.

The unfiltered annual report includes transactions in the period even when their project has later been archived, because the organization-wide query works directly from transactions. Archived projects, however, are omitted from the normal project selector. If you need to investigate an archived project, review its source transactions and documents; the current report dropdown does not let you select it directly.

Use annual for the total; use project reports for explanation.If a project has an unusual balance or large amount, open a separate Project / funder report to inspect its target, funds and evidence in context.

Step 3 — Review beneficiaries without duplicating the organization

The global annual view does not produce a complete table that automatically divides the organization's total among every beneficiary. This is a current workflow limitation and protects against a common accounting mistake: a shared transaction exists once while its beneficiary allocations are stored separately. For one person or case, use Beneficiary / case report.

When a beneficiary or case is selected and no project is selected, transactions with explicit allocations are reduced to the amount allocated to that person/case. Transactions without allocations can be included only when linked directly or when the project belongs unambiguously to that beneficiary. This prevents TidyOne from assigning the full value of one shared payment to every person.

For year-end review, inspect key beneficiaries or active cases individually, but do not add those reports together blindly. Administrative costs, shared projects and unallocated transactions can belong in the annual organization report without belonging entirely to any one person.

Step 4 — Check supporting documents and gaps

TidyOne shows how many expenses in the selection have a linked document, how many documents were AI-processed and how many were not. The Expenses without linked document list displays up to the first 100 entries in the interface. A 100% value does not prove tax validity or eligibility; it only means the current technical relationship between expenses and uploaded documents is complete.

A document directly linked to an in-period transaction can be included even when the document date is outside the report period, because the transaction relationship takes priority. Unlinked documents depend on document date and project/fund/beneficiary context. Review the original whenever invoice date, payment date and accounting period differ.

AI-processed is a processing status, not an accounting approval. Verify issuer, number, amount, currency, date and the link to the correct transaction.

Step 5 — Interpret donors and sponsors correctly

The donor metric counts distinct contacts from income transactions in the period that have a contact_id and whose contact type is donor or sponsor. The donor table groups amounts by contact and currency and displays the first 20 donor/currency combinations.

If a donation was entered only as text in the source field with no linked contact, the income can still appear in financial totals while the donor is absent from the donor table. That does not mean the money is missing; it means the relationship data is incomplete.

The donor table is not a complete donations register.For reconciliation, compare TidyOne transactions with bank statements, fundraising platforms and relevant donation/sponsorship records.

Step 6 — Read funds for the annual period

The Funds section calculates inflows and outflows from transactions in the report period and shows the difference for each fund. This is a period view, not a bank balance and not a legal conclusion about whether money may be spent. Restricted-fund conditions must still be checked against the real agreement and evidence.

Funds have their own configured currency. The table calculation uses activity in that fund currency. If a transaction in another currency was attached to the same fund, TidyOne does not convert it automatically for the fund table. Review mixed-currency activity separately and correct accidental currency entry errors.

For the difference between cumulative availability in Projects & Funds and the difference shown for one reporting year, use the restricted-fund guide. The two screens answer different time-scope questions.

Step 7 — Run a data-quality review before export

The AI report function also constructs internal data-quality indicators, including transactions without category, transactions without project, documents not AI-processed, expenses without linked documents and — in multi mode — transactions with no beneficiary, case, project or allocation. These warnings are useful for review, but they are not a complete reconciliation engine.

The current report UI does not provide a separate detailed dashboard listing every one of those warnings transaction by transaction. If the AI draft flags a gap, open Finance, Documents, Projects & Funds and the relevant detailed reports to locate the source.

Worked example: one year, two projects and three beneficiaries

Fictional example: in 2026 the organization runs a therapy project and a transport project. It records RON 150,000 and EUR 6,000 of income, and RON 112,000 and EUR 2,000 of expenses. One shared RON 3,000 expense has internal allocations of RON 1,500, RON 900 and RON 600 across three beneficiaries.

Fictional example; currencies remain separate
QuestionGlobal annual reportBeneficiary/case report
Shared RON 3,000 expenseRON 3,000 onceOnly that person's allocation
RON incomeRON 150,000Only relevant direct/allocated income
EUR incomeEUR 6,000 separatelySeparate when relevant to the selection
Administrative cost with no beneficiaryIncluded when it is in the annual periodMay not appear in the individual report
Archived project with 2026 transactionsTransactions can remain in annual totalsInvestigate through source records

In this example, do not calculate one combined converted balance. The annual report keeps a RON 38,000 difference and a EUR 4,000 difference separately, before any external bank reconciliation.

Step 8 — PDF, CSV and accountant ZIP

PDF / Print, Transactions CSV and Accountant ZIP are controlled by the reports_full_export entitlement. In the current UI, accounts without this access are told that full PDF/CSV/ZIP export is available in Association PRO. The base report can still be viewed in the interface.

The transaction CSV contains date, type, reported amount, original amount, allocation indicator, currency, category, subcategory, issuer/description, contact, beneficiary, case, project and fund. In the global annual report, amounts are normally original transaction amounts because no beneficiary/case filter is applying allocations.

The ZIP contains tranzactii.csv, documente.csv, rezumat.json and available original files. timeline-caz.csv is added only when a beneficiary or case is in scope. When more than 250 documents are eligible, the browser warns that the document folder will contain the first 250 original files while the document list remains in the CSV.

AI draft for the annual report

Generate AI draft sends report type annual, the selected period and filters to the report function. The function rebuilds context from organization data, keeps currencies separate and, in multi mode, explicitly instructs the model never to transfer facts or amounts from one beneficiary/case to another.

The AI context includes financial totals, categories/subcategories, distribution by project, donors, documents and data-quality warnings. Sensitive medical summaries, diagnoses, internal case notes and similar details are intentionally excluded from this report flow. The draft must be reviewed before use and is not represented by the application as audited, filed or legally compliant.

AI generation consumes the ai_report_generation plan allowance. If Gemini or the Supabase environment is not configured or available, the calculated financial report can still exist in the interface even when the AI narrative cannot be generated.

Common multi-beneficiary annual-report mistakes

01Adding beneficiary reports to get the nonprofit total. Shared transactions can be duplicated and general costs omitted.
02Combining RON and EUR. TidyOne performs no automatic FX conversion.
03Treating “linked document” as “accounting-approved document”. Technical linkage does not validate content.
04Assuming the donor table includes every donation. It requires linked donor/sponsor contacts.
05Treating fund difference as bank balance or spending eligibility. It is arithmetic on report-period transactions.
06Ignoring transactions with no project. Some are legitimate; others reveal incomplete data.
07Sending the AI draft without review. Check figures, evidence and wording first.

Year-end checklist before accountant, board or funder

AThe date range is correct and all general filters are reset for the organization total.
BIncome and expenses are reconciled with relevant external records.
CCurrencies are reviewed separately; there are no implied conversions.
DExpenses without linked documents are investigated.
EImportant donors/sponsors have the correct linked contacts.
FProjects and funds with large differences are reviewed in dedicated reports.
GBeneficiary allocations are checked through beneficiary/case reports without duplicating the nonprofit total.
HExports are opened and checked before distribution.
IThe AI narrative is treated as working copy, not a final official filing.

Frequently asked questions

Does the annual report automatically split every amount across beneficiaries?

No. The global report preserves organization transactions. For one person or case, use beneficiary/case reporting; explicit allocations are applied in that scope when no project is selected.

Why does an expense with no project appear in the annual report?

Because the global annual report includes nonprofit transactions in the selected period. No-project can be a legitimate general cost or a missing relationship that needs correction.

Why is a donor missing from the table when the income exists?

The donor/sponsor table needs a linked contact on the income transaction, and that contact must be typed as donor or sponsor.

Can I get one annual RON total when I also have EUR?

Not automatically in TidyOne. Currencies remain separate. Any conversion must be documented and calculated outside this reporting logic.

Does the annual report include archived projects?

Their transactions can still contribute to the unfiltered annual total when they fall inside the period. Archived projects are not available in the normal project dropdown for direct isolation.

Is the PDF or ZIP an official accounting report?

No. They are operational exports from TidyOne data. Official form and verification depend on your accountant, funder requirements and applicable rules.

Can AI certify the annual report?

No. It creates a narrative draft and can surface data gaps. It does not certify, audit or file the report.

Read next

Close the year at organization level, then explain details by project and beneficiary.

One reconciled organization total is the base. Individual reports explain distribution; they do not create another copy of the money.

Open Reports

This tutorial describes reporting logic in the TidyOne V13.5.29 package, whose runtime is unchanged from V13.5.28, reviewed in application source on 24 September 2026. Examples are fictional. It does not replace statutory accounting, bank reconciliation, funder conditions or legal/tax advice.