Campaigns
On the Planning → Campaigns page you enter periods that will temporarily raise demand, such as a discount, a leaflet or an in-store promotion. On campaign days VidiStock raises the product’s forecast by the rate you enter; the reorder point, order suggestion, transfer decision and stockout projection include this uplift. The baseline forecast does not change; the campaign is shown as separate extra demand.
Adding a campaign
Section titled “Adding a campaign”In the Add campaign window (admins and planners):
- Campaign name and an optional code. If no code is entered one is generated; it is the update key in the campaign file.
- Start and end date. The end day is included.
- Expected demand uplift (%): how much demand rises on campaign days. 50% means demand is 1.5 times the usual. If left empty, each product uses the rate learned from its past campaigns (see below); the window shows the learned rate.
- Warehouses: if left empty, the campaign applies to all warehouses.
- Products in the campaign: products, categories and the values of a product attribute can be selected together; the campaign covers all of them combined. The window shows how many products and warehouses the scope covers.
Category and attribute selections are expanded into products when saved: a product added to the category later is not included. Upcoming and running campaigns and past campaigns are on separate tabs.
Effect on the calculation
Section titled “Effect on the calculation”- Demand on a campaign day = the period’s daily rate × (1 + uplift). For a product selling 10 a day, a 50% campaign day counts as 15.
- If the campaign falls within the lead time, lead-time demand and the reorder point rise. Example: for a product selling 10 a day with a 14-day lead time, a 3-day 50% campaign raises lead-time demand from 140 to 155.
- If the campaign falls after delivery, the order quantity rises. In the optimal plan, the order schedule builds stock before the campaign.
- Overlapping campaigns: if two campaigns fall on the same day the larger rate is used; rates are not added together.
- Forecast horizon: campaign days beyond the horizon are not included. To plan a campaign in advance, the forecast horizon in Settings should be longer than the lead time plus the campaign length.
- Company-wide: the rate of a campaign that applies to only some warehouses is weighted by those warehouses’ share of the product’s forecast.
- Safety stock: the forecast-error part does not change; the lead-time variation part can rise slightly because it uses the daily demand including the campaign.
Where it shows
Section titled “Where it shows”- Order suggestions: the Campaign column shows the name, dates and rate of the first campaign in the horizon. The hidden Campaign extra demand column gives the extra demand within the lead time and target cover.
- Detail window: a Campaign section with dates, rate, extra demand and days until the start. If the campaign starts before the lead time ends, it says an order placed today will not arrive in time.
- Product detail: a dashed Forecast + campaign line in the chart and a Campaign extra demand column in the forecast table.
- Alerts: Order for campaign and Too late for campaign. They also appear in the Dashboard’s to-do list.
Campaign file
Section titled “Campaign file”Campaigns can also be uploaded under Import → Campaigns. Rows with the same code form one campaign.
| Column | Turkish header | Description |
|---|---|---|
campaignCode |
kampanya kodu | Required. If the same code is uploaded again, the campaign and its products are replaced with the file |
campaignName |
kampanya adı | Required on the campaign’s first row |
startDate, endDate |
başlangıç, bitiş | Required; the end day is included. Must be the same on all rows of a campaign |
sku |
stok kodu | Required |
warehouse |
depo | Optional; if empty the product is in the campaign in all warehouses |
upliftPct |
artış | If empty, the product’s learned rate is used (the row is rejected if none can be learned); a row whose rate differs from the first row gets its own rate for that product |
campaignCode;campaignName;startDate;endDate;sku;warehouse;upliftPctKMP-2026-11;November discount;2026-11-02;2026-11-08;URN-001;;50KMP-2026-11;November discount;2026-11-02;2026-11-08;URN-002;MAIN;30Past campaigns: the “K” mark on sales
Section titled “Past campaigns: the “K” mark on sales”If you mark past campaign sales, VidiStock does two things:
- It cleans the forecast of campaigns. Campaign sales are removed from the baseline demand forecast, and the campaign days are filled with the average of the same period’s non-campaign days. If more than half of a period is campaign days, the period is filled from neighbouring periods. The forecast error is not inflated by campaign spikes either.
- It learns the uplift. Per product and warehouse, marked days with gaps of at most 3 days count as one campaign. Actual uplift = sales on campaign days ÷ baseline demand without the campaign on the same days − 1. A product’s learned rate is the median of these uplifts; for a product with few campaigns it is pulled towards the category average, and a product with no campaigns uses its category’s rate.
Marking:
- Sales file: in the optional
campaigncolumn (Turkishkampanya), enterKfor campaign sales. A file without this column leaves earlier marks unchanged. An unrecognized value does not reject the row; the row counts as a normal sale and a warning is written. See CSV import. - ERP: if you mark campaign sales with
Kin a field of the sales line (e.g. a special code), enter the field name in the Campaign sales setting under Integrations. See ERP integration.
The campaigns found are listed on the From sales records tab of the Campaigns page. When a planned campaign ends and its sales are marked, the Actual uplift column is filled, so you can compare the rate you entered with what happened.
If a product has at least two past campaigns, the variability of the uplifts is added to the safety stock as campaign uncertainty; it appears as a separate line in the Detail window.
Good to know
Section titled “Good to know”- No marks, no learning. If sales are not marked, you enter the rate and past campaign spikes count as normal demand.
- Campaign sales are real sales. ABC/XYZ, stock financial analysis, turnover and suggestion compliance include them; only the forecast and forecast error use baseline demand.
- Post-campaign dips and cross-product effects (a promoted product taking sales from a similar one) are not yet taken into account.

