alterlab-grant-reporting

$npx mdskill add AlterLab-IEU/AlterLab-Academic-Skills/alterlab-grant-reporting

Drafts post-award grant reports across NIH, NSF, and Horizon Europe formats.

  • Generates RPPR, NSF annual/final, and Horizon Europe periodic reports.
  • Uses a stdlib-only Python script for deadline calculations.
  • Selects format based on funder (NIH, NSF, EU) and report type.
  • Outputs draft text for user to submit via funder portals.

SKILL.md

.github/skills/alterlab-grant-reportingView on GitHub ↗
---
name: alterlab-grant-reporting
description: Drafts post-award grant deliverables across funder formats — NIH RPPR (Annual/Interim/Final via eRA Commons), NSF annual/final project reports and the public Project Outcomes Report (Research.gov), and Horizon Europe / ERC periodic and final reports (technical Part A/B + financial statements on the EU Funding & Tenders Portal) — plus milestone and deliverable tracking, budget-vs-actual variance narratives, no-cost-extension and rebudgeting justifications, and effort/closeout reporting. Computes report due dates from the award period with scripts/report_deadlines.py. Use when the user needs a grant progress or final report, post-award reporting, an RPPR, a periodic report, a no-cost-extension request, milestone tracking, or a budget-variance narrative. For writing new proposals prefer alterlab-research-grants; for TÜBİTAK proposals prefer alterlab-tubitak-proposal. Part of the AlterLab Academic Skills suite.
license: MIT
allowed-tools: Read Write Edit Bash(python:*) Bash
compatibility: No API key, account, or network required — report-format guidance plus a stdlib-only deadline calculator (scripts/report_deadlines.py); the user still submits through the funder's own portal (eRA Commons / Research.gov / EU Funding & Tenders Portal)
metadata:
  skill-author: AlterLab
  version: "1.0.0"
---

# Grant Reporting — Post-Award Deliverables Across Funder Formats

Post-award is where money already won has to be *kept*: funders release the next
tranche only when a compliant progress report lands on time, and they claw back
or flag awards when reports slip or numbers don't reconcile. This skill drafts
those deliverables — progress/annual reports, final reports, milestone and
deliverable tracking, budget-vs-actual narratives, and no-cost-extension (NCE)
and rebudgeting justifications — in the exact shape each major funder demands.

It is the **post-award** counterpart to the pre-award proposal skills: it never
writes a new proposal or a fresh budget request. It reports against an award
that already exists.

## When to Use This Skill

Use this skill when the user needs to:

- Draft an **NIH RPPR** (Research Performance Progress Report) — Annual, Interim,
  or Final — section by section.
- Draft an **NSF annual or final project report**, or the public-audience
  **Project Outcomes Report**.
- Draft a **Horizon Europe / ERC periodic or final report** — the technical
  narrative (Part B) and the structured-table / financial-statement framing.
- Track **milestones and deliverables** against a workplan and write the status
  narrative.
- Write a **budget-vs-actual (variance) narrative** explaining over/under-spend
  by category.
- Justify a **no-cost extension** or a **rebudgeting / virement** request.
- Work out **when** each report is due from the award start/end dates
  (`scripts/report_deadlines.py`).

### Does NOT Trigger — route these elsewhere

| The request is really about… | Route to |
|------------------------------|----------|
| Writing a **new** proposal / project description for NSF, NIH, DOE, DARPA, NSTC (pre-award) | `alterlab-research-grants` |
| A **TÜBİTAK** proposal (1001, 1002, etc.) — Turkish funder, pre-award | `alterlab-tubitak-proposal` |
| **Akademik Teşvik** annual incentive-points application (ÜAK) | `alterlab-akademik-tesvik` |
| A **data management plan** / KVKK-compliant DMP for the proposal stage | `alterlab-kvkk-dmp` |
| A **recommendation / reference letter** for a student or colleague | `alterlab-recommendation-letters` |
| Program / department **accreditation** assessment & assurance-of-learning reports | `alterlab-accreditation-aol` |
| Verifying that the **citations** in the report actually exist | `alterlab-citation-verifier` |

This skill assumes the award is already made. If the user is still competing for
funding, stop and route to the pre-award skill above.

## The funder formats (verified)

Each funder fixes the structure; do not invent sections. Deep per-funder detail —
every section, what goes in it, and which sections apply to which report type —
lives in [`references/funder_formats.md`](references/funder_formats.md). The
essentials:

### NIH — RPPR (submitted in eRA Commons)

Three report types share one section skeleton (**A–I**):

| § | Title | Note |
|---|-------|------|
| A | Cover Page | |
| B | Accomplishments | goals, what was done, results, dissemination |
| C | Products | publications, datasets, software, IP |
| D | Participants | personnel + effort; **D.1 is the only Section D item required on Interim/Final** |
| E | Impact | impact on the field, other disciplines, society |
| F | Changes | changes/problems; rebudgeting & scope changes surface here |
| G | Special Reporting Requirements | |
| H | Budget | **Annual (non-SNAP) only** — not on Interim/Final |
| I | Outcomes | **required on Interim & Final**, public-facing |

Report types: **Annual** (next budget period), **Interim** (filed with a competing
renewal — becomes the Final report if the renewal is not funded), **Final**
(closeout). See the references file before drafting.

### NSF — project reports (submitted in Research.gov)

- **Annual project report** — that year's activities and broader impacts.
- **Final project report** — refers only to the final funded year (it is *not*
  cumulative).
- **Project Outcomes Report (POR)** — a public-audience summary of **no more than
  800 words**, separate from the final report.

### Horizon Europe / ERC — periodic & final reports (EU Funding & Tenders Portal)

- A **Technical Report** in two parts: **Part A** (structured tables, generated by
  the Portal from the Continuous Reporting module) and **Part B** (the narrative,
  mirroring the application form and reporting differences/deviations).
- A **Financial Report**: individual and consolidated **Financial Statements**
  (plus a Certificate on the Financial Statements where the threshold applies).
- A **Continuous Reporting** module that stays open for the whole project and
  feeds Part A automatically.

## Deadlines — compute them, don't guess

Reporting deadlines are deterministic functions of the award dates, and missing
one can suspend payments. Use the helper instead of recalling rules from memory:

```bash
uv run python skills/faculty-life/alterlab-grant-reporting/scripts/report_deadlines.py \
    --funder nih-snap --budget-period-start 2026-09-01 --project-end 2028-08-31
```

It encodes only the verified rules (sourced in `references/funder_formats.md`):

- **NIH SNAP** Annual RPPR ≈ **45 days before** the next budget period start;
  **non-SNAP** ≈ **60 days before**; **Final RPPR** within **120 days** of the
  period-of-performance end.
- **NSF** annual report **90 days before** the budget-period end; final report and
  Project Outcomes Report within **120 days** after the award end date.
- **Horizon Europe / ERC** periodic (and final) report within **60 days** after
  each reporting period ends.

The script prints the computed due dates as a table or JSON; it does no network
I/O and always tells the user to confirm against the funder's own notice of
award, because programs can override these defaults.

## How to draft a report

1. **Identify the funder and report type** first — that fixes the template. If the
   user hasn't said, ask (NIH vs NSF vs EU; Annual vs Final).
2. **Pull the deadline** with `report_deadlines.py` from the award dates and lead
   with it, so the user knows the time pressure.
3. **Gather the inputs** the sections need: aims/objectives and milestones,
   what was accomplished this period, products (publications, data, software),
   personnel and effort, and the budget figures (planned vs actual).
4. **Draft section by section** in the funder's own order and headings. Never
   merge or rename funder sections. For each accomplishment, tie it back to a
   stated aim or deliverable.
5. **Write the variance narrative** for any budget category off plan: state the
   planned vs actual amount, the *reason*, and the corrective action or the
   rebudgeting/NCE request it motivates. Detail and templates:
   [`references/budget_variance.md`](references/budget_variance.md).
6. **For an NCE or rebudgeting request**, use the justification structure in
   [`references/nce_rebudget.md`](references/nce_rebudget.md): unspent-funds
   status, the programmatic reason, the revised timeline, and the explicit
   confirmation that no new scope or new funds are requested.
7. **Flag, never fabricate.** Where a number, a publication, or an outcome is
   missing, mark it `[TODO: confirm]` for the user — do not invent figures,
   dates, DOIs, or results. If citations are involved, hand the reference list to
   `alterlab-citation-verifier`.

## Guardrails

- **No invented facts.** Budget figures, effort percentages, milestone dates,
  publication details, and award numbers come only from the user's materials. Mark
  anything missing as a `[TODO]` placeholder.
- **The user submits, not the skill.** This skill drafts text; the user files it
  through eRA Commons / Research.gov / the EU Funding & Tenders Portal. The skill
  has no portal access and claims none.
- **Confirm deadlines against the notice of award.** The calculator encodes the
  general rules; specific programs and cooperative agreements can override them.
- **Reporting period boundaries matter.** An NSF final report covers only the
  final funded year; an NIH Final RPPR adds Section I Outcomes. Don't carry the
  wrong scope across report types.

## References

- [`references/funder_formats.md`](references/funder_formats.md) — full NIH RPPR
  A–I section guide (with which sections apply to Annual/Interim/Final), NSF
  report types, and Horizon Europe / ERC report structure, each with its source.
- [`references/budget_variance.md`](references/budget_variance.md) — budget-vs-actual
  narrative template, variance categories, and worked examples.
- [`references/nce_rebudget.md`](references/nce_rebudget.md) — no-cost-extension and
  rebudgeting/virement justification structures and the questions each funder asks.
- `scripts/report_deadlines.py` — stdlib-only report-deadline calculator.

Part of the AlterLab Academic Skills suite.

More from AlterLab-IEU/AlterLab-Academic-Skills

SkillDescription
alterlab-abm-mesaBuilds agent-based models of social systems with Mesa 3 — the current AgentSet API (model.agents.shuffle_do('step'), auto-assigned unique_id, mandatory super().__init__(seed=...)), cell spaces (mesa.discrete_space OrthogonalMooreGrid / classic mesa.space grids), the DataCollector, batch_run parameter sweeps, and SolaraViz — for emergence, segregation, diffusion, opinion dynamics, and cooperation models. It uses the Mesa 3.x API (the old mesa.time schedulers like RandomActivation are removed) and treats the model as a generative theory to be validated, not just run. Use when the request mentions an agent-based model, Mesa, simulating interacting agents, or emergent macro behavior from micro rules. For discrete-event (queueing/process) simulation prefer alterlab-simpy; for reinforcement learning prefer alterlab-stable-baselines3. Part of the AlterLab Academic Skills suite.
alterlab-academic-careerPrepares academic career documents and professional-development materials for faculty and researchers. Use when drafting academic CVs, research statements, teaching philosophies, diversity statements, faculty-position cover letters, tenure dossiers, promotion narratives, academic portfolios, or mentorship statements, and when planning conference-networking strategy, building academic web presence, setting up ORCID profiles, or understanding impact metrics. Part of the AlterLab Academic Skills suite.
alterlab-accreditation-aolScaffolds program-level Assurance-of-Learning (AoL) documentation for AACSB (2020 Standard 5) and ABET (Criterion 3 Student Outcomes, Criterion 4 Continuous Improvement) accreditation — program learning outcomes / competency goals, curriculum-to-outcome mapping matrices, direct- and indirect-assessment plans, rubric design, and closing-the-loop continuous-improvement narratives — and validates the structure of an outcome-mapping matrix with scripts/aol_matrix.py. Use when the user needs AACSB or ABET assurance-of-learning material, a program-learning-outcomes set, a curriculum/outcome map or coverage matrix, a direct/indirect assessment plan, a closing-the-loop report, or accreditation self-study text. For single-course design or course rubrics prefer alterlab-teaching-design; for post-award grant reports prefer alterlab-grant-reporting. Part of the AlterLab Academic Skills suite.
alterlab-adaptyvSubmits and tracks protein-testing experiments on the Adaptyv Bio Foundry cloud lab (wet-lab validation), and optimizes protein sequences before submission with computational tools (NetSolP, SoluProt, SolubleMPNN, ESM). Use when designing proteins that need wet-lab validation - binding/affinity screening, expression testing, thermostability, or fluorescence assays - or when submitting experiments to the Foundry API, browsing the target catalog, tracking experiment status, retrieving results, or pre-screening sequences for solubility/expression. Triggers on "Adaptyv", "Foundry API", "cloud lab", "biolayer interferometry / BLI", "wet-lab validation". Part of the AlterLab Academic Skills suite.
alterlab-aeonRuns time series machine learning with the aeon library — classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search via scikit-learn compatible APIs. Use when working with temporal data, sequential patterns, or time-indexed observations (univariate or multivariate) that need specialized algorithms beyond standard ML approaches. Part of the AlterLab Academic Skills suite.
alterlab-akademik-tesvikComputes the annual Turkish academic-incentive (akademik teşvik) score for Devlet (state) university öğretim elemanı (academic staff) from a classified activity list, applying the verified Akademik Teşvik Ödeneği Yönetmeliği (2018/11834) Faaliyet Hesaplama Tablosu headline puanları (Proje 20, Araştırma 15, Yayın 30, Patent 30, Atıf 30, Tebliğ 20, Ödül 20) with the k (author-count), p (Q1 1/Q2 0.8/Q3 0.5/Q4 0.25), and r (project-role) coefficients via türü puanı = Σ(faaliyet oranları) × headline (MADDE 8/2), then enforcing the per-type headline ceilings, the 100 cap (MADDE 8/3), and the net-30 payment gate (MADDE 10/3) in a deterministic scripts/tesvik_score.py. Use when the user wants to calculate akademik teşvik puanı, check the en az 30 (net-30) threshold, apply TABLO 4 ceilings, or estimate teşvik eligibility; keeps its coefficients separate from doçentlik scoring. For doçentlik point eligibility prefer alterlab-docentlik-eligibility. Part of the AlterLab Academic Skills suite.
alterlab-alpha-vantageAccesses real-time and historical stock market data, forex rates, cryptocurrency prices, commodities, economic indicators, and 50+ technical indicators via the Alpha Vantage API (requires a free API key from alphavantage.co). Use when fetching stock prices (OHLCV), company fundamentals (income statement, balance sheet, cash flow), earnings, options data, market news/sentiment, insider transactions, GDP, CPI, treasury yields, gold/silver/oil prices, Bitcoin/crypto prices, forex exchange rates, or calculating technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands). Part of the AlterLab Academic Skills suite.
alterlab-alphafoldPredict protein 3D structures with AlphaFold2 via ColabFold — MMseqs2-accelerated MSAs, monomer and AlphaFold2-Multimer complex folding, and confidence-based validation (pLDDT, pTM/ipTM, PAE). Use when folding a protein sequence or complex from FASTA, generating a predicted structure with confidence metrics, ranking models, or checking self-consistency of a design. For co-folding a protein WITH a small-molecule ligand or predicting binding affinity prefer alterlab-boltz; for antibody–antigen or one-FASTA multi-entity complexes prefer alterlab-chai; to LOOK UP an already-computed structure prefer alterlab-alphafold-db; for ESM embeddings or inverse folding prefer alterlab-esm. Part of the AlterLab Academic Skills suite.
alterlab-alphafold-dbAccess the AlphaFold DB of 200M+ AI-PREDICTED protein structures — retrieve models by UniProt accession, download PDB/mmCIF files, and analyze prediction confidence metrics (pLDDT, PAE). Use when a UniProt ID needs a computationally predicted 3D structure or when no experimental structure exists, for homology modeling, protein engineering, or structure-based drug discovery; for EXPERIMENTALLY determined structures (X-ray, cryo-EM, NMR) prefer alterlab-pdb, and for protein sequences, annotations, or accession ID mapping prefer alterlab-uniprot instead. Part of the AlterLab Academic Skills suite.
alterlab-anndataBuild, slice, concatenate, read, and write AnnData annotated data matrices (obs, var, X, layers, obsm, uns) — the scverse data STRUCTURE, not an analysis pipeline. Use when creating or wrangling .h5ad/zarr files, managing cell and gene annotations, concatenating batches, or handling layers/obsm/backed-mode; for the QC, normalization, clustering, UMAP, and differential-expression analysis pipeline prefer alterlab-scanpy instead, and for RNA velocity from spliced/unspliced layers prefer alterlab-scvelo instead. Part of the AlterLab Academic Skills suite.