Documentation

Date Transformers

Transform and mask date values

Date Transformers

Transform date and datetime values while preserving temporal patterns or adding privacy protection.


shift_date_random

Shift dates by a random number of days within a range.

Category: DateTime Type: Transformer Data Types: date, datetime, timestamp

Parameters

ParameterTypeDefaultDescription
days_rangeinteger30Random range (±days)

Examples

Small shift (±7 days):

columns:
  - name: appointment_date
    function: shift_date_random
    parameters:
      days_range: 7

Larger shift (±90 days):

columns:
  - name: transaction_date
    function: shift_date_random
    parameters:
      days_range: 90

Behavior

  • Input: 2024-03-15
  • With days_range: 30
  • Output: Random date between 2024-02-13 and 2024-04-14

Use Cases

  • Obscure exact transaction dates
  • Maintain relative ordering within records
  • Preserve seasonal patterns (with small shifts)

preserve_month_year

Keep month and year, randomize the day.

Category: DateTime Type: Transformer Data Types: date, datetime

Parameters

None

Example

columns:
  - name: date_of_birth
    function: preserve_month_year

Behavior

  • Input: 1985-06-15
  • Output: 1985-06-XX (random valid day in June 1985)

Use Cases

  • Age calculations remain accurate (same year)
  • Monthly aggregations preserved
  • Exact birthdates anonymized

Common Patterns

Healthcare: Preserve Age Accuracy

columns:
  - name: date_of_birth
    function: preserve_month_year

Patients remain in correct age brackets for analysis.

Finance: Shift Transaction Dates

columns:
  - name: transaction_date
    function: shift_date_random
    parameters:
      days_range: 14

Transactions shifted but patterns preserved.

Compliance: Minor Date Obfuscation

columns:
  - name: signup_date
    function: shift_date_random
    parameters:
      days_range: 3

Small shifts prevent exact matching.


Comparison

FunctionPreservesChanges
shift_date_randomRelative order (mostly)Exact date
preserve_month_yearMonth and yearDay

Tips

Preserve Relationships

When dates relate to each other, shift them together:

columns:
  - name: order_date
    function: shift_date_random
    parameters:
      days_range: 30
  # ship_date should use generate_date with reference
  # to maintain order_date → ship_date relationship

Seasonal Analysis

For reports that group by month, use preserve_month_year:

columns:
  - name: sale_date
    function: preserve_month_year

Monthly totals remain accurate.