Skip to main content

Simulation diagnostics Private Preview

When a simulation run fails on a question, CES surfaces a diagnostic that describes what went wrong and, where applicable, proposes a context-fix action you can apply in one click. This page is a complete reference for diagnostic types, fix actions, and how they map to each other.

Diagnostic types and fixes

Each failing question produces one of the following diagnostic types. Where CES can propose a structured fix, the fix action is listed. Apply it after confirming it matches your intent.

DiagnosticWhat it meansHow to fixFix action
Wrong joinThe engine used a join path that produces incorrect resultsOpen the YAML editor and specify the correct join with cardinality (ONE_TO_MANY, MANY_TO_ONE, ONE_TO_ONE, or MANY_TO_MANY)Manual edit
Missing metricA metric the question requires isn't defined in the modelApply the add_metric suggestion after confirming the formula matches your business definitionadd_metric
Ambiguous termA term maps to more than one asset or columnNarrow the description to specify which mapping applies. On Snowflake, prefer a tighter description over synonyms. On Databricks, adding synonyms on the canonical asset is also effectiveManual edit
Incorrect filterThe wrong time window, segment, or exclusion rule was appliedApply the add_filter suggestion or edit the filter expression directly in the YAMLadd_filter or manual edit
Out-of-scope questionNo asset in the repository covers the questionAdd the missing asset to the repository, or mark the question as out of scope in the question setManual edit
Grounding failureThe engine arrived at a correct-looking answer through the wrong asset pathAdd an explicit relationship or flag the preferred asset more clearly in the YAML descriptionManual edit

Fix actions

Fix actions are structured changes CES proposes when it can infer the correct update from the failing question. They don't modify the model without your approval.

ActionDescriptionApplied automatically
add_metricAdds a missing aggregate measure with the correct formula inferred from the question and your catalogYes, on approval
add_filterAdds an explicit default filter (time window, segment, or exclusion rule) inferred from the failing questionYes, on approval
note_missing_relationshipFlags that a join between tables appears to be needed based on the question's asset pathNo, informational only

note_missing_relationship is informational by design. Adding the wrong join silently produces incorrect data, so relationship changes always stay in your hands. Review the suggestion, decide on the correct join cardinality, and add it explicitly in the YAML editor.

Engine notes

Snowflake Cortex Analyst

  • The simulation judge runs inside your Snowflake account via SNOWFLAKE.CORTEX.COMPLETE(). Result data never leaves Snowflake for judging.
  • Simulations run in parallel. Expect faster wall-clock times than Databricks for the same question set.

Databricks Genie

  • The simulation judge runs through Atlan AI, which receives the natural-language question and both SQL statements (generated and verified) for semantic-equivalence judging. No warehouse row data is sent.
  • Simulations run sequentially due to Genie API rate limits (5 queries per minute per workspace by default). Contact your Databricks account team to raise this quota.

See also