Data Retention and Deletion Standard Template (GDPR Art. 17, SP 800-88)
Retention rule method, deletion classes, standard periods, deletion per store (OLTP, Iceberg, Delta, search, logs, ML, backups), erasure propagation, evidence, sanitisation
使い方: Use it when you turn a records schedule and privacy obligations into platform deletion jobs. Fill the retention rule method and standard periods first, then the mechanics for each store you run. The main pitfall is treating a DELETE on a versioned lakehouse table as deletion while snapshots, deletion vectors and backups still hold the data.
プレビュー
Data Retention and Deletion Standard: [Organisation or platform name]
Technical standard for how long data is kept on a data platform and how it is removed: the method for writing retention rules (trigger event, period, legal basis, holds), deletion classes, standard retention periods, deletion mechanics per store (operational databases, lakehouse tables with snapshot expiry, vacuum and deletion vectors, backups, search indexes, logs and machine learning features), propagation of erasure requests under GDPR (Regulation (EU) 2016/679) Article 17, verification evidence, and media sanitisation following NIST SP 800-88 Rev. 2 (September 2025). The concepts of deletion classes and deletion rules follow the structure of ISO/IEC 27555:2021 (guidelines on PII deletion), cited by name only. Replace every
[bracketed]value and every row marked Example. This is a documentation format, not legal advice.
Document control
| Field | Value |
|---|---|
| Document ID | [STD-RET-001] |
| Version | [1.0] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@head-of-data-platform] |
| Approvers/reviewers | [@dpo], [@records-manager], [@ciso], [@legal] |
| Stores in scope | [OLTP databases, lakehouse, warehouse, search, logs, feature store, backups] |
| Related records schedule | [compliance/iso-15489-records-schedule reference and version] |
| Effective date | YYYY-MM-DD |
| Next review | YYYY-MM-DD |
| Last updated | YYYY-MM-DD |
| Classification | [Internal] |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| Standard owner | [@head-of-data-platform] | [Approved] | YYYY-MM-DD |
| Data protection officer | [@dpo] | [Approved] | YYYY-MM-DD |
| Records manager | [@records-manager] | [Approved] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@author] | Initial draft |
| 1.0 | YYYY-MM-DD | [@author] | Approved |
| 1.1 | 2026-10-24 | [@author] | Example: Rule register completed as the single source of rule IDs and periods for the ROPA, the records schedule, DPIAs and data sharing agreements; security logs split out as RET-016; metadata and column-statistics residue added for Iceberg and Delta Lake |
Contents
- 1. Purpose, scope and principles
- 2. Roles and responsibilities
- 3. Retention rule method
- 4. Deletion classes
- 5. Standard retention periods
- 6. Deletion mechanics per store
- 7. Legal holds and suspension
- 8. Erasure request propagation
- 9. Verification and deletion evidence
- 10. Media sanitisation
- 11. Exceptions and monitoring
- 12. Traceability matrix
- 13. Glossary and references
- Standard and licence note
1. Purpose, scope and principles
1.1 Purpose
This standard makes sure that data is kept only as long as a purpose or
an obligation requires, that deletion happens on schedule in every copy
of the data, and that [Organisation name] can prove it. It supports the
storage limitation principle of GDPR Article 5(1)(e), the right to
erasure in Article 17, and the time limits recorded in the record of
processing activities under Article 30(1)(f) (compliance/gdpr-ropa).
1.2 Scope
All data stores that hold organisation or customer data: operational databases, event streams, the lakehouse and warehouse, derived marts, search indexes, caches, logs and traces, feature stores, model training sets, exports, backups and archives, including those operated by processors.
1.3 Principles
- Every dataset has a rule. No dataset is released to production
without a retention rule ID in its data contract (
data/data-contract). - Rules are expressed as trigger plus period. Calendar dates alone are not used.
- Deletion means unrecoverable by normal means in every primary store, and aged out of backups within the stated backup window.
- Holds override deletion, and only holds do.
- Deletion is automated and produces evidence; manual deletion is an exception.
- Derived data follows its source: lineage drives propagation.
2. Roles and responsibilities
| Role | Responsibilities |
|---|---|
| Data owner | Approves the retention rule for each dataset, confirms the purpose and period |
| Records manager | Maintains the records schedule, maps record classes to retention rules |
| DPO | Confirms legal basis and periods for personal data, oversees erasure requests |
| Legal | Issues and releases legal holds, advises on statutory periods |
| Data platform team (custodian) | Implements deletion jobs per store, maintains evidence, reports failures |
| Data producers | Declare the retention rule ID in contracts and model metadata |
| Privacy operations | Receives erasure requests, verifies identity, tracks completion |
3. Retention rule method
3.1 Rule structure
Each retention rule has these fields:
| Field | Description |
|---|---|
| Rule ID | RET-NNN |
| Data scope | Datasets, record classes or data categories the rule covers |
| Trigger event | The event that starts the clock: record creation, last activity, contract end, account closure, transaction date, consent withdrawal |
| Period | Duration after the trigger, in days, months or years |
| Legal basis or reason | Statute, contract, limitation period, or business purpose with justification |
| Deletion class | Class from section 4 |
| Action at end | Delete, anonymise, aggregate, or transfer to archive |
| Hold behaviour | Whether legal hold applies and who can apply it |
| Owner | Data owner |
| Records schedule link | Record class in the records schedule |
3.2 Writing a rule
- Identify the purpose and any legal obligation to keep the data.
- Choose the trigger that best reflects when the purpose ends (for example account closure, not account creation).
- Set the period to the minimum that satisfies the purpose or the obligation; record the source of any statutory period.
- Choose the action at end. Prefer deletion; anonymisation needs a
completed assessment (
compliance/de-identification-assessment). - Assign a deletion class.
- Get approval from the data owner and, for personal data, the DPO.
3.3 Rule register
| Rule ID | Data scope | Trigger | Period | Basis | Class | Action |
|---|---|---|---|---|---|---|
| RET-001 (Example) | Checkout session events | Event time | 90 days | Fraud analysis and debugging purpose | DC-2 | Delete |
| RET-002 (Example) | Orders, sales invoices and credit notes | End of the financial year of the transaction | 7 years (statutory period of [jurisdiction]) | Tax and accounting law of [jurisdiction] | DC-4 | Delete |
| RET-003 (Example) | Customer account profile | Account closure | 30 days | Contract performance ended; grace period for reactivation | DC-3 | Delete |
| RET-004 (Example) | Consent records (marketing, saved checkout details) | Consent withdrawal or account closure | [Limitation period] | Proof of consent (Art. 7(1)) | DC-4 | Delete |
| RET-005 (Example) | Application logs with IP addresses | Log time | 30 days | Debugging and service operation | DC-2 | Delete |
| RET-006 (Example) | Daily order aggregates without personal data | Not applicable | Indefinite while useful, reviewed annually | Business reporting | DC-5 | Review |
| RET-007 (Example) | Fraud features, scores and outcomes | Order date | 13 months | Fraud prevention, chargeback window and model retraining | DC-2 | Delete |
| RET-008 (Example) | Payroll records | End of the financial year of payment | 7 years (statutory period of [jurisdiction]) | Tax and social security law of [jurisdiction] | DC-4 | Delete |
| RET-009 (Example) | Personnel file | End of employment | 2 years | Employment and social security law of [jurisdiction] | DC-3 | Delete |
| RET-016 (Example) | Security and access logs | Log time | 12 months (first 30 days hot, then archive) | Security monitoring and incident investigation | DC-2 | Delete |
| RET-017 (Example) | Customer and supplier contracts, accepted terms | End of contract | 6 years | Contractual claims limitation period of [jurisdiction] | DC-3 | Review, then delete |
| RET-018 (Example) | Security incident records | Incident closure | 5 years | Trend analysis and evidence for claims | DC-3 | Review, then delete |
| RET-019 (Example) | Newsletter subscriber email and language | Unsubscribe | 30 days | Consent withdrawn; time to process suppression | DC-3 | Delete (suppression hash kept under RET-004) |
| RET-020 (Example) | Saved checkout details (delivery address, payment token reference) | Last account activity, or removal by the customer | 24 months of inactivity; removal takes effect at once | Consent for convenience storage, Art. 6(1)(a) | DC-3 | Delete and revoke the token |
The register is the single source of rule IDs and periods. The record
of processing activities (compliance/gdpr-ropa), the records schedule
(compliance/iso-15489-records-schedule), DPIAs and data sharing
agreements quote the rule ID and its period exactly as written here;
when a period changes, they change in the same release. Rules RET-010
to RET-015 are the platform defaults in section 5.
4. Deletion classes
| Class | Description | Typical trigger | Typical period (Example) | Mechanism |
|---|---|---|---|---|
| DC-1 | Transient: in-memory, caches, staging files | Creation | Hours to 7 days | TTL, automatic expiry |
| DC-2 | Short-lived operational and telemetry data | Event time | 30 to 90 days | Partition drop, TTL, index lifecycle |
| DC-3 | Relationship data, kept while a customer or contract is active | End of relationship | 30 days to 1 year after end | Scheduled deletion job keyed on status change |
| DC-4 | Statutory records | Transaction or period end | As required by law | Scheduled deletion after the statutory period, archive tier in between |
| DC-5 | Non-personal aggregates and reference data | Not applicable | Reviewed annually | Owner review |
| DC-6 | Erasure on request | Request accepted | Within the response deadline | Erasure workflow (section 8) |
Rules:
- A dataset with mixed classes is split, or takes the class of its longest-lived element only when the owner records why splitting is impractical.
- Personal data never sits in DC-5.
5. Standard retention periods
| Data category | Default rule | Trigger | Period (Example) | Notes |
|---|---|---|---|---|
| Raw ingestion landing zone | RET-010 | Ingestion time | 14 days | Replay window only |
| Bronze or raw lakehouse tables with personal data | RET-011 | Event time | 13 months | Year-on-year comparison |
| Curated personal data in silver and gold | Follows source rule | Source trigger | Source period | Inherited via lineage |
| Aggregates without personal data | RET-006 | Not applicable | Reviewed annually | DC-5 |
| Application logs | RET-005 | Log time | 30 days | Debugging only; no archive |
| Security and access logs | RET-016 | Log time | 12 months (first 30 days hot, then archive) | See security/security-logging-standard |
| Data science sandboxes and extracts | RET-012 | Creation | 30 days | Auto-deleted unless renewed |
| ML training snapshots | RET-013 | Model retirement | 6 months | Keep for reproducibility, then delete |
| Backups | RET-014 | Backup time | 35 days | Rolling window per backup policy |
| Support tickets and transcripts | RET-015 | Ticket closure | 24 months | Redact special-category content earlier |
6. Deletion mechanics per store
6.1 Operational databases (OLTP)
- Hard delete rows by primary key, or delete by partition for time-based rules.
- Soft-delete flags are allowed only as a short grace period ([30] days); a scheduled job then hard deletes.
- Cascade to child tables or nullify foreign keys deliberately; check orphaned rows.
- Run vacuum or compaction according to the engine so freed pages are reused; remember that write-ahead logs, replicas and point-in-time recovery windows still hold the data until they roll over.
- Change data capture streams carry the delete as an event; downstream consumers must act on it.
6.2 Lakehouse tables: Apache Iceberg
Iceberg tables are versioned: each commit creates a snapshot, and old snapshots keep references to data files that contain deleted rows.
| Step | Operation | Purpose |
|---|---|---|
| 1 | DELETE or MERGE on the table | Removes rows logically. With copy-on-write, affected data files are rewritten. With merge-on-read, the engine writes delete files instead: position or equality delete files in format v2; in format v3, new position deletes are written as deletion vectors (Puffin deletion-vector-v1 blobs), while equality delete files are still allowed (for example from streaming writers) and are applied only when compaction rewrites the data files |
| 2 | Compact data files (rewrite_data_files) and rewrite position delete files | Produces new data files without the deleted rows |
| 3 | Expire snapshots (expire_snapshots) older than the delete commit | Removes snapshot references to old files and deletes files no longer reachable |
| 4 | Delete orphan files (remove_orphan_files) | Cleans files left by failed or interrupted writes |
| 5 | Check branches and tags | Snapshots referenced by a branch or tag are not expired; remove or move them |
Configure snapshot retention so step 3 runs within the deletion deadline. Time travel stops working for expired snapshots, which is the intended effect.
Metadata residue: manifest files record per-file column statistics,
including lower and upper bounds. With the default metrics mode
(truncate(16)) the bounds of a string column such as email are real
values (the first 16 characters), and they stay in manifests until
snapshot expiry removes every manifest that lists the old file. For
personal-data columns, set write.metadata.metrics.column.<column> to
none or counts (bounds are then not persisted), or count manifest
expiry in the residual window. Changing the metrics mode affects new
files only; rewrite existing files to clear old bounds.
6.3 Lakehouse tables: Delta Lake
| Step | Operation | Purpose |
|---|---|---|
| 1 | DELETE, UPDATE or MERGE | Removes rows logically. With deletion vectors enabled, rows are marked in a deletion vector and the Parquet file is not rewritten |
| 2 | REORG TABLE <table> APPLY (PURGE) | Rewrites files that contain soft-deleted rows so the rows are physically excluded |
| 3 | VACUUM <table> | Removes data files no longer referenced and older than the retention threshold (default 7 days) |
| 4 | Transaction log and checkpoint retention (delta.logRetentionDuration, default 30 days) | Log entries age out when a checkpoint is written after the retention interval. The add actions in the log and checkpoints carry file-level column statistics (minValues, maxValues), which are real values of the indexed columns, so deleted values survive in the log until it ages out |
Notes: the vacuum threshold must be measured from the purge commit, not
the original delete. If change data feed is enabled, its files also hold
deleted values until vacuumed. Shallow and deep clones are separate
copies and need their own deletion. Time travel to versions before the
purge stops working once VACUUM removes their files; this is the
intended effect.
Column statistics: exclude personal-data columns from statistics
collection (list only non-personal columns in
delta.dataSkippingStatsColumns, or order the schema so they fall
outside delta.dataSkippingNumIndexedCols), or include the log
retention period in the residual window. Changing these properties
affects statistics written from then on; existing log entries keep
their statistics until they age out.
6.4 Apache Hudi and other formats
Apache Hudi (current release line 1.2.x) keeps older file versions for time travel and incremental queries. A delete writes a new file version or, for merge-on-read tables, a log entry that compaction later merges. The cleaner service removes older file versions according to the configured cleaning policy (for example by number of commits or file versions retained), and timeline archival moves old instants out of the active timeline. Set the cleaning policy so the residual window fits the deletion deadline, and verify the configuration names against the documentation of the version you run. For any other format, record the equivalent of: logical delete, rewrite, removal of unreferenced files, and metadata history expiry.
6.5 Warehouses and marts
- Rebuild derived models from cleaned sources; incremental dbt models need an explicit delete step or a periodic full refresh.
- Warehouse time travel and fail-safe features keep data for a set period after deletion: record that period here: [N days].
- Snapshots (slowly changing dimension history) must apply erasure to historical rows, not only the current row.
6.6 Search indexes and caches
- Delete documents by ID; force merge or segment rewrite so deleted documents leave disk ([schedule]).
- Use index lifecycle policies for time-based rules (DC-2).
- Caches use TTLs no longer than the class period; invalidate on erasure.
6.7 Logs, traces and observability
- Avoid personal data in logs by design (
security/security-logging-standard). - Apply retention at the log platform by index or bucket lifecycle.
- Erasure requests do not usually require editing immutable security logs; document that position, the basis and the retention period.
6.8 Machine learning features and models
- Feature store tables follow source rules; online stores need TTLs.
- Training sets are snapshots: record which rule applies and delete at the end of the period.
- Where a model was trained on data later erased, record whether
retraining is required, using the risk assessment in the model
documentation (
ai-data/model-card). - Embeddings and vector indexes of personal content are deleted with the source document.
6.9 Backups and archives
- Backups are not edited to remove single records. They age out on the
rolling window in
ops/backup-policy(RET-014). - On restore, replay the erasure log (section 8.4) before the restored system goes live, so erased records do not reappear.
- Archives under DC-4 are deleted at the end of the statutory period by a scheduled job with evidence.
6.10 Store register
| Store | Engine and version | Delete mechanism | Physical purge job | Residual window | Owner |
|---|---|---|---|---|---|
| Orders OLTP (Example) | [PostgreSQL version] | Hard delete by key | Autovacuum; PITR window 7 days | 7 days | [@orders-platform] |
Lakehouse orders namespace (Example) | Apache Iceberg [library version], format v3 | Merge-on-read delete with deletion vectors; metrics mode none on personal-data columns | Nightly compaction, expire snapshots older than 7 days, weekly orphan cleanup | 8 days (1 day to compaction plus 7 days to snapshot expiry) | [@data-platform] |
| Search (Example) | [Engine and version] | Delete by ID | Weekly force merge | 7 days | [@search-team] |
| Backups (Example) | [Backup system] | Age out | Rolling deletion | 35 days | [@infra] |
7. Legal holds and suspension
- Legal issues holds through the hold register with scope, reason, start date and review date.
- Deletion jobs check the hold register before deleting and skip held data, logging each skip.
- Holds are reviewed [quarterly]; on release, deletion resumes and any overdue data is deleted within [30] days.
- Erasure requests for held data are answered with the reason for restriction, as advised by Legal.
| Hold ID | Scope | Reason | Issued by | Start | Review | Status |
|---|---|---|---|---|---|---|
| HOLD-001 (Example) | Orders for merchant M-4471, 2025 | Commercial dispute | [@legal] | YYYY-MM-DD | YYYY-MM-DD | Active |
8. Erasure request propagation
8.1 Workflow
The sequence below shows one request from receipt to response. Each store completes its own ticket and returns evidence before the response is sent.
8.2 Resolving the subject
- Map the request to stable subject keys (customer ID, email hash, device IDs) through an identity resolution table.
- Use lineage (for example OpenLineage events or the catalogue) to list every dataset containing those keys or derived from them.
- Include free-text stores (tickets, chat logs) by search.
8.3 Execution
- Batch erasure requests per store per day to limit rewrite cost on lakehouse tables.
- The physical purge deadline (sections 6.2 and 6.3) must fall inside the response deadline.
- Where data is kept under an exception (for example statutory invoices), restrict processing and record the reason.
8.4 Erasure log
Keep a minimal erasure log (subject key hash, request ID, date, stores completed) so erasure can be reapplied after a backup restore. The log itself holds no more personal data than necessary and has its own retention rule.
| Request ID | Received | Stores | Exceptions applied | Completed | Recipients notified |
|---|---|---|---|---|---|
| ER-2026-0142 (Example) | YYYY-MM-DD | OLTP, lakehouse orders, search, CRM | Invoices kept under RET-002 | YYYY-MM-DD | Email service provider, payment processor |
9. Verification and deletion evidence
| Evidence | Produced by | Retained for |
|---|---|---|
| Deletion job run log with rule ID, row or file counts and status | Platform jobs | [2 years] |
| Post-deletion verification query returning zero rows for the deleted keys or periods | Platform jobs | [2 years] |
| Snapshot expiry and vacuum logs showing removed files | Lakehouse maintenance | [2 years] |
| Erasure ticket closure with stores completed | Privacy operations | [Per erasure log rule] |
| Media sanitisation record (section 10) | Infrastructure or disposal vendor | [Per records schedule] |
| Deletion certificate for processors and suppliers | Processor | [Contract term plus limitation period] |
Verification rules:
- Run a verification query per store after each purge cycle; failures
open an incident with severity per
ops/incident-severity-matrix(SEV3 by default, SEV2 if personal data is overdue by more than the response deadline). - Sample [5] percent of erasure requests each quarter for end-to-end testing across stores, including a restore test.
10. Media sanitisation
- Choose the sanitisation method (Rev. 2 section 3.1) per media and classification: Clear (logical techniques against simple, non-invasive recovery through the normal interface), Purge (recovery infeasible with state-of-the-art laboratory techniques, media possibly reusable) or Destroy (as Purge, media no longer usable; not applicable to logical or virtual storage). Cryptographic erase is a purge technique where encryption was enabled from first use and keys are managed properly. See IEEE 2883 for media-specific techniques.
- Restricted data media: Purge or Destroy.
- Cloud storage: rely on the provider's documented sanitisation attestations and on cryptographic erase of customer-managed keys.
- Keep a sanitisation record for each item: media identifier, data classification, method, tool, operator, verification result and date.
- Vendors performing destruction provide a certificate per batch.
| Record ID | Media | Classification | Method | Verified | Date |
|---|---|---|---|---|---|
| SAN-001 (Example) | 12 NVMe drives from decommissioned database hosts | Restricted | Purge (cryptographic erase) then Destroy | Yes, vendor certificate | YYYY-MM-DD |
11. Exceptions and monitoring
| Exception ID | Rule | Store | Reason | Compensating control | Expiry |
|---|---|---|---|---|---|
| EXC-RET-001 (Example) | RET-011 | Legacy warehouse | Migration in progress | Access restricted to two engineers, monthly manual purge | YYYY-MM-DD |
| Metric ID | Metric | Target (Example) |
|---|---|---|
| RET-M-01 | Datasets with a retention rule ID | 100 percent |
| RET-M-02 | Data older than rule period plus residual window | 0 rows |
| RET-M-03 | Erasure requests completed within deadline | 100 percent |
| RET-M-04 | Deletion jobs failed and not rerun within 48 hours | 0 |
| RET-M-05 | Open retention exceptions past expiry | 0 |
12. Traceability matrix
| Obligation | Section | Implementation | Evidence |
|---|---|---|---|
| GDPR Art. 5(1)(e) storage limitation | 3, 5 | Retention rules RET-NNN | Rule register, verification queries |
| GDPR Art. 17 right to erasure | 8 | Erasure workflow | Erasure log |
| GDPR Art. 19 notification to recipients | 8.1 | Recipient notification step | Confirmations |
| GDPR Art. 30(1)(f) time limits in ROPA | 3.3 | Rule IDs referenced in ROPA | ROPA entries |
| ISO/IEC 27555:2021 deletion classes and rules | 3, 4 | Deletion classes DC-1 to DC-6 | Rule register |
| NIST SP 800-88 Rev. 2 media sanitisation | 10 | Sanitisation records | SAN records, certificates |
| Records schedule | 3 | Rule to record class mapping | compliance/iso-15489-records-schedule |
13. Glossary and references
13.1 Glossary
| Term | Meaning |
|---|---|
| Retention rule | Trigger, period, basis and action for a data scope |
| Trigger event | Event that starts the retention period |
| Deletion class | Group of data sharing a trigger type, period and mechanism |
| Logical delete | Removal from query results while bytes remain in storage |
| Metadata residue | Values of deleted rows kept in table metadata, such as column bounds in Iceberg manifests or minValues and maxValues in the Delta log |
| Physical purge | Removal of the bytes from all live files in a store |
| Residual window | Maximum time between logical delete and physical purge |
| Deletion vector | Marker of deleted row positions for a data file, used by Delta Lake and by Iceberg format v3 |
| Legal hold | Instruction suspending deletion for a defined scope |
13.2 References
| Reference | Version or date | Use |
|---|---|---|
| Regulation (EU) 2016/679 (GDPR) | Check the consolidated text | Articles 5, 12, 17, 19, 30 |
| ISO/IEC 27555:2021, Guidelines on personally identifiable information deletion | Edition 1, 2021-10 | Deletion class and rule concepts, by name only |
| NIST SP 800-88 Rev. 2, Guidelines for Media Sanitization | September 2025, supersedes Rev. 1 | Section 10 |
| Apache Iceberg table specification, configuration and maintenance docs | Format v3; library 1.12.0 | Section 6.2, metrics modes |
| Delta Lake protocol and documentation (deletion vectors, table utility commands, table properties) | Delta Lake 4.4.1; check the version you run | Section 6.3, column statistics |
| IEEE 2883, Standard for Sanitizing Storage | Check the current edition | Media-specific sanitisation techniques |
| Data Classification Policy | data/data-classification-policy | Levels and flags |
Standard and licence note
Based on Regulation (EU) 2016/679 (GDPR) and NIST SP 800-88 Rev. 2 (September 2025), with structure aligned with ISO/IEC 27555:2021, which is cited by name only; no ISO text, tables or definitions are reproduced. Lakehouse mechanics refer to the Apache Iceberg specification and the Delta Lake documentation (Apache-2.0 projects), described in original wording. NIST publications are US government works and EU legislation is free to reuse. All text and examples are original and use a fictional organisation. Check the current official versions, the consolidated GDPR text and the documentation of the engine versions you run before use. This is a documentation format, not legal advice. Template licence: MIT.
関連テンプレート
Data Quality Standard Template (ISO/IEC 25012, ODCS)
Organisation DQ standard: ISO/IEC 25012 vocabulary, tiers, rule catalogue, severity, enforcement points, observability, scorecard, issues, waivers
データエンジニアリング・ガバナンスdbt Project Standard Template (Analytics Engineering)
Layers and folder layout, naming, sources and freshness, tests, contracts, versions, groups and access, docs, macros, environments, slim CI, review checklist, cost guardrails
データエンジニアリング・ガバナンスAnalytics Tracking Plan Template (Privacy-First, JSON Schema, GPC)
Privacy-first tracking plan: tiers, object_action naming, events, property dictionary, JSON Schema 2020-12, SchemaVer, consent and GPC gating, PII rules, QA