---
name: guarding-derived-indicators
description: Applies pre-computation rules to arithmetic deriving a ratio, per-capita, share, growth rate, contribution, composite index or currency/PPP conversion from official statistics via the Aard MCP. Blocks summed chain-linked volumes, averaged pre-computed rates, nominal mixed with real, seasonally adjusted with raw, mismatched index bases, frequencies or unit multipliers. Fires before and during such arithmetic, even on single-dataflow cases that skip linkage and on intermediates never shown to a reader. Governs admissibility and caveats, not attribution or licensing, which is citing-official-statistics.
license: CC-BY-4.0
metadata:
  author: Aard
  homepage: https://aard.ai
---

# Guarding derived indicators

These are guardrails with low degrees of freedom. Each rule blocks a specific, named error that produces a plausible-looking wrong number — the failure mode where nothing errors out and the result is simply false. Apply them verbatim; do not improvise around them.

## When to use

Any arithmetic that derives an indicator from retrieved series: ratio, per-capita, share, growth rate, contribution, composite, currency or PPP conversion.

**Fires on any derived-indicator arithmetic, regardless of unit count.** A single-dataflow growth-rate contribution still needs the chain-linking guard, and reaches this skill without passing through `reasoning-linkage-confidence` at all.

This skill is not the last stage of a pipeline. It governs whether a computation may run. Whether and how the result is stated to a reader is a separate question, answered by `citing-official-statistics`, which also fires on plain lookups where no computation ever occurs.

## Rules

Each rule cites its authority from `references/source-registry.md` when it fires.

**a. Chain-linked volumes are never summed or differenced.** Component chain volume measures do not sum to the aggregate. Use previous-year-price values or published contribution-to-growth keys. *Authorities: IMF QNA Manual Ch. 8; ABS ASNA Ed. 8 §6.34; Eurostat nama_10 ESMS.*

**b. Ratios are computed as a ratio of aggregates**, with a fixed and stated aggregation order — never as the average of pre-computed rates. Aggregation order can reverse the direction of the result. *Authority: Simpson 1951.*

**c. Growth rates and same-currency ratios are never currency-converted.** A debt-to-GDP ratio in local currency is already unit-free; converting it introduces an exchange rate that cancels. *Authority: Eurostat–OECD PPP FAQ.*

**d. PPPs are used only for cross-country volume level comparisons, never as a time series.** Attach the caveat that PPP-based per-capita volume indices are not intended to rank countries strictly, wherever countries cluster in a narrow range. Prefer Actual Individual Consumption over GDP for material well-being. *Authorities: Eurostat–OECD PPP FAQ; Eurostat Statistics Explained.*

**e. Numerator and denominator bases must be consistent** — population vintage, residence vs territory, mid-year vs end-year. *Authority: the relevant producers' reference metadata, via each unit's `metadata_url`.*

**f. Stock and flow reference-period conventions must be stated** — end-period stock over full-year flow. *Authority: the producer's government finance statistics methodology.*

**g. Nominal and real are never mixed**, and deflator selection is explicit. *Authority: IMF QNA Manual Ch. 8.*

**h. Index base and rebasing are aligned** before any index arithmetic.

**i. Seasonally adjusted and raw series are never mixed.** *Detected from the `ADJUSTMENT` metadata of the affected units.*

**j. Frequency mismatch requires temporal disaggregation**, and Denton, Chow-Lin, Fernandez and Litterman all produce **model output, not observed data**. Flag it as such in the result — this is the rule most likely to be quietly skipped, because the output looks exactly like data.

**k. Composites follow the OECD/JRC ten-step discipline** with mandatory uncertainty and sensitivity analysis at step 7. *Authority: OECD/JRC Handbook; steps in `references/units-and-tiers.md`.*

## Predicate checks

Before computing, read from the Aard MCP server's `inspect` output, matching on bound codelist identity rather than concept label:

| Field | Check | Blocks |
|---|---|---|
| `PRICE_BASE` | chain-linked volume? | rule a |
| `UNIT_MEASURE` + currency | same-currency ratio? | rule c |
| `ADJUSTMENT` | adjusted mixed with raw? | rule i |
| `FREQ` | differs across operands? | rule j |
| `UNIT_MULT` | multipliers differ across operands? | scale before arithmetic |
| `OBS_STATUS` | break or provisional on an operand? | switch basis or caveat |

`UNIT_MULT` is the one to check most carefully, because it fails silently: two operands with different multipliers produce a result wrong by an exact power of ten, which passes every sanity check that does not know the expected magnitude. `OBS_STATUS` semantics are not tabulated anywhere in this bundle: the DSD names the code list and providers use their own, so resolve the code against that list (`references/flags.md` explains how) and treat an unresolved code as unknown rather than assuming a cross-domain meaning.

## Worked example: the euro-area chain-linking trap

Task: contribution of investment to euro-area GDP growth.

The naive path takes chain-linked volume *levels* of GDP and gross fixed capital formation and differences them. This is wrong under rule (a) and produces a number that looks entirely reasonable.

The correct path uses the published contribution-to-growth key, which is additive by construction. The user-facing explanation cites the IMF QNA Manual Ch. 8 and the ABS ASNA §6.34, and attributes the series to its producing agency.

## What this skill emits

The computed indicator, the caveats mandated by whichever rules fired, and a decision record listing `rules_fired` with their authority citations, so a second agent can validate mechanically that each fired rule is sourced.

**Authority citation belongs here.** When a rule fires, state which rule, why — the metadata predicate that detected it — and link the governing source from `references/source-registry.md` with authority, locator and URL or DOI. An uncited rule application is an unvalidated one.

**Data citation does not belong here.** Source lines, licence wording, identifier strings, extraction timestamps and derived-figure attribution are built by `citing-official-statistics`. Rules (e) and (f) reference producer methodology; supply the unit's `metadata_url` and let the citation skill render it rather than composing the reference inline.

**Arithmetic preserves the citation-identity fields unchanged.** The surviving unit set carries `resource_title`, `resource_kind`, `resource_title_status`, `selected_members`, `selection_basis`, `selection_labels`, `selection_status`, `response_format`, `licence_label`, `licence_url`, `notes`, `query_url` and `extracted_at` through the computation untouched — including on the direct single-unit path that never ran `reasoning-linkage-confidence`, which is the path where provenance most often gets dropped because nothing upstream had to assemble it.

Keep derivation-specific caveats separate from source-native metadata. Append them to the result's ordered `notes` only where they describe the figure actually displayed, and never by rewriting a resource title or a selection label — a derived series is a new number over the same cited slice, not a new name for it.

Whether a derivation is *admissible* is this skill's question. How the resulting figure is *attributed* — including the licence-mandated statement that it was calculated rather than published — is not.

## Handoff

Emit the computed indicator, mandated caveats, decision record **and the surviving unit set**. The unit set is not optional context: the citation skill renders from the units, so a handoff carrying only the computed number and the rule record leaves it nothing to cite. Where the result reaches a reader, `citing-official-statistics` builds the source line, the licence line, the flag rendering and the derived-figure attribution from those units.

Where that skill is unavailable the obligations do not shrink to what is convenient — attribution and licence terms are conditions of reuse, not presentation preferences, and `references/licensing.md` ships alongside this skill precisely so they can still be met. Before emitting, satisfy them from that file directly: name the producing agency, give the dataflow identifier and the extraction timestamp, carry any observation-status or confidentiality flags on the operands, apply the licence-mandated wording, and label the figure as calculated rather than published. If you cannot do that, say the figure is unsourced rather than presenting it as though it were sourced.
