Statistics required-field matrix
Generated from spec/statistics_matrix.py — do not edit by hand. Run just docs to regenerate. SPEC 2.2.3 is the normative table this page mirrors; this page exists so a third-party producer can diff its own emission logic against something checked cell for cell, rather than reconstructing the matrix from prose that can silently move underneath it.
Every classification but unsupported requires eight base fields, listed once here rather than in every row: sql_type, nullable, null_count, null_rate, cardinality, cardinality_ratio, cardinality_method, classification. unsupported requires only the first four — cardinality, cardinality_ratio and cardinality_method are FORBIDDEN on it instead of required, so its row lists its actual required set in full rather than a diff against the base. rows_scanned appears in neither column below — it is conditioned on the file's own scope block, not on a classification.
A field absent from both columns for a classification is a footnoted case: SPEC 2.2.3's own footnotes (marked with a symbol) subtract a required field or add an exception under a stated condition (an all-null column, redaction, a sql_type without day granularity). This page carries only the unconditional rows; read the footnote text in SPEC for the conditional ones.
| Classification | Required beyond the base 8 | Forbidden |
|---|---|---|
boolean | values, values_coverage | dimension, distribution, empty_count, extent, frequencies, freshness, geometry, length, mean, negative_count, non_finite_count, norm, normalized_cardinality, occurrences, parts, parts_found, percentiles, quantized_count, range, size, sum, types, unrepresentable, zero_count |
json | - | dimension, distribution, empty_count, extent, frequencies, freshness, geometry, length, mean, negative_count, non_finite_count, norm, normalized_cardinality, occurrences, percentiles, quantized_count, range, redacted, sketch, sum, unrepresentable, values, values_coverage, values_coverage_method, zero_count |
composite | classification, null_count, null_rate, nullable, parts, parts_found, sql_type (fewer than the base 8) | dimension, distribution, extent, frequencies, freshness, geometry, length, mean, negative_count, non_finite_count, normalized_cardinality, occurrences, percentiles, quantized_count, range, redacted, sketch, sum, types, unrepresentable, values, values_coverage, values_coverage_method |
spatial | classification, extent, geometry, null_count, null_rate, nullable, sql_type (fewer than the base 8) | cardinality, cardinality_method, cardinality_ratio, dimension, distribution, empty_count, frequencies, freshness, length, mean, negative_count, non_finite_count, norm, normalized_cardinality, occurrences, parts, parts_found, percentiles, quantized_count, range, size, sketch, sum, types, unrepresentable, values, values_coverage, values_coverage_method, zero_count |
vector | classification, dimension, norm, null_count, null_rate, nullable, sql_type, zero_count (fewer than the base 8) | cardinality, cardinality_method, cardinality_ratio, distribution, empty_count, extent, frequencies, freshness, geometry, length, mean, negative_count, non_finite_count, normalized_cardinality, occurrences, parts, parts_found, percentiles, quantized_count, range, redacted, size, sketch, sum, types, unrepresentable, values, values_coverage, values_coverage_method |
foreign_key_candidate | distribution, length, values, values_coverage | dimension, empty_count, extent, frequencies, freshness, geometry, mean, negative_count, non_finite_count, norm, occurrences, parts, parts_found, percentiles, quantized_count, range, size, sum, types, unrepresentable, zero_count |
categorical | distribution, length, values, values_coverage | dimension, empty_count, extent, frequencies, freshness, geometry, mean, negative_count, non_finite_count, norm, occurrences, parts, parts_found, percentiles, quantized_count, range, size, sum, types, unrepresentable, zero_count |
temporal | distribution, frequencies, freshness, percentiles, quantized_count, range, values | dimension, empty_count, extent, geometry, length, mean, negative_count, non_finite_count, norm, normalized_cardinality, occurrences, parts, parts_found, size, sum, types, values_coverage, values_coverage_method, zero_count |
numeric | distribution, frequencies, mean, negative_count, percentiles, quantized_count, range, sum, values, zero_count | dimension, empty_count, extent, freshness, geometry, length, norm, normalized_cardinality, occurrences, parts, parts_found, size, types, unrepresentable, values_coverage, values_coverage_method |
binary | empty_count, length | dimension, distribution, extent, frequencies, freshness, geometry, mean, negative_count, non_finite_count, norm, normalized_cardinality, occurrences, parts, parts_found, percentiles, quantized_count, range, size, sum, types, unrepresentable, values, values_coverage, values_coverage_method, zero_count |
text | distribution, empty_count, length, values, values_coverage | dimension, extent, frequencies, freshness, geometry, mean, negative_count, non_finite_count, norm, occurrences, parts, parts_found, percentiles, quantized_count, range, size, sum, types, unrepresentable, zero_count |
unsupported | classification, null_count, null_rate, nullable, sql_type (fewer than the base 8) | cardinality, cardinality_method, cardinality_ratio, dimension, distribution, empty_count, extent, frequencies, freshness, geometry, inferred, length, mean, negative_count, non_finite_count, norm, normalized_cardinality, occurrences, parts, parts_found, percentiles, quantized_count, range, redacted, size, sketch, sum, types, unrepresentable, values, values_coverage, values_coverage_method, zero_count |