Objective Schema

This document describes the Objective object schema returned by the globalMOO API.

Structure

{
  "id": 321,                                     // Unique identifier
  "createdAt": "2025-01-31T10:00:00.000Z",      // Creation timestamp
  "updatedAt": "2025-01-31T10:00:00.000Z",      // Last update timestamp
  "disabledAt": null,                           // Optional disable timestamp
  "optimalInverse": {                           // Optional reference to the optimal inverse solution
    "id": 456,
    // ... other inverse properties
  },
  "attemptCount": 10,                           // Number of optimization attempts
  "stopReason": 1,                              // Reason optimization stopped (enum)
  "desiredL1Norm": 0.05,                        // Desired L1 norm for optimization
  "objectives": [1500000, 850000],              // Target objective values
  "objectiveTypes": ["maximize", "minimize"],   // Type of each objective
  "minimumBounds": [1000000, 700000],           // Minimum bounds for each objective
  "maximumBounds": [2000000, 1000000],          // Maximum bounds for each objective
  "inverses": [                                 // Array of inverse optimization steps
    {
      "id": 789,
      // ... other inverse properties
    }
  ]
}

Fields

Field
Type
Description

id

integer

Unique identifier for the objective

createdAt

string (ISO 8601)

Timestamp when the objective was created

updatedAt

string (ISO 8601)

Timestamp when the objective was last updated

disabledAt

string (ISO 8601) or null

Timestamp when the objective was disabled, null if active

optimalInverse

object or null

Reference to the optimal inverse solution, null if not found

attemptCount

integer

Number of optimization attempts made

stopReason

integer

Enum indicating why optimization stopped (0=Running, 1=Satisfied, 2=Stopped, 3=Exhausted)

desiredL1Norm

number

Desired L1 norm for the optimization process

objectives

array of numbers

Target values for each objective

objectiveTypes

array of strings

Type of each objective (exact, percent, value, lessthan, etc.)

minimumBounds

array of numbers

Minimum acceptable values for each objective

maximumBounds

array of numbers

Maximum acceptable values for each objective

inverses

array of Inverse objects

List of inverse optimization steps

Stop Reason Values

Value
Name
Description

0

RUNNING

Optimization is still running or being evaluated

1

SATISFIED

Optimization found a satisfactory input and output

2

STOPPED

Optimization stopped due to duplicate suggested inputs

3

EXHAUSTED

Optimization exhausted all attempts to converge

Objective Types

Type
Description

exact

Objective must be exactly the target value

percent

Objective is specified as a percentage

value

Objective is specified as an absolute value

lessthan

Objective must be less than the target value

lessthan_equal

Objective must be less than or equal to the target value

greaterthan

Objective must be greater than the target value

greaterthan_equal

Objective must be greater than or equal to the target value

minimize

Objective should be minimized

maximize

Objective should be maximized

SDK Representations

JavaScript SDK

In the JavaScript SDK, the Objective object uses snake_case naming for fields, translating from the API's camelCase:

Python SDK

The Python SDK also uses snake_case naming and converts timestamps to datetime objects:

PHP SDK

The PHP SDK maintains camelCase naming to match the API and converts timestamps to DateTimeImmutable objects:

Examples

Optimization in Progress

Completed Optimization

Last updated