4 · Identify

For Both Executive and Technical Readers

The gate. No certificate, no answer.

Identifiability is a binary check. Either the estimand can be computed from data, or it cannot.

Step 4 runs the identification algorithm against the routed model(s) and the formal estimand. It tries back-door adjustment first, then front-door, then full do-calculus. If any criterion applies, an IdentificationCertificate is issued. If none apply, the step returns partial bounds or a structured refusal.

This is the hinge of auditability. An answer that cannot show its certificate does not ship.

A formal estimand in. A certificate or a refusal out.

IN Formal estimand from Step 2
IN Routed model(s) from Step 3
OUT IdentificationCertificate or RefusalObject

Identification Certificate sepsis_model · worked example
EstimandP(Sepsis | do(Treatment=empirical), Lactate=gt_4)
CriterionBack-door
Adjustment setAge, Comorbidity
IdentifiedYes

Three criteria, tried in order. First to apply wins.

Back-door adjustment: blocks all back-door paths from intervention to outcome. Most common for Rung 2 queries.

Front-door adjustment: when unmeasured confounders exist but a measured mediator does. Less common.

do-calculus (ID algorithm): the general case. If this fails, the estimand is provably non-identifiable.

Certificate issued → proceed. Certificate refused → stop.

result = identify(estimand, model)

if result.identified:
  return IdentificationCertificate(result)
elif result.partial_bounds:
  return BoundsResult(result.lower, result.upper)
else:
  return RefusalObject(reason=result.failure_reason)

Inference owns the identification theory. Pipeline owns the gate.

Pipeline →, Identify is Step 4 and the primary refusal gate.
Inference →, defines the identification theory underlying the gate.