Column-level lineage where an expression can be traced, table-level everywhere else, and the granularity is recorded on the edge so the difference is visible.
Parsing is dialect-aware and version-pinned. An unparsed statement produces an unresolved reference for review rather than a confident wrong edge.
OpenLineage is preferred over log parsing wherever the platform emits it — a declared edge beats an inferred one.
Numbers
Target: column-level coverage on 80% of certified assets by end of year one.
Confidence threshold 0.85; below that the edge is table-level and flagged.
Risks
Dynamic SQL, stored procedures and hand-written extracts are effectively opaque. They surface as unresolved references and need declared lineage.
A single wide fact table can produce a fan-out that makes graph traversal expensive; depth is capped and paginated (view 22).