Variable Block Sizes Design
A randomised block design where blocks can have different sizes. Control treatments appear in every block. The allocation algorithm ensures the design is connected (analysable).
Design Reference β what this design is, parameters explained, output guide
Variable Block Sizes Design
An incomplete block design where blocks can have different numbers of plots. Control treatments appear in every block; non-control treatments are distributed across blocks to meet a target replication count. The design is checked for connectedness to ensure it is statistically analysable.
Use when: Physical or logistical constraints mean that not all blocks can hold the same number of plots, or when a control treatment must appear in every block (e.g. a standard reference variety).
Parameters
| Parameter | Type | Default | Min | Max | Description |
|---|---|---|---|---|---|
experiment_name |
text | "" |
β | β | Name of the experiment |
treatment_factor |
text | "Variety" |
β | β | Label for the treatment factor |
treatment_count |
integer | 2 |
2 | 500 | Total number of treatments (including controls) |
replicates |
integer | 2 |
2 | 100 | Target number of replicates per non-control treatment |
block_factor |
text | "Block" |
β | β | Label for the blocking factor |
block_count |
integer | 2 |
1 | 100 | Number of blocks |
unit_label |
text | "Plot" |
β | β | Label for each experimental unit |
treatment_names |
list | None |
β | β | Optional custom treatment names |
control_flags |
list of true/false | None |
β | β | Whether each treatment is a control β one value per treatment (e.g. true,false,false) |
block_sizes |
list of integers | None |
β | β | Number of plots in each block β one value per block |
seed |
integer | 0 |
β | β | Random seed |
Constraints
block_sizesmust have exactlyblock_countentries- Total plots =
sum(block_sizes)should match total plots needed (treatment_count Γ replicatesadjusted for controls) - Each block must be large enough to accommodate all control treatments
- The design must be connected β every pair of treatments must share at least one block (directly or indirectly via other treatments)
- Total units must not exceed 5,000
Output
List View
| Column | Description |
|---|---|
| Unit | Sequential unit number |
| block_factor | Which block this unit belongs to |
| unit_label | Plot number within the block |
| treatment_factor | Treatment allocated to this plot |
Layout View
A grid with variable-height columns: - Rows = plots within a block - Columns = blocks (heights differ when block sizes differ)
Total units: sum(block_sizes)
Warnings
The output may include warnings about: - Plot count mismatches between available and required plots - Connectedness failures (rare β the algorithm retries up to 100 times)
What is Connectedness?
A design is connected if every treatment can be compared (directly or indirectly) with every other treatment within the block structure. A disconnected design cannot support valid treatment comparisons in statistical analysis.
EDGAR checks connectedness using a breadth-first search on the treatmentβblock bipartite graph.
Algorithm
- Assign control treatments to every block
- Distribute non-control treatments across blocks to reach the target replication count
- Avoid placing the same treatment twice in the same block where possible
- Verify connectedness via BFS
- If not connected, retry allocation (up to 100 attempts)
- Randomly permute treatment order within each block