Skip to content

Commit 2782f05

Browse files
ccerv1claude
andauthored
feat(optimism): local Retro Funding impact dashboard (#267)
* feat(optimism): local Retro Funding impact dashboard with Parquet snapshots Self-contained marimo dashboard (analysis/optimism/retro-funding-impact/) that puts funding next to impact for every Optimism Retro Funding recipient, RF2 through Season 8. Runs fully locally from Parquet files, no OSO API key required. - retro-funding-impact.py: program totals, funding-by-round, a leaderboard of all 1,187 recipients, and a project explorer (onchain/DeFi/GitHub metrics vs cumulative OP awarded). - data/*.parquet: funding by recipient, monthly metrics, per-round and program summaries, exported from the OSO warehouse (2026-07-02 snapshot). - Update analysis/optimism/readme.md with a section for the dashboard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(optimism): point to ethereum-optimism/Retro-Funding for S7/S8 work Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(optimism): fix stale readme details (marimo notebooks, RF6 status) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent d0c693a commit 2782f05

7 files changed

Lines changed: 601 additions & 2 deletions

File tree

analysis/optimism/readme.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,20 @@
44

55
Insights and data science for measuring the growth of open source software contributions to the Optimism ecosystem. The goal of these insights is to improve the ROI and governance of grant programs.
66

7-
This directory contains our analysis and data science work, mostly in the form of Jupyter notebooks and scripts to facilitate ad hoc analysis.
7+
This directory contains our analysis and data science work, mostly in the form of notebooks (Jupyter and marimo) and scripts to facilitate ad hoc analysis.
88

9-
### Retro Funding 6 (in progress)
9+
### Retro Funding Impact (interactive dashboard)
10+
11+
`retro-funding-impact/` is a self-contained [marimo](https://marimo.io) dashboard that puts funding next to impact for every Optimism Retro Funding recipient, from RetroPGF 2 through Season 8. It ships with Parquet snapshots and runs fully locally, with no OSO API key required.
12+
13+
- `retro-funding-impact/retro-funding-impact.py`: the notebook. Pick a project and one or more impact metrics (onchain, DeFi, GitHub) and read them against cumulative OP awarded. Includes program totals, a by-round breakdown, and a leaderboard of all 1,187 recipients.
14+
- `retro-funding-impact/data/*.parquet`: the underlying tables (funding by recipient, monthly metrics, per-round and program summaries), exported from the OSO warehouse. See the [subdirectory README](./retro-funding-impact/README.md) for how to run it and refresh the data.
15+
16+
### Retro Funding, Seasons 7 & 8
17+
18+
Our work on Seasons 7 and 8 (the monthly onchain-builder and dev-tooling missions) lives in the Optimism Retro Funding repo, not here: **[ethereum-optimism/Retro-Funding](https://github.com/ethereum-optimism/Retro-Funding)**. That repo holds the measurement pipelines, eligibility checks, metric definitions, reward algorithms, and per-measurement-period results for those seasons. The dashboard above summarizes the funding and impact outcomes across all rounds, S7 and S8 included.
19+
20+
### Retro Funding 6
1021

1122
This directory includes our work with Metrics Garden Labs on qualitative impact metrics. We've written indexers for various EAS attestation schemas and linked them to governance members (i.e., delegates and badgeholders). We created synthetic data to test the indexers and the data pipeline, and serve dummy metrics to the frontend. We worked with the Foundation and Agora to implement 8 attestation-based impact metrics for the Retro Funding 6 cohort.
1223

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Retro Funding Impact (local dashboard)
2+
3+
An interactive [marimo](https://marimo.io) dashboard that puts **funding** next to
4+
**impact** for every Optimism Retro Funding recipient, from RetroPGF 2 through
5+
Season 8. It runs **fully locally** from Parquet snapshots. No OSO API key or
6+
network access required.
7+
8+
## What it shows
9+
10+
- **Program totals** across all recipients (79.5M OP / ~$171M, RF2 → S8).
11+
- **Funding by round** (RetroPGF 2 through Season 8).
12+
- **Funding leaderboard** of all 1,187 recipients, ranked by OP received.
13+
- **Project explorer**: pick a project and one or more impact metrics (OP Mainnet
14+
and Superchain onchain activity, DefiLlama TVL/volume, GitHub dev activity) and
15+
read them against cumulative OP awarded on a shared timeline.
16+
17+
## Run it
18+
19+
From the repo root:
20+
21+
```bash
22+
uv run marimo edit analysis/optimism/retro-funding-impact/retro-funding-impact.py
23+
# or, app mode (read-only):
24+
uv run marimo run analysis/optimism/retro-funding-impact/retro-funding-impact.py
25+
```
26+
27+
Only needs `marimo`, `pandas`, `plotly`, and `pyarrow` (all in the repo's
28+
`pyproject.toml`). The notebook reads the Parquet files in `./data` relative to
29+
itself, so it works from any environment with those four packages.
30+
31+
## Files
32+
33+
| File | Rows | Description |
34+
|---|---|---|
35+
| `retro-funding-impact.py` | | The marimo notebook. |
36+
| `data/rf_program_summary.parquet` | 1 | Program-wide totals (all recipients + mapped slice). |
37+
| `data/rf_funding_by_round.parquet` | 7 | Funding totals per round (RF2 → S8). |
38+
| `data/rf_funding_by_project.parquet` | 1,187 | Funding per recipient (OP + USD), `is_mapped` flag. |
39+
| `data/rf_metrics_by_project_monthly.parquet` | ~226k | Monthly funding + impact metrics, long form, for mapped projects. |
40+
41+
## Data provenance
42+
43+
Snapshot exported **2026-07-02** from the OSO data warehouse
44+
(`optimism.retro_funding_impact.*` models), which derive from:
45+
46+
- **Funding** — the [oss-funding](https://github.com/opensource-observer/oss-funding)
47+
registry, which records the native OP token amount and its USD value at the time
48+
of award, tagged by round. Totals reconcile to the canonical round allocations
49+
(RF2 10M OP, RF3 30M, RF4 10M, RF5 8M, RF6 2.4M, plus S7/S8 mission payouts).
50+
- **Impact metrics** — OSO monthly timeseries (onchain activity on OP Mainnet and
51+
across the Superchain, DefiLlama, GitHub).
52+
53+
Impact metrics are available only for recipients mapped to an
54+
[OSS Directory](https://github.com/opensource-observer/oss-directory) project
55+
(692 of the 1,187 recipients). The rest (individuals, collections, events) are
56+
counted in the funding totals but have no impact metrics.
57+
58+
**Not an ROI score.** Funding is shown alongside activity with no causal claim;
59+
Retro Funding rewards work that has already happened.
60+
61+
The Season 7 and 8 measurement pipelines, eligibility checks, and reward
62+
algorithms live in the Optimism Retro Funding repo:
63+
[ethereum-optimism/Retro-Funding](https://github.com/ethereum-optimism/Retro-Funding).
64+
This dashboard summarizes funding and impact outcomes across all rounds.
65+
66+
## Refreshing the snapshot
67+
68+
Re-export the four tables from the OSO warehouse (requires an `OSO_API_KEY` with
69+
access to the `optimism` org) and overwrite the Parquet files in `./data`.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)