Saturday, 04 July 2026 Source data through 3 July 2026 · refreshed 11:58 IST · partial · marketplace + manual channels still landing DoD · WoW · MoM compared against equal prior periods
Spend & efficiency · MTD (operator view)
Channel
MTD spend
Efficiency
TACoS
Stoa Paris — Shopify (.com)
₹7.78 L
Meta ₹6.69 L · Google ₹1.08 L
2.04× MER
—
Stoa Paris — Amazon (Vendor)
₹3.87 L
0.41× ROAS
47.2%
Small Batch — Shopify (.com)
₹10.01 L
Meta ₹9.84 L · Google ₹16.4K
1.13× MER
—
Small Batch — Amazon (Vendor)
₹31.4K
3.24× ROAS
25.6%
Total paid spend (MTD)
₹21.97 L
—
—
DTC spend = Triple Whale ledger (Meta + Google, BOFU+TOFU — both already pulled; Meta/Google split shown per row). Amazon = the Daily Report sheet (all Amazon spend incl. Sponsored + DSP) — not Hector, which misses DSP and was broken under the Vendor-Central outage. Efficiency is each channel’s native metric — DTC blended MER, Amazon last-click ROAS — NOT ex-GST Total Impact ROAS, so don’t read it against the CM2 breakeven.
Stoa Paris · Channels
10 channels · 3 days · 1 pending
Analysis
WIN.Shopify +16.7% WoW — last 7d ₹35.97 L vs prior ₹30.81 L; Jul 4 = ₹4.96 L.
PACING.Brand MTD ₹25.65 L tracking +35.1% vs prev mo same-days.
Shopify (.com)
AHEAD+11%+₹1.56 L vs AOP day-3
₹4.96 L
Yesterday-1.6% vs 7d avg
Last 7 days₹35.97 L+24.3% vs 6-wk avg
Month to date₹15.89 L+48.0% MoM
Pacing EOM₹1.60 Cr+32.0% vs prev mo · 28d left
Pacing EOM₹1.60 Cr+7.9% vs AOP ₹1.48 Cr · 28d left
Run rate / day₹5.30 Lneed ₹4.72 L/day · ON TRACK · current pace clears it
Marketing efficiency
MER · blended .com2.04×on ₹7.78 L spend
BOFU-only Meta (last-click)1.60×7d 1.47× · prior 7d 1.74×
TOFU / Awareness (last-click · brand investment, not an efficiency metric)—no TOFU-named campaigns this period
Spend + blended MER = live day-wise TW ledger (campaign-name BOFU/TOFU split), through 2026-07-04. Per-bucket BOFU/TOFU ROAS (Total Impact) live through 2026-07-04. Revenue-by-source attribution below still held at the May baseline.
Where MTD revenue came from
Meta73%₹53.48 L
Organic19%₹25.16 L
Google8%₹5.62 L
WhatsApp0.3%₹17.3K
Total Impact attribution.
Amazon (Vendor)
BELOW PACE−50%−₹8.06 L vs AOP day-3
₹3.80 L
Yesterday+106.3% vs 7d avg
↑ outlier — well above 14d norm
Last 7 days₹14.74 L-6.0% vs 6-wk avg
Month to date₹8.20 L+35.0% MoM
Pacing EOM₹67.16 L+11.1% vs prev mo · 28d left
Pacing EOM₹67.16 L-60.0% vs AOP ₹1.68 Cr · 28d left
Run rate / day₹2.73 Lneed ₹5.71 L/day · BEHIND · lift pace +109%
Pacing EOM₹22.76 L-21.0% vs AOP ₹28.82 L · 28d left
Run rate / day₹51.7Kneed ₹97.4K/day · BEHIND · lift pace +88%
All marketplaces summed (Myntra + Nykaa + R&L + Swiggy + Tata CLIQ + Flipkart). AOP comp uses the single all-marketplaces plan line (₹25.2L June). Individual channels shown in the mix below carry no separate AOP.
Myntra
—
Yesterday— vs 7d avg
Last 7 days₹1.84 L-17.3% vs 6-wk avg
Month to date₹65.0K-22.0% MoM
Pacing EOM₹8.02 L-18.6% vs prev mo · 28d left
Pacing EOM₹8.02 L— AOP not set
Hector × Myntra in testing — sourced from Daily Report sheet R83. No ad-spend layer.
Nykaa
—
Yesterday— vs 7d avg
Last 7 days₹81.2K-15.7% vs 6-wk avg
Month to date₹36.9K-29.2% MoM
Pacing EOM₹3.62 L-6.1% vs prev mo · 28d left
Pacing EOM₹3.62 L— AOP not set
Channel mix — MTD
Nykaa Fashion73%₹26.9K
Nykaa.com27%₹10.1K
Combined card. Hero numbers reflect only sub-channels with live data pipes.
Combined card. Nykaa Fashion + Nykaa.com both sourced from master sheet via per-tab gsheets_read. Hero numbers = sum of both sub-channels.
R&L
—
Yesterday— vs 7d avg
Last 7 days₹2.48 L+147.6% vs 6-wk avg
Month to date₹44.8K-42.7% MoM
Pacing EOM₹10.39 L+64.0% vs prev mo · 28d left
Pacing EOM₹10.39 L— AOP not set
Sourced from master sheet "DAILY [R&L] STOA" tab. Refreshed via gsheets_read on each /drr.
Swiggy InstaMart
—
Yesterday— vs 7d avg
Last 7 days₹14.7K-27.9% vs 6-wk avg
Month to date₹8.4K+133.3% MoM
Pacing EOM₹67.2K+53.4% vs prev mo · 28d left
Pacing EOM₹67.2K— AOP not set
PENDING — Q-com T+1 lag plus row not yet updated for 18 May.
Tata CLIQ
—
Yesterday— vs 7d avg
Last 7 days—— vs 6-wk avg
Month to date—— MoM
Pacing EOM—— vs prev mo · 28d left
Pacing EOM—— AOP not set
Sourced from master sheet "Tata CLIQ" tab. Refreshed via gsheets_fetch on each /drr.
Flipkart
—
Yesterday— vs 7d avg
Last 7 days₹1.4K-49.7% vs 6-wk avg
Month to date—— MoM
Pacing EOM—— vs prev mo · 28d left
Pacing EOM—— AOP not set
Sourced from master sheet "Flipkart" tab (NOT the dead "DAILY FLIPKART [STOA]" tab). Live since 17 Jun — nascent.
Offline (Retail)
Tracker pending
Tracker integration pending — Ruman sourcing.
Small Batch · Channels
4 channels · 3 days · 2 pending
Analysis
WIN.Shopify +5.1% WoW — last 7d ₹24.50 L vs prior ₹23.32 L; Jul 4 = ₹3.21 L.
TREND.Shopify MTD +29.1% MoM. Amazon MTD +105.9% MoM — MoM strong but momentum mixed this week.
PACING.Brand MTD ₹13.16 L tracking +26.3% vs prev mo same-days.
Shopify (.com)
AHEAD+26%+₹2.34 L vs AOP day-3
₹3.21 L
Yesterday-12.7% vs 7d avg
Last 7 days₹24.50 L+17.2% vs 6-wk avg
Month to date₹11.31 L+29.1% MoM
Pacing EOM₹1.09 Cr+14.4% vs prev mo · 28d left
Pacing EOM₹1.09 Cr+18.0% vs AOP ₹92.66 L · 28d left
Run rate / day₹3.77 Lneed ₹2.91 L/day · ON TRACK · current pace clears it
Marketing efficiency
MER · blended .com1.13×on ₹10.01 L spend
BOFU-only Meta (last-click)—on ₹9.81 L spend · ROAS pending revenue pull
TOFU / Awareness (last-click · brand investment, not an efficiency metric)—on ₹3.2K spend · ROAS pending revenue pull
Spend + blended MER = live day-wise TW ledger (campaign-name BOFU/TOFU split), through 2026-07-04. Per-bucket BOFU/TOFU ROAS pending the daily revenue pull (degraded TW backend). Revenue-by-source attribution below still held at the May baseline.
Where MTD revenue came from
Meta63%₹31.71 L
Organic28%₹14.15 L
Google8%₹3.87 L
WhatsApp1%₹66.3K
Total Impact attribution.
Amazon (Vendor)
AHEAD+77%+₹53.4K vs AOP day-3
₹21.2K
Yesterday-55.6% vs 7d avg
Last 7 days₹3.14 L+89.7% vs 6-wk avg
Month to date₹1.23 L+105.9% MoM
Pacing EOM₹13.77 L+59.6% vs prev mo · 28d left
Pacing EOM₹13.77 L+92.0% vs AOP ₹7.17 L · 28d left
Run rate / day₹40.9Kneed ₹21.2K/day · ON TRACK · current pace clears it
May 18 ₹3.3K is partial — Vendor Central T+1 lag; full day posts May 20 morning. Ad-layer ROAS only covers May 13–18 (Hector SB connection backfill incomplete) — prior-7d comparison not meaningful yet.
Blinkit
AHEAD+75%+₹26.9K vs all q-commerce day-3
—
Latest (17 May)— vs 7d avg
Last 7 days₹1.94 L-8.0% vs 6-wk avg
Month to date₹62.7K-41.2% MoM
Pacing EOM₹8.38 L-10.4% vs prev mo · 28d left
Pacing EOM · all q-commerce₹8.38 L+126.7% vs AOP ₹3.70 L · 28d left
Run rate / day · all q-commerce₹20.9Kneed ₹11.0K/day · ON TRACK · current pace clears it
PENDING — Blinkit T+1 lag; 18 May row not yet reported. Numbers shown are through 17 May (held at prior baseline).
Offline (Retail + Events)
Tracker pending
May feed showing zeros; April had ₹1.79 L. Diagnosing why the feed stopped.
Bliss Home · Channels
2 channels · 3 days · both live
Analysis
TREND.Amazon MTD +98.4% MoM.
PACING.Brand MTD ₹1.48 L tracking +70.9% vs prev mo same-days.
Amazon (Vendor)
₹46.6K
Yesterday+27.1% vs 7d avg
Last 7 days₹2.50 L+44.7% vs 6-wk avg
Month to date₹1.38 L+98.4% MoM
Pacing EOM₹11.38 L+33.0% vs prev mo · 28d left
Pacing EOM₹11.38 L— AOP not set
Master file gid=225110294 ([AMZ] BLISSHOME tab). May 18 ₹2.1K is partial — Vendor Central T+1 lag typical; full day posts May 20 morning. Apr 1–18 ≈ nil; channel went live mid-April.
Myntra
—
Yesterday— vs 7d avg
Last 7 days₹20.2K-42.8% vs 6-wk avg
Month to date₹9.8K-42.4% MoM
Pacing EOM₹90.5K-41.5% vs prev mo · 28d left
Pacing EOM₹90.5K— AOP not set
Master file gid=566376412 ([MYNTRA] BLISSHOME tab). May 18 ₹999 is partial. Apr same-days nil; channel went live mid-April.
Gated Markets · RNL — buyer split
July 2026 MTD · by gifting / loyalty platform · daily trend last 14d
Platform (buyer)
MTD revenue
Share
Trend (14d)
BI Worldwide
₹7.82 L
68.5%
Loylty Rewards
₹2.22 L
19.5%
Reward360
₹77.7K
6.8%
DealBerg
₹59.9K
5.2%
Total RNL
₹11.42 L
100%
Platform = the corporate-gifting / loyalty buyer RNL fulfils through (across Stoa + third-party brands) — orthogonal to the Stoa/Other brand split on the card. Trend = daily total per platform, last 14 days; the BI Worldwide spike is the 17 Jun one-off order. July 2026 to date.
What's new
v1.1083 July 2026
DATAGated Markets · RNL card now runs LIVE off Uniware, retiring the manual Reena sheet. Two changes: (1) it pulls Sale Orders + B2B Sale Orders (the B2B leg — channel BI_CHENNAI_B2B — was missing before, which under-counted BI Worldwide by ~₹14L/month); (2) it auto-refreshes on the office-box Uniware cron, no manual upload. Reconciled to Reena's June sheet to the rupee-ish: BI ₹63.28L vs ₹63.29L (Δ₹1,478), Reward360 and Customer_Capital exact. Still a channel lens, still excluded from brand & group totals.
v1.1072 July 2026
NEWBrand-scoped manager views: drr.edilmis.com/drr-brand/sp/ (Stoa Paris + Bliss Home — Sonia) and /drr-brand/sb/ (Small Batch — Prerna). Each shows only that manager's brands — same numbers, same layout, same freshness band as this board, just filtered to their remit. Built for the app roll-out so a brand manager's drill-through opens their own view, not the cross-brand board. This board remains the complete picture.
v1.1062 July 2026
NEWLive freshness band at the top of the page: it checks, in your browser at the moment you look, how old the data underneath is — green when the numbers are current (through yesterday), amber at 2 days, red STALE at 3+ days with what to do next. Until now a page could sit stale on the shelf and still look current; if the band ever reads red, trust the band, not the numbers below it. Dated archive snapshots deliberately do not carry the band (frozen history, not a live read).
v1.1052 July 2026
NEWBliss Home now gets a real AOP verdict instead of "AOP SCOPE NOT WIRED". The plan is a broad ₹15 Cr gross (₹12 Cr net) annual with no channel split or monthly phasing, so the benchmark is a flat ₹1.25 Cr/month. Both live BH channels (Amazon Seller + Myntra) are tracked here, so the full plan is scope-matched to the dashboard's actuals. Two things to read correctly: (1) the previous suppressed band compared against ₹1 Cr/month mislabelled as gross — the ₹12 Cr figure is net, so the correct gross line is ₹1.25 Cr/month (a correction, not a target raise); (2) BH launched mid-April, so a flat line vs a ramping brand reads WILL MISS by construction through the ramp — the verdict is honest vs plan, and the gap closing month-on-month is the signal to watch.
v1.1041 July 2026
FIXThe yesterday-vs-7d-avg baseline now EXCLUDES yesterday itself. Previously the 7-day average included yesterday as 1 of its 7 days, so every day was graded partly against its own value — dampening the move (e.g. Stoa yesterday read +6.2% vs a self-inclusive avg, +7.3% against the clean prior-7-day run-rate). The baseline is now the 7 days ending day-before-yesterday. This makes the yesterday-delta a true "above/below the recent run-rate" read.
v1.1031 July 2026
IMPROVEDThe yesterday-delta baseline changed from "same weekday last week" (approximated via the prior-7d daily average) to the trailing-7-day daily average — the same run-rate the dashboard already uses for the EOM projection. The card label now reads "vs 7d avg". This removes the single-day noise of a same-weekday comparison and mirrors the identical LW@now → 7d-avg change made on Pulse (2026-06-30). Yogi's call. Note: yesterday-vs figures move because the baseline moved — this is a definition change, not a performance swing.
v1.10229 June 2026
IMPROVEDAOP pacing is now scope-matched: the All-Brands card AND the Stoa/SB brand cards pace against the ONLINE AOP scenario (PM+HALO / Web+Amazon+Q-com), not the full-gross plan that bakes in the not-yet-wired Offline channel — and it's labelled "vs online AOP" so it isn't read as the board's full-gross target. Stoa benchmark drops ₹6.63 Cr→₹5.31 Cr, SB ₹1.31 Cr→₹0.98 Cr; All-Brands ₹7.29 Cr (was implicitly online already).
DATAGated Markets · RNL refreshed to 28 Jun from the Reena buyer-split: BI Worldwide ₹59.7L (79%) · Loylty Rewards ₹14.4L (19%) · Reward360 ₹1.27L · Customer_Capital ₹0.11L — June MTD ₹75.5L. Hero (brand lens) and buyer-split (platform lens) both reconciled to the same MTD. Jun-28 was a ₹2.91L Loylty day; its Stoa share sits under Other until R&L posts (trues up).
v1.10129 June 2026
FIXAmazon was silently FROZEN since 25 Jun — Hector changed its day_list response shape (rows moved to data.rows) + dropped the Total_revenue field, and the carry-forward merge masked the dead fetch. Now reads data.rows, pulls per-day total from master_overview, and fails LOUD (🚨 Slack) on an empty fetch.
NEWAmazon source is now per-brand (after a 4-week Hector↔sheet reco): Hector is the automated first-cut every morning; the manual sheet then overrides — Stoa & SB replace Hector once the team enters the day (with a partial-entry guard so a half-keyed sheet can't regress the headline), while BH keeps Hector and only FLAGS the divergence. SB is now pulled from Hector too.
NEWHector↔sheet Amazon divergences surface in the cron Slack DM (Stoa sheet-replaced, BH flag-only) for the first-few-days monitoring window.
v1.10026 June 2026
NEWGated Markets buyer split now carries a daily-per-platform trend — a 14-day sparkline per platform (BI Worldwide / Loylty Rewards / Reward360 / Customer_Capital) in the expand, from the Data tab. BI Worldwide's spike is the 17 Jun one-off order. Series reconcile to each platform's monthly total.
v1.9926 June 2026
NEWGated Markets card is now click-to-expand → the buyer/platform split (BI Worldwide / Loylty Rewards / Reward360 / Customer_Capital) for the current month, from the Data tab. June: BI ₹56.3L (82%), Loylty ₹10.7L (16%), Reward360 ₹1.3L (2%). Reconciles to the ₹68.3L total. Split is by gifting platform — orthogonal to the Stoa/Other brand split on the card face.
v1.9826 June 2026
IMPROVEDGated Markets · RNL moved up alongside the brand cards as a 4th tile in a 2×2 grid (Stoa · SB / BH · Gated) — reshaped from the wide table into a hero card matching the brand cards (yesterday total + WoW, MTD, Stoa/Other split, one-off flag). Full-width cards preserved; brand row drops to 2 columns. Card is inert (no detail section) — expand-JS guarded.
v1.9726 June 2026
NEWGated Markets · RNL card — the corporate-gifting / loyalty channel (BI Worldwide, Reward360, Loylty Rewards…), backfilled daily Apr 1 → 25 Jun from the Reena sheet (data/gated_markets_rnl.json). Total-RNL hero + Stoa/Other split + 14d sparkline. Deliberately a cross-brand CHANNEL lens, EXCLUDED from brand & group totals: "Other" includes third-party brands RNL resells (not all Encompass), and Stoa's share already sits under Stoa › R&L. Flags the one-off ₹10.57L Stoa order on 17 Jun so it doesn't read as run-rate. No AOP yet — target pending from Sai (next week). Computed at render-time off the JSON with an as-of freshness stamp, so it can't silently go stale; the uploader appends to the same file later.
v1.9626 June 2026
NEWForecast band (AOP mode) — answers "will we land AOP this month" with a computed verdict + a low–high cone, not just a point. Expected uses the last-7d run rate; the band projects the remaining days at the 25th/75th-percentile of the brand’s own trailing daily series, so it widens early in the month and tightens toward month-end. Verdict: ON TRACK (expected ≥ AOP) / AT RISK (expected below but the optimistic finish reaches it) / WILL MISS. Only shown where the AOP target is scope-matched (the online scenario); a fallback flat AOP (e.g. Bliss Home — offline not wired) shows "AOP SCOPE NOT WIRED" instead of a false miss. Reporting-lag caveat surfaced inline.
v1.9524 June 2026
IMPROVEDBOFU and TOFU efficiency labels now carry hover tooltips with their plain definitions (where each sits vs CM2/CM3), sourced from the shared common-vocab dictionary — completing the Marketing-efficiency card label-clarity pass (AT ask #6). The MER label got the same treatment in v1.93.
v1.9424 June 2026
NEWAll Brands view (AT ask #5, 18 Jun huddle) — a consolidated operator screen reached via the new "All Brands" pill in the toolbar. Sums Stoa + Small Batch + Bliss Home across every channel: a group hero (MTD revenue + pacing vs AOP + run-rate), a per-brand contribution table (each brand’s share of the group), and the consolidated Spend & Efficiency card (always shown — this is the operator surface). Its own page, so it can be bookmarked or cast. Revenue is all-channel per brand; pacing uses the same trackable-AOP scope as the per-brand alert badges.
v1.9324 June 2026
IMPROVEDThe Marketing-efficiency MER label now carries a hover tooltip with its plain definition (total DTC revenue ÷ Meta+Google spend), sourced from the shared common-vocab dictionary so it stays consistent with every other dashboard and the glossary — part of the label-clarity pass (AT ask #6).
v1.9224 June 2026
IMPROVEDAmazon spend now refreshes automatically in the cloud cron (was interactive-only). The service-account fetcher pulls each brand’s Daily Report Amazon spend on every scheduled run, so the figure stays current without anyone running /drr by hand.
v1.9124 June 2026
FIXEDAmazon spend on the Spend & Efficiency card was wrong — now sourced from the manually-reconciled monthly Daily Report sheet (all Amazon spend incl. DSP), not Hector. Hector under-reported Stoa (₹13.3L → real ₹18.9L, missing DSP) and was broken for Small Batch under the Vendor-Central outage (₹13.4K → real ₹2.08L; SB had never been wired at all). Both brands now patch from the sheet on every refresh; the group MTD paid-spend total corrects from ₹79.4L to ₹88.5L. ROAS/TACoS recompute off the sheet figures.
v1.9024 June 2026
IMPROVEDSpend & Efficiency card now wears the same chrome as the cards above it — in the editorial theme it is a rounded paper card with a soft shadow and a neutral top accent (cross-brand, so no single brand colour); in the Economist theme it is a flat squared column with an ink top rule. Previously it rendered as the plain grey AOP-scenario box, which looked out of place under the brand cards.
v1.8924 June 2026
NEWSpend & Efficiency card (AT ask, 18 Jun huddle) — a consolidated cross-brand view of MTD ad spend + efficiency in one place: per channel (Stoa/SB × Shopify/Amazon), the DTC line splits into Meta vs Google (both already pulled by the Triple Whale ledger — Google was never missing, just bundled), Amazon shows last-click ROAS + TACoS, and a group total (₹79.4 L MTD at ship). Efficiency is each channel’s native metric (DTC blended MER, Amazon last-click ROAS) — deliberately NOT the ex-GST Total Impact ROAS, so it is not read against the CM2 breakeven. Operator-only: it shows in AOP mode (the “vs AOP” toggle) and stays off the default + floor-TV views, so the screen the whole floor sees stays revenue-first.
v1.8823 June 2026
NEWTwo new Stoa marketplace channels wired into the Daily Report: Tata CLIQ (live since 3 Apr) and Flipkart (live since 17 Jun, still nascent). Both pull from the master sheet on every refresh.
NEWNew "All Marketplaces" summary card sums every marketplace channel (Myntra + Nykaa + R&L + Swiggy + Tata CLIQ + Flipkart). The individual marketplace cards stay exactly as before — each with its own 14-day trend sparkline and pacing — so you can still read every channel on its own; the summary card sits above them as the roll-up.
FIXEDAOP comparison now scope-correct. The plan carries a single marketplace target (₹25.2 L June) which is the *all-marketplaces* number — it now sits on the All-Marketplaces card and compares against the SUMMED bucket, so target and actuals are finally the same scope. Previously this comp hung on the Myntra card alone, which read as if Myntra were being judged against the whole-bucket target. Myntra (and every individual marketplace) no longer carries its own AOP comp — they are the breakdown, the aggregate carries the verdict.
v1.8722 June 2026
FIXEDThe .com “Marketing efficiency” block was silently frozen at a 17 May baseline for ~5 weeks — the sales rows refreshed daily while the ad-layer (MER, BOFU/TOFU spend) held stale numbers. It now computes live, day-wise, from the Triple Whale spend ledger on every refresh. The visible jump is a CORRECTION, not a performance change: Stoa blended MER 1.38× → 2.28× on ₹35.2 L of real spend (the frozen ₹53.4 L overstated spend by ~₹18 L — more than all paid spend across every channel for the period); the ₹34 L “TOFU” bucket → ₹0, because Stoa runs no TOFU-named campaigns. Replaces the old campaign-level Triple Whale pull, which had been timing out on every run (cloud and local) and silently re-freezing the card.
NEWPer-bucket BOFU/TOFU ROAS is live again and now day-wise (Total Impact, last-click) with a 7-day vs prior-7-day trend: Stoa BOFU 1.98× (7d 1.89× · prior 2.21×), Small Batch BOFU 1.97×, SB TOFU 1.98×. Stoa’s TOFU row reads “no TOFU-named campaigns” (genuinely ₹0), not a gap. Computed from a new daily revenue ledger; if a window’s revenue hasn’t fully landed yet it shows “ROAS pending” rather than a wrong partial number.
NEWCustom date-range filter (AT request). A new Single / Range toggle lets you pick any start–end window — the dashboard computes per-brand and per-channel totals for that span in the browser, with a coverage chip (how many days in the range actually have data), a vs-prior-equivalent-span comparison, and the monthly AOP prorated to the range length. The single-date picker (jump to any past day) is unchanged. If the daily cache is unavailable it degrades to a clear “range data unavailable” state rather than showing blanks.
v1.8619 June 2026
NEWCricket-style run rate in AOP mode (AT/Arjun ask, 18 Jun huddle). Each channel + brand card now shows "Run rate / day": Current RR (MTD ÷ days elapsed) vs the Required RR ((target − MTD) ÷ days remaining) needed to land the monthly AOP — exactly like required vs current run rate in cricket. Verdict: ON TRACK / BEHIND (+lift% the daily pace must rise) / AOP MET / FINAL DAY. Brand cards compare against the scope-matched online target the alert badge uses, so cricket never contradicts the badge.
FIXEDMarketplace-bucket AOP scope. The AOP "Myntra" line is actually Myntra + all other marketplaces (Nykaa + R&L + Swiggy); SB's "Blinkit" line is all q-commerce. Both were being compared against the single channel's actuals — wildly overstating "BEHIND" (Myntra read −58% / +342% lift). Now the bundled target compares against the SUMMED bucket actuals, scope-labelled "all marketplaces" / "all q-commerce" (Myntra → −21% / +66%). Generalised via AOP_BUCKET_ANCHORS so new q-commerce/marketplace channels fold in automatically.
FIXEDAOP scenario-breakdown table overflow on desktop — long scenario names (e.g. "Online (Web+Amazon+Q-com)") couldn't wrap and pushed the Δ column past the card edge. Names now wrap, tighter cell padding, overflow-x safety net.
v1.855 June 2026
IMPROVEDEditions split into three so "Final Edit" only appears once the major sources are actually in. Before, the masthead flipped to "Final" at the 11:47 IST midday fire — but the marketplace + manually-keyed channels mostly land with the ~2pm pull, so "Final" was overclaiming by an hour. Now: "Morning Edit" (<11:00 IST — API channels Shopify/Amazon only), "Midday Edit" (11:00–13:59 IST — marketplace + manual still landing), "Final Edit" (≥14:00 IST after the 2pm pull — all sources in). Each edition's freshness line says plainly what is and isn't in yet. Still auto-derived from build hour; no manual upkeep.
v1.843 June 2026
NEWNewspaper editions (Yogi suggestion). The masthead carries a "Morning Edit" badge on the 07:55 IST fire and "Final" once the midday/afternoon fires fold in the marketplace + manually-keyed channels. The edition sits in a pill beside the nameplate (not inside the headline) so "The Daily Brief." stays a fixed single-row nameplate at full size on every device. The freshness line says what the edition means in plain words ("marketplace + manual channels land by midday" vs "all sources in") — replacing the old "refreshed pending" copy that read as stale rather than provisional (AD-flagged). Edition auto-derives from the build hour; no manual upkeep. Applies to both the standard and Economist registers.
v1.8327 May 2026
NEWDashboard footer shows "Last refresh: HH:MM IST · Next refresh: HH:MM IST" so anyone landing on the dashboard can verify freshness at a glance. Rolls to "tomorrow" after the last scheduled fire of the day. Replaces a planned full health-check page at <10% the cost.
v1.8226 May 2026
IMPROVEDRefresh trigger moved off GitHub's native scheduler onto a Cloudflare Worker after observing GHA scheduled fires miss on private personal repos (1 of 3 fires landed on the test morning). CF Worker Cron now fires within ~30 seconds of target every time. Net result on the dashboard: data lands when it should. Schedule also extended to 3×/day — added a 14:47 IST fire to catch late-arriving master-sheet entries from Anish. Launchd plist (Mac-local backup from v1.80) unloaded — Sequoia sandboxing of ~/Documents/ broke it silently anyway.
v1.8125 May 2026
NEWNarrative auto-expiry. Standfirsts and manual bullets (CONCERN/WATCH) now carry a per-brand `narrative_written_at` timestamp. At every cloud-cron build (twice daily) the renderer checks if the timestamp is older than 16 hours — if so, the standfirst becomes an empty-state placeholder ("Narrative pending refresh — numbers current as of HH:MM IST") and manual bullets are dropped. Auto-bullets (WIN/TREND/PACING) keep rendering because they re-derive from live data. Rationale: stale hand-written prose contradicting fresh numbers (e.g., v1.78 CONCERN bullet calling Amazon Ad ROAS "softening" when latest 7d showed recovery) erodes dashboard trust; better to be honest about narrative freshness than fake it. Refresh path: /drr-narrative skill (shipping next) writes new narrative + stamps the timestamp.
v1.8025 May 2026
NEWGitHub Actions cron replaces the local launchd job. Twice-daily refresh (09:00 + 12:00 IST) now runs on GitHub's infrastructure — no laptop dependency, no Claude tokens. Same pipeline (Metorik CLI + Hector REST + Google Sheets SA + drr.refresh + build + git push), now triggered by `cron: '30 3,6 * * *'` UTC. Closes the "AD lands on dashboard before manual /drr ran" failure mode permanently. launchd plist stays loaded for a 3-day overlap watch, then unloads.
v1.7925 May 2026
IMPROVEDAnomaly chip plain-English wording. "↑ 2.6σ above 14d norm" replaced with "↑ outlier — well above 14d norm". σ notation needed decoding for non-technical readers (AD-flagged); the z-score is preserved as a tooltip for anyone who wants the statistical detail.
v1.7825 May 2026
NEWStoa Amazon ad-layer block auto-refreshes from Hector. MTD ad spend, MTD ad ROAS, MTD TACoS, last/prior 7d ad ROAS, and paid/organic revenue split now recompute on every /drr instead of holding at a hand-edited baseline. Today's pull: last 7d ad ROAS = 1.53× (vs prior 7d 1.17× — recovering, not softening). TACoS down from 42.4% baseline to 39.4%. Editorial CONCERN bullet flagged as stale — needs a directional rewrite. SB Shopify + Stoa Shopify BOFU/TOFU + SB Amazon ad data still hand-edited; TW Moby BOFU/TOFU integration staged for a later release.
v1.7725 May 2026
FIXEDSB channel-grid row-2 gap. Row 2 was Blinkit (1 col) + Offline pending (1 col) leaving 4 of 6 cols empty. Promoted both to wide (3 cols each) — row 2 now packs cleanly like Stoa's v1.71 fix. Pending-card markup extended to accept optional size in the brand registry.
v1.7625 May 2026
FIXEDTREND-tone over-claim. Auto-bullet was tagging "both channels accelerating" whenever MoM was positive on Shopify + Amazon — even when the last 3 days within the 14d series were softening. Now the tone tail cross-checks recent slope: MoM-positive + recent-rising → "accelerating"; MoM-positive + recent-softening → "MoM strong but last 3 days softening" (or "momentum mixed"); MoM-negative + softening → "under pressure"; stable → no tail. Stops the bullet from reading positive while the underlying trend is rolling over.
v1.7525 May 2026
FIXEDSnapshot-not-available state. The generic "Backfill is pending" copy was misleading three distinct failure modes into one wrong message. Now: if the requested date matches the live data anchor (the typical case where AD clicks yesterday before the morning refresh finishes writing the dated file), the shell renders the live view with a soft preview banner — "Live view shown, formal snapshot is being built" — instead of a dead-end empty state. Pre-MIN_DATE dates and genuine gap-days surface honest, date-aware copy. AD-flagged.
v1.7422 May 2026
NEWAnomaly highlighting on sparklines. Yesterday's bar is z-scored against the prior 13-day mean+stdev; if |z| ≥ 2σ the bar recolours (red for down, green for up) and a small chip surfaces next to the sparkline (e.g., "↓ 2.4σ below 14d norm"). 2σ chosen over 3σ because 13 prior days isn't enough baseline for 3σ to fire usefully — 2σ ≈ 5% tail, real signal at AD's scan-rate. Today flags Stoa Amazon (-2.4σ) and BH Amazon (-2.1σ) — both Vendor Central T+1 lag artefacts, will reconcile tomorrow.
v1.7322 May 2026
NEW14-day sparkline on every channel card. Inline SVG bar chart (oldest → newest, yday highlighted). Auto-refreshes from cache each /drr; combined Nykaa card sums NF + Nykaa.com.
v1.7222 May 2026
NEWAlert badges at brand + channel level — visible only in AOP mode (?aop=1 toolbar toggle). Pacing vs AOP run-rate (day-of-month). Tiers: AHEAD (≥0%) green, ON PACE (-10 to 0%) amber, BELOW PACE (<-10%) red. Brand badges use the trackable AOP scenario (online for Stoa/SB, flat for BH) — not the Full-Gross-incl-Offline scenario which would always read below pace until the offline pipe lands. Default editorial view stays clean.
IMPROVEDFooter version string + masthead title now auto-derive from CHANGELOG[0] — never goes stale across releases.
v1.7121 May 2026
FIXEDShopify revenue source switched from TW Moby (Triple Attribution) to Metorik canonical Shopify Admin numbers. TW was inflating Stoa/SB Shopify by 35–48% via multi-touch attribution credit. Stoa MTD revised down from ₹1.88 Cr → ₹1.46 Cr (true Shopify Admin gross).
NEWBH Amazon now pulls Hector (Bedbathmore profile) + max-merge with master sheet, same pattern as Stoa Amazon. T+1 marketplace lag closed on BH side.
FIXEDStandfirsts no longer contain hard-coded MTD/yday/WoW numbers. Numbers in editorial copy went stale within days (AD-flagged ₹1.88 Cr in standfirst vs ₹1.46 Cr in MTD card row). Now evergreen — operational state + watch-items only; data parroting handled by auto-bullets.
IMPROVEDStandfirsts + manual bullets rewritten in CXO voice. Dropped internal methodology debates ("Triple Attribution vs Total Impact"), ownership names ("audit with Abhishek + Dhruven"), and data-pipeline plumbing ("via Hector Bedbathmore profile"). What AD/Yogi actually need to register, in their language.
v1.7020 May 2026
NEWEditorial bullets auto-refresh — WIN / TREND / PACING regenerate from live data each /drr; CONCERN / WATCH stay hand-editable with a staleness indicator after 3 days.
NEWAuto-dated snapshots — every live build also emits yesterday's dated file. Date picker for yday works without manual backfill.
NEWChangelog button — this thing.
IMPROVEDDropped SpaceX theme. Canonical renamed to Editorial in the UI.
v1.6920 May 2026
FIXEDAOP scenario panel position — now appears before the standfirst so panel tops align across all three brand cards regardless of standfirst length.
FIXEDBrand card heights — all three cards stretch to equal height (CTA pinned to bottom via flex column).
FIXEDAOP scenario table numbers no longer wrap mid-value (white-space:nowrap on number columns).
FIXEDAOP toggle now correctly hides default pacing row on SpaceX channel-detail panels (CSS specificity bug).
FIXEDStoa Amazon revenue takes max(Hector, master sheet) per day — sheet VC sometimes reconciles higher.
FIXEDSB Blinkit auto-pulls via MCP (tab renamed to "DAILY SB BLINKIT" — no brackets — to work around gsheets_read regex bug on 2-char bracketed names).
NEWRefresh timestamp shown subtly in masthead ("· refreshed 14:43 IST"). Auto-stamped per /drr run.
v1.6819 May 2026
NEW"vs AOP" toggle in toolbar — swaps pacing row from "vs prev mo" to "vs AOP target" across all brand + channel cards.
NEWAOP scenario breakdown panel — three lenses per brand (PM-only / PM+HALO / Full incl. Offline) with annual targets, monthly targets, EOM pacing, variance.