Configuration parameter reference#
This page is the precise parameter manual for the YAML configuration. Tables are generated from the installed Pydantic models, so defaults, constraints, required fields, and nested model links stay aligned with validation. Read Configuration first for trade-offs and recipes.
Minimal configuration#
Use this when learning the lifecycle or checking an installation:
simulation:
seed: 42
start: 2026-01-01T00:00:00Z
duration_days: 1
speed: batch
population:
customers: 10
institutions: 3
accounts: 15
cards: 12
merchants: 3
devices: 12
pix_keys: 8
payments:
daily_target: 100
rails: {CARD: 0.55, PIX: 0.30, ACCOUNT_TRANSFER: 0.15}
$ fraudtwin config validate configs/minimal.yaml
Top-level model#
SimulationRunConfig#
Top-level configuration accepted by the CLI.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
simulation |
yes |
— |
— |
Clock, seed, duration, and execution speed. |
|
population |
yes |
— |
— |
Requested entity population sizes. |
|
payments |
yes |
— |
— |
Payment volume and payment-rail weights. |
|
behavior |
no |
— |
— |
Customer behavior and legitimate payment controls. |
|
card_lifecycle |
no |
— |
— |
Card authorization, settlement, refund, and chargeback timing. |
|
pix_lifecycle |
no |
— |
— |
PIX-like validation, settlement, timeout, and return timing. |
|
fraud |
yes |
— |
— |
Fraud scenario selection and prevalence controls. |
|
fraud_workflow |
no |
— |
— |
Alert, case, dispute, confirmation, and label timing. |
|
labels |
no |
— |
— |
Selection-dependent observed-label and correction behavior. |
|
scale |
no |
— |
— |
Optional deterministic sharding, chunking, and checkpoint controls. |
|
quality |
yes |
— |
— |
Optional deterministic data-quality faults. |
|
outputs |
yes |
— |
— |
Parquet and optional sink output policy. |
|
kafka |
no |
— |
— |
Optional Kafka publication settings. |
|
lakehouse |
no |
— |
— |
Optional Iceberg lakehouse materialization settings. |
|
dataset |
no |
— |
— |
Point-in-time feature, label, and temporal split settings. |
|
backtest |
no |
— |
— |
Rolling backtest windows, regimes, and benchmark settings. |
|
graph |
no |
— |
— |
Fraud-network campaign and graph export settings. |
|
benchmark |
no |
— |
— |
Difficulty and benchmark stress controls. |
|
stress |
no |
— |
— |
Camouflage controls for feature and relation stress. |
|
counterfactual |
no |
— |
— |
Minimum-change counterfactual trajectory settings. |
|
campaign_dynamics |
no |
— |
— |
Optional phase-based campaign evolution settings. |
|
calibration |
no |
— |
— |
Optional reference-derived aggregate calibration settings. |
|
extensions |
no |
— |
— |
Optional installed extension selections. |
SimulationConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
seed |
yes |
integer |
— |
>= 0 |
|
start |
yes |
string |
— |
— |
|
duration_days |
yes |
integer |
— |
> 0 |
|
speed |
no |
string |
batch |
allowed: batch, real_time, accelerated |
PopulationConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
customers |
yes |
integer |
— |
>= 0 |
|
institutions |
yes |
integer |
— |
>= 0 |
|
accounts |
yes |
integer |
— |
>= 0 |
|
cards |
yes |
integer |
— |
>= 0 |
|
merchants |
yes |
integer |
— |
>= 0 |
|
devices |
yes |
integer |
— |
>= 0 |
|
pix_keys |
yes |
integer |
— |
>= 0 |
PaymentsConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
daily_target |
yes |
integer |
— |
>= 0 |
|
rails |
yes |
dict[str, number] |
— |
— |
BehaviorConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
amount_min |
no |
number |
1.0 |
> 0 |
|
amount_max |
no |
number |
5000.0 |
> 0 |
|
active_hours |
no |
list[integer] |
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] |
min items 1 |
|
weekday_weights |
no |
list[number] |
[1.0, 1.0, 1.0, 1.0, 1.0, 0.85, 0.7] |
— |
|
merchant_preference_count |
no |
integer |
3 |
>= 1 |
|
preferred_device_limit |
no |
integer |
3 |
>= 0 |
|
spending_level_weights |
no |
list[object] |
[0.3, 0.5, 0.2] |
min items 3; max items 3 |
|
payday_days |
no |
list[integer] |
[1, 15] |
— |
|
payday_weight |
no |
number |
1.25 |
>= 0 |
|
beginning_of_month_weight |
no |
number |
1.0 |
>= 0 |
|
end_of_month_weight |
no |
number |
1.0 |
>= 0 |
|
holiday_dates |
no |
list[string] |
[] |
— |
|
holiday_weight |
no |
number |
1.0 |
>= 0 |
|
travel_period_months |
no |
list[integer] |
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] |
— |
|
merchant_active_hours |
no |
list[integer] |
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] |
— |
|
state_change_probability |
no |
number |
0.0 |
>= 0; <= 1 |
CardLifecycleConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
authorization_approval_probability |
no |
number |
0.9 |
>= 0; <= 1 |
|
reversal_probability |
no |
number |
0.05 |
>= 0; <= 1 |
|
refund_probability |
no |
number |
0.1 |
>= 0; <= 1 |
|
chargeback_probability |
no |
number |
0.0 |
>= 0; <= 1 |
|
authorization_delay_seconds |
no |
integer |
1 |
>= 0 |
|
capture_delay_seconds |
no |
integer |
5 |
>= 0 |
|
clearing_delay_seconds |
no |
integer |
30 |
>= 0 |
|
settlement_delay_seconds |
no |
integer |
60 |
>= 0 |
|
reversal_delay_seconds |
no |
integer |
10 |
>= 0 |
|
refund_delay_seconds |
no |
integer |
60 |
>= 0 |
|
chargeback_delay_seconds |
no |
integer |
86400 |
>= 0 |
|
chargeback_resolution_delay_seconds |
no |
integer |
86400 |
>= 0 |
PixLifecycleConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
authorization_approval_probability |
no |
number |
0.98 |
>= 0; <= 1 |
|
rejection_probability |
no |
number |
0.02 |
>= 0; <= 1 |
|
timeout_probability |
no |
number |
0.0 |
>= 0; <= 1 |
|
return_probability |
no |
number |
0.05 |
>= 0; <= 1 |
|
validation_delay_seconds |
no |
integer |
1 |
>= 0 |
|
authorization_delay_seconds |
no |
integer |
1 |
>= 0 |
|
submission_delay_seconds |
no |
integer |
1 |
>= 0 |
|
timeout_delay_seconds |
no |
integer |
1 |
>= 0 |
|
settlement_delay_seconds |
no |
integer |
1 |
>= 0 |
|
receipt_delay_seconds |
no |
integer |
1 |
>= 0 |
|
return_request_delay_seconds |
no |
integer |
60 |
>= 0 |
|
return_delay_seconds |
no |
integer |
60 |
>= 0 |
FraudConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
target_rate |
yes |
number |
— |
>= 0; <= 1 |
|
scenario_count |
no |
integer |
5 |
>= 0 |
|
hard_negative_rate |
no |
number |
1.0 |
>= 0; <= 1 |
|
scenarios |
no |
dict[str, FraudScenarioSettings] |
— |
— |
FraudWorkflowConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
true |
— |
|
alert_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
case_open_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
confirmation_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
customer_dispute_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
alert_delay_seconds |
no |
integer |
60 |
>= 0 |
|
case_open_delay_seconds |
no |
integer |
300 |
>= 0 |
|
confirmation_delay_seconds |
no |
integer |
86400 |
>= 0 |
|
customer_dispute_delay_seconds |
no |
integer |
172800 |
>= 0 |
|
label_delay_seconds |
no |
integer |
3600 |
>= 0 |
LabelObservationConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
investigation_rate |
no |
number |
0.7 |
>= 0; <= 1 |
|
missing_fraud_rate |
no |
number |
0.05 |
>= 0; <= 1 |
|
preliminary_error_rate |
no |
number |
0.02 |
>= 0; <= 1 |
|
correction_rate |
no |
number |
0.01 |
>= 0; <= 1 |
|
reopening_rate |
no |
number |
0.0 |
>= 0; <= 1 |
|
confirmation_delay |
no |
— |
— |
||
correction_delay |
no |
— |
— |
||
reopening_delay |
no |
— |
— |
||
conditions |
no |
list[LabelObservationCondition] |
[] |
— |
ScaleConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
profile |
no |
|
— |
— |
|
target_payments |
no |
|
— |
— |
|
shard_count |
no |
integer |
1 |
>= 1 |
|
chunk_size |
no |
integer |
10000 |
>= 1 |
|
worker_count |
no |
integer |
1 |
>= 1 |
|
output_batch_size |
no |
integer |
10000 |
>= 1 |
|
checkpoint_frequency_chunks |
no |
integer |
1 |
>= 1 |
|
partition_mapping |
no |
string |
stable_hash_v1 |
— |
|
features |
no |
list[string] |
[“entities”, “behavior”, “payments”, “lifecycle”, “ledger”, “fraud”, “labels”] |
— |
|
storage_backend |
no |
string |
local |
allowed: local, fsspec |
|
storage_uri |
no |
|
— |
— |
|
state_backend |
no |
string |
duckdb |
— |
|
manifest_version |
no |
string |
M18-scale-1 |
— |
QualityConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
profile |
no |
string |
clean |
allowed: clean, realistic, hostile |
|
duplicate_record_probability |
no |
|
— |
— |
|
duplicate_event_probability |
no |
|
— |
— |
|
missing_optional_probability |
no |
|
— |
— |
|
invalid_value_probability |
no |
|
— |
— |
|
invalid_enum_probability |
no |
|
— |
— |
|
invalid_reference_probability |
no |
|
— |
— |
|
negative_amount_probability |
no |
|
— |
— |
|
corrupted_timestamp_probability |
no |
|
— |
— |
|
timezone_error_probability |
no |
|
— |
— |
|
schema_mismatch_probability |
no |
|
— |
— |
|
extreme_value_probability |
no |
|
— |
— |
|
encoding_error_probability |
no |
|
— |
— |
|
partition_skew_probability |
no |
|
— |
— |
|
late_event_probability |
no |
|
— |
— |
|
out_of_order_probability |
no |
|
— |
— |
|
fraud_spike_probability |
no |
|
— |
— |
|
traffic_spike_probability |
no |
|
— |
— |
|
late_event_delay_seconds |
no |
integer |
3600 |
>= 0 |
|
source_delay_seconds |
no |
integer |
0 |
>= 0 |
|
fraud_spike_multiplier |
no |
integer |
2 |
>= 1 |
|
traffic_spike_multiplier |
no |
integer |
2 |
>= 1 |
|
outages |
no |
list[OutageConfig] |
[] |
— |
|
schema_changes |
no |
list[SchemaChangeConfig] |
[] |
— |
OutputsConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
parquet |
no |
boolean |
false |
— |
|
postgres |
no |
boolean |
false |
— |
|
kafka |
no |
boolean |
false |
— |
|
iceberg |
no |
boolean |
false |
— |
KafkaConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
topic_prefix |
no |
string |
fraudsim |
min length 1; max length 128 |
|
max_events_per_second |
no |
|
— |
— |
|
delivery_timeout_seconds |
no |
number |
120.0 |
> 0 |
|
accelerated_time_multiplier |
no |
number |
100.0 |
>= 1 |
LakehouseConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
catalog_name |
no |
string |
fraudtwin |
— |
|
namespace_prefix |
no |
string |
fraudtwin |
— |
|
include_oracle |
no |
boolean |
false |
— |
|
checkpoint_location |
no |
string |
./runs/iceberg-checkpoints |
— |
PointInTimeDatasetConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
true |
— |
|
start |
no |
|
— |
— |
|
end |
no |
|
— |
— |
|
prediction_delay_seconds |
no |
integer |
0 |
>= 0 |
|
feature_windows |
no |
dict[str, integer] |
— |
— |
|
label_delay_seconds |
no |
|
— |
— |
|
unresolved_labels |
no |
string |
exclude |
allowed: exclude, include |
|
splits |
no |
— |
— |
BacktestConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
train_mode |
no |
string |
expanding |
allowed: fixed, expanding |
|
train_window_seconds |
no |
|
— |
— |
|
validation_window_seconds |
no |
|
— |
— |
|
test_window_seconds |
no |
integer |
2592000 |
— |
|
label_maturity_gap_seconds |
no |
integer |
1209600 |
— |
|
step_seconds |
no |
integer |
2592000 |
— |
|
minimum_label_maturity_policy |
no |
string |
exclude |
allowed: exclude, include_unresolved |
|
regimes |
no |
list[FraudRegimeConfig] |
[] |
— |
GraphConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
schema_version |
no |
string |
2 |
— |
|
enabled |
no |
boolean |
false |
— |
|
scenarios |
no |
list[GraphScenario] |
[] |
— |
|
relationship_window_seconds |
no |
integer |
2592000 |
> 0 |
|
pattern_window_seconds |
no |
integer |
86400 |
> 0 |
|
ring_min_size |
no |
integer |
3 |
>= 3; <= 7 |
|
ring_max_size |
no |
integer |
7 |
>= 3; <= 7 |
|
fan_threshold |
no |
integer |
3 |
>= 2 |
|
shared_threshold |
no |
integer |
2 |
>= 2 |
|
dwell_threshold_seconds |
no |
integer |
3600 |
> 0 |
|
amount_retention_tolerance |
no |
number |
0.2 |
>= 0; < 1 |
|
export_policy |
no |
string |
both |
allowed: observable, oracle, both |
BenchmarkConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
difficulty |
no |
|
— |
— |
|
controls |
no |
— |
— |
||
camouflage |
no |
|
— |
— |
|
feature_camouflage |
no |
|
— |
— |
|
relation_camouflage |
no |
|
— |
— |
|
camouflage_cohort |
no |
— |
— |
||
camouflage_families |
no |
dict[str, CamouflageFamilyConfig] |
— |
— |
StressConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
camouflage |
no |
|
— |
— |
|
feature_camouflage |
no |
|
— |
— |
|
relation_camouflage |
no |
|
— |
— |
|
cohort |
no |
— |
— |
||
families |
no |
dict[str, CamouflageFamilyConfig] |
— |
— |
CounterfactualConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
budget |
no |
number |
4.0 |
>= 0 |
|
distance_function |
no |
string |
weighted_changed_dimensions_v1 |
— |
|
source_strategy |
no |
string |
chronological_first |
allowed: chronological_first, stable_hash |
|
allow_source_reuse |
no |
boolean |
false |
— |
|
include_enabled_objectives |
no |
boolean |
false |
— |
|
dimensions |
no |
dict[str, CounterfactualDimensionConfig] |
— |
— |
|
families |
no |
dict[str, CounterfactualScopeConfig] |
— |
— |
|
scenarios |
no |
dict[str, CounterfactualScopeConfig] |
— |
— |
|
requests |
no |
list[CounterfactualRequestConfig] |
[] |
— |
CampaignDynamicsConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
bindings |
no |
list[CampaignDynamicsBinding] |
[] |
— |
CalibrationConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
profile |
no |
|
— |
— |
|
model_names |
no |
list[string] |
[“builtin”] |
— |
|
summary_names |
no |
list[string] |
[“amount_distribution”, “inter_arrival”, “seasonality”, “merchant_frequency”, “customer_activity”, “feature_dependencies”, “account_balance”, “transaction_count”, “graph_statistics”, “campaign_statistics”] |
— |
|
weights |
no |
dict[str, number] |
— |
— |
|
minimum_scores |
no |
dict[str, number] |
— |
— |
ExtensionsConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
selected |
no |
list[string] |
[] |
— |
LabelDelayConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
distribution |
no |
string |
lognormal |
allowed: fixed, lognormal |
|
median_seconds |
no |
number |
86400.0 |
> 0 |
|
sigma |
no |
number |
0.5 |
>= 0 |
|
minimum_seconds |
no |
number |
0.0 |
>= 0 |
|
maximum_seconds |
no |
|
— |
— |
TemporalSplitConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
train_fraction |
no |
number |
0.7 |
> 0; < 1 |
|
validation_fraction |
no |
number |
0.15 |
> 0; < 1 |
|
test_fraction |
no |
number |
0.15 |
> 0; < 1 |
|
label_delay_gap_seconds |
no |
|
— |
— |
|
train_end |
no |
|
— |
— |
|
validation_end |
no |
|
— |
— |
|
test_end |
no |
|
— |
— |
DifficultyControls
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
fraud_legitimate_overlap |
no |
|
— |
— |
|
behavioral_deviation |
no |
|
— |
— |
|
scenario_subtlety |
no |
|
— |
— |
|
noise_hard_negatives |
no |
|
— |
— |
|
prevalence |
no |
|
— |
— |
|
temporal_irregularity |
no |
|
— |
— |
|
graph_structural_subtlety |
no |
|
— |
— |
CamouflageCohortConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
strategy |
no |
string |
same_rail_and_profile |
allowed: same_rail_and_profile, same_rail, global_legitimate |
|
profile_dimensions |
no |
list[string] |
[“spending_level”, “country”, “merchant_category”, “typical_payment_hour”, “trusted_device”] |
— |
|
minimum_size |
no |
integer |
3 |
>= 1 |
|
fallback |
no |
string |
same_rail |
allowed: same_rail, global_legitimate, reject |
Major sections#
Each section has a stable anchor and can be linked directly from a guide or a configuration review:
Simulation and population#
SimulationConfig#
Clock and execution settings for a simulation.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
seed |
yes |
integer |
— |
>= 0 |
|
start |
yes |
string |
— |
— |
|
duration_days |
yes |
integer |
— |
> 0 |
|
speed |
no |
string |
batch |
allowed: batch, real_time, accelerated |
PopulationConfig#
Requested population sizes.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
customers |
yes |
integer |
— |
>= 0 |
|
institutions |
yes |
integer |
— |
>= 0 |
|
accounts |
yes |
integer |
— |
>= 0 |
|
cards |
yes |
integer |
— |
>= 0 |
|
merchants |
yes |
integer |
— |
>= 0 |
|
devices |
yes |
integer |
— |
>= 0 |
|
pix_keys |
yes |
integer |
— |
>= 0 |
Payments and fraud#
PaymentsConfig#
Payment-volume and rail-mix settings.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
daily_target |
yes |
integer |
— |
>= 0 |
|
rails |
yes |
dict[str, number] |
— |
— |
FraudConfig#
Explicit scenario settings for the first fraud release.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
false |
— |
|
target_rate |
yes |
number |
— |
>= 0; <= 1 |
|
scenario_count |
no |
integer |
5 |
>= 0 |
|
hard_negative_rate |
no |
number |
1.0 |
>= 0; <= 1 |
|
scenarios |
no |
dict[str, FraudScenarioSettings] |
— |
— |
Labels, datasets, and graphs#
FraudWorkflowConfig#
Operational fraud alert, case, dispute, and label timing controls.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
true |
— |
|
alert_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
case_open_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
confirmation_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
customer_dispute_probability |
no |
number |
1.0 |
>= 0; <= 1 |
|
alert_delay_seconds |
no |
integer |
60 |
>= 0 |
|
case_open_delay_seconds |
no |
integer |
300 |
>= 0 |
|
confirmation_delay_seconds |
no |
integer |
86400 |
>= 0 |
|
customer_dispute_delay_seconds |
no |
integer |
172800 |
>= 0 |
|
label_delay_seconds |
no |
integer |
3600 |
>= 0 |
PointInTimeDatasetConfig#
Configuration for the local M9 historical dataset builder.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
enabled |
no |
boolean |
true |
— |
|
start |
no |
|
— |
— |
|
end |
no |
|
— |
— |
|
prediction_delay_seconds |
no |
integer |
0 |
>= 0 |
|
feature_windows |
no |
dict[str, integer] |
— |
— |
|
label_delay_seconds |
no |
|
— |
— |
|
unresolved_labels |
no |
string |
exclude |
allowed: exclude, include |
|
splits |
no |
— |
— |
TemporalSplitConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
train_fraction |
no |
number |
0.7 |
> 0; < 1 |
|
validation_fraction |
no |
number |
0.15 |
> 0; < 1 |
|
test_fraction |
no |
number |
0.15 |
> 0; < 1 |
|
label_delay_gap_seconds |
no |
|
— |
— |
|
train_end |
no |
|
— |
— |
|
validation_end |
no |
|
— |
— |
|
test_end |
no |
|
— |
— |
GraphConfig#
Strict controls for M11 graph construction and export (schema v2).
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
schema_version |
no |
string |
2 |
— |
|
enabled |
no |
boolean |
false |
— |
|
scenarios |
no |
list[GraphScenario] |
[] |
— |
|
relationship_window_seconds |
no |
integer |
2592000 |
> 0 |
|
pattern_window_seconds |
no |
integer |
86400 |
> 0 |
|
ring_min_size |
no |
integer |
3 |
>= 3; <= 7 |
|
ring_max_size |
no |
integer |
7 |
>= 3; <= 7 |
|
fan_threshold |
no |
integer |
3 |
>= 2 |
|
shared_threshold |
no |
integer |
2 |
>= 2 |
|
dwell_threshold_seconds |
no |
integer |
3600 |
> 0 |
|
amount_retention_tolerance |
no |
number |
0.2 |
>= 0; < 1 |
|
export_policy |
no |
string |
both |
allowed: observable, oracle, both |
Scale and benchmarks#
ScaleConfig#
Opt-in deterministic large-run execution controls.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
profile |
no |
|
— |
— |
|
target_payments |
no |
|
— |
— |
|
shard_count |
no |
integer |
1 |
>= 1 |
|
chunk_size |
no |
integer |
10000 |
>= 1 |
|
worker_count |
no |
integer |
1 |
>= 1 |
|
output_batch_size |
no |
integer |
10000 |
>= 1 |
|
checkpoint_frequency_chunks |
no |
integer |
1 |
>= 1 |
|
partition_mapping |
no |
string |
stable_hash_v1 |
— |
|
features |
no |
list[string] |
[“entities”, “behavior”, “payments”, “lifecycle”, “ledger”, “fraud”, “labels”] |
— |
|
storage_backend |
no |
string |
local |
allowed: local, fsspec |
|
storage_uri |
no |
|
— |
— |
|
state_backend |
no |
string |
duckdb |
— |
|
manifest_version |
no |
string |
M18-scale-1 |
— |
BenchmarkConfig#
Opt-in M12 fraud-difficulty controls.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
difficulty |
no |
|
— |
— |
|
controls |
no |
— |
— |
||
camouflage |
no |
|
— |
— |
|
feature_camouflage |
no |
|
— |
— |
|
relation_camouflage |
no |
|
— |
— |
|
camouflage_cohort |
no |
— |
— |
||
camouflage_families |
no |
dict[str, CamouflageFamilyConfig] |
— |
— |
DifficultyControls
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
fraud_legitimate_overlap |
no |
|
— |
— |
|
behavioral_deviation |
no |
|
— |
— |
|
scenario_subtlety |
no |
|
— |
— |
|
noise_hard_negatives |
no |
|
— |
— |
|
prevalence |
no |
|
— |
— |
|
temporal_irregularity |
no |
|
— |
— |
|
graph_structural_subtlety |
no |
|
— |
— |
CamouflageCohortConfig
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
strategy |
no |
string |
same_rail_and_profile |
allowed: same_rail_and_profile, same_rail, global_legitimate |
|
profile_dimensions |
no |
list[string] |
[“spending_level”, “country”, “merchant_category”, “typical_payment_hour”, “trusted_device”] |
— |
|
minimum_size |
no |
integer |
3 |
>= 1 |
|
fallback |
no |
string |
same_rail |
allowed: same_rail, global_legitimate, reject |
Outputs and integrations#
OutputsConfig#
Output sinks enabled for optional integrations.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
parquet |
no |
boolean |
false |
— |
|
postgres |
no |
boolean |
false |
— |
|
kafka |
no |
boolean |
false |
— |
|
iceberg |
no |
boolean |
false |
— |
KafkaConfig#
Delivery controls for the optional native Kafka sink.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
topic_prefix |
no |
string |
fraudsim |
min length 1; max length 128 |
|
max_events_per_second |
no |
|
— |
— |
|
delivery_timeout_seconds |
no |
number |
120.0 |
> 0 |
|
accelerated_time_multiplier |
no |
number |
100.0 |
>= 1 |
LakehouseConfig#
Optional Iceberg lakehouse publication controls. Connection details are deliberately not configuration fields: the catalog, object-store endpoint, and credentials are supplied through the environment by the lakehouse adapter.
Field |
Required |
Type |
Default |
Constraints |
Description |
|---|---|---|---|---|---|
catalog_name |
no |
string |
fraudtwin |
— |
|
namespace_prefix |
no |
string |
fraudtwin |
— |
|
include_oracle |
no |
boolean |
false |
— |
|
checkpoint_location |
no |
string |
./runs/iceberg-checkpoints |
— |
Note
Optional integrations are only validated when their corresponding output is enabled. See Troubleshooting for missing-extra and connection errors.