Salon appointment waitlist matching calculator

Calculate waitlist [client,slot,earliest compatible start] and unmatched clients with your own figures.

Your numbers

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

Use waitlist [client,slot,earliest compatible start] and unmatched clients to compare changes to your inputs. The method and limits below explain the scope.

Examples

Examples

Try the starting example

Clients [service minutes,service code,[[available start,end],...]]; enter JSON
[[30,"CUT",[[0,90]]],[45,"COLOR",[[30,120]]]]
Cancelled slots [start minute,end minute,allowed service-code array]; enter JSON
[[10,50,["CUT"]],[60,120,["CUT","COLOR"]]]
Waitlist [client,slot,earliest compatible start] (JSON)
[[1,1,10],[2,2,60]]
Unmatched clients (count)
0

Try another scenario

Clients [service minutes,service code,[[available start,end],...]]; enter JSON
[[35,"CUT",[[20,80]]],[50,"COLOR",[[0,80]]],[20,"CUT",[[60,120]]]]
Cancelled slots [start minute,end minute,allowed service-code array]; enter JSON
[[20,60,["CUT"]],[65,100,["CUT"]]]
Waitlist [client,slot,earliest compatible start] (JSON)
[[1,1,20],[2,null,null],[3,2,65]]
Unmatched clients (count)
1
Calculation method

Calculation method

Waitlist [client,slot,earliest compatible start] (JSON)

Build edge if service allowed and intersection of slot/client window fits full duration; maximum bipartite matching; start earliest fitting intersection.

Unmatched clients (count)

Count requests without an available compatible slot.

Symbols and units
a
Clients [service minutes,service code,[[available start,end],...]]; enter JSON
b
Cancelled slots [start minute,end minute,allowed service-code array]; enter JSON

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

  • One waitlist client per cancelled slot, supplied service compatibility and client time windows only; maximum number matched. 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. Positive durations; all windows start<end; <=50 clients/slots; no client priority or simultaneous-slot staffing optimization.
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.