Promotion Overlap Calculator

Drop a single .csv file below.

πŸ“„
Drag & drop your .csv file here
or click to browse β€” only one .csv file is accepted
Not sure your file is formatted correctly? Test before you invest β€” download the sample file (20,000 rows) first.

How it works

Upload a CSV with exactly three columns: event_start, event_end, id (any order β€” extra columns, such as price, are simply ignored and never stored). Dates can be YYYY-MM-DD (recommended), MM-DD-YYYY, or DD-MM-YYYY, separated by commas or semicolons β€” we detect both automatically.

If two offers for the same product start on the exact same date, which one takes priority for that day is resolved automatically but arbitrarily β€” avoid ambiguity by giving them distinct start dates whenever possible.

In the diagrams below, red days count towards an offer's real duration; black days were originally part of that offer but were later overlapped by another one, so they don't count. Each day only ever shows one red offer β€” whichever one overlaps it last.

Example 1 β€” a single overlap

Offer 1 was designed to run 2026-02-01 to 2026-02-09, but on 2026-02-04 a one-day "Only today" offer took place β€” so offer 1 loses that day. A third offer then started on 2026-02-07, cutting offer 1 short again. Real duration counts only the days each offer actually "won".

Example 1 grid Example 1 input table

Example 2 β€” a shared day between three offers

2026-02-15 is covered by three different offers at once β€” only the last one gets credit for that day, the others don't.

Example 2 grid Example 2 input table

Example 3 β€” no limit on the number of offers

Eight offers for the same product, several overlapping in different ways.

Example 3 grid Example 3 input table