How the run works

ShopeeTikTok
When a group re-solves, what reaches the platform, and what every run status means.

An active group re-solves every night just after midnight, shop time, and writes the result to the platform. Saving the group's settings also produces a run immediately, so you see the effect before you walk away.

What happens on a run

  1. The group's exact settings and membership are frozen for that run, so an edit mid-run cannot corrupt it.
  2. The solver jointly chooses the split under your objective, constraint and distribution, inside whichever budget layers apply to that date. A group with no budget set also chooses its own total from the model's forecast.
  3. Budget cuts go out first. Increases are sent only once every cut has landed, so the applied vector never crosses your ceiling in the gap between the two writes.
  4. A campaign allocated less than the platform minimum is paused for the day rather than underfunded.
  5. Manual campaigns also receive a target ROAS derived from your constraint or the date's own setting.
  6. Small moves are skipped — under ฿1 of budget change, or under 0.05× of target-ROAS change, nothing is written. It saves a pointless platform call and a pointless audit row.
If any campaign's cut fails, every increase in that run is held back. It is deliberate: a group that raised four campaigns because it could not lower a fifth would spend past its ceiling. Fix the failing campaign and the next run catches up.

A campaign you have paused on the platform yourself is never overwritten — neither budgets nor targets move on it until you resume it. Its allocation shows as stranded in the allocation panel.

Reading a run

Every run carries two statuses, because solving and pushing are different jobs.

Solve — did the optimizer produce an allocation?

StatusMeaning
SolvedAn allocation was produced
SolvingStill running
InfeasibleNo split satisfies the constraint. Loosen it, or raise the budget
FailedThe solve did not complete. The next run retries
SupersededA newer run replaced this one before it finished

Push — did it reach the platform?

StatusMeaning
AppliedThe whole allocation reached the platform
PartialSome campaigns landed, some did not
UncertainThe platform's answer never arrived. DataGlass checks before rewriting
Pending / ApplyingQueued, or in flight
FailedThe write did not complete
Not pushedA preview — computed, never sent

The header above the tabs summarises the same thing in one line: "Last nightly run {time} — budgets written to Shopee. Runs again tonight just after midnight."

Run history

The Run history tab lists every attempt, newest day first, with its trigger, its solve status, its push status and the Group Daily Budget it worked to. Triggers are:

TriggerWhen
ScheduledThe nightly run
SavedYou saved the group's settings
Model readyTraining finished and the group re-solved against the fresh model
PreviewComputed for you to look at, never sent

Select a run to see the allocation it produced, campaign by campaign: what each was on (Was), what the run set it to (Set to), and the expected orders and expected profit behind the decision.

A run with no allocation is not necessarily broken. A failed run never produced one, a running one has not yet, and a solve that funded no campaign produced an empty one — the panel says which.

Preview vs live

A paused group still computes an allocation — it just does not apply it. Use that to see what a setting change would do before committing. Only Auto Bid on makes runs actionable.

The allocation panel on Global settings does the same thing for an unsaved change: the bar is what the policy proposes, the ghost behind it is today's, and nothing reaches the platform until you save.

One month at a time

The optimizer solves a month, and the split within it a day at a time. So a date the month plans but that no solve has reached yet shows a planned amount with no per-campaign split — that arrives when a solve reaches the day.

A shop still carrying the retired Monthly Ads Bidder preference is skipped by the group sweep entirely. If a group is not running and nothing here explains why, that is worth checking.