Supporting data and delivery

Data and updates

Inspect the live diagnostics behind the portfolio regime, subscribe to allocation updates, or use the public JSON feeds in your own tools.

New · Weekly charts

200-week valuation maps

View VT, bitcoin, and the GLD/GLDM gold proxy with 50-week and 200-week averages and current projected valuation zones.

Open charts →
Email alerts

Sign up for email alerts

The Macro Dashboard avatar

The Macro Dashboard

Weekly public macro dashboard summary: KISS, liquidity cycle, and Gavekal regime. No personal allocations or private portfolio data.

Follow on Nostr npub1ggv37sg25hqdshukg73euewe4v0rtynasxgeemlk3tqltwzc3qvqekc8ey
The Macro Dashboard - KISS avatar

The Macro Dashboard - KISS

Public portfolio allocation change alerts from The Macro Dashboard. Posts only when model allocations change.

Follow on Nostr npub150fv78pdf2w6xxl732jzew2vta2nkwsgds0cverg62xtxd9ggk4s4ftjs0
Live model diagnostics

Supporting regime data

These readings explain the current tax-deferred KISS regime. The portfolio page keeps the decision summary; the detail lives here.

Back to the portfolio →
Aggregate score tilt
Risk OnReflation

Risk-on evidence leads 68% to 32%. Reflation is the confirmed regime.

Goldilocks 34.4
Reflation 46.9
Inflation 28.1
Deflation 9.4
What is confirming the regime?
Global stocks (VT)
BullishGoldilocks / Reflation
High beta / low vol (SPHB/SPLV)
NeutralNo strong confirmation
Cyclicals / defensives
BearishInflation / Deflation
Small caps / stocks (IWM/SPY)
BearishInflation / Deflation
Equal weight / cap weight (RSP/SPY)
BullishGoldilocks / Reflation
Sector participation
NeutralNo strong confirmation
Country and region participation
BearishInflation / Deflation
Bitcoin
BullishGoldilocks / Reflation
Commodities (DBC)
BullishReflation / Inflation
Broad US dollar (DTWEXBGS)
BearishGoldilocks / Reflation
Equity volatility (^VIX)
BearishGoldilocks / Reflation
Treasury volatility (MOVE)
Risk-onGoldilocks / Reflation
Gold
BearishInflation
10y Treasury yield trend
BullishReflation / Inflation
Lower-quality commercial-paper premium
NeutralNo strong confirmation
Yield curve
NeutralNo strong confirmation

Data

The site publishes one complete build snapshot and one compact portfolio-target contract. Both identify the exact model snapshot they represent.

Endpoints

The current KISS methodology is kiss-2.3.0. The compact target contract includes both portfolios, stable decision revisions, current target weights, and percentage-of-maximum-exposure multipliers. See the methodology and change record for input roles, conventions, cadence, and limitations.

The taxable target remains a provisional research overlay for the 60% stocks / 30% gold / 10% Bitcoin model portfolio. Consumers must process its decision revision idempotently, apply account-specific tax-lot review, and must not turn ordinary market drift into an automatic sale.

NameURLUse
Complete dashboard snapshot /data/dashboard.json The exact portfolio, history, macro context, source-health, and editorial snapshot used to build this site.
Portfolio targets /data/portfolio-targets.json Small integration contract for the current tax-deferred and taxable KISS targets.

Google Sheets example

A Google Sheet can pull the current tax-deferred allocation and turn it into target dollar amounts for a real portfolio. This example uses portfolio-targets.json.

  1. Create a Google Sheet and enter your total portfolio value in B1.
  2. Go to Extensions → Apps Script, paste this custom function, save it, then authorize it when prompted.
  3. Back in the sheet, enter =KISS_ALLOCATIONS($B$1) in A3. Format the Target % column as percent and Target $ as currency.
  4. Add your current brokerage values next to the output, then calculate trade amounts with Target $ - Current $. For example, if Target $ is in D4 and Current $ is in F4, use =D4-F4.
function KISS_ALLOCATIONS(portfolioValue) {
  const total = Number(portfolioValue || 0);
  const url = 'https://themacrodashboard.com/data/portfolio-targets.json';
  const res = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
  const data = JSON.parse(res.getContentText());

  const rows = [['Asset', 'Symbol', 'Target %', 'Target $', 'VAMS']];
  data.portfolios.taxDeferred.assets.forEach((row) => {
    rows.push([
      row.key,
      row.symbol,
      row.targetWeight,
      total * row.targetWeight,
      row.state,
    ]);
  });
  return rows;
}

The JSON target weights are model outputs, not account-specific advice. Sheets should treat missing/stale data as unavailable, and humans should decide whether and how to trade.