Campaigns: seasonal pushes and their timing

Every seasonal push Newsletrix found in the newsletters you track, grouped by brand. You get the dates each window ran, the number of emails inside it, how deep the cuts went and when that brand is likely to do it all again. Open it while you are building a promo calendar or deciding how far to cut price.

All plans Sidebar: Content AI-extracted seasons
Where
Sidebar: Content / Campaigns
App route
app.newsletrix.com/campaigns
Answers
When will rivals cut price next?
Needs
One analysed send with a season
Updates
Per analysis, charts lag ~5 min

What this screen is

The screen is titled Campaigns & Discounts and it holds the seasonal side of the analysis. Whenever a newsletter belongs to a promotional moment, Newsletrix reads a season name, the offer mechanics it saw and the discount range out of the copy. Four tabs sit above what it finds. The forecast comes first, then the seasonal records themselves, then a breakdown of discount depth, and last a calendar of past windows.

A campaign on this screen is a grouping Newsletrix makes for you. Every newsletter from one brand carrying the same season name inside the same calendar year becomes a single campaign window, with the first and last email setting the dates and the number of emails becoming the send count. Nothing else is grouped, so the season name is what holds a campaign together.

There are no opens, clicks, conversions or revenue on this page, and there cannot be. Newsletrix receives a competitor newsletter the way any subscriber does. The help icon opens a generic explainer that mentions performance, segments and ROI; none of that reaches this screen. Every figure here is a count, a date or a percentage read out of the copy.

One panel looks forward. The forecast is a calendar anchor built from past start dates, and nothing cleverer than that. The screen is on every plan and needs a single analysed newsletter with a season on it.

Open it when

  • You are planning next quarter's promo calendar and want to know when competitors historically start Black Friday, Back to School or Christmas.
  • You are setting a discount level and need to see whether your market plays at 10 % or at 50 %+.
  • A competitor just launched a sale and you want to know how long their windows last and how many emails go into one.
  • You want to separate the deep discounters from the brands that only nudge.
  • You need to know which weeks in the next 120 days will be crowded.

Screen anatomy

The real screen first, then a numbered map of the current layout with the Forecast tab open.

Campaigns and Discounts screen: a Filter by Brand card set to All Brands, the Seasonal Campaigns and Discount Patterns tabs, and a Seasonal Campaigns table whose rows list brands such as Alfred and Fishwife, subject lines, seasons such as Black Friday and Cyber Week, offer types and discount ranges such as up to 50% off
Campaigns & Discounts. The page header and subtitle, the brand filter card, the Seasonal Campaigns and Discount Patterns tabs, and the Seasonal Campaigns table with its Export CSV button and the BRAND, SUBJECT, SEASON, OFFER TYPES and DISCOUNT RANGE columns. Seasons here read "Black Friday", "Cyber Week", "Holiday 2025" and "unknown", and discount ranges read as written in the copy, from "up to 50% off" to "not specified". Sample account. Captured on an earlier release of this screen, which had one filter and two tabs; the current layout is mapped below.
app.newsletrix.com/campaigns
Campaigns & Discounts

Seasonal campaigns, discount patterns, and promotional strategies.

?
1
Brand: All brands Season: All seasons Clear all
2
Key insights
1. 18 seasonal campaigns tracked across 6 different seasons
2. "Black Friday" is the most active season with 7 campaigns
3. 20 discount patterns identified across 5 brands
4. 9 different offer types used in seasonal campaigns
5. average of 3.0 campaigns per season across all tracked periods
Forecast Seasonal campaigns Discount patterns Calendar
3
Upcoming seasons forecastIn the next 120 days
4
Vivobarefoot · Back to Schoolin 5d
Next expected: Sep 11, 2026
3× historically · last 2025
5
Typical sends
4.3
Typical duration
6d
Avg depth
38.5%
up to 60%
6
Offers
sitewide % bundle free shipping +2
Vivobarefoot · Black Fridayin 3mo
Next expected: Nov 24, 2026
3× historically · last 2025
Fishwife · Holiday Seasonin 3mo
Next expected: Dec 1, 2026
3× historically · last 2025
Show 6 later / historical patterns
Campaigns, Forecast tab. The filter card, the Key insights block, the four tabs and the Upcoming seasons forecast with its first tile expanded. Tiles run soonest first, so the red badge sits at the top. Numbers match the list below; sample values.
  1. Filter card A Brand multi-select and a Season dropdown; "Clear all" appears only while a filter is set. Brand reaches all four panels, Season reaches one table.
  2. Key insights Up to five numbered sentences counting what the two tables on this page hold. Hidden when there is nothing to say.
  3. Upcoming seasons forecast The default panel: "In the next 120 days" heads a grid of tiles whose predicted start falls inside that horizon.
  4. Forecast tile Brand, season and an urgency badge: red at seven days or less, amber to 30, sky blue to 90, grey beyond. Under it the predicted date and a line such as "3× historically · last 2025".
  5. Tile statistics Typical sends, duration and average depth, averaged across the years that season ran. "up to 60%" shows when the deepest run beat the average.
  6. Offers strip Up to five offer-type chips seen in that season, plus "+N" when there were more.
  7. Page header The title, the subtitle and a help icon opening a generic explainer modal.
  8. Tab strip Forecast, Seasonal campaigns, Discount patterns, Calendar. Switching between them is instant.
  9. Later patterns toggle Reveals the pairs whose next run falls outside the 120-day horizon. Collapsed by default.

Every panel explained

Upcoming seasons forecast

One tile per brand and season pair: when that brand next runs the season, and what the run looks like.

How it is calculated. Newsletters are grouped by brand, season name and calendar year. Each year gives a first date, a last date, an email count and a window length; typical sends and typical duration are the means of those yearly figures. The predicted date takes the median start month and, separately, the median start day across all recorded years, caps the day at the 28th, and rolls forward a year if it has already passed. Average depth is the mean of every percentage in that season's discount text; the largest figure prints as "up to X%" when it beats the average by more than half a point. This panel covers the brand's whole history, not only the last year.

How to read it. The grid is your pressure list for the next 120 days, ordered by how soon each window opens. Red means within a week. Typical sends is the noise to plan around; average depth is the price you would have to match.

Watch out

A tile can rest on a single year, and it says so: with "1× historically" the anchor is that one year's start date moved forward to its next occurrence, not a forecast. Two or more recorded years is where the anchor becomes useful. The Season filter is not applied to this panel.

Seasonal campaigns table

The evidence layer: one row per seasonal record, with Brand, Subject, Season, Offer types and Discount range, newest first.

How it is calculated. Nothing is aggregated. A row carries the subject line exactly as it was sent, and a literal "N/A" wherever the season, offer types or discount range came out empty. Twenty rows show at a time, with no pagination controls and no date column.

How to read it. Use it when the calendar or the forecast surprises you: this is where you see the subject line a season was detected from. It is the only panel that honours the Season filter.

Discount depth buckets

A stacked bar and four tiles showing how offers split across percentage depth bands, plus a grey segment for offers with no percentage.

How it is calculated. Each distinct offer text counts as many times as it appeared. Percentages are read from the text, a figure above 100 % is ignored, and where a text names several the depth is their average, so "20-40 %" scores 30 and "up to 70 % off" scores 70. Depths fall into four bands, lower edge included and upper excluded, running from "0-10 %" through "10-25 %" and "25-50 %" to "50 %+". Offers with no readable percentage form a non-percentage tally, and shares count against all offers including those, so the four tiles do not add up to 100.

How to read it. A bar weighted to the first two bands means your market nudges; a wide fourth band means clearance pricing is normal and a 15 % offer reads as weak. Read the grey note first: if 27 of 180 offers carried no percentage, the bands describe the other 153.

Watch out

In many accounts the non-percentage tally is the largest segment. Newsletrix finds how an offer works ("stackable", "time-limited") far more often than it finds a number, and a mechanic carries no depth. With no percentages at all the card shows "No discount depth data".

app.newsletrix.com/campaigns
Discount depth buckets

How deep do competitors cut? Offers are grouped by percentage depth so you can tell whether the market plays on subtle nudges or steep cuts.

0-10 %
34
18.9% of offers
e.g. 10 % off first order
10-25 %
51
28.3% of offers
e.g. 20 % off sitewide
25-50 %
46
25.6% of offers
e.g. 25%-50% off
50 %+
22
12.2% of offers
e.g. up to 70 % off clearance
27 non-% offers (BOGO, free shipping, etc.)
Per-brand depth strategy
BrandStrategyAvg depthMaxMix
VivobarefootDeep discounter47.2%70.0%
AlfredAggressive31.5%50.0%
Xero ShoesSubtle11.4%20.0%
Fishwife---
Discount patterns tab. The stacked bar, the four depth tiles with their share of all offers, the non-percentage note, and the per-brand depth strategy table below it. The Mix bar shows how one brand's offers split across the four bands; it stops short of the full track because the track counts that brand's non-percentage offers too. Sample values.

Per-brand depth strategy

One row per brand under the buckets, showing a strategy label, average depth, deepest single offer and a four-colour mix bar.

How it is calculated. Average depth is weighted by how often each offer text appeared. Max is the brand's deepest single offer, itself an average when that offer named a range. The label comes only from the most frequent band. Bands one and two give "Subtle", the third "Aggressive" and the fourth "Deep discounter"; a brand with no readable percentage gets a dash. Rows sort by average depth, brands without numeric depth last.

How to read it. Compare Avg depth with Max: close together means consistent discounting, a much higher max means occasional clearance spikes. The mix bar rarely fills its track, because the track covers every offer while the segments cover only those with a percentage. One readable percentage is enough to earn a label.

Discount patterns table

One row per offer mechanic detected, with brand, subject, date and the pattern in capitals, newest first.

How it is calculated. No aggregation. Each row is one mechanic Newsletrix found in that email. Dates read "Nov 24, 2025" and stay blank when the email carried none. Twenty rows again, no pagination, and the Season filter has no effect here.

How to read it. The mechanics are often more copyable than the percentage: "stackable", "time-limited" and "threshold-based" describe how an offer was built, which you can reuse without matching anyone's margin.

Campaign calendar

A Gantt-style chart, brands down the left and time across the top. Each bar covers a single brand's run of one season in one year.

How it is calculated. The calendar reads newsletters from the last 365 days that carry a season name, grouped by brand, season and calendar year. A bar runs from the first to the last email in the group, its length being the difference plus one day, and very short campaigns keep a minimum width so they stay visible. The label is the season name plus "· 6" when the window holds more than one email, and the colour comes from the season name, so a season keeps its colour on every row. Rows are ordered by number of campaigns; hovering a bar shows the date span, duration, email count and offers.

How to read it. Look at vertical slices rather than single bars: where several overlap in one week, that week is crowded. A long bar with a high count, such as "Black Friday · 6", is a sustained multi-email push, not a single blast.

Watch out

The window is fixed at the last 365 days, so older campaigns live in the tables and the forecast but never appear as bars, and a season running across New Year splits into two. Clicking brand or season chips hides rows but deliberately does not reflow the time axis, and the chip counts always describe every campaign, hidden or not.

Key insights

Up to five plain sentences sit above the tabs. They count the campaigns tracked and the seasons they fall into, then name the busiest season. The rest tally discount mechanics across your brands, the distinct offer types in play, and the average campaigns per season.

How it is calculated. Counted from the two tables on this page and the season list in the filter.

How to read it. Treat them as orientation. Each table shows 20 rows, so every count in these sentences is capped at 20, and "18 seasonal campaigns tracked" can mean 18 but never 42.

Metric definitions

MetricWhat it meansHow it is producedScale
SeasonThe seasonal moment Newsletrix attached to a newsletterFree text taken from the analysis of that email, kept as writtenFree text, e.g. "Black Friday"
Offer typesThe offer mechanics used in that seasonEvery mechanic found in that email, joined with commasFree text list
Discount rangeThe discount span written in the email copyOne free-text line per record, as written in the copyFree text, e.g. "20-40 %"
Discount patternHow the offer is constructedOne row per mechanic found in the emailFree text, e.g. "stackable"
Typical sendsAverage emails per run of that seasonMean of the yearly email counts for that brand and seasonDecimal, 1 or more
Typical durationAverage length of one runMean of the yearly window lengths, where a window is last date minus first date plus one dayWhole days
Avg depth (forecast)Average discount seen in that seasonMean of every percentage figure found in that brand and season's discount range text, including any above 100 %Percent
up to X%Deepest discount seen in that seasonMaximum of the same figures, printed only when it is more than half a point above the averagePercent
Next expectedPredicted start of the next runMedian start month and median start day across all recorded years, taken independently, day capped at the 28th, rolled forward a year if already pastDate
Urgency badgeHow soon that date isColour from the days remaining: red at 7 or fewer, amber to 30, sky blue to 90, grey beyond. The wording is set separately: "today", "tomorrow" or "in 5d" under 7 days, "in 3w" under 30, "in 3mo" from 30 days on4 colours
N× historicallyHow many years the season was seenCount of calendar years with at least one email tagged with that seasonWhole number
Depth bucketDiscount depth bandA depth is placed in 0-10, 10-25, 25-50 or 50 %+, lower edge included, upper edge excluded4 bands
Depth (one offer)Numeric depth of a single offer textFigures above 100 % ignored, then the single remaining figure or the average of them, so "20-40 %" scores 300 to 100
Non-%Offers with no readable percentageOffer texts with no readable percentageCount
% of offersShare one depth band holdsBand count divided by all offers including non-percentage ones, one decimal0-100 %
Avg depth (per brand)Typical depth for one brandAverage of that brand's offer depths, weighted by how often each offer text appearedPercent
Max (per brand)Deepest single offer for one brandLargest per-offer depth, itself already an average when the offer named a rangePercent
StrategyDepth posture labelFrom the brand's most frequent band: band 1 or 2 gives "Subtle", band 3 "Aggressive", band 4 "Deep discounter", no numeric depth a dash4 states
Send count (bar)Emails inside one campaign windowDistinct emails from that brand tagged with that season in that year, shown after the season name as "· 6" when above oneWhole number
Window lengthLength of one calendar barLast email date minus first email date, plus one dayWhole days

Filters and controls

ControlWhat it doesDefault
BrandMulti-select listing your brands by newsletter count, busiest first. Applies to all four panels.Nothing selected ("All brands")
SeasonSingle select listing each detected season with its record count. Applies to the Seasonal campaigns table only."All seasons"
Clear allResets the brand selection and returns the season to "All seasons". Appears only while a filter is set.Hidden
TabsSwitch between Forecast, Seasonal campaigns, Discount patterns and Calendar. Switching is instant.Forecast
Export CSVOne button on each table card. Downloads the rows currently on screen, with the header row.-
Show / hide later patternsReveals the forecast tiles whose next run falls outside the 120-day horizon.Collapsed
Brand chips (Calendar)Click a chip to hide or show that brand's row. "Show all" and "Hide all" act on the whole row of chips.All shown
Season chips (Calendar)Click a coloured chip to hide or show every bar of that season across all brands.All shown
Reset filters (Calendar)Brings back every hidden brand and season. Appears once something is hidden.Hidden

Several controls you might look for are deliberately absent. There is no date range picker, no search box, no column sorting and no pagination on either table. The calendar's 365-day window and the forecast's 120-day horizon are both fixed and cannot be changed from the screen. The group tag that scopes some other screens by client or market is not offered here either. Both CSV exports read what is on the page, so an export contains at most the 20 rows you can see.

How to use it

  1. Start on Forecast with no filters The grid is already ordered by how soon each window opens, so the first tiles are your near-term pressure. Check the historical count on a tile before you trust its date.
  2. Take the numbers off the tiles that matter Typical sends and duration say how loud the window is and how long it lasts; average depth and the "up to" line say what price you would have to match.
  3. Move to Discount patterns to set your own depth Read the four bands to see whether your market nudges or cuts, then the per-brand table for who is deep and who is subtle.
  4. Move to Calendar and click off every season but yours What remains shows who runs that season, when they start and how long they stay in the inbox. The axis does not move, so the comparison stays honest.
  5. Finish on Seasonal campaigns for the wording Filter to that season, read the subject lines and offer types behind the bars, and export the visible rows into your planning document.
Tip

Re-read the forecast at the start of every month. Because the predicted date always rolls forward, a brand that has just finished a season drops out of the 120-day list until next year. Copy its depth and duration into your calendar while the tile is still there.

Limits and caveats

  • Every value comes from reading one email at a time. Nothing here is fed by a campaign management system, and a campaign is simply all newsletters from one brand tagged with the same season in the same year.
  • Season names are free text, so "Black Friday", "Black Friday 2025" and "BFCM" would be three seasons, three calendar colours and three forecast tiles.
  • No open, click, conversion or revenue data exists here. Newsletrix reads competitor newsletters as a subscriber and never sees their real performance.
  • Depth is read out of free text: a range becomes the average of the figures in it, and figures above 100 % are ignored in the buckets but not in the forecast, so the two panels can disagree about the same brand.
  • Global and per-brand depth totals can differ, because an offer whose only figures exceed 100 % counts in the global non-percentage tally but is not counted per brand.
  • No minimum sample size applies. One newsletter can create a season, a calendar bar, a depth band and a forecast tile.
  • Both tables show 20 rows with no pagination and both exports carry only what is on screen. Figures on the panels can trail a freshly analysed newsletter by about five minutes, and the filter lists by about ten.

FAQ

Why does the Seasonal campaigns table only ever show 20 rows?

The table shows 20 records at a time, newest first, and there are no pagination controls. Narrow the Brand or Season filter to see a different slice. The Key insights sentences and the CSV export cover those same 20 rows, so neither can describe more than 20 campaigns.

I picked a season in the filter but the calendar and the forecast did not change. Is that a bug?

No, that is how the screen works today. Only the Seasonal campaigns table applies the Season filter. The calendar, the forecast and the depth buckets respond to the Brand selection alone, so they always show every season, and the Discount patterns table ignores the season too.

Why is nearly everything in the non-percentage segment of the depth buckets?

Newsletrix picks up discount patterns as mechanics such as stackable, time-limited or threshold-based rather than as numbers. Only a pattern that literally contains something like 30 % can be placed in a depth band; everything else is counted as a non-percentage offer and shown in the grey segment.

How trustworthy is Next expected?

Treat it as a calendar anchor. Newsletrix takes the median start month and, separately, the median start day across every year the brand ran that season, caps the day at the 28th, and rolls the date forward a year if it has passed. With one recorded year the median is that year, so read the historical count on the card as the confidence signal.

What does the Deep discounter badge actually mean?

It means the brand's offers fall into the 50 %+ band more often than into any other band. The badge follows that most frequent band and not the brand's average depth, so a brand that mostly runs 10 % offers but has a larger cluster of 50 %+ clearances still earns it. Check Avg depth and Max before reacting.

Why is the same season split into two bars on the calendar?

Bars are grouped by brand, season name and calendar year, so a campaign running across New Year appears once in December and once in January. The calendar also covers only the last 365 days, which can cut a long window off at the left edge.