Compound and nested codes build new codes from the ones in your data, so a model can tell apart concepts that overlap.
To open the editor, click the Compound & Nested Codes icon (a forked arrow) on the Codes tab, or Manage Derived Codes in Advanced Options. It has a tab for each kind. Set up your rules, then click Apply & Rebuild to rebuild the model with them. An Active badge on the Manage Derived Codes button shows that derived codes are in use.

A_B_Derived.A compound code is present on a line when both of its codes are present (any value above 0). Like the other codes made here, it is always 0 or 1, even when the Codes tab uses numeric values.
With the isolation strategy Exclusive Breakdown (the default), A and B are split into parts that never overlap:
| Line | A | B | A_Prime | B_Prime | A & B |
|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 0 | 0 |
| 2 | 0 | 1 | 0 | 1 | 0 |
| 3 | 1 | 1 | 0 | 0 | 1 |
| 4 | 0 | 0 | 0 | 0 | 0 |
In the model, A and B are replaced by A_Prime, B_Prime, and the compound code. The connections among those three (A′–B′, A′–A & B, and B′–A & B) are masked, so a co-occurrence of A and B is counted once, by the compound code, and not again as a connection between its parts. A masked connection is left out everywhere, including between different lines in the same window.
If a code is in more than one compound code (A & B and A & C), it has one prime code: A_Prime is the lines with A and neither B nor C.
Sets saved with the older Additive with Masking strategy keep A and B as they are, add the compound code, and mask the connections among all three. The editor still shows that option for those sets so you can switch them to Exclusive Breakdown.

The Nested Subcodes tab lists your codes, like the Codes tab.
A code with subcodes is split. In the model it is replaced by its subcodes and a residual code, A_Residual, for the lines with A but none of its subcodes. The residual is listed first under its parent; click its name to rename it.
| Line | A | B | C | A_Residual |
|---|---|---|---|---|
| 1 | 1 | 1 | 0 | 0 |
| 2 | 1 | 0 | 0 | 1 |
| 3 | 1 | 0 | 1 | 0 |
| 4 | 0 | 1 | 0 | 0 |
Here B and C are nested under A. The connections between the residual and each subcode are masked. The subcodes can still connect to each other and to every other code.
A set saved with nesting the editor no longer allows (more than one level, or a subcode under two parents) opens one level deep, with a note saying what moved.
The new codes are added to your data as columns, so the editor won't apply a rule that would clash. It explains what to fix if: