- Home
- Blog
- Visual Scheduling
- How to Build a Routing as a Flow Chart in EDGEBIC
In EDGEBIC by User Solutions, a manufacturing routing is a flow chart you can schedule: each box is an operation at a work center, each arrow is the link to the next step, and the last arrow points at the finished product itself. The diagram is not a picture of the plan. It is the plan. When you press Drive Schedule, the engine walks your arrows in dependency order, computes setup plus hours-per-unit times order quantity for every box, and books that time against real shift capacity on real machines.
This guide builds a complete routing from nothing: a three-step recipe for a product we will call Widget-A, first in the data grid, then as a flow chart on the design canvas. Every number you type here becomes machine time on the Gantt chart, so we will also check the math at the end.
If routings are new territory, start with the concept post on what production scheduling is, then come back. If you want the full tour of the canvas itself, the companion post walks through the graphical designer panel by panel.
What a Bill of Routing Actually Is
EDGEBIC calls the routing a Bill of Routing (BOR): the ordered list of operations required to manufacture one unit of a product. Cut it on the saw. Machine it on the mill. Assemble it at the bench. Each step names a work center, says how long one unit takes there, and points at what comes next.
A routing contains two kinds of rows:
| Row type | What it carries | What the scheduler does with it |
|---|---|---|
| Work center step | Hours per unit, setup time, queue time | Books real machine time inside shift calendars |
| Material step | Component quantity, lead time in days | Assigns it instantly; no capacity consumed |
One product has one standard BOR. Every manufacturing order for that product is scheduled by walking this recipe. That single fact is why routing accuracy matters more than almost any other master data: a wrong number here is a wrong promise to a customer later.
Before You Start: Three Prerequisites
- The product exists. A routing is always attached to one end product.
- The work centers exist. Every production step names the machine or station that does the work.
- Shifts are assigned to those work centers. The scheduler can only place hours inside working shifts. A routing on a machine with no shift calendar schedules nothing.
If you are setting up a fresh system, the greenfield setup walkthrough covers products, work centers, and shifts in order.
Step 1: Create the Routing
Open the BOR tab from the main navigation. Pick your product in the selector at the top. If the product has no routing yet, EDGEBIC offers to create one: give it a descriptive name like Widget-A Standard Routing (not BOR 1; the name is what other planners see), confirm the end product, and click Create BOR.
For long routings there is a shortcut worth knowing: the Advanced BOR Construction expander in the same dialog lets you multi-select machines and components from list boxes, move them across with one click, and preview the generated chain before creating. You rough out a ten-step routing in one pass, then refine.
Step 2: Add the Work Center Steps
Click Add Step on the grid toolbar and pick the machine for each row. For Widget-A we add three steps:
| Sequence | Work center | Hours Required | Setup Time (hrs) | Queue Time (hrs) |
|---|---|---|---|---|
| 10 | Saw-1 | 0.20 | 0.50 | 0 |
| 20 | CNC-Mill-1 | 0.50 | 1.00 | 2.00 |
| 30 | Assembly-1 | 0.30 | 0.50 | 0 |
Three fields do the heavy lifting, and each means something different to the scheduler:
- Hours Required is processing time per one unit, never per batch. The scheduler multiplies by order quantity itself. This is the single most common data entry mistake; a batch total typed here inflates every future order.
- Setup Time is one-time preparation added once per run, regardless of quantity. Keep it out of the per-unit hours or setup will wrongly scale with batch size.
- Queue Time is a buffer after the step ends before the next step may start. It consumes no machine capacity, and it only counts down during working shifts, which matches how a physical queue of parts behaves. Use it for cooling, curing, and inspection waits.
Number sequences in tens (10, 20, 30) so you can insert step 15 later without renumbering everything. And if you think in pieces per hour rather than hours per piece, the fx converter next to the hours cell does the arithmetic: 5 pieces per hour becomes 0.20 hours per piece.
Step 3: Chain the Steps Together
Here is the part that trips up every new user: the sequence number does not control the order of work. Execution follows the Next In Sequence link on each step. The number is a display hint; the link is the flow chart.
On the Saw-1 row, open the Next In Sequence picker and select CNC-Mill-1. On the CNC-Mill-1 row, select Assembly-1. On the last row, Assembly-1, click End Item. That final link points the chain at Widget-A itself, which is how the system knows the routing is finished.
Every step must be reachable on a chain that ends at the end product. A step whose link is missing or points at a deleted step shows a warning marker in the grid; fix the chain before scheduling, or steps will execute in a strange order. An unterminated chain is the most common cause of "my operations scheduled out of sequence."
Step 4: See It as a Flow Chart
Click Designer on the toolbar. The same routing renders as a diagram: each step is a node, each Next In Sequence link is a connector arrow, and the finished product is the terminal node every chain must reach. Grid and Designer are two views of one routing; edit in either and the other shows it.
Building visually works in the other direction too:
- Drag a machine from the Toolbox panel onto the canvas. A node appears where you drop it.
- Toggle Draw Connector on the toolbar, then click the upstream node and drag onto the new one. The arrow you just drew is exactly what the Next In Sequence column holds in the grid.
- Select the node and fill in setup, hours, and queue values in the Properties panel on the right.
- Click Update to save.
Keep the diagram flowing one way, left to right or top to bottom. It reads like the shop floor, and a missing connector becomes obvious at a glance. The Designer validates on save: a step that cannot reach the end product, or an end product with outgoing arrows, is reported as an error. Fix the connectors rather than saving around them.
Components fit the same picture. Drag a product from the Toolbox, connect it into the step that consumes it, and set its quantity per unit. If that component has a routing of its own, it becomes a sub-assembly and gets exploded at schedule time; modeling sub-assemblies on the canvas covers that in depth.
Step 5: Read the Header Totals and Save
Above the grid, three live totals update as you edit. For Widget-A:
- Estimated Hour per unit = 0.20 + 0.50 + 0.30 = 1.00
- Setup Time = 0.50 + 1.00 + 0.50 = 2.00
- Total Cost = work center rates times time, plus material costs
Click Update Standard BOR. If validation finds problems (broken links, missing hours), it lists them and asks whether to save anyway. Prefer no: the validator flags exactly the issues that later become scheduling surprises.
Check the Math: What the Scheduler Does With Your Flow Chart
Now imagine an order for 100 units starting Monday 08:00 on a single 8-hour day shift. The scheduler books:
| Step | Total time | Calculation |
|---|---|---|
| Saw-1 | 20.5 h | 0.50 setup + 0.20 × 100 |
| CNC-Mill-1 | 51.0 h | 1.00 setup + 0.50 × 100 |
| Queue | 2.0 h | shift-hours buffer after milling ends |
| Assembly-1 | 30.5 h | 0.50 setup + 0.30 × 100 |
Sawing runs Monday through Wednesday midday. Milling follows and ends the next Thursday afternoon. The two-hour queue pushes assembly's start to Friday morning, and assembly finishes the following Wednesday: roughly 13 working days end to end. Every one of those hours traces directly back to the nine numbers you typed. That traceability is the whole point of finite capacity scheduling: the plan is arithmetic on your data, not wishful thinking.
What Saving Does (and Does Not) Change
Update Standard BOR writes the routing as the product's standard recipe. New orders and new quote simulations use it immediately. But jobs that are already scheduled do not move: each scheduled job carries its own frozen copy of the routing it was scheduled with, so your edit never silently re-routes work in progress. Shop paperwork stays valid.
That freeze is deliberate, and there are explicit per-job controls for when you do want a live job to adopt a change. The post on editing a live job's routing safely walks through those controls and their blast radius.
Common Mistakes, Quick Fixes
| Symptom | Cause | Fix |
|---|---|---|
| Steps schedule in the wrong order despite correct sequence numbers | Execution follows Next In Sequence, not the number | Repair the chain link by link; end at End Item |
| An operation takes 100x too long on the Gantt | Batch hours entered instead of per-unit hours | Divide by batch size or use the Pieces to Hours converter |
| Timing cells show N/A and cannot be edited | The row is a material step | Enter Quantity and Lead Time instead; hours belong on work center rows |
| Saved a change but the scheduled job did not move | Scheduled jobs keep a frozen routing copy by design | Use the per-job BOR controls to adopt the change deliberately |
Start With Your Real Recipes
User Solutions has been helping manufacturers turn tribal knowledge into schedulable data since 1991, from job shops to the US Navy, GE, BAE Systems, and Cummins. The pattern that works: pick one real product, build its routing as a flow chart, schedule one real order, and compare the Gantt against what the floor actually does. The gaps you find are data fixes, not software problems, and each fix makes every future schedule sharper.
See what EDGEBIC does end to end, or bring one of your routings (spreadsheet is fine; the import masks will read it) and build it live with US in a demo.
Expert Q&A: Deep Dive
Q: Our routings live in spreadsheets today, one row per operation. Do we have to retype everything into the flow chart?
A: No. EDGEBIC imports routings from Excel or CSV through import masks, so a spreadsheet with product, work center, hours per unit, and setup columns loads directly. Once imported, the same routing appears in both the Data Grid and the Designer flow chart; they are two views of one record. Most shops import the bulk, then use the canvas to fix chains and add the structure a flat sheet cannot express, like a component feeding step 3.
Q: If I type 20 hours in the hours field for a batch of 100, what goes wrong?
A: Everything downstream inflates by 100x. Hours Required is time per one unit; the scheduler multiplies it by order quantity itself. A 100-unit order against a step entered as 20 hours plans 2,000 hours of machine time instead of 20. If you know rates as pieces per hour, use the built-in Pieces to Hours converter (enter 5 pieces per hour and it computes 0.20 hours per piece), or type an expression like 1/5 straight into the cell.
Frequently Asked Questions
Ready to Transform Your Production Scheduling?
User Solutions has been helping manufacturers optimize their production schedules for over 35 years. One-time license, 5-day implementation.

User Solutions Team
Manufacturing Software Experts
User Solutions has been developing production planning and scheduling software for manufacturers since 1991. Our team combines 35+ years of manufacturing software expertise with deep industry knowledge to help factories optimize their operations.
Share this article
Related Articles
Staged Changes on the EDGEBIC Planner Board
Nothing on the Planner board is written until you press Save Changes, and a machine-only change writes no actual dates at all. What staging protects, and what saving actually records.
Why EDGEBIC Refuses a Drop on the Planner Board
A refused drop is never silent and never destructive. EDGEBIC keeps the machine, keeps your time shift, and puts the reason on the status line. Here is every refusal and what it means.
Why Planner View Focus Is Never Saved in EDGEBIC
Clicking a bar re-orders the machine block for as long as you are looking at it. It is a way of seeing, not a setting, so it never touches your saved configuration.
