← Revelata deepKPICONTENT HISTORY
WHAT CHANGED
Update to Revelata deepKPI
Snapshot Oct 24, 2026 · 13:30 UTC · version 1.1.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Revelata deepKPI and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Computes seasonal quarterly ratios from historical actuals and applies them to split annual projections into quarterly estimates. Trigger for: quarterly breakdown of annual forecasts, in-progress fiscal year projections, any request involving quarterly splits or seasonal patterns. Always retrieve underlying data via the kpi skill first. For `.xlsx`/CSV workbook exports, follow ../_common/revelata-excel-styling-rules.md (plus the xlsx skill).\n",
"included_files": [],
"name": "seasonality",
"skill_md_contents": "---\nname: seasonality\ndescription: >\n Computes seasonal quarterly ratios from historical actuals and applies them to\n split annual projections into quarterly estimates. Trigger for: quarterly\n breakdown of annual forecasts, in-progress fiscal year projections, any request\n involving quarterly splits or seasonal patterns. Always retrieve underlying data\n via the kpi skill first. For `.xlsx`/CSV workbook exports, follow\n ../_common/revelata-excel-styling-rules.md (plus the xlsx skill).\n---\n\n# seasonality\n\nComputes each quarter's typical share of the full fiscal year, then applies those\nratios to project quarterly values from annual forecasts.\n\n**All historical inputs must come from deepKPI** (via the `kpi` skill). Call\n`list_kpis` first to discover exact KPI names for both the quarterly and annual\nseries before searching. Never use hardcoded or assumed figures.\n\n**Do not** apply to balance sheet items (cash, receivables, inventory) — these\nare point-in-time stocks; use the fiscal year-end value as Q4 directly.\n\n## Data source\n\nSee `../_common/data-source-rules.md`. Deep KPI data flows through the standard\n`query_company_id` / `list_kpis` / `search_kpis` workflow used by the `kpi` skill.\n\n## Hard stop if deepKPI access fails\n\nSee `../_common/connection-failure.md`. STOP and ask before falling back.\n\n## Core formula\n\n```\nQ_ratio(year, q) = Q_value(year, q) / FY_value(year)\nseasonal_ratio(q) = simple average of Q_ratio across most recent 3 years\nprojected_Q_value = projected_FY × seasonal_ratio(q)\n```\n\nFour ratios must sum to ~100%. If materially off, normalize before applying.\n\n## Steps\n\n1. **Retrieve** annual + quarterly actuals from deepKPI (minimum 2 years; 3 is\n standard). Capture the provenance URL for every value returned.\n2. **Always derive Q4** — companies don't file a Q4 10-Q so Q4 will never be\n directly in deepKPI. Always compute `Q4 = FY − (Q1+Q2+Q3)` for every year\n in the series. Use the `implied-metric` skill. Put Q4 **in the quarterly\n revenue (metric) row**, Q4 column—**not** a separate \"Q4 (derived)\" row. Flag in\n **Notes**.\n3. **Compute per-year ratios** — divide each quarter by its fiscal year total.\n4. **Average** across the 3 most recent complete years.\n5. **Flag anomalies** — if one year is distorted (product launch, acquisition,\n COVID), note it in the Notes column and consider excluding from the average.\n6. **Apply** ratios to each projected annual figure.\n\n## In-progress fiscal year\n\nWhen Q1–Q2 are actuals and you need to project Q3–Q4 only:\n\n```\nremainder = projected_FY − Q1_actual − Q2_actual\nQ3_reweighted = Q3_ratio / (Q3_ratio + Q4_ratio)\nQ4_reweighted = Q4_ratio / (Q3_ratio + Q4_ratio)\nprojected_Q3 = remainder × Q3_reweighted\nprojected_Q4 = remainder × Q4_reweighted\n```\n\nThe same re-weighting logic applies for any subset of remaining quarters.\n\n## Output format (in-chat tables)\n\nFollow the `kpi` and `implied-metric` skills for how tables read in chat.\n\n**From the `kpi` skill (data pull):**\n\n- **Provenance:** Every numeric figure uses a clickable deepKPI link —\n `[value](exact-url)` — per the `kpi` skill's **Provenance — non-negotiable rules**\n (copy URLs exactly as returned; never reconstruct or guess). For **derived**\n values, link the **operands** or state sources as that skill requires.\n- **KPI identity:** Merge into one series when deepKPI returns the **same KPI**\n (same metric, unit, aggregation); use **separate** rows or tables when they\n differ.\n- **Order:** **Annual figures first**, chronological (**oldest at top**), then a\n **clear break** (rule, blank line, or subheading), then **quarterlies** (oldest\n first). Do not interleave annual and quarterly without separation.\n- **Tall vs wide:** For ordinary historical feeds, prefer **tall** tables — **each\n row is one period**, first column **Period**, then **one column per metric** when\n periods align — per the `kpi` skill's **In-chat table template (data pull)**. **Do\n not** use a wide date axis \"many period columns\" layout for `.xlsx`-style modeling\n in chat; that layout is for files (`../_common/revelata-excel-styling-rules.md`).\n\n**Actuals block (aligned quarters + Q4 across years)** — use the `implied-metric`\nskill's **Multi-period table** pattern (wide grid is allowed **here** for this\nderivation layout):\n\n- **Time flows left to right** — column headers are period labels (`FY22-Q1` …\n `FY22-Q4`), earliest at left.\n- **One row per time series** — each operand row maps 1:1 to one deepKPI series; do\n not fragment into separate rows per quarter (e.g. not \"Revenue - Q1\" / \"Revenue -\n Q2\").\n- **Imputed Q4 in-stream** — the quarterly **metric row** carries Q1–Q3 from\n deepKPI and **Q4 as imputed** (formula or linked value) in the Q4 columns—**no**\n extra line item for \"Q4 (derived)\". **Annual** row stays separate when it is a\n different series. **Bold** imputed cells only if it helps; **Notes** documents\n imputation.\n- **Links embed in cell values** — `[$248.0M](exact-deepkpi-url)`; no separate Source\n column.\n- **Notes** is the **bottom row** of the block; populate only in columns where\n something non-standard occurred (derivation, anomaly, re-weighting, etc.).\n\nShow **all work**: operands (FY, Q1–Q3) visible with links; Q4 appears **in the\nquarterly row**. Ratios block still shows per-year math. Per the `implied-metric` skill.\n\n**Ratios** and **Projections** blocks can use compact tables; still hyperlink any\ncell that is a direct deepKPI-reported value.\n\nIf the reply includes these **data** tables and the user did **not** ask for CSV /\nExcel / `.xlsx` in the same turn, end with the **bold** workbook offer per the\n`kpi` skill (**Mandatory: Excel offer after in-chat data pull**).\n\nThree blocks in sequence: **Actuals → Ratios → Projections**.\n\n```\n## Seasonality — [Metric] ([Ticker])\nUnits: $M unless noted\n\nACTUALS\n | FY22-Q1 | FY22-Q2 | FY22-Q3 | FY22-Q4 | FY23-Q1 | FY23-Q2 | FY23-Q3 | FY23-Q4 | FY24-Q1 | FY24-Q2 | FY24-Q3 | FY24-Q4 |\n-------------------|---------------|---------------|---------------|------------|---------------|---------------|---------------|------------|---------------|---------------|---------------|------------|\nRevenue (quarterly)| [$248](url) | [$301](url) | [$292](url) | **$355** (FY−Q1−Q2−Q3) | [$267](url) | [$325](url) | [$297](url) | **$495** (same) | [$248](url) | [$301](url) | [$292](url) | **$715** (same) |\nRevenue (annual) | | | |[$1,196](url)| | | |[$1,384](url)| | | |[$1,556](url)|\nNotes | | | | imputed Q4 | | | | imputed Q4 | | | | imputed Q4 |\n\nSEASONAL RATIOS\n | FY2022 | FY2023 | FY2024 | 3-yr avg |\n-----|--------|--------|--------|----------|\nQ1 | 20.7% | 19.3% | 15.9% | 18.6% |\nQ2 | 25.1% | 23.5% | 19.3% | 22.6% |\nQ3 | 24.4% | 21.5% | 18.8% | 21.6% |\nQ4 | 29.7% | 35.8% | 45.9% | 37.1% |\nSum | 100% | 100% | 100% | 100% |\nNotes| Q4 from imputed quarter / FY | (same) | (same) | |\n\nPROJECTIONS (FY20XXE = $X)\n | FY2XE-Q1 | FY2XE-Q2 | FY2XE-Q3 | FY2XE-Q4 |\n------------------|----------|----------|----------|----------|\nProjected ($M) | | | | |\nNotes | | | | |\n```\n\nThe Notes row must be populated for: derived Q4 values, excluded anomaly years,\nre-weighted in-progress quarter projections, stock items used as Q4 directly, or\nany year where the ratio was estimated rather than computed from deepKPI data.\n\n## Exporting to Excel or CSV\n\nUse `../_common/revelata-excel-styling-rules.md` for all spreadsheet layout,\nstyling, numeric date headers, freeze panes, column grouping, hyperlinks on\n**value cells** (green, no underline — **no** separate Sources sheet/rows for\nfilings), number formats, and the pre-delivery checklist. Implement with the\n**xlsx** skill.\n\n**Seasonality model addenda (on top of that spec):**\n\n- **Three ALL CAPS section blocks** in document order: **ACTUALS**, **SEASONAL\n RATIOS**, **PROJECTIONS**. Row semantics match the markdown template earlier in\n this skill; **period columns** follow `../_common/revelata-excel-styling-rules.md`\n (**annual block**, blank separator, **quarterly block** — not quarterlies-left as\n in legacy examples).\n- **Every ratio and every projected quarter** is a live `=` formula. Do not\n hardcode seasonal ratios or projection numbers. Examples:\n - **Q4 actual (in the quarterly metric row, Q4 column):**\n `=FY_cell - Q1_cell - Q2_cell - Q3_cell` — **not** a separate \"Q4 derived\" row\n - **Per-year Q ratio:** `=Q_cell / FY_cell`\n - **Average ratio:** `=AVERAGE(ratio_year1, ratio_year2, …)`\n - **Projected quarter:** `=projected_FY_cell * avg_ratio_cell`\n - **In-progress re-weighting:** `=Q3_ratio_cell / (Q3_ratio_cell + Q4_ratio_cell)`\n- The model must **recalculate** when FY projection assumptions change.\n- **CSV:** Cannot store live formulas or real hyperlinks. Add `provenance_url` and\n `formula` (raw strings) as needed; warn the user and recommend `.xlsx`.\n\nRun the pre-delivery checklist in `../_common/revelata-excel-styling-rules.md` before\nsharing the file; add seasonality-specific checks: all ratios/projections are\nformulas; Notes row populated per this skill's rules where applicable.\n\n## Caveats to flag in Notes column\n\n- **Imputed Q4**: flag in Notes every year where Q4 = FY − Q1 − Q2 − Q3 (not directly reported), even though the value sits **in the quarterly row**\n- **Anomaly year excluded**: identify the year, the distortion, and that it was excluded\n- **Shifting pattern**: if the quarterly mix is trending over time, note the direction\n- **Non-December fiscal year**: match Q1–Q4 labels to the company's fiscal calendar\n (e.g., AAPL ends September, NVDA ends January)\n- **In-progress re-weighting**: note which quarters are actuals vs. projected\n- **Geographic/segment splits**: same technique applies; note the series used\n"
}SHA-256 of public snapshot: f933c7fcfd1105acbc3e65acb4ebbb1eb343f0834685392e6e8bd2f816e67b1d