Rules that depend on dates: new products, ending offers

Mark new products (news, new arrivals), offers about to expire or sales this week with a rule that compares a date with '60 days ago' — how often it updates, and what Renable refuses to publish.

Updated October 6, 2026

Some labels depend on the calendar: "News" for new arrivals, "Last chance" for an offer about to expire, "On sale" while a sale runs. You build them with a rule whose condition compares a date column with a day counted from today — published is on or after 60 days ago — instead of a fixed date, so the rule keeps working as the days go by. This article covers how that comparison works, how often its result updates, the ways to mark new products by days since they were published, and what Renable won't publish.

To print a date or a day count in an ad instead, see Working with dates.

Compare a date with today#

In a rule's condition on a date column, click the clock button next to the date (Compare with N days ago instead) and choose a number of days ago or days from now, or today. It works with is before, is on or before, is after, is on or after, is between, is exactly and is not, and it counts whole days: published is on or after 60 days ago matches products published today or on any of the 60 days before, and published is after 60 days ago matches today and the 59 days before — the same 60 days that "less than 60 days" counts in Working with dates. sale end date is before 7 days from now matches offers ending within the next 7 days — and offers that have already ended; add sale end date is on or after today to leave those out.

The column has to be set to Date on the Mapping tab — or carry a Shift date step in the condition (see the recipe below). That includes a column a rule writes: the columns under Rule outputs have the same type badge. On a column that isn't set to Date, the comparison isn't a date comparison: is exactly today compares the text "today" (it matches a product whose value is literally the word), and is before, is after and the other ordering comparisons stop Publish with a message telling you to set the column's type to Date.

A column has one type, whatever capitals a rule writes its name with. If two column types are set for the same column — the same name written with different capitals, such as Published and published — Renable won't save the catalog while both are set: the Mapping tab marks the pair in red under Other column types; remove the one you don't want.

How often it updates#

A rule that compares a date with today is re-checked for every product once a day, at the catalog's first import after a fixed moment between midnight and 6:00 UTC. In practice that lands between midnight and about 7:15 UTC, or an hour later if you started an import or a publish just before the scheduled one. So the result changes in the early hours UTC: it is not instant, and it is not tied to your midnight. A product whose feed data changes is also re-checked at every import.

Some things worth knowing:

  • Dates with a time zone. A date in your feed that carries a time zone offset turns over at its own midnight, not UTC's. A date ahead of UTC (Sweden in summer, +02:00) can show yesterday's result for up to about nine hours into its day, until the daily re-check runs. A date behind UTC, such as -05:00, can take until the next day's re-check.
  • Failing imports. If a catalog's imports are failing, its products keep the results of the last import that succeeded, until an import succeeds again.
  • Previews. A preview — the rule editor's sample, a product trace, or Aimée's explanation of a product — works out "today" when you open it, so it can be ahead of the imported products for a few hours after midnight UTC.

The scheduled import that runs the daily re-check usually says "Re-checking the rules that compare dates with today — a new day began" in the catalog's Imports table. That import looks at every product, but only the products whose result changed are updated. If one of your prompts reads a value such a rule sets, the prompt writes new content for those products, which uses Credits.

Recipe: mark new products#

Three ways to label new arrivals, best first:

  1. Compare the publish date with "days ago" (recommended). Set your published column to Date on the Mapping tab. Then add a rule: published is on or after 60 days ago, with the action Set field custom_label_0 = News. It matches products published today or on any of the 60 days before, and it updates every day on its own.
  2. Count the days between two feed dates. When the gap you care about is between two dates in your feed rather than between a date and today, put a step on the condition's own column: click the column in the condition and choose + Add step, add a Date difference to the other column, and compare the result as a number — published, with a Date difference to sale_start in days, is less than 60. A Shift date step there works the same way and keeps the result a date, so the condition can compare it with "days ago" even when the column isn't set to Date.
  3. Write the result to a column first. A Set field rule can write a Date difference or Shift date result into a column, and a later rule compares that column. For a Date difference result (a number), set that column's type to Number on the Mapping tab so the rule editor offers is less than — not Date, because a number of days isn't a date. For a Shift date result (a date), set the column to Date so it can be compared with "days ago".

Templates and channels#

The same "days ago" comparison works in channel rules and Studio template automations on a date field. Nothing re-checks a channel at midnight, though: the condition is checked each time the channel runs — after an import that changes any of its products, a publish, a template publish or Regenerate. For a label that has to change on its own every day, put the rule in the catalog instead.

Steps on the left side of a condition are not applied in templates and channels: there, the condition compares the field's value itself.

Why catalog rules have no Today's date#

A catalog can't use Today's date as a value anywhere in a rule or on the Mapping tab, conditions included. A value taken from the clock would change every product every day, and every change sets off more work downstream: products updated, channels re-run, prompt content generated again. Compare a date column with "N days ago" instead; that compares with today without writing today anywhere, so only the products whose result changes are updated.

Auxiliary feeds can't compare with "days ago" at all, because an auxiliary feed is only re-read when its file changes, so its result would never move from one day to the next. Compare the date in the catalog's own rules on the Rules tab instead. Date difference and Shift date between two dates in your feed work in auxiliary feeds too.

When Renable won't publish#

Publish stops and names the rule when a date rule can't work. What each means and the fix:

  • The column isn't a Date column — a rule compares it with a day counted from today, but the column would be compared as text. Set its type to Date on the Mapping tab.
  • Days ago compared with an expression or a lookup — it can only be compared with a single Date column. Compare a Date column instead, or pick a date in the calendar.
  • A number compared with a date, or a date compared with a number — a condition whose column has a Date difference step compares a number of days, so give it a number such as 60, not a day picked in the calendar. A Shift date step makes a date, so compare it with a date or "days ago", not a number.
  • Today's date used as a value anywhere in a catalog rule or on the Mapping tab, conditions included — compare a date column with "days ago" instead.
  • A "days ago" comparison in an auxiliary feed — move it to the catalog's rules on the Rules tab.