phase-finance¶
The finance phase covers everything related to the financial management of a research project — from building the initial budget through grant compliance to funder-facing financial reports.
Approach¶
- Identify which mode applies (budget plan, expense log, financial report, compliance check) before doing anything
- Always read
.neuroflow/grant-proposal/flow.mdfirst if it exists — funder, scheme, and approved budget figures should already be there - Keep budget tables and expense logs in
.neuroflow/finance/; never place financial documents outside this folder without explicit user request - Flag overspends and compliance risks immediately — do not silently continue when a budget line is exceeded
- Ask for the reporting period and funder reference number before producing any funder-facing report
- Totals come from
scripts/ledger.py, never from mental arithmetic. Every sum, remaining balance and overspend in a report or answer is the script's output - Never book AI usage as an expense. Every expense comes from the person, with a receipt or invoice. Never create, estimate or suggest expense rows from AI usage figures (
/cost, session cost meters, token counts, a share of a subscription) — they are list-price estimates, not records an auditor can verify. If a funder asks about AI use, that belongs in an AI-use disclosure (model, dates, purpose), not in the expense log
Expense log format¶
expenses-[year].md holds one markdown table with exactly these columns (notes may sit above or below it):
| date | grant | category | budget_line | amount | currency | description | reference |
|---|---|---|---|---|---|---|---|
| 2026-03-14 | GR-2025-001 | consumables | consumables | 1240.00 | EUR | EEG caps (2x, size M) | INV-2026-0314 |
date— YYYY-MM-DD, the date incurredgrant— the grant or funder reference, spelled the same in every row and in the budgetcategory—personnel|equipment|consumables|travel|otherbudget_line— the line it is charged to, as named in the budget's## Budget linestableamount— a plain decimal with a dot and no thousands separators (1240.00)currency— ISO code in capitals (EUR,USD). Never convert: if the funder needs another currency, the person gives the converted amount at the rate the funder or institution mandatesreference— receipt or invoice number- Append only: new rows go at the bottom; a correction is a new row (negative amount for a refund or reversal), never an edit. No running totals in the file — the script computes them
Every budget file carries one machine-readable table under ## Budget lines — the approved total per line for the whole funding period (annual breakdown tables for humans may follow):
## Budget lines
| grant | budget_line | category | amount | currency |
|---|---|---|---|---|
| GR-2025-001 | consumables | consumables | 5000.00 | EUR |
| GR-2025-001 | travel | travel | 2000.00 | EUR |
Ledger script¶
python <skill base dir>/scripts/ledger.py [.neuroflow/finance/] [--budget .neuroflow/finance/budget-[funder]-[date].md] [--grant ID] [--from YYYY-MM-DD] [--to YYYY-MM-DD] [--csv out.csv] [--json]
Read-only: totals per currency by grant, by grant and category, and by grant and budget line; with --budget, budget vs spent vs remaining per line; with --csv, the validated rows for a funder's spreadsheet.
- Exit 0 — clean: use the totals as printed.
- Exit 1 — findings (malformed rows, unknown categories, overspent or unbudgeted lines, currency mismatches): show each to the person; fix malformed rows with them; for an overspend, ask how to proceed.
- Exit 2 — usage or runtime error (no expense files, a budget without a
## Budget linestable): say so and stop.
Older free-form expense or budget files are not parsed: offer to rewrite them into the tables above (show the result, write only after the person confirms).
Relevant skills¶
neuroflow:neuroflow-core— read first; defines the command lifecycle and.neuroflow/write rules
Workflow hints¶
budget-[funder]-[date].md— the budget plan, with its## Budget linestable; reference this in every subsequent expense log and reportexpenses-[year].md— append-only expense table; one file per calendar yearfinancial-report-[funder]-[date].md— formal funder-facing reportcompliance-check-[date].md— internal compliance checklist- When a budget is multi-year, always show annual breakdowns alongside the total
- If funder conditions are not known, ask the user to provide the grant agreement or key restrictions before doing a compliance check