This page is available in Swedish and English for easy sharing with your entire coaching staff.
Last updated: 2026-05-01
Guide: Base Rules
This guide explains what you can control in Base Rules and when each setting is appropriate.
When to use Base Rules
Use Base Rules when the default solver result is good but you want to fine-tune behavior around substitutions, role balancing, or how strictly rules are enforced.
Typical scenarios:
- You want smoother, more consistent substitution patterns.
- You need stronger control over role stability across periods.
- You want to adjust penalties without rebuilding the plan manually.
What you can control
1. Soft penalties
Soft penalties influence solver preferences without making a rule absolutely required. Use these when you want to guide behavior rather than enforce it rigidly.
Examples:
- Within-period swap tolerance
- Boundary swap tolerance
Higher penalty values make the solver avoid that deviation more strongly.
2. Relaxed penalties
Relaxed penalties are useful when strict behavior makes the problem hard to solve. Use them to keep the solver flexible while still preferring good structure.
3. Hard rules
Hard rules are mandatory requirements. If a hard rule cannot be satisfied alongside your other settings, the solver may fail or require adjustments. Use hard rules only for genuinely non-negotiable constraints.
Practical tuning workflow
- Start with the default values.
- Change one setting at a time.
- Generate and review the result.
- Check substitution flow and fairness in Review and Match Day.
- Save only when the behavior is consistently better.
Rule of thumb
- Start with soft penalties.
- Use relaxed penalties when feasibility is fragile.
- Keep hard rules minimal and intentional.
Related pages
All rules in Base Rules
The list below is generated from the same rule catalog used in the Base Rules editor.
Soft penalties
- Boundary Change PenaltyBOUNDARY_CHANGE_PENALTYReduces unnecessary outfield slot changes at period boundaries. Increase for more continuity between periods.
- Boundary swap toleranceBOUNDARY_CHANGES_DEVIATION_PENALTYControls how strictly the solver hits the configured number of swaps at period boundaries. Higher values enforce it more tightly; lower values allow some flexibility.
- Within-period swap toleranceCHANGES_PER_SHIFT_DEVIATION_PENALTYControls how strictly the solver hits the configured number of swaps per period. Higher values enforce it more tightly; lower values allow some flexibility.
- Double Bench PenaltyDOUBLE_BENCH_PENALTYPrevents the same player sitting on the bench two stints in a row. Increase if bench rotation feels unfair, decrease if the optimizer is being too strict.
- Gk Extra RewardGK_EXTRA_REWARDIf playing time can't be divided perfectly evenly, players who have had a goalkeeper stint are first in line for the extra field time. Compensates for the outfield time they missed while in goal.
- Gk Repeat PenaltyGK_REPEAT_PENALTYAlmost always prevents the same player being goalkeeper in multiple periods. The very high value makes this behave like a hard rule without being one.
- Half Period Stability BonusHALF_PERIOD_STABILITY_BONUSRewards a player keeping their position for at least half a period. Reduces unnecessary early rotation within a period.
- Position PrefPOSITION_PREFHow strongly player position preferences influence the plan. Increase to follow preferences more strictly, decrease to let the optimizer choose freely.
- Single Stint Cross Period PenaltySINGLE_STINT_CROSS_PERIOD_PENALTYPenalizes the bench-field-bench pattern that spans a period boundary. Lower penalty than within a period, since period breaks are a natural opportunity for rotation.
- Single Stint PenaltySINGLE_STINT_PENALTYPenalizes the bench-field-bench pattern within a period. Prevents players from getting just one short stint surrounded by bench time.
- Stay RewardSTAY_REWARDRewards keeping a player in the same position across consecutive stints within a period. Increase for more stability, decrease for more variety.
- Variety RewardVARIETY_REWARDRewards players experiencing different positions during the match. The low default means fairness and stability take priority over variety.
Relaxed fallback penalties
- Boundary ChangesBOUNDARY_CHANGESPenalty for too many changes at period boundaries. Lower than within-period since period breaks are a natural opportunity for more changes.
- Changes Per ShiftCHANGES_PER_SHIFTPenalty for each substitution above the allowed maximum between two stints. Keeps the number of changes manageable for the coach.
- FairnessFAIRNESSPenalty per shift of fairness deviation in fallback mode. High value means fairness is the last rule to be sacrificed.
- Fairness Extra Slot MismatchFAIRNESS_EXTRA_SLOT_MISMATCHPenalty when extra shift distribution deviates from ideal. Ensures bonus shifts are spread evenly across players.
- Forced GkFORCED_GKPenalty when the coach-specified goalkeeper cannot be honored in fallback mode. Only triggered as a last resort when no valid plan can be found otherwise.
- No RepositionNO_REPOSITIONPenalty for repositioning a player within a period in fallback mode. High value means the optimizer avoids this as long as possible.
Hard constraints
- Enforce Boundary ChangesENFORCE_BOUNDARY_CHANGESApplies the same change cap at period boundaries. Disable for freer rotation between periods.
- Enforce Changes Per ShiftENFORCE_CHANGES_PER_SHIFTLimits the number of slot changes between stints to the configured maximum. Disable if you want to allow more changes per shift.
- Enforce FairnessENFORCE_FAIRNESSWhen enabled, every player is guaranteed base or base+1 shifts. The core of fair playtime — disable with caution.
- Enforce Forced GkENFORCE_FORCED_GKWhen enabled, the coach-specified goalkeeper must be used every period. Only disable if you want the optimizer to choose the goalkeeper freely.
- Enforce No RepositionENFORCE_NO_REPOSITIONPrevents a player changing position at a period boundary without being benched first. Disable to allow direct position shifts between periods.
- Enforce No Reposition Within PeriodENFORCE_NO_REPOSITION_WITHIN_PERIODPrevents a player changing position mid-period without being benched first. Disable to allow direct position switches within a period.