メインコンテンツまでスキップ

TM シナリオ定義

取引モニタリング(TM)シナリオ定義の現行スキーマ。顧客種別別・リスクティア別の閾値に対応

フィールド値
Schema IDhttps://github.com/ksuk/merlon/schemas/tm_scenario_v2.json
JSON Schema dialecthttps://json-schema.org/draft/2020-12/schema
型object
Required top-level fieldsschema_version, scenario_id, name, type, conditions, severity

プロパティ​

名前型必須説明
schema_versionstringYes
scenario_idstringYes
detectorenumNoExplicit evaluator binding required by schema v2.1; v2.0 files use a deprecated legacy ID binding.
namestringYes
descriptionstringNo
typeenumYes
conditionsobjectYes
parametersobjectNo
risk_tier_adjustmentsobjectNo
evaluation_modeenumNo
severityenumYes
tagsarray of stringNo

scenario_id​

制約値
Pattern^[a-z][a-z0-9_]*$

detector​

制約値
Enum"structuring", "rapid_movement", "high_frequency_small_amount", "dormant_account_reactivation", "high_risk_country_transfer"

type​

制約値
Enum"aggregation"

conditions​

制約値
Additional propertiesforbidden
名前型必須説明
transaction_typearray of stringNo
aggregationobjectNo
thresholdobjectNo
absolute_thresholdnumberNo
additionalobjectNo

conditions.aggregation​

制約値
Additional propertiesforbidden
名前型必須説明
fieldstringNo
functionstringNo
periodstringNo
group_bystringNo

conditions.threshold​

制約値
Additional propertiesforbidden
名前型必須説明
by_customer_typeobjectNo
conditions.threshold.by_customer_type​
名前型必須説明
(any key)object—
conditions.threshold.by_customer_type.*​
制約値
Additional propertiesforbidden
名前型必須説明
by_risk_tierobjectNo
conditions.threshold.by_customer_type.*.by_risk_tier​
制約値
Additional propertiesforbidden
名前型必須説明
LOWnumberNo
MEDIUMnumberNo
HIGHnumberNo

conditions.additional​

制約値
Additional propertiesforbidden
名前型必須説明
min_transactionsnumberNo
min_transaction_countnumberNo
individual_belownumberNo
inbound_thresholdnumberNo
outbound_thresholdnumberNo
outbound_ratio_minnumberNo
window_hoursnumberNo
count_thresholdnumberNo
max_amount_per_txnnumberNo
dormant_daysnumberNo
reactivation_thresholdnumberNo
threshold_amountnumberNo
high_risk_countriesarray of stringNo

evaluation_mode​

制約値
Enum"realtime", "batch", "both"
デフォルト"batch"

severity​

制約値
Enum"LOW", "MEDIUM", "HIGH", "CRITICAL"

完全なスキーマ​

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/ksuk/merlon/schemas/tm_scenario_v2.json",
"title": "TM Scenario Definition v2",
"type": "object",
"required": [
"schema_version",
"scenario_id",
"name",
"type",
"conditions",
"severity"
],
"additionalProperties": false,
"properties": {
"schema_version": {
"type": "string"
},
"scenario_id": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"detector": {
"type": "string",
"enum": [
"structuring",
"rapid_movement",
"high_frequency_small_amount",
"dormant_account_reactivation",
"high_risk_country_transfer"
],
"description": "Explicit evaluator binding required by schema v2.1; v2.0 files use a deprecated legacy ID binding."
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"aggregation"
]
},
"conditions": {
"type": "object",
"additionalProperties": false,
"properties": {
"transaction_type": {
"type": "array",
"items": {
"type": "string"
}
},
"aggregation": {
"type": "object",
"additionalProperties": false,
"properties": {
"field": {
"type": "string"
},
"function": {
"type": "string"
},
"period": {
"type": "string"
},
"group_by": {
"type": "string"
}
}
},
"threshold": {
"type": "object",
"additionalProperties": false,
"properties": {
"by_customer_type": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": false,
"properties": {
"by_risk_tier": {
"type": "object",
"additionalProperties": false,
"properties": {
"LOW": {
"type": "number"
},
"MEDIUM": {
"type": "number"
},
"HIGH": {
"type": "number"
}
}
}
}
}
}
}
},
"absolute_threshold": {
"type": "number"
},
"additional": {
"type": "object",
"additionalProperties": false,
"properties": {
"min_transactions": {
"type": "number"
},
"min_transaction_count": {
"type": "number"
},
"individual_below": {
"type": "number"
},
"inbound_threshold": {
"type": "number"
},
"outbound_threshold": {
"type": "number"
},
"outbound_ratio_min": {
"type": "number"
},
"window_hours": {
"type": "number"
},
"count_threshold": {
"type": "number"
},
"max_amount_per_txn": {
"type": "number"
},
"dormant_days": {
"type": "number"
},
"reactivation_threshold": {
"type": "number"
},
"threshold_amount": {
"type": "number"
},
"high_risk_countries": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"parameters": {
"type": "object"
},
"risk_tier_adjustments": {
"type": "object"
},
"evaluation_mode": {
"type": "string",
"enum": [
"realtime",
"batch",
"both"
],
"default": "batch"
},
"severity": {
"type": "string",
"enum": [
"LOW",
"MEDIUM",
"HIGH",
"CRITICAL"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}