Consensus review
Overview
Shows every incoming image or video to every reviewer, who each route it to a configured status by pressing a button, and files the item under the status their votes decide. A new node starts with Accept and Reject. Each status either gets a new visible dataset on the first run, named Accepted for Accept, Rejected for Reject and after the status itself for any other, or routes to a dataset chosen in the flow editor. Reviewers never edit annotations: use Labeling for that, and Review for a step where the reviewers split the work and each item is judged once.
One reviewer is a legitimate setup, and is how an expert step settles what a larger panel could not.
How it works
An item’s position is dataset membership and nothing else, so a vote needs no state of its own. An item being voted on sits on a hidden pool that belongs to no reviewer and is a member of every reviewer’s queue at the same time. Counting the ballots that hold an item counts its votes.
Claims a batch from the source dataset onto the pool, and from there into every reviewer’s queue at once. The item belongs to several datasets and nothing is copied.
A reviewer pressing a status button casts a vote: the item leaves their queue for a hidden ballot recording the status they chose, while the pool still holds it and the others still see it.
Queue size is how many items one reviewer holds, and also the total taken from the source, because everyone is given the same items.
An item that passes the time limit goes to the Unresolved dataset, whether or not any votes were cast — returning it to the source would re-offer it to the same panel that already failed to settle it, and the votes cast so far are dropped with it.
The reviewer queues take the ontology of the source dataset, so each vote is recorded against it. A source dataset with no ontology still runs, and its votes are recorded without one.
Inputs
Source dataset the assets put up for review are drawn from. Whatever the panel settles leaves it for the matching status dataset. Key: SOURCE_DATASET.
The verdict buttons shown in the review tool, each with the dataset it sends assets to. A verdict left without a dataset gets a new one on the node’s first run. Flow variables aren’t accepted. Key: OUTCOMES.
Destination dataset for assets the panel could not settle - reviewers disagreed, or the time limit passed. Key: UNRESOLVED_DATASET.
Workspace members who review. Each sees every asset put up for review and votes on it. Key: REVIEWERS.
Votes one status needs to win - more than half of the reviewers, or all of them. Key: AGREEMENT_RULE.
Options:
- Majority (
majority) - Unanimous (
all)
Number of assets up for review at once. Every reviewer sees all of them, and the next asset is drawn only after one of them is routed. Minimum: 1. Key: BATCH_SIZE.
How long an item may wait for a decision before it goes to the unresolved dataset. Minimum: 1. Key: CLAIM_TTL_MINUTES.
Outputs
Internal map of user IDs to their hidden review queue datasets. Hidden from the flow editor. Key: USERS_DATASETS.
Internal list of allowed status dataset IDs and button labels. Hidden from the flow editor. Key: OUTCOME_DATASETS.
Internal voting pool and per-reviewer ballot datasets. Hidden from the flow editor. Key: CONSENSUS_DATASETS.
Compact per-reviewer status table object. Hidden from the flow editor. Key: STATUS.
JSON config
Machine-readable node interface for automation and advanced usage.