---
title: "SAT/ACT Concordance Rules"
slug: "satact-concordance-rules"
updated: 2026-06-05T17:40:59Z
published: 2026-06-05T17:40:59Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.technolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# SAT/ACT Concordance Rules

Use [translation codes](/v1/docs/translation-codes) and [rules](/v1/docs/rules-overview) to calculate a record's highest test score across different test types.

Many institutions use this approach, but calculation methods and priorities vary. Use this article to create a high score calculation process and customize it for your database.

## Step 1: Establish concordance translation codes

ACT and College Board periodically produce ACT/SAT concordance tables to show how scores on each test compare. You can find the latest concordance tables directly from [College Board](https://satsuite.collegeboard.org/higher-ed-professionals/score-reports/score-comparisons/sat-act) or [ACT](https://www.act.org/content/act/en/products-and-services/the-act/scores/act-sat-concordance.html).

Use the [Translation Code Import Source Format](/v1/docs/translation-code-import-source-format) documentation to prepare and import the concordance data with the blank template provided.

For Revised SAT to ACT conversion, use the `minValue` and `maxValue` columns to establish the range of SAT Total scores that translate to a given ACT Composite export value:

![Revised SAT to ACT translation code import example](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Convert_SATR-ACT_with%20Header%281%29.png)

For ACT to Revised SAT conversion, each ACT Composite score translates to a single SAT Total score in that range. Reference the official concordance tables and use the indicated single score point as the SATR export value:

![ACT to Revised SAT translation code import example](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Convert_ACT-SATR_with%20Header.png)

The official concordance tables also provide equivalencies between SAT Math and ACT Math, and between SAT ERW and ACT English+Reading. Follow this pattern for each score component or combination that needs a conversion in your database.

### Translation key conventions

Use the following translation key naming conventions to align with [prebuilt concordance rules](/v1/docs/satact-concordance-rules#calculation-rules). The pattern is `{Source Score}-{Destination Score}`. If your translation keys use different conventions, edit the rules to select the intended translation.

| Translation key | Description |
| --- | --- |
| ACT-SAT | Translate ACT Composite to SAT I (1600 scale) Total |
| ACT-SAT2400 | Translate ACT Composite to SAT I (2400 scale) Total |
| ACT-SATR | Translate ACT Composite to Revised SAT Total |
| SAT2400-ACT | Translate SAT I CR+M+W (2400 scale) to ACT Composite |
| SAT2400-SATR | Translate SAT I CR+M+W (2400 scale) to Revised SAT Total |
| SAT-ACT | Translate SAT I CR+M (1600 scale) to ACT Composite |
| SAT-SATR | Translate SAT I CR+M (1600 scale) to Revised SAT Total |
| SATR-ACT | Translate Revised SAT CR+M to ACT Composite |
| SATR-SAT | Translate Revised SAT CR+M to SAT I (1600 scale) |
| SATR-SAT2400 | Translate Revised SAT CR+M to SAT I (2400 scale) |

After you [import the translation codes](/v1/docs/translation-code-import-source-format#uploading-a-file-to-upload-dataset) for the relevant test concordances, build the high score calculation rules.

## Step 2: Create a destination field

Create the field that stores the record's high score. Create a unique field for each calculation rule you use. Most databases need only one high score field.

1. Go to **Database** → **Fields**.
2. Select **New Field**.
3. Configure the following settings:
  - **Scope Category**: Records
  - **Scope**: Person
    - The example rules in this article use the **Person** base to set a person-scoped field. To set an application-scoped field, rebuild the rule on the Application base.
  - **ID**: Enter a unique field ID, such as `high_score_ACT`.
  - **Name**: Enter a clear, descriptive name.
  - **Field Type**: Free Text
  - On the Advanced Settings tab, set **Data Type** to Int.
4. Select **Save**.

## Step 3: Configure high score calculation rules

Use Field-type rules to calculate and store each record's highest test score. These rules use the translation codes created earlier to convert scores to the same scale before selecting the highest value. Import the Suitcase example to get started.

> [!NOTE]
> 💼 Try a Slate example
> 
> Use [Suitcase](/v1/docs/suitcase-briefcase) to import **High Score Concordance Rules for SAT/ACT**:
> 
> ```SuitcaseID
> c1193b7b-04f2-446e-95da-058566c9e244:slate-examples
> ```

These rules use the following configuration:

1. **Name**: Convert to {Destination Test Type} (specify use of Superscore or Highest)
2. **Base**: Person
3. **Type**: Field
4. **Trigger**: Upon Update (Deferred)
5. **Folder**: Test Scores / {Subfolder for SAT or ACT}
6. **Exclusivity Group**: None
7. **Status**: Inactive

### Methods of calculation

Score conversion rules vary by score type, superscoring method, single-sitting method, and destination test type. For example, if the resulting high score should be expressed on the ACT scale, choose a **Destination: ACT** option.

Use the following table to choose a conversion method.

| Rule name | Translations used | Superscoring | Destination |
| --- | --- | --- | --- |
| Convert to ACT (Highest CR+M+W/SATR, Superscore ACT) | SAT2400-ACT, SATR-ACT | ACT only | ACT |
| Convert to ACT (Highest CR+M+W/SATR/ACT) | SAT2400-ACT, SATR-ACT | None | ACT |
| Convert to ACT (Superscore CR+M+W/SATR, Highest ACT) | SAT2400-ACT, SATR-ACT | SAT only | ACT |
| Convert to ACT (Superscore CR+M+W/SATR/ACT) | SAT2400-ACT, SATR-ACT | SAT and ACT | ACT |
| Convert to ACT (Highest CR+M/SATR, Superscore ACT) | SAT-ACT, SATR-ACT | ACT only | ACT |
| Convert to ACT (Highest CR+M/SATR/ACT) | SAT-ACT, SATR-ACT | None | ACT |
| Convert to ACT (Superscore CR+M/SATR, Highest ACT) | SAT-ACT, SATR-ACT | SAT only | ACT |
| Convert to ACT (Superscore CR+M/SATR/ACT) | SAT-ACT, SATR-ACT | SAT and ACT | ACT |
| Convert to SAT (Highest CR+M/SATR, Superscore ACT) | ACT-SAT, SATR-SAT | ACT only | SAT I (1600) |
| Convert to SAT (Highest CR+M/SATR/ACT) | ACT-SAT, SATR-SAT | None | SAT I (1600) |
| Convert to SAT (Superscore CR+M/SATR, Highest ACT) | ACT-SAT, SATR-SAT | SAT only | SAT I (1600) |
| Convert to SAT (Superscore CR+M/SATR/ACT) | ACT-SAT, SATR-SAT | SAT and ACT | SAT I (1600) |
| Convert to SAT2400 (Highest CR+M+W/SATR, Superscore ACT) | ACT-SAT2400, SATR-SAT2400 | ACT only | SAT I (2400) |
| Convert to SAT2400 (Highest CR+M+W/SATR/ACT) | ACT-SAT2400, SATR-SAT2400 | None | SAT I (2400) |
| Convert to SAT2400 (Superscore CR+M+W/SATR, Highest ACT) | ACT-SAT2400, SATR-SAT2400 | SAT only | SAT I (2400) |
| Convert to SAT2400 (Superscore CR+M+W/SATR/ACT) | ACT-SAT2400, SATR-SAT2400 | SAT and ACT | SAT I (2400) |

### Configuring the rule

Edit the rule that you intend to activate. The imported rules use the following baseline configuration:

1. **Name**: Convert to {Destination Test Type} (specify use of Superscore or Highest)
2. **Base**: Person
3. **Type**: Field
4. **Trigger**: Upon Update (Deferred)
5. **Folder**: Test Scores / {Subfolder for SAT or ACT}
6. **Exclusivity Group**: None
7. **Status**: Inactive when first imported from the suitcase

**Filters**: The rules contain no filters and, once activated, apply to all person records. Add filters to narrow the records considered for a high score, such as records with an active-period application.

> [!WARNING]
> 📝 Note
> 
> The imported rules do not include filters that limit results to records with at least one verified ACT, SAT I, or Revised SAT test score. Those filters could prevent the rule from clearing the high score value if the only qualifying test score changes to non-verified, such as a discrepancy status, or is removed after the value is initially set.

**Action**: The rules use the following configuration:

1. **Field**: Select the destination field where the resulting calculation should be stored.
2. **Action**: Replace Values from Formula
3. **Exports**: The example rules handle the calculation in a single subquery export named `value`. This export has nested layers that vary by calculation method, but the general approach is:
  1. The top-level subquery returns the highest value from the already converted scores.
  2. Nested subqueries calculate the score values for each score type before conversion.
  3. For each test type, scores that are not already in the destination type pass through the appropriate translation code. Scores already in the destination type are calculated but not converted.
  4. For score types that use superscoring, an additional nested layer returns the highest value across all test sittings before the score moves to the computed score layer.
4. **Formula**: Because the calculation is handled in the export, the formula is simple: `@value`.

### Testing and activating high score rules

Before activating, set the intended rule to Preview. Then use **Preview Actions** to view the result of your rules against specific records.

To test the rule at a larger scale, provision a test environment, activate the rule there, and run a **Retroactive Refresh**:

1. Select **New Query** from the new high score calculation rule.
2. Add at least one export, and select **Run Query**.
3. From the query **Output**, select **Retroactive Refresh**, then select **Export**. A confirmation dialog appears with a count of records that will be queued for the rules if this action is taken.
4. Select **Submit**, then confirm **OK**.

Confirm that the result is correct for records with different types and combinations of tests.

When the outcome is correct, return to production and set the rule's status to **Active**. Use Retroactive Refresh again to apply the calculation to existing production records.

## Additional customization options

This section covers minor changes to high score calculation rules. Before modifying a rule, copy it so you can keep an intact version of the original.

Each rule selects the maximum value from three unioned statements. In all rules, the first SELECT statement generates the ACT score, the second generates the SAT I score, and the third generates the Revised SAT score. For example:

[![SQL example for a high score calculation rule](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/sql(2).png)](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/sql(2).png)

### Including self-reported test scores

To calculate high scores with both self-reported and verified scores, make the following changes to the rule.

If your calculation uses the highest total ACT score rather than the superscored total, change this section:

```sql
select [record], [total] as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'ACT') and ([rank_confirmed] = 1)
```

to:

```sql
select [record], [total] as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'ACT') and ([rank_overall] = 1)
```

`[rank_confirmed]` excludes self-reported test scores. `[rank_overall]` returns the highest total among self-reported and verified scores. Updating the SQL to use this column considers the highest ACT total among any self-reported or verified scores associated with the record.

For superscored ACT, all Revised SAT, and all SAT I scores, change `and ([confirmed] = 1)` to `and (isnull([confirmed], 1) = 1)`. For calculations that use the highest ACT score, this appears twice in the SQL: once for SAT I and once for Revised SAT. For calculations that use the superscored ACT score, this appears three times: ACT, SAT I, and Revised SAT.

`[confirmed]` is set to `1` for verified scores and is null for self-reported scores. A value of `0` indicates a discrepancy score and should not be used in the calculation. The SQL `isnull([confirmed], 1)` replaces a null value with `1`, which allows both self-reported and verified scores to be considered.

Making these changes for the SQL shown earlier results in this SQL code:

```sql
select x.[record], null as [prompt], max(x.[score]) as [value]
from
(
select [record], [total] as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'ACT') and ([rank_overall] = 1)
union all
select [record], (select [export] from dbo.getTranslationExportTable('SAT2400-ACT', max([score1] + [score2] + [score3]))) as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'SATI') and (isnull([confirmed], 1) = 1)
group by [record]
union all
select [record], (select [export] from dbo.getTranslationExportTable('SATR-ACT', (max([score1] + [score2])))) as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'SATR') and (isnull([confirmed], 1) = 1)
group by [record]
) x
group by x.[record]
```

### Using different concordance values

You may calculate a high score using institutional values instead of the College Board concordance table.

You can customize export values for the translation codes you created or imported. Keep Export Value 1 intact for the standard concordance value, and use Export Value 2 through Export Value 5 for institutional concordance values.

For example, if you are converting scores to ACT, and your institutional concordance from SAT I (2400) to ACT differs from the College Board concordance table, add an Export Value 2 to each SAT2400-ACT translation code with your institutional values.

> [!WARNING]
> 📝 Note
> 
> If you use a custom export value, enter a value for each translation code in the key. If a translation code does not have a value for the selected export column, the result is blank.

To use a custom export value in the rule, update the function call for `dbo.getTranslationExportTable`.

Instead of:

```sql
(select [export] from dbo.getTranslationExportTable('SAT2400-ACT', max([score1] + [score2] + [score3]))) as [score]
```

Change this to:

```sql
(select [export2] from dbo.getTranslationExportTable('SAT2400-ACT', max([score1] + [score2] + [score3]))) as [score]
```

You can also use `[export3]`, `[export4]`, or `[export5]` in this function.

In each high score calculation rule, two of the three test types use translation codes to convert the score because the third score is already the destination score type. You can update one or both conversion statements to use different export values. If you use the standard concordance table for one test type but not another, update only the SELECT statement for the non-standard concordance.

For example, using the same SQL code displayed earlier:

```sql
select x.[record], null as [prompt], max(x.[score]) as [value]
from
(
select [record], [total] as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'ACT') and ([rank_confirmed] = 1)
union all
select [record], (select [export2] from dbo.getTranslationExportTable('SAT2400-ACT', max([score1] + [score2] + [score3]))) as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'SATI') and ([confirmed] = 1)
group by [record]
union all
select [record], (select [export] from dbo.getTranslationExportTable('SATR-ACT', (max([score1] + [score2])))) as [score]
from [test]
where ([record] in (select [id] from @inserted)) and ([type] = 'SATR') and ([confirmed] = 1)
group by [record]
) x
group by x.[record]
```

In this example, the SQL uses the custom concordance table stored in Export Value 2 for SAT2400-ACT and the standard concordance values stored in Export Value 1 for SATR-ACT.
