---
title: "assumption-profile.published"
method: POST
path: "assumption-profile.published"
---

# assumption-profile.published

`POST assumption-profile.published` (webhook)

Your organization published a new assumption profile version (POST /api/v1/assumption-profiles). Runs pinned to an earlier version are unchanged; previousVersion names the version this one most recently follows.

## Headers

- `x-worthune-event` 'household.computed' | 'household.updated' | 'household.archived' | 'household.decision' | 'household.drift' | 'book.scan.completed' | 'book.scan.failed' | 'facts.changed' | 'assumption-profile.published' | 'calendar.deadline' | 'mandate.proposal' | 'mandate.question' | 'proposal.approved' | 'proposal.rejected' | 'proposal.expired' | 'proposal.superseded' | 'ledger.entry' | 'mandate.paused' | 'mandate.ended', required
- `x-worthune-delivery` string, required
- `x-worthune-timestamp` string, required
- `x-worthune-signature` string, required
- `x-worthune-signature-previous` string

## Payload

- object: Signed POST body. x-worthune-signature = 'sha256=' + hex(HMAC-SHA256(secret, `${x-worthune-timestamp}.${rawBody}`)). After a secret rotation, x-worthune-signature-previous (signed with the old secret) rides along for 24 hours. Delivery is at least once: a failed attempt is retried up to five more times with backoff (about 1 min, 5 min, 30 min, 2 h, 6 h), every attempt carrying the same x-worthune-delivery id; a redirect is not a receipt.
  - `kind` 'assumption-profile.published', required
  - `timestamp` integer, required: Unix seconds; equals the x-worthune-timestamp header.
  - `data` object, required: Event-specific payload — see the per-event schemas under `webhooks`.
    - `profileId` string, required
    - `version` string, required
    - `label` string, required
    - `previousVersion` string, nullable, required
    - `assumptions` ProjectionAssumptions, required: Unknown keys are rejected — the accepted set is exactly: annualReturn, inflationRate, defaultIncomeGrowth, socialSecurityCola, returnsByWrapper.
      - `annualReturn` number, required: Nominal annual return applied to every account balance (one blended rate).
      - `inflationRate` number, required: Annual inflation applied to inflation-adjusted expense streams.
      - `defaultIncomeGrowth` number, required: Growth for income streams that carry no growthRate of their own.
      - `socialSecurityCola` number: COLA applied to COMPUTED social_security benefits from each benefit's start year. Defaults to inflationRate; pass 0 for a flat benefit.
      - `returnsByWrapper` object: Per-wrapper returns; unlisted wrappers keep the blended annualReturn.
        - `taxable` number: Return for taxable accounts, replacing annualReturn (and any sampled path) for that wrapper.
        - `traditional` number: Return for traditional accounts, replacing annualReturn (and any sampled path) for that wrapper.
        - `roth` number: Return for roth accounts, replacing annualReturn (and any sampled path) for that wrapper.
        - `hsa` number: Return for hsa accounts, replacing annualReturn (and any sampled path) for that wrapper.
        - `plan529` number: Return for plan529 accounts, replacing annualReturn (and any sampled path) for that wrapper.
        - `cash` number: Return for cash accounts, replacing annualReturn (and any sampled path) for that wrapper.
        - `annuity` number: Return for annuity accounts, replacing annualReturn (and any sampled path) for that wrapper.
    - `provenance` string, required
    - `publishedAt` string, date-time, required

## Acknowledgement `2XX`

Receipt. Any non-2xx (or a redirect, or a 5-second timeout) is a failed attempt, retried up to five more times with backoff. An event's first failed attempt counts toward auto-disable — 10 consecutive failed events disable the endpoint; any successful delivery resets the count.

---

[API](https://skmtc.dev/worthune/apis/worthune-api.md) · [All operations](https://skmtc.dev/worthune/apis/worthune-api/llms.txt) · [OpenAPI document](https://skmtc.dev/worthune/apis/worthune-api/revisions/9f2241072555?raw)
