Quodsi Docs

Gather the data

A model needs fewer numbers than you might fear. Find out which ones you need, how to turn your client's data into model inputs, and what to do when the data doesn't exist.

Draw first, then collect

Build a rough model before you chase data. Use your best estimates so it runs. It will show you which numbers you need, and you may learn that a number you were about to spend a week collecting barely moves the result.

What you need

InputAsk the client forWhere it goesView
Arrival ratesTimestamps of arrivals, orders or ticketsGenerator, Basic tab, Inter-arrival DurationBasic
Arrivals that change by hour or seasonVolumes by hour, day or weekModel editor, Arrivals tabAdvanced
Processing timesTime studies, system logs, the shortest, usual and longest time from the people doing the workActivity, Actions tab. Set a random time in the Classic layout, under Processing Time Duration.Basic
Capacity of a stepDesks, rooms, machinesActivity, Basic tab, CapacityBasic
RoutingWhat share of work goes each wayConnector, Routing tab, WeightBasic
Shared people or equipmentHeadcount and which steps they coverModel editor, Resources tabIntermediate
ShiftsRosters and breaksWork schedules, under ResourcesAdvanced
BreakdownsDowntime logsActivity, Failure tabAdvanced
CostsFixed costs, cost per unit, hourly ratesActivity or Resource, Financial tab. Tick Enable financial tracking on an activity first.Basic

You'll only need part of this list. Go back to the model needs you wrote when you framed the problem.

Turn data into model inputs

Arrivals

Quodsi wants the average time between arrivals, not a rate. Divide: 12 arrivals an hour is one every 5 minutes.

When arrivals are independent, as walk-ins and calls usually are, choose Exponential and enter that average as the Mean. If work arrives on a fixed cadence, such as a conveyor or booked slots, Exponential will overstate the randomness. Look at the gaps in your data before you decide.

Measure demand, not completions. A completions log only shows what the process managed to handle, and it hides any peak the process couldn't keep up with.

Processing times

The Actions tab opens in its Recipe layout, where a step reads "Wait for 4 minutes". For a random time, switch to Classic. Pick the form that fits what you have:

You haveUseEnter
One number, and the step truly doesn't varyConstantThe value
Shortest, usual and longestTriangularMinimum, Mode, Maximum
A shortest and longest, with nothing more likely in betweenUniformThe low and high values
A mean and standard deviation from a time studyNormalThe mean and standard deviation

Triangular is often the best friend of a consultant on a deadline. Asking "What's the shortest it ever takes? The usual? The longest?" gets you usable numbers in a five-minute hallway conversation.

A processing time is touch time only. If your cycle time data includes time spent waiting in a queue, you will count the wait twice: once in your number and again when the model creates its own queue. This is one of the most common mistakes, so check where each number came from.

Routing

Connector weights set the share of work taking each path. They don't have to add up to 100, because Quodsi converts them to probabilities. Using counts from your data works fine.

Label every number

Keep a simple input log. For each number, record the value, where it came from and one of these labels:

LabelMeaning
MeasuredFrom your client's own data
SourcedFrom a source you can cite
DerivedCalculated from other numbers. Note how.
AssumedA judgement call. Note whose.
MissingNeeded and not yet known

This log takes minutes to keep, and it protects you. When someone asks, "Where did 12 minutes come from?", you have the answer. It also shows your client how much of the result rests on assumptions.

When the data doesn't exist

To test an uncertain number, make it a what-if. See Test your changes.

Common data traps

What you should have now

Next