Skip to main content

Open Data Governance Standard (ODGS) — Maturity Assessment

Diagnostic scoring and improvement charters for any ODGS workspace.

Protocol Python ISO Alignment License


For data engineers: See Quick Start below. For governance leads: This tool measures how well your governance workspace is configured — not just whether files exist. For platform operators: The JSON output (--json) integrates directly with your governance dashboarding or CI/CD pipeline.



The Problem

odgs conformance answers: "Do the required files exist?" — always 100% for a valid install.

That tells you nothing about readiness.

A fresh ODGS workspace ships with 50 generic rules, 14 context bindings, and 60+ data quality dimensions — but zero bridges connected, no regulation packs installed, all owners set to TBD, and no workspace identity configured. Your governance engine is structurally complete but operationally inert.

odgs-maturity answers the real question: "How production-ready is this governance deployment?"


Quick Start

pip install odgs-maturity

Score Your Workspace

# Auto-detect workspace in current directory
odgs-maturity score

# Point at a specific workspace
odgs-maturity score --workspace /path/to/odgs-project

# Machine-readable output for API / CI integration
odgs-maturity score --workspace ./my-project --json

Example Output

╭───────────────────────────── Assessment ─────────────────────────────╮
│   ODGS Governance Maturity Score                                     │
│                                                                      │
│   ███████████████░░░░░░░░░░░░░░░  52.6%  (Defined)                   │
│                                                                      │
╰──────────────────────────────────────────────────────────────────────╯
                       Pillar Breakdown
┏━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━┳━━━━━━┓
┃ Pillar                  ┃  Score ┃ Level      ┃ Gaps ┃ Flag ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━╇━━━━━━┩
│ Governance Foundations  │  66.7% │ Measured   │    1 │ 🟡   │
│ Quality Enforcement     │  38.7% │ Developing │    2 │ 🔴   │
│ Operational Readiness   │  83.3% │ Optimised  │    1 │ 🟢   │
│ Metadata Integrity      │  36.7% │ Developing │    2 │ 🔴   │
│ Usage & Analytics       │ 100.0% │ Optimised  │    0 │ 🟢   │
│ Organisational Adoption │  61.3% │ Measured   │    2 │ 🟡   │
│ Certification & Trust   │   0.0% │ Initial    │    2 │ 🔴   │
│ Bridge Connectivity     │   0.0% │ Initial    │    2 │ 🔴   │
└─────────────────────────┴────────┴────────────┴──────┴──────┘

⚠ 3 critical gap(s):
  • Data Rules With Logic: Add logic_expression to rules for automated enforcement
  • Rule Owner Assignment: Assign data stewards as rule owners
  • Physical Data Map Coverage: Register all source-of-record systems

21 rules evaluated, 12 gaps found

The output above is from a real ODGS v6.0.2 workspace with default configuration — no bridges, no packs, no workspace identity.


The 8-Pillar Maturity Model

The assessment framework adapts 6 knowledge areas from ISO/IEC 38505-1 (Governance of Data) and ISO/IEC 25012 (Data Quality Model) and adds 2 pillars native to the ODGS protocol.

# Pillar Source Weight What It Measures
1 Governance Foundations ISO 38505 / 25012 20% Context bindings, process governance maps, workspace identity
2 Quality Enforcement ISO 38505 / 25012 18% Rules with executable logic, owner assignment, DQ dimensions
3 Operational Readiness ISO 38505 / 25012 15% Interceptor presence, enforcement mode, SPOT risk factors
4 Metadata Integrity ISO 38505 / 25012 12% Ontology graph depth, metrics documentation, physical data map
5 Usage & Analytics ISO 38505 / 25012 8% Metrics count, rules-to-dimensions linkage coverage
6 Organisational Adoption ISO 38505 / 25012 12% Industry targeting, context-rule binding density, org identity
7 Certification & Trust ODGS 8% Regulation packs installed, cryptographic signature validity
8 Bridge Connectivity ODGS 7% Active bridge configs, connector type diversity

Maturity Levels (ISO/IEC 38505-1 & ISO/IEC 25012-aligned)

Level Score Interpretation
Initial 0–19% Governance exists in name only. No operational capability.
Developing 20–39% Basic structures present but largely unconfigured.
Defined 40–59% Standard governance in place. Enforcement gaps remain.
Measured 60–79% Quantitative governance. Metrics and ownership assigned.
Optimised 80–100% Continuous improvement. Full enforcement with audit trails.

Scoring Rules

22 rules evaluate your workspace across the 8 pillars. Each rule produces:

  • Score (0.0–1.0) — Normalised assessment
  • Evidence — What the rule inspected
  • Recommendation — Actionable improvement step
  • Cost Flag (🔴 RED / 🟡 AMBER / 🟢 GREEN) — Urgency indicator
Full Rule Reference
Rule ID Pillar What It Checks
GOV-01 Governance Foundations Context binding count and quality
GOV-02 Governance Foundations Process governance maps
GOV-03 Governance Foundations Workspace YAML configuration
QE-01 Quality Enforcement Rules with logic_expression
QE-02 Quality Enforcement Rule owner assignment (non-TBD)
QE-03 Quality Enforcement DQ dimension coverage
OPS-01 Operational Readiness Interceptor module availability
OPS-02 Operational Readiness Enforcement mode configuration
OPS-03 Operational Readiness SPOT factor completeness
META-01 Metadata Integrity Ontology graph node depth
META-02 Metadata Integrity Standard metrics with formula
META-03 Metadata Integrity Physical data map coverage
USE-01 Usage & Analytics Metrics count threshold
USE-02 Usage & Analytics Rules-to-DQ dimensions linkage
ORG-01 Organisational Adoption Industry code in workspace config
ORG-02 Organisational Adoption Context-to-rule binding density
ORG-03 Organisational Adoption Organisational identity in config
BRG-01 Bridge Connectivity Bridge configuration files present
BRG-02 Bridge Connectivity Connector type diversity
CERT-01 Certification & Trust Regulation packs installed
CERT-02 Certification & Trust Pack signature verification
Reserved — Extensible via @_register decorator

JSON API Output

For CI pipelines, dashboards, or the ODGS OS kernel:

odgs-maturity score --workspace ./my-project --json
{
  "aggregate_score": 52.6,
  "level": "Defined",
  "level_value": 3,
  "total_rules": 21,
  "total_gaps": 12,
  "red_flags": 3,
  "amber_flags": 8,
  "pillars": {
    "governance_foundations": {
      "name": "Governance Foundations",
      "score": 66.7,
      "level": "Measured",
      "weight": 0.20,
      "cost_flag": "amber",
      "rules_evaluated": 3,
      "gaps": 1,
      "rules": [ ... ]
    }
  }
}

Programmatic Usage

from odgs_maturity.workspace.reader import WorkspaceReader
from odgs_maturity.scoring.engine import score_workspace

# Read workspace artifacts (read-only)
reader = WorkspaceReader()
snapshot = reader.read("/path/to/odgs-project")

# Run assessment
result = score_workspace(snapshot)

# Use the result
print(f"Score: {result.aggregate_score}%")  # 52.6
print(f"Level: {result.level.label}")        # "Defined"
print(f"Gaps:  {result.total_gaps}")         # 12

# Per-pillar access
for pillar, pr in result.pillars.items():
    print(f"  {pillar.display_name}: {pr.score}%")

# Serialise for API consumers
import json
json.dumps(result.to_dict())

ODGS Ecosystem

odgs-maturity is part of the Open Data Governance Standard ecosystem. It inspects workspaces created by the core odgs package and integrates with the full bridge infrastructure.

┌──────────────────────────────────────────────────────────────────────┐
│                        ODGS Ecosystem                                │
│                                                                      │
│  ┌──────────────┐  ┌─────────────────┐                               │
│  │  odgs (core)  │  │  odgs-maturity   │                              │
│  │  Engine +     │◀─│  Score + Charter │                              │
│  │  Interceptor  │  │  22 rules        │                              │
│  └──────┬───────┘  └─────────────────┘                               │
│         │                                                            │
│  ┌──────┴───────────────────────────────────────────────────────┐    │
│  │                     Platform Bridges                          │    │
│  │  odgs-mcp-server · odgs-llm-bridge · odgs-flint-bridge       │    │
│  │  odgs-collibra-bridge · odgs-databricks-bridge               │    │
│  │  odgs-snowflake-bridge                                        │    │
│  └───────────────────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────────────────┘
Package Role Link
odgs Core validation engine, interceptor, and rule evaluation PyPI
odgs-maturity Diagnostic scoring and improvement charters (this package) PyPI
odgs-mcp-server AI agent integration (Claude, Cursor, Copilot) via MCP PyPI
odgs-llm-bridge Compile regulations into enforceable rules via LLM PyPI
odgs-flint-bridge TNO FLINT legislative semantics ingestion PyPI
odgs-collibra-bridge Collibra Business Glossary sync PyPI
odgs-databricks-bridge Databricks Unity Catalog integration PyPI
odgs-snowflake-bridge Snowflake Data Dictionary integration PyPI

How Maturity Drives the Ecosystem

The maturity score is not a vanity metric. It is the primary diagnostic signal that connects the free-tier ODGS install to the commercial governance infrastructure:

odgs init → odgs-maturity score → gaps identified → bridges + packs resolve gaps → score improves
Score Range What It Means Typical Next Step
0–30% Fresh install, nothing configured Run odgs init, set workspace identity
30–50% Rules exist but no enforcement Connect bridges, assign rule owners
50–70% Operational but uncertified Install regulation packs, verify signatures
70–85% Production-ready, gaps in audit Configure webhook events, bridge diversity
85–100% Full sovereign governance Continuous improvement cycle via charter

Improvement Charters

Turn gaps into action plans. The charter generator transforms your maturity score into a structured ISO/IEC 38505-1 & ISO/IEC 25012-aligned improvement charter — complete with root cause analysis, strategic alignment, and recommended action items.

# Interactive — guided prompts for business context
odgs-maturity charter --workspace ./my-project

# Non-interactive — defaults for CI/CD
odgs-maturity charter --workspace ./my-project --non-interactive --output charter.md

# JSON export for programmatic consumption
odgs-maturity charter --workspace ./my-project --non-interactive --json > charter.json

Three Charter Types

Type Template Sections Use Case
Lifecycle Pain Point 8 sections (A–H) Business case, problem statement, goals, scope, dimensions, actions, KPIs, next steps A specific business process stage has data quality issues
KPI Improvement 3 sections (A–C) KPI analysis, root causes, improvement recommendations A KPI's reliability needs to improve
Strategic / AI Initiative 2 sections (A–B) Data readiness assessment, AI foundation requirements Preparing for a strategic programme or AI deployment

What's in a Charter

Every generated charter includes:

  • SPOT Root Cause Analysis — Gaps classified as Standard / Process / Organisation / Technology
  • ISO/IEC 25012 Dimension Mapping — The specific data quality dimensions (from 60 ISO/IEC 25012 & ISO 8000-8 dimensions) most affected by your gaps
  • Strategic Alignment — Auto-matched strategic objective from 8 universal governance goals
  • Cost/Risk Flags — Critical indicators requiring immediate attention
  • Actionable Sections — Each section contains populated recommendations, not just templates

Programmatic Usage

from odgs_maturity.workspace.reader import WorkspaceReader
from odgs_maturity.scoring.engine import score_workspace
from odgs_maturity.charter.generator import generate_charter
from odgs_maturity.charter.models import CharterType
from odgs_maturity.charter.export import to_markdown, to_json

# Score the workspace
reader = WorkspaceReader()
snapshot = reader.read("/path/to/odgs-project")
result = score_workspace(snapshot)

# Generate a charter
charter = generate_charter(
    result,
    CharterType.LIFECYCLE_PAIN_POINT,
    lifecycle_name="Order to Cash (O2C)",
    stage_name="Invoice Processing",
    pain_points=["Duplicate entries", "Missing PO references"],
)

# Export
markdown = to_markdown(charter)
json_str = to_json(charter)

Architecture

odgs-maturity is designed as a read-only diagnostic layer. It never imports from or modifies the core odgs package at runtime.

graph LR
    subgraph "ODGS Workspace"
        A[executive/] --> R[context_bindings.json]
        B[judiciary/] --> S[standard_data_rules.json]
        C[legislative/] --> T[ontology_graph.json]
    end

    subgraph "odgs-maturity"
        WR[WorkspaceReader] --> |read-only| A
        WR --> |read-only| B
        WR --> |read-only| C
        WR --> SNAP[WorkspaceSnapshot]
        SNAP --> ENG[ScoringEngine]
        ENG --> |22 rules| RES[MaturityResult]
        RES --> CLI[CLI: Rich Table]
        RES --> JSON[JSON API]
        RES --> CHARTER[Charter Generator]
    end

Extending the Rule Set

Adding new rules is trivial. Define a function with the @_register decorator:

# In scoring/rules.py
@_register("CUSTOM-01", "My Custom Check", Pillar.GOVERNANCE_FOUNDATIONS)
def _custom_check(snap: WorkspaceSnapshot) -> RuleResult:
    # Your logic here
    return RuleResult(
        rule_id="CUSTOM-01",
        rule_name="My Custom Check",
        pillar=Pillar.GOVERNANCE_FOUNDATIONS,
        score=0.8,
        max_score=1.0,
        evidence="Found 4 of 5 required items",
        recommendation="Add the missing governance artefact",
        cost_flag=CostFlag.AMBER,
    )

The engine automatically discovers all registered rules at import time.


Requirements

  • Python: 3.9+
  • Dependencies: typer, rich, pydantic, pyyaml (all lightweight, no ML/GPU)
  • Optional: weasyprint for PDF charter export (pip install odgs-maturity[pdf])
  • ODGS workspace: Any workspace created by odgs init (v5.x or v6.x)

About ODGS

The Open Data Governance Standard is a sovereign enforcement protocol that validates data operations against governance rules at runtime. It produces cryptographic S-Certs (Sovereign Certificates) — machine-verifiable proof that governance rules were evaluated before data entered a pipeline.


License

Released under the Apache 2.0 License.

  • No Vendor Lock-in.
  • No Cloud Dependency.
  • 100% Data Sovereignty.

ODGS Maturity | Part of the Open Data Governance Standard | Developed by Metric Provenance | The Hague, NL 🇳🇱

Metadata

Release files for odgs-maturity 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odgs-maturity 1.1.0
File Size Uploaded Provenance Actions
odgs_maturity-1.1.0.tar.gz 88.8 kB Without provenance Details for odgs_maturity-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for odgs-maturity 1.1.0
File Interpreter ABI Platform Actions
odgs_maturity-1.1.0-py3-none-any.whl Python 3 none any Details for odgs_maturity-1.1.0-py3-none-any.whl

Total release size: 176.2 kB

Release files / odgs_maturity-1.1.0.tar.gz

Download URL odgs_maturity-1.1.0.tar.gz
Size 88.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c2a10f9a59b995b50610029bb2ce875024345388aae6d31a7ece629711ed986c
BLAKE2b-256 checksum
How to use checksums
996ce8e62c3cc469ca6d58ac18d45d362e0b71f4542ca6491cbb27c016ac45a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / odgs_maturity-1.1.0-py3-none-any.whl

Download URL odgs_maturity-1.1.0-py3-none-any.whl
Size 87.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d745968c5608dd6e768c6e23016227a40de571728dd1d6911951e7293d1e4b7c
BLAKE2b-256 checksum
How to use checksums
cebd6ecf75229e2ff3e80dfe48c9abbc55ac8db26eee7624149a1627109dcd25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for odgs-maturity 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page