decisionTraceEnabled | boolean | Enable forensic decision tracing. |
decisionTraceSampleRate | number (0-1) | Fraction of decisions to trace (e.g., 0.1 = 10%). |
defaultRankingProfileId | string | Default ranking profile for scoring. |
holdoutPercentage | number (0-100) | Global holdout percentage for experimentation. |
enableExperiments | boolean | Enable A/B experiment framework. |
enableBudgets | boolean | Enable offer budget enforcement. |
enableGuardrails | boolean | Module-visibility flag for the guardrails UI. Note: active guardrail rules are enforced on every Recommend request regardless of this flag — enforcement is not gated by enableGuardrails. |
enableJourneys | boolean | Enable journey orchestration module. |
enableContentManagement | boolean | Enable content management module. |
enableBehavioralMetrics | boolean | Enable behavioral metrics tracking. |
maxOffersPerDecision | integer (1-100) | Maximum offers returned per Recommend call. |
defaultChannelTimeout | integer (100-60000) | Default channel delivery timeout in milliseconds. |
retentionDays | integer (1-3650) | Default data retention period in days. |
approvalWorkflowEnabled | boolean | Require approval for production changes. |
requirePublishApproval | boolean | Four-eyes publish gate. When true, POST /api/v1/decision-flows/publish requires a fresh approved ApprovalRequest (entityType=decisionFlow, action=publish) for the flow; one approval = one publish. Stored on the tenant_settings.requirePublishApproval column (not JSONB). Default: false. Surfaced as the “Publish approval (four-eyes)” toggle on the Settings page. |
mfaRequired | boolean | Require multi-factor authentication. |
theme | enum | UI theme: "dark", "light", "system". |
locale | string (max 10) | Locale code (e.g., "en-US"). |
timezone | string (max 50) | IANA timezone (e.g., "America/New_York"). |
nbaEnabled | boolean | Kill switch for NBA engine. When false, Recommend API returns offers sorted by priority only (no flow execution). Default: true. |
modelMaturityThreshold | integer (0-10000) | Minimum interactions before a new offer gets full exposure in scoring. 0 disables the ramp entirely. Default: 100. |
maturityRampColdStartFloor | float (0.0-1.0) | Minimum exposure probability for offers with zero interactions under the maturity ramp. Default: 0.5 (raised from the legacy 0.20 so per-customer A/B comparisons stay reliable — pre-fix two customers comparing the same offer had a 64% chance of one side dropping it; with 0.5 that collision drops to 25%). Set lower for a more aggressive ramp, or 0.0 to fully gate cold-start by the deterministic roll. |
propensityScoreFloor | float (0.0-0.5) | Minimum value any propensity component can take after learning. Prevents starvation: an offer accumulating only negative outcomes can still earn exposure. Default: 0.05. Set to 0 to disable. |
propensitySmoothingWeight | integer (>= 0) | Cold-start blend weight when an offer has some evidence but below the maturity threshold. Higher = stronger pull toward category/global prior. Default: 10. |
interactionHistoryRetentionDays | integer (30-9999) | Retention period for raw interaction history records. Default: 730 (~2 years). |
summaryRetentionDays | integer (30-9999) | Retention period for aggregated interaction summaries. Default: 2555 (~7 years). |
rankingInfluencersEnabled | boolean | When true, past outcomes influence future scoring of related offers by category. Boost clamped to [-0.1, +0.1]; final score clamped to [0, 1]. Default: true. |
flowIrEnabled | boolean | Flow IR opt-in. When true, POST /api/v1/pipelines accepts irVersion="1.0" payloads and the AI Pipeline Mode is unlocked. Stored on the tenant_settings.flowIrEnabled column (not JSONB). Default: false. |
maturityRampMode | enum | Maturity-ramp algorithm: "bayesian_ci" (Bayesian Confidence-Bound) or "legacy_count". |
maturityWidthThreshold | float (0.0-1.0) | Bayesian-CI ramp: confidence-interval width below which an offer is considered mature. |
maturityFloorDecayHalfLife | number (1-1000) | Bayesian-CI ramp: half-life (in interactions) of the cold-start floor decay. |
upliftMethodDefault | enum | Default uplift/CATE method when the /uplift endpoint is called without an explicit ?method=: "t_learner" or "x_learner". |
notificationSigningSecret | string (max 256) | Slack signing secret used to verify the X-Slack-Signature header on POST /api/v1/notifications/interactions. |
teamsActionAuthToken | string (max 256) | Bearer token for Microsoft Teams HttpPOST actions on adaptive cards. |
aiAutopilot | object | Agentic-AI autonomy config (see below). Stored on the tenant_settings.aiAutopilot JSONB column. |
fairnessPolicy | object | Pre-publish fairness hard-gate + continuous drift recheck config (see below). |
reportGuardrails | object | Per-tenant caps for scheduled reports and LLM narration (see below). |
mlWorker | object | ML worker configuration (see below). |