How does element density vary across frameworks?

Per-unit density, strict and with examples

Cross-framework
Per-unit element density across the framework corpus, strict and with examples. The density-spread finding, read as a comparison of design philosophy rather than a quality ranking.

The question

How many elements does each framework specify per top-level organizing unit, and how does that count change when prose-encoded examples are included alongside numbered standards?

Why it matters

Per-unit density is easy to mis-read as a quality ranking. It isn’t one. What the figure measures is how granular each framework’s stewards chose to be when they decided what work, what knowledge, or what competence belongs to a single organizing unit. NICE specifies tasks, knowledge statements, and skill statements per work role at one level of granularity. DigComp specifies competence areas at a different level, designed for citizen self-assessment. Both are valid specifications answering different questions.

The result

Table 1: 14 frameworks, ranked by elements per organizing unit (with examples)
Framework Type Jurisdiction Units Strict elements With examples Per unit (strict) Per unit (with ex.)
DCWF v5.1 Workforce US 74 2945 4052 39.8 54.8
NICE v2.2.0 Workforce US 53 2211 2225 41.7 42.0
DigComp 3.0 Pedagogy EU 26 362 884 13.9 34.0
ECSF v1 Workforce EU 12 374 390 31.2 32.5
CyBOK v1.1.0 Pedagogy UK 21 119 596 5.7 28.4
OTCCF v1.1 Workforce SG 61 1612 1612 26.4 26.4
CCSSF 2022 Workforce CA 59 1148 1345 19.5 22.8
CyQUAL 1.2.0 Workforce CZ 161 2488 3340 15.5 20.7
CSTA PK-12 CS (2026) Pedagogy US 53 331 983 6.2 18.5
SCyWF 1.5 Workforce SA 81 1419 1419 17.5 17.5
CSTA K-12 CS (Rev 2017) Pedagogy US 25 120 258 4.8 10.3
SFIA 9 Workforce global 147 672 821 4.6 5.6
ACM/IEEE CSEC2017 Pedagogy global 8 38 40 4.8 5.0
Cyber.org K-12 v1.0 Pedagogy US 116 123 492 1.1 4.2
Figure 1: Per-unit element density across the framework corpus. Bars show the with-examples figure. The vertical tick on each bar marks the strict count for the same framework.

What this tells us

Three observations carry weight.

The spread is real and large

With examples included, the spread runs at roughly 13 to one (DCWF v5.1 at 54.8 against Cyber.org K-12 v1.0 at 4.2). With examples excluded, the strict-count spread runs at roughly 38 to one (NICE v2.2.0 at 41.7 against Cyber.org K-12 v1.0 at 1.1). Either way, the gap merits an explanation.

The strict figure moved for a structural reason worth naming. NICE’s element counts did not change. Its per-unit denominator did, because the 11 competency areas added in v2.2.0 count as organizing units alongside the 42 work roles.

The spread reflects design philosophy

NICE was built to be operationally specific. It supports workforce planning at the position-description level for the United States federal government, and the granularity is the point. DigComp was built for citizen self-assessment, so the unit of specification is necessarily coarser. SFIA at 5.6 sits near the low end of this ranking, which follows from counting per skill rather than per role. The middle of the distribution is held by the three national workforce frameworks added in v0.3.0: OTCCF v1.1 at 26.4, CCSSF 2022 at 22.8, CyQUAL 1.2.0 at 20.7.

The strict-vs-with-examples gap is informative on its own

Frameworks that encode pedagogical detail in prose clarification statements (Cyber.org K-12, CSTA) widen when those Examples are folded in. The 8 workforce frameworks move too, through a different mechanism. None of them carry Cyber.org/CSTA-style Clarification-statement Examples. All of them except OTCCF v1.1 and SCyWF 1.5 carry Subpoints, enumeration lists (“including X and Y”) parsed out of a single numbered statement’s own text, and the gap that produces varies enormously by framework, from NICE’s negligible 14 through CCSSF’s 197 and CyQUAL’s 852 to DCWF’s 1,107. DCWF alone now carries the corpus’s largest strict-to-with-examples gap of any kind, a fact only visible after a same-day parser fix (2026-08-14) corrected a dead introducer pattern that had been silently invisible to most of DCWF’s “(e.g., …)”-style enumerations. Read the gap as a proxy for how much of a framework’s real content sits inside prose rather than at the level of its numbered structure – pedagogical scaffolding for Cyber.org/CSTA, embedded enumeration for the workforce frameworks.

What this doesn’t tell us

Density is not quality

A framework with high per-unit density isn’t better-specified than one with low per-unit density. The denominator (organizing units) is a design choice, not a corpus property, and different denominators rerank the list.

Strict counts undercount frameworks that encode detail in prose

The roughly 38 to one strict spread overstates the specificity gap because it ignores the prose-encoded detail in the pedagogy frameworks. Use the with-examples figure when the comparison crosses the workforce-pedagogy boundary.

Cross-framework comparisons require shared denominators

“Top-level organizing unit per framework” is the denominator used here. A NICE work role and a DigComp competence area aren’t the same kind of object, and treating them as commensurable for the purpose of a single ratio is itself an analytic move worth examining before leaning on the number.

Reproduce this

library(cybedtools)
library(dplyr)

framework_summary |>
  arrange(desc(elements_per_organizing_unit_with_examples)) |>
  select(
    framework_name,
    organizing_unit_count,
    element_count_strict,
    element_count_with_examples,
    elements_per_organizing_unit_strict,
    elements_per_organizing_unit_with_examples
  )

The framework_summary tibble ships with the package as a lazy-loaded data object. It is built from the canonical pipeline run documented in data-raw/build-framework-summary.R and tagged at each release.

Back to top