# Field-Level Quality Scoring

Source: https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/field-level-scoring/

*Requires the Data Observability (DO) module.*

*Requires the Data Quality (DQ) module.*

With DQ enabled, scores use all eight dimensions. Without DQ, only timeliness and volumetrics contribute, and the other six dimensions have zero effective weight. Saved weights are preserved for when DQ is enabled again. Calculating quality scores requires DO. Stored scores reflect completed calculations.

Each field receives individual scores for the quality dimensions, each evaluated on a 0-100 scale. Field scores are the building blocks of the [container score](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/container-level-scoring/), which aggregates them. For an overview of the eight dimensions and how the levels fit together, see [How Datastore Quality Scores Work](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/how-it-works/).

## How Completeness, Precision, and Accuracy Differ

These three dimensions are easy to confuse, because all of them look at field values. Each one answers a different question:

| Dimension | Focus | Example Question It Answers |
| --- | --- | --- |
| **Completeness** | Are values present? | What % of rows in `phone_number` are non-null? |
| **Precision** | Are values within the expected level of detail or granularity? | Are all `age` values between 0–120? Do decimals have required 2-digit precision? |
| **Accuracy** | Are values correct compared to real-world truth or integrity checks? | Is the relationship between `square_footage` and `price` maintained? |

## Completeness Dimension

The **Completeness** score measures the average percentage of non-null values in a field over the measurement period.

**How Completeness is Calculated**

- **Scale**: 0 to 100, representing the average completeness percentage
- **Measurement period**: Defined by the configured [decay period](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/score-settings/#decay-period) (default 180 days)
- **Formula**: Average of `(non-null values / total records) × 100` across all measurements in the period
- **Example**: If a "phone_number" field averages 90% completeness over the measurement period, its completeness score would be 90

## Coverage Dimension

The **Coverage** score measures how many distinct quality checks have been applied to a field. It is designed to reward the first few checks heavily, then taper off as more checks are added, following a curve of diminishing returns.

**How Coverage is Calculated**

- **Scale**: The score ranges continuously from 0 to 100
- **Anchor points**:
  - **0 checks** → score of **0**
  - **1 check** → score of approximately **60**
- **Diminishing returns**: Each additional check contributes less than the previous one. As the number of checks grows, the score approaches 100 but never exceeds it

Mathematically, the scoring curve follows an exponential growth model:

```text
score(n) = 100 × (1 - e^(-k × n))
```

where n is the number of checks and k is tuned so that 1 check = 60.

The first few checks have the greatest impact, and additional checks contribute progressively less:

| Checks | Approximate Score |
| --- | --- |
| 0 | 0 |
| 1 | ~60 |
| 2 | ~84 |
| 3 | ~94 |
| 4+ | ~97–100 |

**Why This Model?**

- **Strong early reward**: The first check dramatically increases confidence in field coverage
- **Fair balance**: More checks always improve the score, but the improvement diminishes as coverage becomes robust, preventing runaway inflation
- **Practical takeaway**: The first check has the biggest impact. 3 checks per field gets you to ~94%

> **Note: Field vs. Container Coverage**
>
> At the **field level**, Coverage reflects the **number of distinct quality checks** defined for that field.
> At the **container level**, Coverage is an **aggregate of field-level coverage scores**, further adjusted by **how often each active check is asserted** (checks asserted by frequent, recent scans → greater confidence). See [Additional Container-Level Factors](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/container-level-scoring/#additional-container-level-factors).

## Conformity Dimension

The **Conformity** score measures how well the data adheres to specified formats, patterns, and business rules.

**How Conformity is Calculated**

- **Scale**: 0 to 100 based on the ratio of conforming values
- **Formula**: `(1 - (rows with anomalous values as specified by conformity checks / min(scanned rows, container rows))) × 100`
- **Denominator**: Uses the smaller of scanned row count or container row count to prevent score inflation
- **Applicable rule types**: Pattern matching, length constraints, type validation, schema expectations, and format-specific validations
  *See [Conformity Rule Types](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/rule-types-by-dimension/#conformity-rule-types) for the full Conformity rule type list.*

**Examples**

- Email field where 95% of scanned/total rows match valid email pattern → **Score ~95**
- Date field with consistent YYYY-MM-DD format → **Score ~100**
- Phone field with mixed formats and invalid entries → **Score ~60**

## Consistency Dimension

The **Consistency** score measures how stable a field's values remain over time compared to their expected statistical profile. This highlights fields that are "drifting" (changing shape, format, or density).

**How Consistency is Calculated**

1. **Check for type changes**

   - If a field flips between types (e.g., sometimes a number, sometimes a string), score is set to **0**
2. **Collect summary statistics** per field type:

   - **Numeric fields**: median and interquartile range (IQR)
   - **String fields**: distinct count, min/max length, Shannon entropy
   - **Datetime fields**: earliest timestamp, distinct timestamp count
3. **Measure stability**

   - Track variation of each statistic across the analysis window
   - Normalize changes for fair comparison across different scales
4. **Apply thresholds and weights**

   - Each change type has an expected tolerance (e.g., ±10% for numeric medians)
   - Variations within tolerance incur little/no penalty
   - Larger variations reduce the score proportionally
5. **Combine into final score**

   - **100**: Field stayed fully consistent
   - **60-90**: Mild to moderate changes worth monitoring
   - **Below 60**: Meaningful shift requiring investigation
   - **0**: Type change detected

> **Important: Consistency vs. Accuracy**
>
> **Consistency** checks whether a field's **statistical shape and distribution remain stable over time** (e.g., numeric medians, string entropy).
>
> **Accuracy**, by contrast, evaluates whether values are **correct and aligned to real-world truths or integrity rules**.
>
> Together, they capture different aspects of trustworthiness.
>
> **Examples**
>
> - Numeric "Price" field with stable median and IQR → **Score ~100**
> - String "Country" field where distinct values double unexpectedly → **Score ~75**
> - Datetime field with sudden two-year backfill → **Score ~60**
> - ID field alternating between numeric and string types → **Score = 0**

## Precision Dimension

The **Precision** score evaluates the resolution and granularity of field values against defined quality checks.

**How Precision is Calculated**

- **Scale**: 0 to 100 based on the ratio of values meeting precision requirements
- **Formula**: `(1 - (rows with anomalous values as specified by precision checks / min(scanned rows, container rows))) × 100`
- **Denominator**: Uses the smaller of scanned row count or container row count to prevent score inflation
- **Applicable rule types**: Range validations, comparisons, mathematical constraints, and temporal boundaries
  *See [Precision Rule Types](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/rule-types-by-dimension/#precision-rule-types) for the full Precision rule type list.*

**Examples**

- Decimal field maintaining required 2-digit precision → **Score ~100**
- Timestamp field with appropriate granularity (no future dates) → **Score ~95**
- Age field with values outside valid range (0-120) → **Score ~85**

## Accuracy Dimension

The **Accuracy** score determines the fidelity of field values to their real-world counterparts or expected values.

**How Accuracy is Calculated**

- **Scale**: 0 to 100 based on the overall anomaly rate across every rule type except the Volumetrics and Timeliness ones
- **Formula**: `(1 - (rows with anomalous values as specified by accuracy checks / min(scanned rows, container rows))) × 100`
- **Denominator**: Uses the smaller of scanned row count or container row count to prevent score inflation
- **Comprehensive**: Considers anomalies from all of those rule types, including the ones that also feed Conformity and Precision
  *See [Accuracy Rule Types](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/rule-types-by-dimension/#accuracy-rule-types) for details.*
- **Represents**: Overall correctness and trustworthiness of the field data

**Interpretation**

- **95-100**: Highly accurate data suitable for critical decisions
- **80-94**: Generally reliable with some known issues
- **60-79**: Moderate accuracy requiring validation for important uses
- **Below 60**: Significant accuracy concerns requiring remediation

## Timeliness & Volumetrics Dimensions

Both the **Timeliness** and **Volumetrics** dimensions are measured at the container level, as described in [Timeliness Dimension](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/container-level-scoring/#timeliness-dimension) and [Volumetrics Dimension](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/container-level-scoring/#volumetrics-dimension). Field-level scores are inherited from their container-level scores.

---

## See Also

- **Score Settings**

  Learn how datastore settings flow to containers, and how the decay period, dimension weights, and tag weight modifiers change the score.

  [Score Settings](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/score-settings/)
- **Interpreting Scores**

  See where scores appear, how they support decisions, and how to read them as a measure of fitness for purpose.

  [Interpreting Scores](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/interpretation/interpreting-scores/)
- **AI Explanations**

  Learn how the AgentQ-powered summary, per-dimension explanations, and Recommendations section render on the Quality Score panel.

  [AI Explanations](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/interpretation/ai-explanations/)
- **Examples**

  Walk through real scenarios: a container held down by two dimensions, a datastore score lower than expected, weighting critical tables, and a settings override.

  [Examples](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/examples/)
- **Best Practices**

  Keep scores meaningful: what to profile and scan, how many checks to add, when to change settings, and how to read the trend.

  [Best Practices](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/best-practices/)
- **Troubleshooting**

  Resolve missing scores, unexpectedly low values, settings and tag changes that do not apply, and missing AI explanations.

  [Troubleshooting](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/troubleshooting/)
- **Permissions**

  See which roles can view quality scores and edit scoring settings.

  [Permissions](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/permissions/)
- **How It Works**

  Learn what the quality score is, the key concepts behind it, the levels it is calculated at, the 8 dimensions it combines, and what triggers a recalculation.

  [How It Works](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/how-it-works/)
- **Rule Types by Dimension**

  Look up which rule types feed the Conformity, Precision, Accuracy, Volumetrics, and Timeliness dimensions, with a link to each one.

  [Rule Types by Dimension](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/rule-types-by-dimension/)
- **Datastore-Level Scoring**

  See how container scores roll up into the datastore score, how tags change each container's weight, and how daily history is built.

  [Datastore-Level Scoring](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/datastore-level-scoring/)
- **Container-Level Scoring**

  Learn which containers get a score, how the 70-point baseline model combines the 8 dimensions, and how timeliness and volumetrics are measured.

  [Container-Level Scoring](https://userguide.qualytics.io/source-datastore/data-quality-score/deep-dive/calculation/container-level-scoring/)

*Last updated: November 9, 2026.*
