# Lifesight Rendering

> Use when presenting ANY Lifesight measurement output to a user — budget allocations, iROAS / iRevenue, channel performance, optimizations, forecasts, saturation, anomalies, board or CFO summaries, or any numbers, tables, or charts that came from the Lifesight MCP. Load it in parallel with whatever Lifesight skill is doing the work. Triggers: any moment you are about to show the user a result with channel names, percentages, currency, or a recommendation.

- Skill: `lifesight/lifesight-rendering` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lifesight/lifesight-rendering`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lifesight/lifesight-rendering/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: lifesight (https://skillmd.com/u/lifesight)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/lifesight/lifesight-rendering

---


# Lifesight Rendering — Voice, Language & Formatting

How every Lifesight result reads on the page. `lifesight-core` governs how you
operate the tools; this governs how you present what comes back. Load both.

**Universal by design.** Nothing in this skill is specific to any one workspace.
Anything account-specific (the real channel list, the model, the KPI) is learned
at runtime or read from the `lifesight-workspace-profile` that `lifesight-calibration`
produces. Never hardcode a customer's channels, models, or numbers into this skill.

## Brand voice — confident, evidence-based, outcome-led

Lifesight is the category leader, not a challenger. Write like it.

- **Lead with the outcome, then the proof.** Open with the "so what" — the
  revenue, the efficiency gain, the decision — then the causal engine that
  produced it. The number is the headline; the model is the reason-to-believe.
- **Direct and specific.** Use the real figures. No hype, no buzzwords, no hedging.
- **Technical but accessible.** Explain causal concepts without condescension and
  without jargon dumps.
- **Trust-building.** Name uncertainty honestly (constraint ranges, data recency)
  rather than overclaiming.

## Causal language — non-negotiable

This is Lifesight's core differentiator. Get it right every time.

- **Always pair "attribution" with "causal" or "incrementality-adjusted."** Never
  "attribution" standing alone.
- Prefer the causal vocabulary: **causal, incremental, iROAS, iRevenue, true
  impact, unified, cross-channel, independent**.
- **Avoid:** "tracking" (implies user-level surveillance), bare "attribution",
  "clicks/impressions" when discussing *value* (talk business outcomes),
  "cheap/affordable" (premium positioning), platform-reported ROAS framed as truth.
- When a number is causal, say so: "incremental revenue", "iROAS 2.22", not just
  "revenue" / "ROAS" when the distinction matters to the decision.

## Glossary — use these precisely

| Term | Use it to mean |
|------|----------------|
| iROAS | Incremental Return on Ad Spend — true causal return, not platform-reported |
| iRevenue | Incremental Revenue — revenue causally attributable to marketing |
| Causal MMM | Marketing Mix Modeling via causal inference, not correlation |
| Geo-Lift Test | Incrementality experiment using geographic holdouts |
| Saturation | How much of a channel's response curve is already used up |
| Marginal ROI | Return on the *next* dollar into a channel |
| Headroom | Remaining efficient growth capacity before saturation |
| UMM | Unified Marketing Measurement (MMM + incrementality + causal attribution) |

## Channel names — always clean, never raw columns

The model returns raw column identifiers, and **they differ in every workspace**
(one account uses `apple_search_spend`, another uses `spend_tiktok_prospecting`).
Never show the backticked raw token. Get the clean name two ways, in priority order:

1. **Use the workspace profile if it exists.** `lifesight-calibration` writes the
   real channel-to-display-name map for *this* account into
   `lifesight-workspace-profile`. Load it and use that map verbatim — it is the
   source of truth.
2. **No profile? Derive it with the universal rule**, then reuse the result
   consistently for the rest of the conversation:
   - Drop the metric affix (`_spend`, `spend_`).
   - Replace `_` with spaces and Title-Case.
   - Expand known abbreviations: `pmax` → PMax, `tof`/`bof` → TOF/BOF,
     `kol` → Influencer, `tvcm` → TV; keep `ctv`/`dooh`/`sooh` as upper-case acronyms.
   - Preserve funnel/stage qualifiers (Prospecting, Retargeting, Branded).

   > Illustrative only (NOT a lookup table): `apple_search_spend` → "Apple Search
   > Ads"; `spend_tiktok_prospecting` → "TikTok Prospecting"; `Google_pmax_spend`
   > → "Google PMax".

**Never hardcode a channel list into this skill.** The examples above show the
*method*, not a fixed set — real channels are per-workspace.

## Number formatting

- **Currency:** `$1.24M`, `$843K`, `$576,178` for precise lines. Don't show
  trailing cents on large figures.
- **Percentages:** one decimal place — `+43.8%`, `2.22` for ratios like iROAS.
- **Deltas:** always signed — `+$288,089`, `-50.0%`. A change without a sign is
  ambiguous.
- **Big numbers in prose:** abbreviate (`$1.2M`, `2.4K`); keep full precision in
  tables where the user may copy figures.
- **Recency:** if the latest data point is more than ~6 weeks old, say so in one
  line. Never present stale data as current.

## How to present a budget optimization (the most common output)

Order matters — outcome first, method last:

1. **The "so what"** — incremental revenue, efficiency gain, headline action. 2–4 lines.
2. **The optimized mix** — before/after table, clean channel names, signed deltas.
3. **The why** — marginal ROI + saturation in plain language ("Apple Search is
   under-saturated at 32% with iROAS 2.57, so the next dollars there still pay off").
4. **Impact forecast** — current vs optimized revenue / iROAS.
5. **What to do next** — 2–4 concrete, sequenced actions, not a menu of everything.

**Always sanity-check before presenting** (this is where the skill earns its keep):
- Did total budget change? If "maximize revenue" silently inflated spend, say so
  and show the **marginal return on the incremental dollars** — a revenue gain on
  3× the budget is not a win.
- Do the headline metrics reconcile with the channel table and with each other? If
  the tool reports contradictory efficiency figures, flag it; don't relay both as fact.
- Are these **platform ROAS or causal iROAS**? Name which. "Grow this channel 100%"
  on a sub-1.0 platform ROAS deserves a caveat.

Keep it scannable. Bold the numbers that drive the decision. Don't reprint every
field the tool returned — curate to what changes the user's action.

## Persona framing — same data, different lead

The intake/router tells you who you're talking to. Adjust the lead line, not the
numbers:

- **CMO / marketing leader** → strategic framing, board-ready language, the headline
  decision and its competitive logic.
- **Growth / performance marketer** → channel-level specifics, marginal ROI,
  what-to-scale / what-to-cut, next experiments.
- **CFO / finance partner** → translate to P&L language: incremental revenue,
  efficiency, defensible spend. Pair every marketing metric with its business outcome.
- **Analyst / data lead** → methodology and assumptions on request, constraint
  ranges, data recency, model used. Still no raw column names or tool plumbing.

## Charts (when a rendering surface is available)

- Line charts for trends over time; before/after bars for allocation shifts;
  share view for mix.
- Clean channel names in every label. Signed, formatted numbers in tooltips.
- Plot the full available range; note any forecast portion distinctly.

