All Products
Search
Document Center

DataWorks:Templat aturan

Last Updated:Apr 23, 2026

Data Quality menyediakan templat aturan untuk menyederhanakan pembuatan Specs. Sistem mencakup serangkaian templat bawaan yang umum digunakan, dan Anda juga dapat membuat templat kustom sendiri. Templat berisi sebagian besar pengaturan Spec yang diperlukan, sehingga saat membuat aturan dari templat, Anda hanya perlu mengonfigurasi pengaturan yang tersisa.

Gunakan templat aturan sistem

Contoh berikut menunjukkan cara membuat aturan menggunakan templat aturan sistem volatilitas rata-rata 1, 7, dan 30 hari:

datasets:
  - type: Table
    tables:
      - tb_d_spec_demo
    filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'"
    dataSource:
      name: odps_first
      envType: Dev
rules:
  - templateId: "SYSTEM:field:avg:flux:1_7_1m_bizdate"
    fields:
      - col_income
    warn: "when > 1%"
    fail: "when > 10%"

Potongan kode di atas membuat aturan pemantauan Data Quality dengan mereferensikan templat aturan sistem volatilitas rata-rata 1, 7, dan 30 hari. Parameter dikonfigurasi sebagai berikut:

  • templateId: ID templat aturan. Untuk daftar ID templat aturan lainnya, lihat Daftar Templat Aturan Sistem. Anda juga dapat membuat templat aturan kustom dan merujuk ke Gunakan templat aturan kustom untuk membuat aturan.

  • templateParameters: Parameter yang dibutuhkan oleh templat aturan. Setiap templat memerlukan parameter yang berbeda. Salah satu parameter umum adalah fields, yang menentukan daftar bidang yang dipantau oleh aturan.

    Untuk parameter yang diperlukan oleh setiap templat aturan, lihat Daftar templat aturan sistem.

  • warn/fail: Ambang batas.

Gunakan templat aturan kustom

Jika templat aturan sistem tidak memenuhi kebutuhan Anda atau jika Anda memiliki banyak aturan SQL kustom yang berisi pernyataan SQL yang sama, Anda dapat membuat templat aturan kustom.

Definisikan templat kustom

Potongan kode berikut menunjukkan contoh konfigurasi Spec untuk templat aturan kustom:

name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "id_not_null_row_count = 0"
id_not_null_row_count:
  query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"
catalog: "ods_layer/real-time_check"

Potongan kode di atas mendefinisikan templat aturan kustom sederhana. Templat ini mencakup bidang-bidang berikut:

  • name: Nama templat.

  • id: Pengenal unik untuk templat. ID ini harus unik secara global dan digunakan untuk mereferensikan templat.

  • assertion: Logika aturan. Untuk informasi lebih lanjut tentang sintaksisnya, lihat bidang assertion dalam Konfigurasi Spec Data Quality.

    id_not_null_row_count: Definisi metrik yang direferensikan oleh assertion dalam contoh ini. Di dalam query, Anda dapat menggunakan ${tableName} sebagai placeholder untuk nama tabel. Saat Anda membuat aturan dari templat ini, placeholder tersebut akan diganti dengan nama tabel yang dipantau oleh aturan. Anda juga dapat langsung mereferensikan parameter waktu sistem. Untuk informasi lebih lanjut, lihat Konfigurasi penyaringan data.

  • catalog: Kategori templat aturan, yang digunakan untuk manajemen. Gunakan garis miring (/) untuk memisahkan beberapa tingkat kategori.

Pengaturan ambang batas dalam templat kustom

Ambang batas tetap dan tidak tetap

Potongan kode berikut menunjukkan contoh konfigurasi dengan ambang batas tidak tetap:

name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "id_not_null_row_count"
id_not_null_row_count:
  query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"

Ambang batas volatilitas

name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "change avg last 7 days percent for id_not_null_row_count"
id_not_null_row_count:
  query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"

Buat aturan menggunakan templat kustom

  • Contoh 1

    datasets:
      - type: Table
        tables:
          - tb_d_spec_demo
        filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'"
        dataSource:
          name: odps_first
          envType: Dev
    rules:
      - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
        # Defines the failure threshold
        fail: "when != 0"
  • Contoh 2

    datasets:
      - type: Table
        tables:
          - tb_d_spec_demo
        filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'"
        dataSource:
          name: odps_first
          envType: Dev
    rules:
      - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
        warn: "when between 1 and 10)"
        fail: "when > 10"
  • Contoh 3

    datasets:
      - type: Table
        tables:
          - tb_d_spec_demo
        filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'"
        dataSource:
          name: odps_first
          envType: Dev
    rules:
      - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
        warn: "when not between -1% and 1%"
        fail: "when not between -10% and 10%"

Daftar templat aturan sistem

Id

Templat

Bidang yang diperlukan

Contoh

SYSTEM:table:table_count:fixed

Jumlah baris tabel, nilai tetap

pass

templateId: "SYSTEM:table:table_count:fixed"
pass: "when > 0"

SYSTEM:table:table_count:fixed:0

Jumlah baris tabel lebih besar dari 0

-

templateId: "SYSTEM:table:table_count:fixed:0"

SYSTEM:table:table_count_delta:fixed:1_bizdate

Jumlah baris tabel, selisih 1 hari

pass

templateId: "SYSTEM:table:table_count_delta:fixed:1_bizdate"
pass: "when < 10"

SYSTEM:table:table_count_delta:fixed:latest_bizdate

Jumlah baris tabel, selisih dari epoch sebelumnya

pass

templateId: "SYSTEM:table:table_count_delta:fixed:latest_bizdate"
pass: "when < 10"

SYSTEM:table:table_count:flux:1_7_1m_bizdate

Jumlah baris tabel, laju volatilitas 1-, 7-, dan 30-hari

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1_7_1m_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:flux:1_7_1m_1st_bizdate

Jumlah baris tabel, laju volatilitas 1-, 7-, 30-hari, dan awal bulan

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1_7_1m_1st_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:flux:1_bizdate

Jumlah baris tabel, laju volatilitas 1 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1_bizdate"
warn: "when < -1%"
fail: "when < -5%"

SYSTEM:table:table_count:flux:1m_bizdate

Jumlah baris tabel, laju volatilitas 30 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:1m_bizdate"
warn: "when < -1%"
fail: "when < -5%"

SYSTEM:table:table_count:flux:7_bizdate

Jumlah baris tabel, laju volatilitas 7 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_count:flux:7_bizdate"
warn: "when < -1%"
fail: "when < -5%"

SYSTEM:table:table_count:dynamic_threshold

Jumlah baris tabel, ambang batas dinamis

-

templateId: "SYSTEM:table:table_count:dynamic_threshold"

SYSTEM:table:table_count:avg:7_bizdate

Jumlah baris tabel, laju volatilitas rata-rata 7 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_count:avg:7_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:avg:1m_bizdate

Jumlah baris tabel, laju volatilitas rata-rata 30 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_count:avg:1m_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_count:cycle:latest_bizdate

Jumlah baris tabel, laju volatilitas dari epoch sebelumnya

  • warn

  • fail

templateId: "SYSTEM:table:table_count:cycle:latest_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:fixed

Ukuran tabel, nilai tetap

pass

templateId: "SYSTEM:table:table_size:fixed"
pass: "when > 0"

SYSTEM:table:table_size_delta:fixed:1_bizdate

Ukuran tabel, selisih 1 hari (byte)

pass

templateId: "SYSTEM:table:table_size_delta:fixed:1_bizdate"
pass: "when > 0"

SYSTEM:table:table_size_delta:fixed:latest_bizdate

Ukuran tabel, selisih dari epoch sebelumnya

pass

templateId: "SYSTEM:table:table_size_delta:fixed:latest_bizdate"
pass: "when > 0"

SYSTEM:table:table_size:flux:1_bizdate

Ukuran tabel, laju volatilitas 1 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_size:flux:1_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:flux:1m_bizdate

Ukuran tabel, laju volatilitas 30 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_size:flux:1m_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:flux:7_bizdate

Ukuran tabel, laju volatilitas 7 hari

  • warn

  • fail

templateId: "SYSTEM:table:table_size:flux:7_bizdate"
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:table_size:dynamic_threshold

Ukuran tabel, ambang batas dinamis

-

templateId: "SYSTEM:table:table_size:dynamic_threshold"

SYSTEM:field:null_value:fixed

Jumlah nilai null, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:null_value:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:null_value:fixed:0

Jumlah nilai null adalah 0

fields

templateId: "SYSTEM:field:null_value:fixed:0"
fields:
  - id

SYSTEM:field:null_value_percent:fixed

Presentase nilai null, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:null_value_percent:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match:fixed

Pemeriksaan ekspresi reguler

  • fields

  • valid

    • regex

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match:fixed"
templateParameters:
  metric: invalid_distinct_count
fields:
  - id
valid:
  regex: "[0-9]+"
pass: "when > 0"

SYSTEM:field:pattern_match_date:fixed

Pemeriksaan format tanggal

  • fields

  • valid

    • format

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_date:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
valid:
  format: date_yyyymmdd
pass: "when > 0"

SYSTEM:field:pattern_match_email:fixed

Pemeriksaan format email

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_email:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_idcard:fixed

Pemeriksaan format kartu identitas

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_idcard:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_mobile_number:fixed

Pemeriksaan format nomor ponsel

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_mobile_number:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_money:fixed

Pemeriksaan format mata uang

  • fields

  • valid

    • format

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_money:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
valid:
  format: CNY
pass: "when > 0"

SYSTEM:field:pattern_match_number:fixed

Pemeriksaan format numerik

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_number:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:pattern_match_phone_number:fixed

Pemeriksaan format nomor telepon

  • fields

  • templateParameters

    • metric

  • pass

templateId: "SYSTEM:field:pattern_match_phone_number:fixed"
templateParameters:
  metric: invalid_count
fields:
  - id
pass: "when > 0"

SYSTEM:field:duplicated_count:fixed

Jumlah nilai duplikat, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:duplicated_count:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:duplicated_count:fixed:0

Jumlah nilai duplikat adalah 0

fields

templateId: "SYSTEM:field:duplicated_count:fixed:0"
fields:
  - id

SYSTEM:fields:duplicated_count:fixed:0

Jumlah nilai duplikat untuk beberapa bidang adalah 0

fields

templateId: "SYSTEM:fields:duplicated_count:fixed:0"
fields:
  - id
  - name

SYSTEM:field:duplicated_percent:fixed

Presentase nilai duplikat, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:duplicated_percent:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:count_distinct:fixed

Jumlah nilai unik, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:count_distinct:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:count_distinct:flux:1_7_1m_bizdate

Jumlah nilai unik, laju volatilitas 1-, 7-, dan 30-hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:count_distinct:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:table:distinct_count:dynamic_threshold

Jumlah nilai unik, ambang batas dinamis

  • fields

  • pass

templateId: "SYSTEM:table:distinct_count:dynamic_threshold"
fields:
  - id

SYSTEM:field:count_distinct_percent:fixed

Presentase nilai unik, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:count_distinct_percent:fixed"
fields:
  - id
pass: "when > 0"

SYSTEM:field:min:flux:1_7_1m_bizdate

Nilai minimum, laju volatilitas 1-, 7-, dan 30-hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:min:dynamic_threshold

Nilai minimum, ambang batas dinamis

fields

templateId: "SYSTEM:field:min:dynamic_threshold"
fields:
  - id

SYSTEM:field:min:cycle:1_bizdate

Nilai minimum, laju volatilitas 1 hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:min:cycle:latest_bizdate

Nilai minimum, laju volatilitas dari epoch sebelumnya

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:cycle:latest_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:min:flux:1_7_1m_bizdate

Nilai minimum, laju volatilitas 1-, 7-, dan 30-hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:min:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:max:dynamic_threshold

Nilai maksimum, ambang batas dinamis

fields

templateId: "SYSTEM:field:max:dynamic_threshold"
fields:
  - id

SYSTEM:field:max:cycle:1_bizdate

Nilai maksimum, laju volatilitas 1 hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:max:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:max:cycle:latest_bizdate

Nilai maksimum, laju volatilitas dari epoch sebelumnya

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:max:cycle:latest_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:avg:flux:1_7_1m_bizdate

Nilai rata-rata, laju volatilitas 1-, 7-, dan 30-hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:avg:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:avg:dynamic_threshold

Nilai rata-rata, ambang batas dinamis

fields

templateId: "SYSTEM:field:avg:dynamic_threshold"
fields:
  - id

SYSTEM:field:avg:cycle:1_bizdate

Nilai rata-rata, laju volatilitas 1 hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:avg:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:sum:flux:1_7_1m_bizdate

Jumlah, laju volatilitas 1-, 7-, dan 30-hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:sum:flux:1_7_1m_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:sum:dynamic_threshold

Jumlah, ambang batas dinamis

fields

templateId: "SYSTEM:field:sum:dynamic_threshold"
fields:
  - id

SYSTEM:field:sum:cycle:1_bizdate

Jumlah, laju volatilitas 1 hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:sum:cycle:1_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:sum:cycle:latest_bizdate

Jumlah, laju volatilitas dari epoch sebelumnya

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:sum:cycle:latest_bizdate"
fields:
  - id
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:count_distinct_not_in:fixed

Jumlah nilai unik yang tidak ada dalam enumerasi, nilai tetap

  • fields

  • valid

    • values

  • pass

templateId: "SYSTEM:field:count_distinct_not_in:fixed"
fields:
  - gender
valid:
  values:
    - male
    - female
pass: "when = 0"

SYSTEM:field:count_not_in:fixed

Jumlah baris dengan nilai yang tidak ada dalam enumerasi, nilai tetap

  • fields

  • valid

    • values

  • pass

templateId: "SYSTEM:field:count_not_in:fixed"
fields:
  - gender
valid:
  values:
    - male
    - female
pass: "when = 0"

SYSTEM:field:count_not_in:fixed:0

Jumlah baris dengan nilai yang tidak ada dalam enumerasi adalah 0

  • fields

  • valid

    • values

templateId: "SYSTEM:field:count_not_in:fixed:0"
fields:
  - gender
valid:
  values:
    - male
    - female

SYSTEM:field:field_enum:fixed

Pemeriksaan enumerasi kustom, nilai tetap

  • fields

  • valid

    • values

  • templateParameters

    • metirc

  • pass

templateId: "SYSTEM:field:field_enum:fixed"
templateParameters:
  metric: invalid_count
fields:
  - gender
valid:
  values:
    - male
    - female
pass: "when > 0"

SYSTEM:field:all_discrete_count:fixed

Jumlah nilai status diskrit, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:all_discrete_count:fixed"
fields:
  - gender
pass: "when > 0"

SYSTEM:field:discrete_group_count:fixed

Jumlah kelompok diskrit, nilai tetap

  • fields

  • pass

templateId: "SYSTEM:field:discrete_group_count:fixed"
fields:
  - gender
pass: "when > 0"

SYSTEM:field:discrete_group_count:dynamic_threshold

Jumlah kelompok diskrit, ambang batas dinamis

fields

templateId: "SYSTEM:field:discrete_group_count:dynamic_threshold"
fields:
  - gender

SYSTEM:field:discrete_value_count:dynamic_threshold

Jumlah nilai status diskrit, ambang batas dinamis

fields

templateId: "SYSTEM:field:discrete_value_count:dynamic_threshold"
fields:
  - gender

SYSTEM:field:discrete_group_count:cycle:latest_bizdate

Jumlah kelompok diskrit, laju volatilitas dari epoch sebelumnya

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:discrete_group_count:cycle:latest_bizdate"
fields:
  - gender
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

SYSTEM:field:all_discrete_metrics:fluxdiscrete:1_7_1m_bizdate

Metrik diskrit (kelompok dan nilai), laju volatilitas 1-, 7-, dan 30-hari

  • fields

  • warn

  • fail

templateId: "SYSTEM:field:all_discrete_metrics:fluxdiscrete:1_7_1m_bizdate"
fields:
  - gender
warn: "when not between -5% and 5%"
fail: "when not between -10% and 10%"

Lampiran: Instruksi konfigurasi untuk templat sistem rentang kustom

Templat sistem rentang kustom berikut dikonfigurasi secara berbeda dari templat sistem standar dan memerlukan konfigurasi terpisah.

  • Persentase kecocokan bersyarat, rentang kustom

    rules:
      - assertion: "matched_row_percent = 0"
        filter: "id IS NULL"
  • Nilai minimum bidang, rentang kustom

    rules:
      - assertion: "anomal detection for min(income)"
  • Nilai maksimum bidang, rentang kustom

    rules:
      - assertion: "change avg last 7 days percent for max(income)"
        warn: "when > 0.1%"
        fail: "when > 0.5%"
  • Nilai rata-rata bidang, rentang kustom

    rules:
      - assertion: "change var last 30 days percent for avg(income)"
        warn: "when < -0.1%"
        fail: "when < -0.5%"
  • Jumlah bidang, rentang kustom

    rules:
      - assertion: "change 1 days ago percent for sum(income)"
        warn: "when not between -0.1% and 0.1%"
        fail: "when not between -0.5% and 0.5%"
  • Custom SQL

    assertion parameter, lihat Definisikan aturan metrik kustom.
    rules:
      - assertion: "change percent for id_not_null_count"
        id_not_null_count:
          query: "SELECT COUNT(*) AS cnt FROM tb_spec_demo WHERE dt = '$[yyyymmdd]'"
        warn: "when not between -0.1% and 0.1%"
        fail: "when not between -0.5% and 0.5%"