← KreelCONTENT HISTORY

Update to Kreel

Snapshot Sep 30, 2026 · 23:02 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "kreel-portfolio-pulse",
  "description": "Cross-brand health check across your whole book of clients.",
  "included_files": [],
  "skill_md_contents": "---\nname: kreel-portfolio-pulse\ndescription: \"Cross-brand health check across your whole book of clients.\"\n---\n\nInputs: `<date_range>`. Collect any missing value from the user, then substitute it wherever the placeholder appears below.\n\nGive me a portfolio pulse for <date_range>.\n\n1. Call `get_portfolio` with date_range=<date_range>, sort_by='revenue_delta', compare_to_previous=True. This groups every brand you can reach by workspace and ranks each group by revenue_delta_pct (biggest decline first), so the brands needing attention surface at the top - there is no `brand` argument, it always covers your whole reach in one call.\n2. For each flagged brand - revenue_delta_pct or mer moved against it by more than 20%, or mer is 0 alongside non-zero ad_spend (spend with zero attributed revenue - a possible tracking gap, not necessarily a real zero; mer null just means no spend) - call `get_performance` with that brand's `id` passed as `brand` (platform='all', entity_type='account', compare_to_previous=True) over the SAME window you gave get_portfolio: convert <date_range> to get_performance's dict form, e.g. '30d' becomes date_range={\"days\": 30}. Drilling into a different window than the one that flagged the brand would attribute the change to the wrong period.\n3. Before reporting on any brand whose `data_through` looks stale (more than a day or two behind today), call `get_brand_context` on it and disclose the staleness instead of trusting its numbers.\n\nRender: one headline per workspace group, a table of flagged brands (name, revenue, revenue_delta_pct, mer, data_through), the channel-level driver behind each flagged brand from get_performance, and any brand whose connection looks stale. get_portfolio never sums revenue across brands (different base currencies, timezones, and revenue bases) - report each brand's figures individually, never a combined total.\n"
}

SHA-256: 952ecdbe28f4af3c8e26e3c2162c5ab97dcac6f19cd495882edd7ebc20ecdb23