NonprofitReports Excel Add-in
Complete User Guide — GAAP-Compliant Financial Reporting for Nonprofits
1. Getting Started
System Requirements
- Windows 10 or later
- Microsoft Excel 2016 or later (desktop version, not web/online)
- .NET Framework 4.8 (built into Windows 10 — no separate install needed)
Opening the Add-in
- Double-click NonprofitReports-Portable.exe. No installation or administrator access is required.
- Select Open NonprofitReports in Excel. The launcher detects whether your Excel is 32-bit or 64-bit and loads the correct add-in automatically.
- Excel opens on the new Start Here worksheet, which remains the first workbook tab and shows the next required action.
- You will also see a new "NONPROFIT REPORTING" tab on the ribbon. Use its Start Here button whenever you want to return to the workflow guide.
Live workflow guide: Start Here tracks six stages: import data, confirm reconciliation, approve financial classifications, review SFE allocations, generate statements, and perform final checks/export. Its status is based on evidence in the current workbook and refreshes whenever you open the sheet.
Portable mode: Keep the EXE wherever it is convenient. The launcher does not install or permanently register the add-in. It securely caches the selected runtime file under your Windows user profile and loads it for the current Excel session.
Your seven-day trial: Downloading the EXE, opening the launcher, or opening Excel does not start the trial. The fixed 168-hour period begins only when you run your first licensed NonprofitReports feature and the server confirms it. Internet access is required for that first feature. After verification, the signed cache supports up to 24 hours offline between checks, but never extends the seven-day expiry. Deleting the cache, reinstalling, or changing the Windows clock does not create a new trial.
Security: A downloaded copy may produce a Windows security prompt the first time it runs. Confirm that the publisher is NonprofitReports before continuing. Do not run the file if the publisher or file hash is unexpected.
The Ribbon
The NONPROFIT REPORTING tab contains these groups:
| Group | Contains | Purpose |
| Data | Import Data, Map Columns, Chart of Accounts | Import and manage your transaction data |
| Reports | Generate All, SOA, SFP, SFE, SCF, Detailed TB, Board Summary | Generate GAAP-compliant financial statements and optional workpapers |
| Formulas | Insert NPR.GL, Formula Wizard | Build custom reports with live formulas |
| Tools | Start Here, Refresh Data, Period Selection, Export | Workflow guidance, utilities, and settings |
2. Importing Data
Step-by-Step Import
- Click Import Data on the ribbon.
- Step 1 — Select GL Export: Choose a CSV or Excel General Ledger Detail file. The wizard shows file size, row count when available, and column count.
- Step 2 — Confirm Export Format: The wizard uses the exported file headers to suggest a column-mapping preset. This is a file import only; it does not connect to the accounting system.
- Step 3 — Review Mapping: Review how your file's columns map to transaction fields and choose the source number format. Use decimal point for values such as 1,234.56 or decimal comma for 1.234,56. Auto-detect rejects ambiguous values instead of guessing. Date and Account Code are required.
- Click Import. A progress dialog shows real-time status with estimated time remaining.
Supported File Formats
| Format | Expected Columns |
| Generic CSV | Transaction ID, Date, Account Code, Account Name, Description, Debit, Credit, Amount, Fund, etc. |
| Blackbaud Financial Edge | Journal ID, Post Date, Account Number, Account Description, Debit Amount, Credit Amount... |
| QuickBooks Online/Desktop | Num, Date, Account, Memo/Description, Debit, Credit, Amount... |
| Sage Intacct | RECORDNO, WHENPOSTED, ACCOUNTNO, ACCOUNTTITLE, DEBITAMOUNT, CREDITAMOUNT... |
| Xero | JournalNumber, JournalDate, AccountCode, AccountName, Debit, Credit... |
| Aplos | Transaction ID, Date, Account Number, Account Name, Fund, Tag, Debit, Credit... |
What Gets Imported
Your transactions are written to a sheet called "Data Import" with 21 columns covering all financial data fields. The import uses high-performance batch writing — even 300,000+ rows complete in under 2 minutes.
Required reconciliation: After every import, review the Import Control sheet. Reports remain blocked until all source rows are accepted and total debits equal total credits within $0.01. Correct rejected rows in the source and re-import; do not omit them from a final report.
Tip: You can re-import at any time. The existing Data Import sheet will be cleared and refreshed with the new data.
Preparing Your Data
For best results, export a General Ledger Detail report from your accounting system:
- Include all accounts (assets, liabilities, equity, revenue, and expenses)
- Include the full fiscal year(s) you want to report on
- Include columns for Account Code, Account Name, Date, Debit, and Credit at minimum
- If you use fund accounting, include Fund and Class/Program columns
3. Generating Reports
Generate All Reports at Once
Enter the report Start Date and End Date on the Start Here sheet, then click Generate All. The add-in first runs the required in-memory Trial Balance control. When it passes, the four core financial statements are generated. The detailed account-by-account Trial Balance worksheet is optional.
Before the first report, complete the Account Map review. NonprofitReports pre-fills suggested financial and natural categories from the account code and name. Review the yellow rows, correct exceptions, then choose Account Map > Approve Valid Suggestions. The Chart of Accounts contains financial-statement classifications only; it does not assign functional expense categories. Approval automatically creates an expense-only SFE Allocation Workpaper with actual amounts for the Start Here period when data is available.
Dynamic reporting period: After reports exist, changing either reporting date on Start Here reruns the required TB control and refreshes the generated statements and SFE workpaper. An existing detailed TB workpaper is also regenerated; otherwise it remains optional. If the selected period has no transactions, the last valid applied period remains authoritative. SFE allocation inputs are saved by period and restored when you return to those dates.
Generate Individual Reports
Click any individual report button to generate just that statement:
- SOA — Statement of Activities
- SFP — Statement of Financial Position (Balance Sheet)
- SFE — Statement of Functional Expenses
- SCF — Statement of Cash Flows
- Detailed TB — Optional 8-column Trial Balance workpaper
- Board Summary — Executive summary for board meetings
Tip: The period cell at the top of each standard report is linked to the validated Start Here dates. Change reporting dates only on Start Here so every statement and control remains synchronized.
4. Report Details
Statement of Activities (SOA)
Shows revenue, expenses, and change in net assets for a period — the nonprofit equivalent of an income statement.
- Three columns: Without Donor Restrictions, With Donor Restrictions (Temporary & Permanent), and Total
- Revenue and support broken down by source
- Expenses by natural classification
- Net assets released from restrictions (if applicable)
- Bottom line: Change in Net Assets ties to the Statement of Financial Position
Statement of Financial Position (SFP)
The nonprofit balance sheet showing what the organization owns and owes.
- Assets: Current assets, fixed assets, other assets
- Liabilities: Current liabilities, long-term liabilities
- Net Assets: Without Donor Restrictions, With Donor Restrictions
- Always balances: Total Assets = Total Liabilities + Total Net Assets
Statement of Functional Expenses (SFE)
Required by ASC 958 — shows expenses by both natural classification and functional allocation.
- Columns: Program Services, Management & General, Fundraising, Total
- Rows: Each expense line item (salaries, rent, supplies, etc.)
- Generating the SFE also creates an SFE Allocation Workpaper for auditor support
- Direct functional amounts are preclassified from the imported Class/Program field
- Shared costs require a documented year-end basis and editable Program, M&G, and Fundraising percentages
- Incomplete or over-allocated workpaper rows remain Unallocated and mark the statement DRAFT
- The workpaper includes source GL amounts, allocation calculations, residuals, reviewer notes, and a tie-out
Statement of Cash Flows (SCF)
Shows how cash moved in and out of the organization.
- Operating Activities: Cash from day-to-day operations
- Investing Activities: Purchase/sale of fixed assets and investments
- Financing Activities: Loan proceeds/payments, restricted contributions
- Net increase/decrease in cash reconciles to the balance sheet
Trial Balance
Generate All always performs the required opening, period, and closing debit/credit controls in memory before producing statements. Click Detailed TB only when you need the optional 8-column account workpaper for internal review, auditors, or export:
| Column | Description |
| Account Code | Account number from your chart of accounts |
| Account Name | Account description |
| Opening Dr / Opening Cr | Balance at start of period |
| Period Dr / Period Cr | Activity during the period |
| Closing Dr / Closing Cr | Balance at end of period |
The detailed workpaper uses pre-aggregated account values for speed, retains ordinary subtotal and control formulas for auditability, and supports account-level drilldown. Each column pair (Dr/Cr) should balance. Debit-normal accounts (Assets, Expenses) show in the Dr column; Credit-normal accounts (Liabilities, Net Assets, Revenue) show in the Cr column.
Board Summary
A concise executive summary designed for board meetings — key financial highlights on a single page.
NPR formulas are live Excel functions that query your imported data. They recalculate automatically when you change parameters or refresh data. Use them to build any custom report.
NPR.GL — General Ledger Query
The primary formula. Returns account balances, debits, credits, or movements for any period.
=NPR.GL(accounts, type, [period], [grant], [fund], [class])
| Parameter | Required | Description | Examples |
accounts | Yes | Account codes to query | "4000", "5000-5399", "5100,5200,5300" |
type | Yes | What to return | "bal", "dr", "cr", "mov", "open" |
period | No | Time period filter | "FY2025", "2025-01", "2025-Q1", "YTD" |
grant | No | Grant code filter | "GRANT-001" |
fund | No | Fund code filter | "UNRE", "TEMP" |
class | No | Class/program filter | "PROG", "MGMT" |
Type Parameter Values
| Type | Returns | Use For |
bal | Closing balance (all activity through end of period) | Balance sheet accounts, net asset balances |
open | Opening balance (all activity before period starts) | Beginning balances, prior period comparisons |
mov | Net movement during the period | Revenue/expense activity, changes |
dr | Total debits in the period | Gross debits analysis |
cr | Total credits in the period | Gross credits analysis |
Period Formats
| Format | Example | Meaning |
| Fiscal Year | "FY2025" | Full fiscal year (Jul 2024 – Jun 2025 or Jan – Dec based on your data) |
| Calendar Year | "2025" | January 1 – December 31, 2025 |
| Month | "2025-03" | March 1 – 31, 2025 |
| Quarter | "2025-Q1" | January 1 – March 31, 2025 |
| Date Range | "2025-01-01:2025-12-31" | Custom date range |
| Year-to-Date | "YTD" | Jan 1 of current year through today |
| Omitted | (leave blank) | All time — inception to date |
Account Specification Formats
| Format | Example | Meaning |
| Single account | "4000" | Just account 4000 |
| Range | "5000-5999" | All accounts from 5000 to 5999 |
| List | "5100,5200,5300" | Accounts 5100, 5200, and 5300 |
| Mixed | "4000-4999,5100" | Range 4000-4999 plus account 5100 |
Formula Examples
=NPR.GL("1100", "bal", "FY2025")
Cash balance at end of FY2025
=NPR.GL("4000-4999", "mov", "2025-03")
Total revenue for March 2025
=NPR.GL("5000-5999", "mov", "2025-Q1")
Total expenses for Q1 2025
=NPR.GL("5100", "mov", "FY2025", , "UNRE")
Salary expense for FY2025, Unrestricted fund only
=NPR.GL("6100,6110,6120", "bal")
Combined balance of Rent + Utilities (all time)
=ABS(NPR.GL("4000-4999", "mov", "FY2025"))
Absolute value of revenue (removes sign)
NPR.Lookup — Utility Lookups
=NPR.Lookup(key, type)
Returns metadata about your data. type can be "account_name", "grant_name", "source", or "refresh_time".
Using the Formula Wizard
Click Formula Wizard on the ribbon to build NPR.GL formulas interactively:
- Select the accounts from a dropdown of your chart of accounts
- Choose the return type (balance, movement, debits, credits)
- Pick the period
- Add optional filters (fund, class)
- The wizard inserts the formula into the active cell
6. Transaction Drilldown
Double-click any blue underlined number on a report to see the individual transactions behind it.
How Drilldown Works
- A new worksheet tab is created (e.g., "Drilldown - Revenue")
- All matching transactions are listed with full details: Date, Account, Description, Debit, Credit, Fund, Class, Vendor, etc.
- The sheet includes a summary header showing what was drilled into
Tip: Drilldown works on both pre-generated reports and cells containing NPR.GL formulas. It traces the formula parameters to find the right transactions.
Drilldown on Formula Cells
If you double-click a cell that contains an NPR.GL formula (or a cell that references one, like =ROUND(H8*0.35, 2)), the drilldown traces the formula back to find the underlying NPR.GL call and shows those transactions.
7. Chart of Accounts
Click Chart of Accounts (in the Data group) to view or export the chart of accounts extracted from your imported transactions.
For financial-statement classification, use Account Map on the Nonprofit Reporting ribbon. Choose Review Suggested Classifications, correct any exceptions on the prefilled sheet, and then choose Approve Valid Suggestions. You do not need to approve every valid row individually.
If a workbook contains older yellow suggestions after an add-in update, choose Refresh Unapproved Suggestions. This reapplies the latest rules without changing any rows already marked Approved.
- Lists every unique account code and name found in your data
- Shows account type classification (Asset, Liability, Equity, Revenue, Expense)
- Useful for verifying your data before generating reports
- Can be exported or printed for audit documentation
8. Column Mapping & Presets
Click Map Columns (in the Data group) to manage how your file's columns map to transaction fields.
The Mapping Dialog
The mapping dialog shows every transaction field and lets you select which column from your file corresponds to each one. Fields are organized into sections:
- Core Fields: Transaction ID, Date, Account Code, Account Name, Description, Debit, Credit, Amount
- Fund Accounting: Fund Code, Fund Name, Grant Code, Grant Name, Class/Program Code, Class/Program Name
- Vendor & Employee: Vendor ID, Vendor Name, Employee ID, Employee Name
- Additional: Batch ID, Department, Project, Reference #
Custom Fields
Click + Add Custom Field in the mapping dialog to map additional columns from your file that don't fit the standard fields. Custom fields are stored with your transactions and available for filtering.
Saving Presets
If you regularly import from the same system, your mapping is remembered. The next time you import the same file format, the wizard will pre-select the correct columns.
9. Tips & Best Practices
Working with Reports
- Change the period: Edit the Start Date or End Date on Start Here. Existing standard reports and the SFE workpaper refresh together; an existing detailed TB is regenerated automatically.
- Force recalculate: Press F9 to recalculate all formulas after importing updated data.
- See account codes: Unhide column A (or column F on SOA) to reveal the account codes behind each line item.
- See formulas: Click any number on a report and look at the formula bar to see the
NPR.GL formula.
- Copy reports: You can copy report sheets to other workbooks. The formulas will still work as long as the add-in is loaded and data is imported.
Building Custom Reports
- Use
NPR.GL formulas on any blank sheet to build your own reports
- Combine with standard Excel functions:
=ABS(), =ROUND(), =IF(), =SUM()
- Reference period cells to make reports dynamic (e.g.,
=NPR.GL("5000-5999", "mov", $B$2) where B2 contains the period)
- Use the Formula Wizard for complex queries
Performance
- The add-in handles 500,000+ transactions efficiently
- Import uses batch array writing (5,000 rows per batch) for maximum speed
- Formula results are cached — repeated queries for the same period are instant
- For very large datasets, use specific date ranges instead of "all time" for faster results
Data Quality
- Always confirm the required TB control passes after import; generate the detailed TB workpaper when account-level support is needed
- Check the Chart of Accounts to ensure accounts are classified correctly
- If the SOA bottom line doesn't match the SFP change in net assets, check for missing transactions or date range mismatches
10. Troubleshooting
Common Issues
| Problem | Solution |
| Add-in tab doesn't appear |
Close Excel, then double-click the XLL file again. If prompted about security, click "Enable." |
Formulas show #N/A |
Data hasn't been imported yet, or the Data Import sheet was deleted. Re-import your data. |
| Wrong totals on reports |
Check that your date range covers the full period. Press F9 to force recalculate. Verify account code mappings. |
| Import is slow |
Normal for 300K+ rows (1-2 minutes). The progress bar shows estimated time. Do not interact with Excel during import. |
| Trial Balance doesn't balance |
Your source data may have unbalanced journal entries. Check the Debit/Credit totals on the Data Import sheet. |
| "32-bit" error on load |
Close Excel and reopen the product through NonprofitReports-Portable.exe. The launcher will select the matching add-in automatically. |
| Security warning blocks the add-in |
Verify that the EXE came from NonprofitReports and that its digital signature is valid. If the publisher is missing or unexpected, do not run it. |
Formulas show @ prefix |
This is normal in Excel 365 with dynamic arrays. The formulas work correctly — the @ is cosmetic. |
Checking the File (Windows Security)
Before opening a downloaded copy:
- Right-click NonprofitReports-Portable.exe
- Click Properties
- Open the Digital Signatures tab and confirm the NonprofitReports signature is valid
- If a SHA-256 value was provided with your purchase, compare it with the downloaded file
- Do not run the file if either check fails