Progression Policy
The Progression Policy (POLICY_TYPE_PROGRESSION) controls automated behaviors related to participant progression through tournament structures, including qualifier placement, double-exit BYE propagation, and qualifier replacement rules.
Policy Type: progression
When to Use:
- Automatically placing qualifiers into main draws
- Controlling BYE propagation in double-exit scenarios
- Managing qualifier replacement when matchUp outcomes change
- Automating participant flow between structures
- Enforcing federation-specific progression rules
Policy Structure
{
progression: {
policyName?: string; // Optional policy identifier
doubleExitPropagateBye?: boolean; // BYE instead of WALKOVER (default: false)
autoPlaceQualifiers?: boolean; // Auto-place qualifiers (default: false)
autoReplaceQualifiers?: boolean; // Replace if winningSide changes (default: false)
autoRemoveQualifiers?: boolean; // Remove if winningSide cleared (default: false)
}
}
Attributes:
-
doubleExitPropagateBye: When
true, a BYE propagates to loser position instead of producing a WALKOVER in double-exit structures. Significant for providers who don't award ranking points for first-round walkovers. -
autoPlaceQualifiers: When
true, qualifiers are randomly assigned to qualifier positions in the main draw when qualifying completes. -
autoReplaceQualifiers: When
true, placed qualifiers will be replaced in target structures if the qualifying matchUp'swinningSideis changed. -
autoRemoveQualifiers: When
true, placed qualifiers will be removed from target structures if the qualifying matchUp'swinningSideis removed.
Default Policy
import { POLICY_PROGRESSION_DEFAULT } from 'tods-competition-factory';
// Defaults:
// {
// progression: {
// doubleExitPropagateBye: false, // Produce walkovers (standard)
// autoPlaceQualifiers: false, // Manual qualifier placement
// autoReplaceQualifiers: false, // Manual replacement
// autoRemoveQualifiers: false // Manual removal
// }
// }
Double-Exit BYE Propagation
Standard Behavior (default: false)
// When a participant withdraws before their first match in a double-exit structure:
// Opponent gets a WALKOVER win → advances
// Loser bracket receives a WALKOVER (may award ranking points)
const standardPolicy = {
[POLICY_TYPE_PROGRESSION]: {
policyName: 'Standard Progression',
doubleExitPropagateBye: false // Default
}
};
BYE Propagation (doubleExitPropagateBye: true)
// When a participant withdraws before their first match:
// Opponent gets a BYE → advances
// Loser bracket receives a BYE (no ranking points)
const byePropagationPolicy = {
[POLICY_TYPE_PROGRESSION]: {
policyName: 'BYE Propagation',
doubleExitPropagateBye: true // BYE instead of WALKOVER
}
};
tournamentEngine.attachPolicies({
policyDefinitions: byePropagationPolicy
});
Use Cases:
- ITF events where first-round walkovers don't award ranking points
- Tournaments wanting consistent BYE handling
- Federations with specific walkover policies
Automatic Qualifier Placement
Manual Placement (default: false)
// Default: tournament directors manually place qualifiers
const manualPlacement = {
[POLICY_TYPE_PROGRESSION]: {
autoPlaceQualifiers: false // Default
}
};
// Manual placement workflow:
// 1. Qualifying completes
// 2. TD reviews qualifiers
// 3. TD manually assigns qualifiers to main draw positions