Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions connect/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>macromod — connect it or code it</title>
<meta name="description" content="Connect MacroMod to your AI workflow via MCP or CLI, or drive the Python API directly. Score macroeconomic policy reforms from your prompts." />
<title>PolicyEngine Macro — connect it or code it</title>
<meta name="description" content="Connect PolicyEngine Macro to your AI workflow via MCP or CLI, or drive the Python API directly. Score macroeconomic policy reforms from your prompts." />
<link rel="icon" type="image/svg+xml" href="/assets/policyengine-mark.svg" />
<meta name="theme-color" content="#FFFFFF" />

Expand Down Expand Up @@ -172,7 +172,7 @@

<header class="nav">
<a class="brand" href="/">
<span class="brand-dot" aria-hidden="true"></span>macromod
<span class="brand-dot" aria-hidden="true"></span>PolicyEngine Macro
</a>
<nav class="nav-links">
<a href="/#idea">idea</a>
Expand All @@ -187,12 +187,12 @@
<main id="top">
<section class="hero connect-hero">
<div class="hero-inner" style="text-align:center;">
<p class="eyebrow reveal" style="--d:0">macromod for any ai — and any coder</p>
<p class="eyebrow reveal" style="--d:0">PolicyEngine Macro for any ai — and any coder</p>
<h1 class="reveal page-title" style="--d:1;">
Connect it. Or <em>code</em> it.
</h1>
<p class="lede reveal" style="--d:2; margin-left:auto; margin-right:auto;">
Hook MacroMod up to Claude or ChatGPT and score reforms from your
Hook PolicyEngine Macro up to Claude or ChatGPT and score reforms from your
prompts — or skip the middleman and drive the Python API yourself.
Free and open source. No account, no sign-in.
</p>
Expand All @@ -219,14 +219,14 @@ <h1 class="reveal page-title" style="--d:1;">
<div class="steps" data-for="claude">
<div class="step">
<span class="step-n mono">1</span>
<h3>Copy the MacroMod URL</h3>
<h3>Copy the PolicyEngine Macro URL</h3>
<p>Click the copy button — you'll paste it in the next step.</p>
<div class="copyblock"><code>https://policyengine--macromod-mcp-serve.modal.run/mcp</code><button data-copy>copy</button></div>
</div>
<div class="step">
<span class="step-n mono">2</span>
<h3>Open Settings → Connectors</h3>
<p>In Claude, add a <strong>custom connector</strong>, name it MacroMod, and paste the URL.</p>
<p>In Claude, add a <strong>custom connector</strong>, name it PolicyEngine Macro, and paste the URL.</p>
</div>
<div class="step">
<span class="step-n mono">3</span>
Expand All @@ -247,14 +247,14 @@ <h3>Using Claude Code?</h3>
<div class="steps" data-for="chatgpt" hidden>
<div class="step">
<span class="step-n mono">1</span>
<h3>Copy the MacroMod URL</h3>
<h3>Copy the PolicyEngine Macro URL</h3>
<p>Click the copy button — you'll paste it in the next step.</p>
<div class="copyblock"><code>https://policyengine--macromod-mcp-serve.modal.run/mcp</code><button data-copy>copy</button></div>
</div>
<div class="step">
<span class="step-n mono">2</span>
<h3>Open Settings → Connectors</h3>
<p>In ChatGPT, enable <strong>Developer mode</strong> under Connectors, then <strong>Create</strong> a connector named MacroMod and paste the URL.</p>
<p>In ChatGPT, enable <strong>Developer mode</strong> under Connectors, then <strong>Create</strong> a connector named PolicyEngine Macro and paste the URL.</p>
</div>
<div class="step">
<span class="step-n mono">3</span>
Expand All @@ -274,7 +274,7 @@ <h3>Using Codex?</h3>

<hr class="panel-divider" />
<p class="mono foot-head" style="margin-bottom:10px;">on the server</p>
<p class="soon-hint" style="max-width: none;">Nine tools across the four engines: <code class="mono">score_reform</code> and <code class="mono">list_reform_variables</code> (OBR); <code class="mono">forecast_uk</code>, <code class="mono">latest_shocks</code>, <code class="mono">model_summary</code> (SVAR); <code class="mono">calculate_household</code>, <code class="mono">household_reform_impact</code>, <code class="mono">list_reform_parameters</code> (PolicyEngine); and <code class="mono">og_score_reform_steady_state</code> (OG-UK — local CLI only: a solve takes tens of minutes, so the hosted server excludes it). The server is serverless and scales to zero — the first call after a quiet spell takes ~10 seconds to wake.</p>
<p class="soon-hint" style="max-width: none;">Nine tools across the four engines: <code class="mono">score_reform</code> and <code class="mono">list_reform_variables</code> (OBR); <code class="mono">forecast_uk</code>, <code class="mono">latest_shocks</code>, <code class="mono">model_summary</code> (SVAR); <code class="mono">calculate_household</code>, <code class="mono">household_reform_impact</code>, <code class="mono">list_reform_parameters</code> (PolicyEngine — household-level); and <code class="mono">og_score_reform_steady_state</code> (OG-UK — local CLI only: a solve takes tens of minutes, so the hosted server excludes it). Two things stay local-only and are never on the hosted server: OG-UK scoring, and PolicyEngine <em>population-level</em> reform scoring (it needs large private microdata) — the PolicyEngine tools above are household-level only. The server is serverless and scales to zero — the first call after a quiet spell takes ~10 seconds to wake.</p>
</div>

<!-- ================= CLI ================= -->
Expand Down Expand Up @@ -750,7 +750,9 @@ <h4>Sector output, long-run</h4>
tax, National Insurance, Universal Credit, SNAP, EITC, and the rest —
for the household you describe. Population-level analysis over
representative microdata is in the same package; population-level
reform scoring through MacroMod is planned.
reform scoring is available locally (it needs large private microdata),
but is not on the hosted MCP server — the hosted PolicyEngine tools are
household-level only.
</p>

<div class="dials">
Expand All @@ -777,7 +779,7 @@ <h4>Sector output, long-run</h4>
</main>

<footer class="foot foot-bar">
<span class="brand"><span class="brand-dot" aria-hidden="true"></span>macromod</span>
<span class="brand"><span class="brand-dot" aria-hidden="true"></span>PolicyEngine Macro</span>
<nav class="foot-nav mono">
<a href="/docs/">docs</a>
<a href="/connect/">use it</a>
Expand Down
38 changes: 28 additions & 10 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>macromod — documentation</title>
<meta name="description" content="Documentation for the MacroMod suite — what each macroeconomic model is, how the four model classes differ, when to use which, and the shared pipeline that ties them together." />
<title>PolicyEngine Macro — documentation</title>
<meta name="description" content="Documentation for the PolicyEngine Macro suite — what each macroeconomic model is, how the four model classes differ, when to use which, and the shared pipeline that ties them together." />
<link rel="icon" type="image/svg+xml" href="/assets/policyengine-mark.svg" />
<meta name="theme-color" content="#FFFFFF" />

Expand Down Expand Up @@ -33,7 +33,7 @@

<header class="nav">
<a class="brand" href="/">
<span class="brand-dot" aria-hidden="true"></span>macromod
<span class="brand-dot" aria-hidden="true"></span>PolicyEngine Macro
</a>
<nav class="nav-links">
<a href="/#idea">idea</a>
Expand All @@ -53,10 +53,13 @@ <h1 class="reveal page-title" style="--d:1;">
Four models. <em>One</em> economy, read four ways.
</h1>
<p class="lede reveal" style="--d:2">
MacroMod scores a policy reform for its effect on the whole economy.
It does so with more than one model, because different questions call
for different machinery. This is the reference: what each model is, how
they differ, and when to reach for which.
PolicyEngine Macro is a suite where each model answers a different
class of economic question — near-term fiscal scenarios, forecasts
and shock identification, long-run structural change, and
household or distributional effects. It is not one reform scored four
ways: different questions call for different machinery. This is the
reference: what each model is, how they differ, and when to reach for
which.
</p>
</div>
</section>
Expand Down Expand Up @@ -116,7 +119,8 @@ <h2>Four model classes, side by side.</h2>
from first principles and answers where the economy settles in the long
run; one reproduces the official forecaster's empirical system and
answers what happens over the next few years; one imposes minimal
theory and answers what is driving the economy right now; and one
theory and answers what is driving the economy at the latest
available data vintage (currently 2024 Q2); and one
drops from aggregates to people, computing the actual statute for a
specific household.
</p>
Expand Down Expand Up @@ -147,10 +151,24 @@ <h2>Match the model to the question.</h2>
<ul>
<li><strong>"How does this tax change affect growth and the deficit over the next 3–5 years?"</strong> — the OBR model. It's built for near-term fiscal scoring and speaks the same language as the official forecast.</li>
<li><strong>"What does this reform do to work incentives, saving, and the long-run size of the economy?"</strong> — the OLG model. It captures how households of every age re-optimise over their lifetimes.</li>
<li><strong>"What's driving GDP and inflation right now — and why did the forecast change since last quarter?"</strong> — the structural VAR. It decomposes the current data into named structural shocks, forecasts with credible bands, and splits a forecast revision into news and reassessment.</li>
<li><strong>"What's driving GDP and inflation at the latest data vintage — and why did the forecast change since the quarter before?"</strong> — the structural VAR. It decomposes the data at the latest available vintage (currently 2024 Q2) into named structural shocks, forecasts with credible bands, and splits a forecast revision into news and reassessment.</li>
<li><strong>"What does this reform mean for a nurse on £35,000 with two kids?"</strong> — PolicyEngine. It runs the actual UK or US statute for that exact family and reads off taxes, benefits, and net income, before and after.</li>
<li><strong>"I want both the transition and the destination."</strong> — run both scoring models. They report comparable real-world aggregates, so you can read the near-term multiplier against the long-run equilibrium.</li>
</ul>
<p>
<strong>Verification gradient.</strong> The models also differ in how far
they can be checked against ground truth, and that should temper how much
weight you put on each answer. The <strong>OBR emulator</strong> and the
<strong>structural VAR</strong> are <em>replications</em> with published
anchors — the OBR's Economic and Fiscal Outlook tables and the Bank of
England paper's figures, respectively — so their output can be validated
against a known benchmark. <strong>OG-UK</strong> is a
<em>structural counterfactual</em> model with no ground truth: it is
calibrated to national-accounts targets, not validated against a published
result. PolicyEngine computes statute directly, checkable rule by rule
against the tax and benefit code. A replication you can audit against its
anchor; a calibrated counterfactual you can only reason about.
</p>
<div class="callout">
Running the same reform through both scoring models is the point of a suite:
agreement raises confidence, and a divergence is informative — it usually
Expand Down Expand Up @@ -203,7 +221,7 @@ <h2>Pick a model and score a reform.</h2>
</main>

<footer class="foot foot-bar">
<span class="brand"><span class="brand-dot" aria-hidden="true"></span>macromod</span>
<span class="brand"><span class="brand-dot" aria-hidden="true"></span>PolicyEngine Macro</span>
<nav class="foot-nav mono">
<a href="/docs/">docs</a>
<a href="/connect/">use it</a>
Expand Down
Loading