Skip to main content

The publish score

Each scored post gets one publish score. It combines four model outputs with weights that DCinside sets:
The first trial uses views = 1 and every other weight 0, so the score equals p_views. The four outputs are returned next to the score on every row, so DCinside can recompute it or try other weights offline.
Every response carries model_version and weights_version, so any score can be traced to the model and the weights that produced it. Weights will be set with PUT /v1/weights, which is not in MVP scope, and apply from the next cycle. Until then they stay at the first-trial setting.

When a post is scored

A new candidate is waiting until its due cycle, then scored once:
ceil5 rounds up to the next five-minute boundary. Once scored, the score is repeated unchanged in every later response until the post appears in removals or ages out after 24 hours.

scored

The post has a score. scored_at_cycle says which cycle took it.

waiting

The post is inside its wait. due_cycle says when it will be scored.

not_scored

The post cannot be scored. reason says why.

What the model reads

The model reads 62 tabular inputs, the title text and, from the outcome store, how similar past posts performed. The 62 inputs come from the fields of the cycle call:A growth window counts as valid only if the last reading is within 10 minutes of the cycle and the window starts within 5 minutes of where it should. That is why engagement carries one row for every pending post in every cycle, and why the cycle interval starts at five minutes.Not read by the model, so not needed: the queue’s extraction-time scores, comment tables, current counts of the original post, deletion records and the selected-post fields. body_html is optional and the current model does not read it.