Model railway block occupancy plan calculator

Calculate length-conflict row numbers and separation-conflict row pairs with your own figures.

Your numbers

Use the units shown. Results update as you change valid inputs.

Use length-conflict row numbers and separation-conflict row pairs to compare changes to your inputs. The method and limits below explain the scope.

Examples

Examples

Try the starting example

Blocks [identifier,usable length mm]; enter JSON
[["A",1000],["B",800]]
Occupancies [block,start minute,end minute,train length mm]; enter JSON
[["A",0,10,800],["A",9,15,700],["B",0,8,900]]
Required temporal separation (minutes)
1
Length-conflict row numbers (JSON)
[3]
Separation-conflict row pairs (JSON)
[[1,2]]

Try another scenario

Blocks [identifier,usable length mm]; enter JSON
[["A",900],["B",1000]]
Occupancies [block,start minute,end minute,train length mm]; enter JSON
[["A",0,5,800],["A",7,12,700],["B",0,8,900]]
Required temporal separation (minutes)
1
Length-conflict row numbers (JSON)
[]
Separation-conflict row pairs (JSON)
[]
Calculation method

Calculation method

Length-conflict row numbers (JSON)

Flag train length>matching block usable length.

Separation-conflict row pairs (JSON)

Same-block pair conflicts unless end_i+separation<=start_j or vice versa.

Symbols and units
a
Blocks [identifier,usable length mm]; enter JSON
b
Occupancies [block,start minute,end minute,train length mm]; enter JSON
c
Required temporal separation (minutes)

Use the units shown. A list keeps the order in which you enter its values. The symbol ^ means “raised to the power of”.

Assumptions & limits

Assumptions & limits

  • Fixed train occupancy intervals on individually named blocks; checks supplied length and separation only. Supported limits: All numeric inputs and computed intermediates must remain finite. Supported numeric input magnitude is zero or 1e-12 through 1e12 in absolute value; reject values outside this bounded range. All lists/JSON record tables are limited to 100 records unless a stricter bound is stated; reject malformed record arity and wrong member types. Unique block ids; occupancy ids exist; start<end; lengths>0; separation>=0.
Are these inputs private?

These calculations run in your browser. A shared link contains the values you choose to share. Only questions submitted to the separate AI finder are sent to OpenAI.

Share this page
Share this calculator

Leave unchecked to share the page without your entered values.