ObjectStackObjectStack

Predictive

Predictive protocol schemas

Predictive Analytics Protocol

Defines predictive models and machine learning configurations for

data-driven decision making and forecasting in ObjectStack applications.

Use Cases:

  • Lead scoring and conversion prediction

  • Customer churn prediction

  • Sales forecasting

  • Demand forecasting

  • Anomaly detection in operational data

  • Customer segmentation and clustering

  • Price optimization

  • Recommendation systems

Source: packages/spec/src/ai/predictive.zod.ts

TypeScript Usage

import { EvaluationMetrics, Hyperparameters, ModelDrift, ModelFeature, PredictionRequest, PredictionResult, PredictiveModel, PredictiveModelType, TrainingConfig } from '@objectstack/spec/ai';
import type { EvaluationMetrics, Hyperparameters, ModelDrift, ModelFeature, PredictionRequest, PredictionResult, PredictiveModel, PredictiveModelType, TrainingConfig } from '@objectstack/spec/ai';

// Validate data
const result = EvaluationMetrics.parse(data);

EvaluationMetrics

Properties

PropertyTypeRequiredDescription
accuracynumberoptional
precisionnumberoptional
recallnumberoptional
f1Scorenumberoptional
aucnumberoptionalArea Under ROC Curve
msenumberoptionalMean Squared Error
rmsenumberoptionalRoot Mean Squared Error
maenumberoptionalMean Absolute Error
r2ScorenumberoptionalR-squared score
silhouetteScorenumberoptional
daviesBouldinIndexnumberoptional
mapenumberoptionalMean Absolute Percentage Error
smapenumberoptionalSymmetric MAPE
customRecord<string, number>optional

Hyperparameters

Properties

PropertyTypeRequiredDescription
learningRatenumberoptionalLearning rate for training
epochsintegeroptionalNumber of training epochs
batchSizeintegeroptionalTraining batch size
maxDepthintegeroptionalMaximum tree depth
numTreesintegeroptionalNumber of trees in ensemble
minSamplesSplitintegeroptionalMinimum samples to split node
minSamplesLeafintegeroptionalMinimum samples in leaf node
hiddenLayersinteger[]optionalHidden layer sizes
activationstringoptionalActivation function
dropoutnumberoptionalDropout rate
l1RegularizationnumberoptionalL1 regularization strength
l2RegularizationnumberoptionalL2 regularization strength
numClustersintegeroptionalNumber of clusters (k-means, etc.)
seasonalPeriodintegeroptionalSeasonal period for time series
forecastHorizonintegeroptionalNumber of periods to forecast
customRecord<string, any>optionalAlgorithm-specific parameters

ModelDrift

Properties

PropertyTypeRequiredDescription
modelNamestring
driftTypeEnum<'feature_drift' | 'prediction_drift' | 'performance_drift'>
severityEnum<'low' | 'medium' | 'high' | 'critical'>
detectedAtstringISO timestamp
metricsObject
recommendationstringoptional
autoRetrainTriggeredboolean

ModelFeature

Properties

PropertyTypeRequiredDescription
namestringFeature name (snake_case)
labelstringoptionalHuman-readable label
fieldstringSource field name
objectstringoptionalSource object (if different from target)
dataTypeEnum<'numeric' | 'categorical' | 'text' | 'datetime' | 'boolean'>Feature data type
transformationEnum<'none' | 'normalize' | 'standardize' | 'one_hot_encode' | 'label_encode' | 'log_transform' | 'binning' | 'embedding'>
requiredboolean
defaultValueanyoptional
descriptionstringoptional
importancenumberoptionalFeature importance score (0-1)

PredictionRequest

Properties

PropertyTypeRequiredDescription
modelNamestringModel to use for prediction
recordIdsstring[]optionalSpecific records to predict (if not provided, uses all)
inputDataRecord<string, any>optionalDirect input data (alternative to recordIds)
returnConfidenceboolean
returnExplanationboolean

PredictionResult

Properties

PropertyTypeRequiredDescription
modelNamestring
modelVersionstring
recordIdstringoptional
predictionanyThe predicted value
confidencenumberoptionalConfidence score (0-1)
probabilitiesRecord<string, number>optionalClass probabilities (for classification)
explanationObjectoptional
tokensObjectoptionalToken usage for this prediction (if AI-powered)
costnumberoptionalCost for this prediction in USD
metadataObjectoptional

PredictiveModel

Properties

PropertyTypeRequiredDescription
namestringModel unique identifier (snake_case)
labelstringModel display name
descriptionstringoptional
typeEnum<'classification' | 'regression' | 'clustering' | 'forecasting' | 'anomaly_detection' | 'recommendation' | 'ranking'>
algorithmstringoptionalSpecific algorithm (e.g., "random_forest", "xgboost", "lstm")
objectNamestringTarget object for predictions
targetstringTarget field to predict
targetTypeEnum<'numeric' | 'categorical' | 'binary'>optionalTarget field type
featuresObject[]Input features for the model
hyperparametersObjectoptional
trainingObjectoptional
metricsObjectoptionalEvaluation metrics from last training
deploymentStatusEnum<'draft' | 'training' | 'trained' | 'deployed' | 'deprecated'>
versionstring
predictionFieldstringoptionalField to store predictions
confidenceFieldstringoptionalField to store confidence scores
updateTriggerEnum<'on_create' | 'on_update' | 'manual' | 'scheduled'>
autoRetrainboolean
retrainSchedulestringoptionalCron expression for auto-retraining
retrainThresholdnumberoptionalPerformance threshold to trigger retraining
enableExplainabilitybooleanGenerate feature importance & explanations
enableMonitoringboolean
alertOnDriftbooleanAlert when model drift is detected
activeboolean
ownerstringoptionalUser ID of model owner
permissionsstring[]optionalUser/group IDs with access
tagsstring[]optional
categorystringoptionalModel category (e.g., "sales", "marketing", "operations")
lastTrainedAtstringoptionalISO timestamp
createdAtstringoptionalISO timestamp
updatedAtstringoptionalISO timestamp

PredictiveModelType

Allowed Values

  • classification
  • regression
  • clustering
  • forecasting
  • anomaly_detection
  • recommendation
  • ranking

TrainingConfig

Properties

PropertyTypeRequiredDescription
trainingDataRationumberProportion of data for training
validationDataRationumberProportion for validation
testDataRationumberProportion for testing
dataFilterstringoptionalFormula to filter training data
minRecordsintegerMinimum records required
maxRecordsintegeroptionalMaximum records to use
strategyEnum<'full' | 'incremental' | 'online' | 'transfer_learning'>
crossValidationboolean
foldsintegerCross-validation folds
earlyStoppingEnabledboolean
earlyStoppingPatienceintegerEpochs without improvement before stopping
maxTrainingTimenumberoptionalMaximum training time in seconds
gpuEnabledboolean
randomSeedintegeroptionalRandom seed for reproducibility

On this page