Skip to main content

Categorical Variables

How to define categorical variables with categories and optional properties.

Categorical Variables

Define a choice from a list of named options.

A categorical variable represents a discrete choice — like picking a solvent, a catalyst, or a reactor type. The optimizer selects from the list of categories you define.


Required Settings

Setting

Description

Example

Name

A unique name for the variable

Solvent

Categories

The list of options the optimizer can choose from

Ethanol, Methanol, Acetone

Optional Settings

Setting

Description

Example

Properties

Numerical metadata attached to each category (helps the optimizer understand similarity)

Molecular weight, Boiling point, Cost

Description

Free-text note for collaborators

"Primary reaction solvent"

Batch-constrained

If on, this variable stays the same across all experiments in a batch

Reactor type shared across a plate


Category Properties

Properties attach numerical information to each category. This helps the optimizer understand how similar categories are to each other, leading to better suggestions.

Example: Solvents with properties

Category

Boiling Point (°C)

Polarity Index

Cost ($/L)

Ethanol

78.4

5.2

15

Methanol

64.7

5.1

12

Acetone

56.1

5.1

18

Toluene

110.6

2.4

22

Without properties, the optimizer treats all categories as equally different. With properties, it knows that Ethanol and Methanol are more similar to each other than to Toluene.


Examples

Simple — Solvent selection

  • Name: Solvent

  • Categories: Ethanol, Methanol, Acetone, Toluene, DCM

With properties — Catalyst screening

  • Name: Catalyst

  • Categories: Pd/C, Pt/Al2O3, Ru/C

  • Properties: Molecular weight (g/mol), Loading (wt%), Price ($/g)


Good to Know

  • Category names must be unique within the variable.

  • Adding properties is optional but recommended — it gives the optimizer more information to make better suggestions.

  • Properties are numerical values only. If you need to encode a non-numerical attribute, consider splitting it into separate variables.

  • You can exclude specific categories using Constraints.

Did this answer your question?