Every automation system makes thousands of small decisions a day. Most are invisible and most are fine. The problem is the one that is not — the track that sat badly or repeated too soon — and the question that follows: why did it play that?
A lot of playout software cannot answer. The schedule is generated, the log is written, and the reasoning evaporates.
Reasoning kept with the decision
PlayOnRadio keeps the explanation attached. Right-click any rotation-generated row and Show Why This Song Was Selected displays the generator's reasoning for that pick.
The same explanations are reachable before air: the rotation preview timeline shows every slot, and clicking one reveals the full selection explanation and any warnings.
What the generator weighs
Selection scores against several factors: category match, cue marker availability, repeat separation, play history and hour fill. Stretch and shrink passes then move the total toward the clock's target duration.
When rules had to be relaxed because the library could not satisfy them, that is recorded rather than hidden. A filled hour with an honest note beats an empty slot.
Acting on it
Two commands sit next to the explanation on rotation-generated rows:
- Replace with Another Song from Same Category — swap the pick while keeping the clock intact.
- Lock Item / Unlock Item — pin a track so regeneration cannot replace it.
Locking matters for sponsored items and specific requests. Rebuild the hour around them without losing them.
Why it changes the conversation
Without explanations, a bad hour becomes an argument about whether the software is trustworthy. With them, it becomes a specific rule to adjust.
The difference in practice: instead of disabling automation after one bad hour, you fix the clock and carry on.
How to use it
Audit an hour that felt wrong by walking the log and checking each selection against its stated reason. Patterns emerge quickly — usually a separation window that is too generous for the size of a category.