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_sizes must have exactly block_count entries
  • Total plots = sum(block_sizes) should match total plots needed (treatment_count Γ— replicates adjusted 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

  1. Assign control treatments to every block
  2. Distribute non-control treatments across blocks to reach the target replication count
  3. Avoid placing the same treatment twice in the same block where possible
  4. Verify connectedness via BFS
  5. If not connected, retry allocation (up to 100 attempts)
  6. Randomly permute treatment order within each block
📄 Static Preview — This is a read-only snapshot of the EDGAR interface hosted on GitHub Pages. Design generation and downloads are not available here. Run the app locally to generate and download experimental designs.
Enter comma-separated names, or leave blank for defaults.
Enter comma-separated true/false values.
Enter comma-separated integers.
Use 0 for a random seed, or set a specific value for reproducibility.