Skip to content

Impact Dashboard v2 — reframe around field acceleration (stacks on #29) - #98

Draft
lksbrssr wants to merge 42 commits into
mainfrom
lukas/impact-v2
Draft

Impact Dashboard v2 — reframe around field acceleration (stacks on #29)#98
lksbrssr wants to merge 42 commits into
mainfrom
lukas/impact-v2

Conversation

@lksbrssr

Copy link
Copy Markdown
Collaborator

Draft for review — not ratified strategy. In-repo branch (not a fork), so Vercel previews build automatically — no authorize click. Supersedes #97 (fork copy). Stacks conceptually on #29.

👉 Clean, v2-only diff (excludes #29's commits): lksbrssr/plresearch.org@lukas/impact-dashboard...lukas/impact-v2

Routes to preview: /impact-v2 (new) · /impact (unchanged from #29, for side-by-side)



Why

The current dashboard measures success by "were the inflection points reached, and did that matter?" — which over-commits us to inflection points as the target. They're proxies: our current best guesses about what acceleration looks like. We can be wrong about a marker and still accelerate the field; a marker can resolve true without mattering.

The reframe

  • Y (the target) is field acceleration itself — a per-focus-area basket of velocity signals (talent, capital, tool-cost, output cadence, crowd read).
  • Inflection points become pre-registered sensors — dated, falsifiable markers that grade our model of the field, not the field and not us. Misses stay on the board with a post-mortem; retirements log a rationale.
  • X (our hand) is condition-movement — tool → targeted condition → what we did → observed movement, checked against the seven historical conditions (Howes/Mokyr/Jacob) via the sharpened toolkit.
  • Three questions replace the two-plus-attribution framing (v2 only): Is the field accelerating? · Did we move the conditions we targeted? · Did our push contribute to the field's acceleration?

Side-by-side intent

/impact-v2 is a separate route/component tree so the team can compare it against the original /impact before deciding anything. Neither replaces the other yet. A low-key cross-link on v2 points back to the original methodology.

Scope / safety

  • /impact is byte-identical to Impact Dashboard #29 — the reframe lives entirely in new files (src/lib/field-velocity.ts, ImpactDashboardV2.tsx, MeasuringQuestionsV2.tsx, app/impact-v2/page.tsx) that import from inflection-points.ts / market-signals.ts rather than forking them.
  • Crowd-forecast integration reused on the v2 field axis, not modified.
  • No fabricated metrics — unknowns are // TODO(lukas) "curating" states.
  • Draft gating preserved (both routes kept out of nav + sitemap); dark mode legible on both.
  • npm run build passes; both routes prerender static.

Review notes

  • Sensor statuses are an illustrative draft ledger — real markers are pending; the retired and missed + field-moved examples demonstrate the mechanic with transparent draft post-mortems. No real marker is marked hit (that would be a world-claim we can't yet make).
  • The sharpened toolkit + co-funder plan are drafts pending Molly + FA-lead review.

Screenshots

See docs/screenshots/README-impact-v2.md (v1 vs v2, cards + modals, light + dark).

Lukas Bresser and others added 30 commits July 6, 2026 22:09
Adds /impact — a public, filterable dashboard that tracks PL R&D's
impact via the twelve pre-registered inflection points, one set per
focus area.

What it does:
- Filterable by focus area (vertical tab rail); a user always lands in
  one area rather than seeing all twelve at once.
- Each inflection point is a card with a Defined -> Emerging -> Reached
  -> Scaling field-progress meter and a PL-role tag (Substrate /
  Originator / Funder & convener). Clicking opens a detail modal.
- The modal traces Q1 (did it happen — the pre-registered threshold),
  Q2 (did it matter — the cascade), and Q3 (did our work make it
  happen) as Inputs -> Activities -> Outputs.
- Field progress and PL contribution are kept on separate axes and
  never collapsed into one score: a point can be reached with little PL
  involvement and that is still a win for the field.
- For the two Economies & Governance points with live data, the modal
  pulls live OUTPUTS from the same sources as the FA2 live dashboard
  (GainForest, Glow, Simocracy) — labelled strictly as Q3 contribution
  evidence, never as Q1 progress. Fetched server-side with 60s ISR and
  graceful fallback.
- A "Measuring impact" explainer covers the logic model and the three
  questions.
- Adds an "Impact" item to the main nav.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Inflection section intro: drop the "pre-registering keeps us honest /
  reading not an argument" tail; "pre-registered" -> "defined" threshold.
- Cards: remove the redundant "Defined" status pill (the field meter
  already shows stage); rename the teaser label "Signal it happened" ->
  "Inflection point".
- Detail modal: tag Q1 with "Impact" and Q2 with "Outcome" so all three
  questions share the logic-model row layout used by Q3's Inputs /
  Activities / Outputs.
- Measuring impact: move the "each inflection point instantiates this
  chain" note above the logic-model strip; style the strip labels as
  grey uppercase to match the detail cards.
- Three-questions explainer: surface each question's logic-model
  stage(s) — Impact, Outcomes, and Inputs/Activities/Outputs — to tie
  the section back to the cards.
- Hoist LOGIC_MODEL into lib/inflection-points so the strip, the
  explainer, and the modal share one vocabulary.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the single contributionLevel (substrate/originator/funder-convener)
with an array of PL roles named by the bottleneck each releases:
Infrastructure, Legibility, Connection, Capital, Translation, Permission.
Cards now render one pill per role; the Measuring-impact Q3 tab lists all
six roles and its copy reflects 'one or more' instruments.
The role pill descriptions in the inflection-point modal duplicated the
'Measuring impact' Q3 explainer. Keep the role pills (with hover titles)
but remove the description list so the explanation lives in one place.
…tcome) + self-contained role tooltips

- Q1 is now 'Did it matter?' (impact) and Q2 'Did it happen?' (outcome),
  consistent across the inflection-point detail modal and the Measuring-
  impact tabs (and doc comments / live-evidence notes).
- Role pills now carry a label + description tooltip matching the
  Measuring-impact Q3 role explainer.
Native title was unreliable; replace with a scoped CSS tooltip
(group/role) that shows the role's label + description on hover, pulled
from the same ROLE_META used by the Measuring-impact Q3 section.
Add FIELD_COLOR (teal) / HAND_COLOR (violet) tokens; update ROLE_META
and LOGIC_MODEL copy to the mockup wording.
Drop focus-area color coding (neutral icons). Card now shows a teal
'field' axis (meter + did it happen & matter) and a violet 'our hand'
axis (role pills + did our work help), plus a LIVE SIGNAL block for
points with live outputs. Modal recolored/reordered to A (our hand) /
B, C (the field).
… section

Measuring-impact section: color-code the logic-model chain by axis,
dot legend (not tick-boxes), and three always-visible A/B/C question
cards. Extract the six PL roles into a separate 'toolkit' section.
- Swap axis colors: field = purple, our hand = PL blue (#1982F4); teal removed
- Live signal now a pulsing green dot; 'Live outputs' -> 'Live signal'
- Cards: 'Detail' affordance (subtle top-right, not a full row); 'Methodology' removed
- Detail modal: wider + two-column (our hand | the field) with full-width live signal;
  remove repeated status badge and the field explainer; 'the signal' -> 'the inflection point';
  'Did our work help?' -> 'Is our work making a difference?'
- AI & Robotics empty state: 'inflection points' instead of 'pre-registered bets'
- Detail modal: inputs/activities/outputs are now headers over their text
  (aligned with the field side); rename 'Field progress' to 'Progress
  against Inflection Point'; drop 'The only axis we control' subheading.
- Generic 'Live signal' footnote on cards + detail that carry live data.
- Mark communication / provenance / public-goods / verified-outcomes as
  Emerging (early-signal).
- Measuring: remove the dot legend (already conveyed in the subheader).
- Hero: add 'Our methodology' scroll link (landing-page style); rename
  the section to 'Our methodology' with a #methodology anchor.
- Field axis color -> black (drop purple); hand stays PL blue, live green.
- Methodology block: A card is wide with role pills + a subtle
  'See the roles we play' link opening a pop-out roles modal; B/C narrow.
  Remove the standalone toolkit section.
- Copy: 'Is our work making a difference?' -> 'Our contribution to field
  progress'; A axis line -> 'The axis we control with our partners'.
- Remove the inputs->impact logic-model boxes; keep just the three
  evenly-spaced question cards.
- Measuring copy: A 'What difference are we making?', B 'Did the
  inflection point happen?', C 'Did reaching the inflection point matter?'
- Detail modal keeps short B/C; A reworded to 'How is PL making a
  difference?' (card hint too).
Card A is now a button that opens the roles modal (like the inflection
detail cards), with 'See the roles we play' as a subtle hover affordance
instead of the only click target.
- Detail card bottom band now spans full width: live-signal metrics
  (when present) plus a 'See the latest <focus area> insights' link.
- Deep-link: /insights?area=<slug> pre-selects that focus-area filter
  (InsightsExplorer takes an initialArea; page reads searchParams).
- Measuring copy: A 'Did PL's work make a difference?', B 'Were the
  inflection points reached?'.
Integrated into the /impact dashboard (stacked on PR #29, not amending it):
- src/lib/market-signals.ts — maps each inflection point to its closest
  market, choosing Polymarket vs Kalshi per match quality, with a liquidity
  fallback. Public Gamma + Kalshi APIs, hourly ISR.
- ImpactDashboard: crowd read on the FIELD axis (card + modal), platform
  badge, fallback tag, gap state; never conflated with PL contribution.
- impact/page.tsx: resolveAllSignals() alongside existing live outputs.

For discussion only.
Per review: the crowd read now sits inside the modal's full-width Live
signal bar (alongside PL-backed live outputs) instead of under
'Impact — the cascade' in the field column. Gap points show a separate
crowd-forecast note. Field-vs-contribution caveat preserved.
Thread per-market USD volume through MarketSignal (Polymarket volumeNum;
Kalshi dollar_volume, falling back to contract count) and render a compact
'$15k at stake' chip next to the crowd probability in the modal's Live
signal band.
Per review, simplify the inflection-point detail modal into a single column
with three stacked sections:
- The field: card title, progress meter, Outcome and Impact (moved up under
  the title; drop the 'Did it happen?' / 'Did it matter?' questions and A/B/C
  badges).
- Our hand: 'How PL is making a difference' with each PL contribution category
  (role) as a header + description, replacing the Inputs/Activities/Outputs
  split.
- Live signal: unchanged (live outputs + crowd forecast with money at stake).

Also rename the 'Permission' PL role to 'Policy' (methodology + modal). This
commit sits on top of the crowd-forecast + volume work so it all lands in the
/impact dashboard PR.
…ills

- The field: move Outcome and Impact above the progress bar; wrap the whole
  field section in a subtle grey card for clear visual grouping.
- Add clear separation (top border + spacing) before Our hand and Live signal.
- Our hand: restore PL interventions as pills with the definition on hover
  (RoleChips), and show the point's actual activities / examples underneath
  ('In practice') instead of the generic role definitions.
Match The field's grey card treatment for Our hand and the Live-signal
band so all three detail sections sit on separated grey cards against
the white modal backdrop, stacked and left-aligned. Live signal is now a
titled card (keeping the pulsing green globe) that holds the live-output
box, crowd forecast, and the 'See the latest ... insights' link.
Preview cards no longer render the crowd-forecast odds or live-output
metrics inline — they just show a small pulsing 'Live signal' marker so
there's a reason to open the card. The full crowd forecast, live metrics,
and evidence links stay in the detail modal.

Also make liveEvidence a list so a point can carry multiple real-world
signals, and add two to 'Provenance becomes the default for truth':
Starling Lab's content-authenticity displays and Wikipedia-on-IPFS during
Turkey's block.
…annot be switched off'

The censorship-shutdown example fits the resilient-comms inflection point,
not provenance. Provenance keeps the Starling Lab authenticity signal.
The 'field' axis used a hard black (#131316) via inline styles, so in dark
mode the field labels, the progress-bar fill, the active focus-area tab
icon, and the B/C badges all went black-on-black. Route FIELD_COLOR /
HAND_COLOR (plus new FIELD_INK and FIELD_TRACK) through theme-aware CSS
variables that flip in dark mode: the field ink becomes light, the badge
fill flips with dark ink, and the progress track darkens. Light mode is
unchanged.
Populate contribution.outputs on the six capital inflection points with
concrete PL-network ventures as examples of the Capital instrument (the
HAND/contribution axis — not field progress):

- Comms that can't be switched off: Fluence, Huddle01
- Personhood without the state: Tools for Humanity (World), SpruceID, Privy
- Provenance as default for truth: EQTY Lab
- Agents on open rails: Fluence, Spheron, Expanso, Impossible Cloud, Lava, Fleek
- Public goods financeable: + Molecule
- Capital paid on verified outcomes: + WeatherXM

Unverified funding relationships are hedged inline pending confirmation.
- Remove the 'funding relationship to be confirmed' qualifiers from the
  identity / provenance / comms outputs.
- Add a TEAM_LINKS registry (team name -> website) and a Linkify renderer
  so each mentioned venture in the 'In practice' activities/outputs lines
  links to its own site. Links open in a new tab (target=_blank,
  rel=noopener noreferrer), consistent with the live-evidence links.
lksbrssr and others added 11 commits July 7, 2026 13:14
…rthcoming areas

- Shared HOW_TO_READ contract constant in inflection-points.ts
- "How to read this" button above the card grid opens an overlay with the
  statement + the field / our hand / live-signal legend (3b)
- Same statement as a left-ruled pull-quote in the methodology section (3a)
- Explicit forthcoming flag on focus areas: AI & Robotics tab now reads
  "Soon" instead of "0", and its empty state leads with a "Coming Soon"
  pill and "Not zero, just not yet" copy
Statement still lives in the "How to read this" overlay button; the
inline callout looked out of place in the methodology section.
- Add Metaculus as a third signal platform (reputation-weighted community
  forecasts). Token-gated API via METACULUS_API_TOKEN with graceful fallback
  to just linking the question when no token/live price is available.
- Memory retrieval in simulation (WBE): gap -> proxy, mapped to Metaculus
  Q372 "brain emulation as first route to human-level AI".
- Agents run on open rails: drop the "open-weights best model by Dec 31"
  market (about the weights, not the infra) and map to the Polymarket
  "US removes public access to a major AI model in 2026" market as a
  contrarian/headwind signal for open, permissionless rails.
…le government

- Neural distillation: map to Metaculus Q372 (brain emulation as first route
  to human-level AI) as a neural-data-to-AI proxy.
- Memory retrieval in simulation: map to Metaculus Q2813 (date of first human
  whole-brain emulation). Add date-question support to the Metaculus fetcher:
  unscale the community CDF to a median year and show it as the headline
  reading (e.g. "~2068") instead of a probability.
- Programmable government in production: gap again — drop the shared World
  market, which now lives only on "Personhood without the state in the loop".
Y=field acceleration via a per-FA velocity basket; inflection points demoted to
pre-registered sensors (dated/falsifiable, misses kept); X restructured to
tool -> targeted condition -> what we did -> observed movement. Imports from
inflection-points.ts as the single source of truth; no v1 files touched. Real
unknowns left as explicit TODO(lukas) placeholders.
Field card leads with the velocity basket (trend glyphs; unknown renders honest
grey) then a 'Our sensors: inflection points' list with the five status states.
Hand card shows tool -> condition -> movement with a proposed-tool badge.
Reuses market-signals crowd forecasts on the field axis in the sensor modal.
Three compact blocks: X->Y logic model, the three questions, and 'The toolkit,
checked against history' (seven entries, each opening a modal with the full
description + what-changed + co-funder gap). Adds a 'Where we need co-funders'
panel. All seven historical conditions covered by releases: tags.
Separate route/component tree from v1. Kept out of nav + sitemap to mirror the
existing draft gating on /impact. Low-key cross-link back to the original
methodology lives on v2 only.
Cards + modals for /impact (v1, unchanged) and /impact-v2 (velocity basket,
sensor states incl. retired + missed-field-moved, toolkit modal, how-to-read).
@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
plrd.org Ready Ready Preview, Comment Jul 29, 2026 1:46pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants