Skip to main content
Skip table of contents

Configure the Confidentiality Rule

To configure the confidentiality rule, you need to use the method command in SuperADMIN:

  1. Create a new method, give it a name and ID, and specify whether the method is mandatory or a table method (typically, you will want to configure the method as mandatory, so that it is always applied; table methods are only for use in SuperCROSS):

    CODE
    method addmethod <method_id> <type> <display_name>
  2. Add the "confidentialityrule" module to your method:

    CODE
    method <method_id> adddcplugin <dc_plugin_id> confidentialityrule

    The module must be located in the same directory as the SuperSERVER executable (typically C:\Program Files\STR\SuperSERVER SA if you installed to the default location).

  3. Set the properties of your method. This specifies which rules you want to use, and the parameters for those rules:

    CODE
    method <method_id> <dc_plugin_id> addproperty <property_name> <property_value>

    Depending on the rule, you may need to set multiple properties.

  4. Apply your method to the dataset:

    CODE
    cat <dataset_id> addmethod <method_id>

If you want to see the effect of the various rules, see this page for an example of macro that creates methods for each of the available rules and then creates multiple copies of the sample retail banking dataset, each with a different rule applied to it. This can be used to demonstrate how each rule affects the cross tabulation results.

Rounding Rules

0-3 Rounding

GROOVY
method addmethod "0-3" mandatory "Randomly round values between 0 and 3"
method "0-3" adddcplugin confrule confidentialityrule
method "0-3" confrule addproperty RULESET "0-3 Rounding" 
cat bank addmethod "0-3"

These instructions:

  • Create a mandatory method with the ID of 0-3 and the display name Randomly round values between 0 and 3.
    • In this case, both the ID and the display name are enclosed in quotes because they contain spaces.
    • The ID is what you will use in subsequent statements to refer to this method. It can be any value you like as long as it is a unique ID.
    • The display name is optional (you can omit it and the ID will be used instead).
  • Add the confidentiality module to the method.
    • When adding the module, you need to set a plugin ID. In this case it is confrule but you can use any value you like, as long as it is unique within the scope of the method.
  • Add the 0-3 rounding rule to the method.
  • Apply the method to the sample retail banking dataset.

Random Rounding

GROOVY
method addmethod RandomRounding mandatory "Random Rounding"
method RandomRounding adddcplugin confrule confidentialityrule
method RandomRounding confrule addproperty RULESET "Random Rounding"
cat bank addmethod RandomRounding

These instructions:

  • Create a mandatory method with the unique ID RandomRounding and the display name Random Rounding.
  • Add the confidentiality module to the method.
  • Add the Random Rounding rule to the method.
  • Apply the method to the sample retail banking dataset.

1-4 Rounding

GROOVY
method addmethod "1-4" mandatory "Randomly round cell values between 1 and 4"
method "1-4" adddcplugin confrule confidentialityrule
method "1-4" confrule addproperty RULESET "1-4 Rounding"
cat bank addmethod "1-4"

These instructions:

  • Create a mandatory method with the unique ID 1-4 and the display name Randomly round cell values between 1 and 4.
  • Add the confidentiality module to the method.
  • Add the 1-4 Rounding rule to the method.
  • Apply the method to the sample retail banking dataset.

Graduated Rounding

GROOVY
method addmethod GraduatedRounding mandatory "Graduated Rounding"
method GraduatedRounding adddcplugin confrule confidentialityrule
method GraduatedRounding confrule addproperty RULESET "Graduated Rounding"
cat bank addmethod GraduatedRounding

These instructions:

  • Create a mandatory method with the unique ID GraduatedRounding and the display name Graduated Rounding.
  • Add the confidentiality module to the method.
  • Add the Graduated Rounding rule to the method.
  • Apply the method to the sample retail banking dataset.

Cell Suppression Rules

Top Contributors

GROOVY
method addmethod "1,90" mandatory "Conceal if one contributor is 90% or more"
method "1,90" adddcplugin confrule confidentialityrule
method "1,90" confrule addproperty RULESET "NK(1,90)"
method "1,90" confrule addproperty TOPN "1"
cat bank addmethod "1,90"

These instructions:

  • Create a mandatory method with the unique ID 1,90 and the display name Conceal if one contributor is 90% or more.
  • Add the confidentiality module to the method.
  • Add cell suppression rules, such that a cell will be suppressed if 1 contributing value is 90% or more of the total cell value.

    By default, NULL values do not count as contributors to the cell.

  • Apply the method to the sample retail banking dataset.

Frequency

GROOVY
method addmethod F50 mandatory "Conceal cells with 50 contributors or fewer"
method F50 adddcplugin confrule confidentialityrule
method F50 confrule addproperty FREQ "true"
method F50 confrule addproperty RULESET "FREQ(50)"
cat bank addmethod F50

These instructions:

  • Create a mandatory method with the unique ID F50 and the display name Conceal cells with 50 contributors or fewer.
  • Add the confidentiality module to the method.
  • Add cell suppression rules, such that a cell will be suppressed if the number of contributors is 50 or fewer.

    By default, NULL values do not count towards the number of contributors to the cell.

  • Apply the method to the sample retail banking dataset.

By default, the frequency rule will use the value of the FREQ cube (a count of the number of contributors) to work out whether to conceal the results. However, it also has an optional second parameter where you can specify a different cube to use when determining whether to conceal the results. For example, in some situations you might choose to conceal based on the RECORD_COUNT cube (which calculates the number of records contributing to a result, including any records with null values). See Record Count for an example of this configuration.

Threshold

GROOVY
method addmethod T-1000 mandatory "Conceal cell if value is less than or equal to 1000"
method T-1000 adddcplugin confrule confidentialityrule
method T-1000 confrule addproperty RULESET "THRESHOLD(1000)"
cat bank addmethod T-1000

These instructions:

  • Create a mandatory method with the unique ID T-1000 and the display name Conceal cell if value is less than or equal to 1000.
  • Add the confidentiality module to the method.
  • Add cell suppression rules, such that a cell will be suppressed if the cell value is less than or equal to 1000.

  • Apply the method to the sample retail banking dataset.

Configure the Cell Suppression String

Any suppressed cells will be replaced with a confidentiality string. By default this is ..C, but you can change this to a different string as follows:

Replace the Cell Value with 0

As an alternative, you can replace the cell value with 0. This ensures that users cannot tell the difference between a true 0 and a suppressed cell.

To make this change, set the following property in SuperADMIN:

GROOVY
method  <method_id> <dc_plugin_id> addproperty ZeroSuppressCells TRUE

This property can be used with any of the cell suppression rules. For example, if you configured the threshold rule using the example above, you would use the following command:

GROOVY
method T-1000 confrule addproperty ZeroSuppressCells TRUE
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.