Skip to content

Commit ffef5c7

Browse files
authored
Add ADR-0014: Terminology shift from "decision tree" to "decision table" (CERTCC#1100)
2 parents a550b48 + c48f706 commit ffef5c7

2 files changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
status: "accepted"
3+
date: 2025-08-26
4+
---
5+
# Use "Decision Table" Instead of "Decision Tree"
6+
7+
## Context and Problem Statement
8+
9+
SSVC uses a tabular model to map combinations of decision point values to
10+
recommended actions. Historically, this model was referred to as a "decision
11+
tree" or "decision policy" with both terms being used interchangeably in
12+
documentation and tooling. While our use of "decision tree" was consistent with
13+
usage in the context of Operations Research
14+
(Wikipedia: [Decision tree](https://en.wikipedia.org/wiki/Decision_tree)),
15+
it caused confusion with the related-yet-different concept from Machine Learning
16+
(Wikipedia: [Decision tree learning](https://en.wikipedia.org/wiki/Decision_tree_learning)).
17+
Furthermore, the term "decision policy" has overloaded meanings beyond our
18+
intended usage. We want to avoid confusion on both fronts, therefore we need a
19+
new term.
20+
21+
## Decision Drivers
22+
23+
- Avoid ambiguity with the machine learning and operations research concept of
24+
"decision tree"
25+
- Use a less contentious term than "policy" as we are not dictating "capital-P
26+
Policy"
27+
- Accurately describe the underlying SSVC data structure, which is a table of
28+
decision point value combinations and outcomes
29+
- Improve clarity in documentation, tooling, and communication with
30+
practitioners
31+
- Align terminology with the actual data representations used (CSV and JSON
32+
tables)
33+
34+
## Considered Options
35+
36+
- Switch to decision framework
37+
- Switch to decision table
38+
- Switch to decision model
39+
40+
## Decision Outcome
41+
42+
Chosen option: "Switch to decision table"
43+
44+
### Rationale
45+
46+
"Decision table" accurately describes the tabular structure used by
47+
SSVC and avoids the well-established conflicting meaning of "decision tree" in
48+
machine learning and statistics.
49+
50+
We may use *decision model* for the more generic class of things to which a
51+
*decision table* belongs, but *decision table* is specific enough to make it
52+
clear exactly what our intended meaning is.
53+
54+
### Consequences
55+
56+
- Good, because the terminology now accurately reflects the underlying data
57+
model (a table mapping decision point values to outcomes)
58+
- Good, because it reduces confusion for practitioners familiar with machine
59+
learning
60+
- Bad, because some existing documentation, external references, and tooling may
61+
still use "decision tree" — these will be updated incrementally
62+
- Bad, because the change breaks consistency with prior SSVC publications and
63+
external references that use "decision tree"
64+
65+
### Confirmation
66+
67+
Documentation, code, and tooling use "decision table" as the primary term for
68+
an SSVC decision model. References to "decision tree" in the visual/hierarchical sense
69+
(i.e., tree diagrams used to illustrate a decision table) may still appear where
70+
appropriate but should be clearly distinguished from the decision table itself.
71+
72+
## More Information
73+
74+
- This change was introduced with the [SSVC v2025.9 release](https://github.com/CERTCC/SSVC/releases/tag/v2025.9).
75+
- Wikipedia's [Decision table](https://en.wikipedia.org/wiki/Decision_table) page aligns with the concept that
76+
we are trying to capture.

docs/adr/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ the decision records that have been made.
2525
- [0011 - Correspondence between Automatable v2.0.0, Value Density v1.0.0, and CVSS v4](0011-automatable-and-value-density-and-CVSSv4.md)
2626
- [0012 - SSVC Namespaces](0012-ssvc-namespaces.md)
2727
- [0013 - SSVC Project Versions](0013-ssvc-project-versions.md)
28+
- [0014 - Use "Decision Table" Instead of "Decision Tree"](0014-use-decision-table-terminology.md)
2829

2930
## Rejected Records
3031

0 commit comments

Comments
 (0)