The method in one paragraph
Start at 110. Every requirement marked not met subtracts its weight — 5, 3 or 1. Two requirements subtract 3 instead of 5 when their defined partial condition applies. The 110 requirements carry 313 points in total, so a contractor with every requirement met or justified N/A scores 110 and a contractor with every requirement not met scores -203. The calculator uses the same arithmetic: score = points earned − 203.
score = earned points − 203
See the 44 five-point controls listed in one table, grouped by family.
The only difference between the two lines is bookkeeping. The total weight is 313, so earned − 203 and 110 − deductions always produce the same number.
Version, scope and the two legal instruments
| Field | Value |
|---|---|
| Method | NIST SP 800-171 DoD Assessment Methodology |
| Version | 1.2.1, dated June 24, 2020 |
| Scoring sections | Section 5 (scoring methodology) and Annex A (scoring template) |
| Assessment types covered | Basic (contractor self-assessment), Medium and High — the methodology says scoring is the same for all three |
| Standard behind the 110 | NIST SP 800-171 Rev 2: 110 security requirements in 14 families |
| CMMC Level 2 scoring | 32 CFR 170.24 uses the same 110-requirement, 5/3/1 scale and the same two partial-credit requirements |
The DoD methodology is the document the DFARS assessment clauses link to. CMMC Level 2 scoring is a separate legal instrument at 32 CFR 170.24. The arithmetic is the same; the governance is not. A SPRS summary score and a CMMC Level 2 assessment status are different things, even when the number behind them is calculated the same way.
Where 313 comes from
| Bucket | Items | Points each | Subtotal |
|---|---|---|---|
| Fixed 5-point requirements (23 basic + 19 derived) | 42 | 5 | 210 |
| Partial-capable requirements, counted at the full 5-point deduction: 3.5.3 and 3.13.11 | 2 | 5 | 10 |
| 3-point requirements (7 basic + 7 derived) | 14 | 3 | 42 |
| 1-point requirements (remaining derived requirements) | 51 | 1 | 51 |
| 3.12.4 System Security Plan (not scored) | 1 | 0 | 0 |
| Total | 110 | 313 |
42 or 44? The fixed 5-point lists contain 42 requirements. Two more requirements, 3.5.3 and 3.13.11, deduct 5 points when they are not implemented at all and 3 points when their partial condition applies. That makes 44 requirements capable of a 5-point deduction, while only 42 sit on the fixed lists. The arithmetic is 42 × 5 + 2 × 5 + 14 × 3 + 51 × 1 = 313.
This is a common place a copied score goes wrong: folding the two partial-capable requirements into the 1-point bucket gives 42 × 5 + 14 × 3 + 54 × 1 = 306 and a floor of -196, not 313 and -203.
The 3.12.4 row is not a 1-point item. The methodology marks it NA and says its absence would result in a finding that an assessment could not be completed. That is a different failure mode from losing a point.
The two partial-credit rules, exactly
| Requirement | Fully met | Partial deduction | Full deduction |
|---|---|---|---|
| 3.5.3 Multifactor authentication | 0 | 3 when MFA is implemented for remote and privileged users but not the general user | 5 when MFA is not implemented for any users |
| 3.13.11 FIPS-validated cryptography | 0 | 3 when encryption is employed but is not FIPS-validated | 5 when encryption is not employed |
The methodology is not designed to credit partial implementation except in these built-in cases (Section 5(a) and 5(e)). 32 CFR 170.24(c)(2)(i)(B)(4) names the same two requirements. Every other requirement is met or not met; the calculator disables the Partial button on the other 108 rows for that reason.
A rollout percentage is not a partial finding by itself. The methodology's own example: if the initial rollout of 3.5.3 is 75% complete and a plan of action is still being implemented, 3.5.3 is considered not implemented. The 3-point condition is about which users have MFA, not what percentage of a project is finished.
N/A, and the one requirement that can stop an assessment
An N/A finding is not automatically a way to keep the points. The methodology's Annex A names five cases where its comment says not to subtract points:
- 3.1.12 and 3.1.13 — remote access is not permitted.
- 3.1.16 and 3.1.17 — wireless access is not permitted.
- 3.1.18 — connection of mobile devices is not permitted.
For CMMC scoring, 32 CFR 170.24(b)(3) states that an N/A finding is equivalent to the same objective being MET. Other N/A claims need a documented justification; they are not a way to skip a requirement you have not implemented. The calculator's N/A button is available on every row, but only those five rows carry the N/A ok marker.
3.12.4 (System Security Plan) has no point value in Annex A. Its absence does not cost 1, 3 or 5 points; it produces a finding that "an assessment could not be completed due to incomplete information and noncompliance with DFARS clause 252.204-7012." A missing SSP is therefore a gate, not a deduction.
How to reproduce a score by hand
- Take the 110 requirement IDs and their weights from the table below.
- Give each requirement one finding: met, not met, N/A, or — only for 3.5.3 and 3.13.11 — partial.
- Deduct 0 for met or justified N/A, 3 for the two partial cases, and the full weight for not met.
- Subtract the deductions from 110.
- Cross-check: earned points minus 203 must equal the same score.
| Requirement | Weight | Finding | Deduction |
|---|---|---|---|
| 3.1.1 Limit system access to authorized users | 5 | Not met | 5 |
| 3.5.3 Multifactor authentication | 5 | Partial (remote and privileged users only) | 3 |
| 3.8.7 Control the use of removable media | 5 | Not met | 5 |
| 3.1.3 Control the flow of CUI | 1 | Not met | 1 |
| All other 106 requirements | — | Met or justified N/A | 0 |
| Total | 14 |
Score: 110 − 14 = 96. Cross-check: earned points = 313 − 14 = 299; 299 − 203 = 96. Both routes agree.
What the CSV and JSON exports contain
The calculator has two data exports. They carry the same findings but not the same fields: the CSV includes a weight on every row, while the JSON does not. Here is the exact schema, taken from the export code the site runs.
CSV
Header: Requirement,Family,Weight,Status, followed by 110 data rows.
| Column | Example | Notes |
|---|---|---|
| Requirement | 3.5.3 Multifactor authentication (partial=3) | The requirement ID, a space, then the calculator's title. Commas inside the title are replaced with semicolons; fields are not quoted. The two partial-capable rows carry a (partial=3) suffix in the data title. |
| Family | Identification and Authentication | The family name, not the two-letter code. |
| Weight | 5 | 0 for 3.12.4. |
| Status | partial | One of met, partial, not, na, or unassessed. |
The CSV always has 110 data rows. An unanswered requirement is written as unassessed, which earns 0 points — the same arithmetic effect as not met, but a different label. There is no score, date, or method-version column; the score must be recomputed from Weight and Status.
JSON
Shape of a real export after four clicks, with every other requirement still unassessed:
{
"score": -200,
"assessed": 4,
"answers": {
"3.1.1": "not",
"3.1.3": "not",
"3.5.3": "partial",
"3.8.7": "not"
}
}
| Field | Type | Meaning |
|---|---|---|
score | number | The score the calculator displayed when the file was written. |
assessed | number | How many requirements have any status. The four-click example has 4. |
answers | object | Requirement ID → status. Only answered IDs appear; unanswered requirements are absent, not unassessed. |
There is no weight, title, family, evidence, timestamp, or schema-version field. The JSON is a snapshot of answers, not a self-contained report: to recompute the score you need /assets/data.js.
Recompute the exported score
Run this from a directory containing assets/data.js and the exported cmmc-sprs-assessment.json:
const fs = require('fs');
global.window = {};
eval(fs.readFileSync('assets/data.js', 'utf8'));
const exp = JSON.parse(fs.readFileSync('cmmc-sprs-assessment.json', 'utf8'));
const earned = window.CMMC_DATA.reduce((n, it) => {
const s = exp.answers[it.id];
return n + (s === 'met' || s === 'na' ? it.w
: s === 'partial' ? it.partial.value : 0);
}, 0);
console.log(earned - window.CMMC_SUM + 110, exp.score); // both numbers must match
The same check works by hand on the CSV: add the Weight of every row whose Status is not or unassessed, add 3 for partial on 3.5.3 or 3.13.11, then subtract the total from 110. Because the CSV includes all 110 rows, the total is complete without consulting the JSON.
Points by family
This is the same 313 points grouped by the 14 NIST SP 800-171 families. The 5-pt count includes 3.5.3 and 3.13.11, the two partial-capable requirements.
| Family | Requirements | Points | 5-pt | 3-pt | 1-pt | 0-pt | |
|---|---|---|---|---|---|---|---|
| AC | Access Control | 22 | 54 | 7 | 2 | 13 | 0 |
| AT | Awareness and Training | 3 | 11 | 2 | 0 | 1 | 0 |
| AU | Audit and Accountability | 9 | 19 | 2 | 1 | 6 | 0 |
| CM | Configuration Management | 9 | 33 | 6 | 0 | 3 | 0 |
| IA | Identification and Authentication | 11 | 27 | 4 | 0 | 7 | 0 |
| IR | Incident Response | 3 | 11 | 2 | 0 | 1 | 0 |
| MA | Maintenance | 6 | 18 | 2 | 2 | 2 | 0 |
| MP | Media Protection | 9 | 23 | 2 | 3 | 4 | 0 |
| PS | Personnel Security | 2 | 8 | 1 | 1 | 0 | 0 |
| PE | Physical Protection | 6 | 14 | 2 | 0 | 4 | 0 |
| RA | Risk Assessment | 3 | 9 | 1 | 1 | 1 | 0 |
| CA | Security Assessment | 4 | 13 | 2 | 1 | 0 | 1 |
| SC | System and Communications Protection | 16 | 42 | 6 | 1 | 9 | 0 |
| SI | System and Information Integrity | 7 | 31 | 5 | 2 | 0 | 0 |
| Total | 110 | 313 | 44 | 14 | 51 | 1 |
All 110 requirements, weights and special rules
The titles below are the calculator's labels; the weights are the values in the methodology's Annex A. 3.12.4 is the only non-scored row. The five rows marked with an N/A note are the cases Annex A names explicitly.
All 110 requirements and weights
| ID | Requirement | Family | Weight | Rule |
|---|---|---|---|---|
3.1.1 | Limit system access to authorized users, processes, devices | AC | 5 | |
3.1.2 | Limit access to permitted transactions and functions | AC | 5 | |
3.1.3 | Control the flow of CUI | AC | 1 | |
3.1.4 | Separate duties of individuals | AC | 1 | |
3.1.5 | Employ least privilege | AC | 3 | |
3.1.6 | Use non-privileged accounts for nonsecurity functions | AC | 1 | |
3.1.7 | Prevent non-privileged users from executing privileged functions; audit them | AC | 1 | |
3.1.8 | Limit unsuccessful logon attempts | AC | 1 | |
3.1.9 | Provide privacy and security notices | AC | 1 | |
3.1.10 | Session lock with pattern-hiding displays | AC | 1 | |
3.1.11 | Terminate user sessions after defined condition | AC | 1 | |
3.1.12 | Monitor and control remote access sessions | AC | 5 | N/A permitted in the circumstance named in Annex A. |
3.1.13 | Cryptographic protection of remote access sessions | AC | 5 | N/A permitted in the circumstance named in Annex A. |
3.1.14 | Route remote access via managed access control points | AC | 1 | |
3.1.15 | Authorize remote execution of privileged commands | AC | 1 | |
3.1.16 | Authorize wireless access prior to connection | AC | 5 | N/A permitted in the circumstance named in Annex A. |
3.1.17 | Protect wireless access using authentication and encryption | AC | 5 | N/A permitted in the circumstance named in Annex A. |
3.1.18 | Control connection of mobile devices | AC | 5 | N/A permitted in the circumstance named in Annex A. |
3.1.19 | Encrypt CUI on mobile devices | AC | 3 | |
3.1.20 | Verify and control connections to external systems | AC | 1 | |
3.1.21 | Limit use of portable storage on external systems | AC | 1 | |
3.1.22 | Control CUI posted on publicly accessible systems | AC | 1 | |
3.2.1 | Security awareness of risks | AT | 5 | |
3.2.2 | Role-based security training | AT | 5 | |
3.2.3 | Insider threat awareness training | AT | 1 | |
3.3.1 | Create and retain system audit logs | AU | 5 | |
3.3.2 | Ensure actions traceable to individual users | AU | 3 | |
3.3.3 | Review and update logged events | AU | 1 | |
3.3.4 | Alert on audit logging process failure | AU | 1 | |
3.3.5 | Correlate audit review, analysis and reporting | AU | 5 | |
3.3.6 | Audit record reduction and report generation | AU | 1 | |
3.3.7 | Authoritative time source for timestamps | AU | 1 | |
3.3.8 | Protect audit information and tools | AU | 1 | |
3.3.9 | Limit management of audit logging to privileged subset | AU | 1 | |
3.4.1 | Establish baseline configurations and inventories | CM | 5 | |
3.4.2 | Establish and enforce security configuration settings | CM | 5 | |
3.4.3 | Track, review, approve, log changes | CM | 1 | |
3.4.4 | Analyze security impact of changes | CM | 1 | |
3.4.5 | Access restrictions for changes | CM | 5 | |
3.4.6 | Least functionality | CM | 5 | |
3.4.7 | Restrict nonessential programs, ports, protocols, services | CM | 5 | |
3.4.8 | Application blacklisting/whitelisting policy | CM | 5 | |
3.4.9 | Control and monitor user-installed software | CM | 1 | |
3.5.1 | Identify users, processes, devices | IA | 5 | |
3.5.2 | Authenticate users, processes, devices | IA | 5 | |
3.5.3 | Multifactor authentication | IA | 5 | Partial deduction 3 (MFA for remote and privileged users only). |
3.5.4 | Replay-resistant authentication | IA | 1 | |
3.5.5 | Prevent reuse of identifiers | IA | 1 | |
3.5.6 | Disable identifiers after inactivity | IA | 1 | |
3.5.7 | Password complexity | IA | 1 | |
3.5.8 | Prohibit password reuse | IA | 1 | |
3.5.9 | Temporary passwords with immediate change | IA | 1 | |
3.5.10 | Store and transmit only protected passwords | IA | 5 | |
3.5.11 | Obscure authentication feedback | IA | 1 | |
3.6.1 | Operational incident-handling capability | IR | 5 | |
3.6.2 | Track, document, report incidents | IR | 5 | |
3.6.3 | Test incident response capability | IR | 1 | |
3.7.1 | Perform maintenance | MA | 3 | |
3.7.2 | Controls on maintenance tools and personnel | MA | 5 | |
3.7.3 | Sanitize equipment removed for off-site maintenance | MA | 1 | |
3.7.4 | Check diagnostic media for malicious code | MA | 3 | |
3.7.5 | MFA for nonlocal maintenance; terminate when done | MA | 5 | |
3.7.6 | Supervise maintenance personnel without authorization | MA | 1 | |
3.8.1 | Protect system media containing CUI | MP | 3 | |
3.8.2 | Limit access to CUI on media | MP | 3 | |
3.8.3 | Sanitize or destroy media before disposal/reuse | MP | 5 | |
3.8.4 | Mark media with CUI markings | MP | 1 | |
3.8.5 | Control access and accountability for media in transport | MP | 1 | |
3.8.6 | Crypto for CUI on digital media in transport | MP | 1 | |
3.8.7 | Control use of removable media | MP | 5 | |
3.8.8 | Prohibit portable storage without identifiable owner | MP | 3 | |
3.8.9 | Protect confidentiality of backup CUI | MP | 1 | |
3.9.1 | Screen individuals prior to access | PS | 3 | |
3.9.2 | Protect CUI during personnel actions (termination/transfer) | PS | 5 | |
3.10.1 | Limit physical access | PE | 5 | |
3.10.2 | Protect and monitor physical facility | PE | 5 | |
3.10.3 | Escort and monitor visitors | PE | 1 | |
3.10.4 | Maintain audit logs of physical access | PE | 1 | |
3.10.5 | Control physical access devices | PE | 1 | |
3.10.6 | Safeguarding at alternate work sites | PE | 1 | |
3.11.1 | Periodically assess risk | RA | 3 | |
3.11.2 | Scan for vulnerabilities | RA | 5 | |
3.11.3 | Remediate vulnerabilities | RA | 1 | |
3.12.1 | Periodically assess security controls | CA | 5 | |
3.12.2 | Develop and implement plans of action (POA&M) | CA | 3 | |
3.12.3 | Monitor security controls continuously | CA | 5 | |
3.12.4 | System Security Plan (no score; absence = assessment cannot proceed) | CA | 0 | Not scored; the SSP must exist for an assessment to proceed. |
3.13.1 | Monitor, control, protect communications at boundaries | SC | 5 | |
3.13.2 | Secure architecture and engineering principles | SC | 5 | |
3.13.3 | Separate user functionality from system management | SC | 1 | |
3.13.4 | Prevent unauthorized information transfer via shared resources | SC | 1 | |
3.13.5 | Subnetworks for publicly accessible components | SC | 5 | |
3.13.6 | Deny network traffic by default | SC | 5 | |
3.13.7 | Prevent split tunneling | SC | 1 | |
3.13.8 | Crypto to protect CUI in transit | SC | 3 | |
3.13.9 | Terminate network connections after inactivity | SC | 1 | |
3.13.10 | Establish and manage cryptographic keys | SC | 1 | |
3.13.11 | FIPS-validated cryptography | SC | 5 | Partial deduction 3 (encryption used but not FIPS-validated). |
3.13.12 | Prohibit remote activation of collaborative devices | SC | 1 | |
3.13.13 | Control and monitor mobile code | SC | 1 | |
3.13.14 | Control and monitor VoIP | SC | 1 | |
3.13.15 | Protect authenticity of communications sessions | SC | 5 | |
3.13.16 | Protect CUI at rest | SC | 1 | |
3.14.1 | Identify, report, correct system flaws timely | SI | 5 | |
3.14.2 | Protection from malicious code | SI | 5 | |
3.14.3 | Monitor security alerts and advisories | SI | 5 | |
3.14.4 | Update malicious code protection | SI | 5 | |
3.14.5 | Periodic and real-time scans | SI | 3 | |
3.14.6 | Monitor systems to detect attacks | SI | 5 | |
3.14.7 | Identify unauthorized use | SI | 3 |
What the method does and does not determine
| It determines | It does not determine |
|---|---|
| The arithmetic deduction for each finding | Whether your evidence would survive a C3PAO assessment |
| The score range: 110 down to -203 | Whether an N/A claim is legitimate; that needs documentation |
| The effect of the two partial-credit conditions | Whether a requirement can go on a POA&M — that is 32 CFR 170.21 |
| The relationship between a score and the 313-point total | Whether you hold a CMMC Level 2 status |
The next two pages apply the same weights to planning: the target-score planner finds the fewest unmet requirements to close, and the POA&M planner separates today's score from the score after listed items close.
Common scoring errors
Why do some sources say 42 weight-5 requirements while the total implies 44?
The fixed 5-point lists contain 42 requirements. Two more, 3.5.3 and 3.13.11, deduct 5 points when they are not implemented at all and 3 points when the defined partial condition applies. That gives 44 requirements capable of a 5-point deduction: 42 × 5 + 2 × 5 + 14 × 3 + 51 × 1 = 313. Folding the two partial-capable requirements into the 1-point bucket gives 42 × 5 + 14 × 3 + 54 × 1 = 306 and a floor of -196, which does not match the 313-point arithmetic or the -203 floor.
Can any requirement other than 3.5.3 and 3.13.11 get partial credit?
No. The DoD methodology defines partial deduction for only those two requirements, and 32 CFR 170.24(c)(2)(i)(B)(4) names the same two. A 75% rollout is not partial credit unless it matches the defined condition.
Does marking a requirement N/A keep its points?
Under 32 CFR 170.24(b)(3), an N/A finding is equivalent to MET in the CMMC scoring methodology. Annex A of the DoD methodology says not to subtract points for 3.1.12 and 3.1.13 when remote access is not permitted, 3.1.16 and 3.1.17 when wireless access is not permitted, and 3.1.18 when mobile device connections are not permitted. Other N/A claims need a documented justification.
Does putting a requirement on a POA&M stop the deduction?
No. The score reflects what is NOT MET on the assessment date. 32 CFR 170.24(c)(2)(i)(B)(6) says a POA&M is not a substitute for a completed requirement. POA&M completion changes the later score, not the score at assessment.
Does 3.12.4 reduce the score?
3.12.4 has no point value in Annex A. It is marked NA, not 5, 3 or 1. Its absence instead produces a finding that an assessment could not be completed due to incomplete information and noncompliance with DFARS clause 252.204-7012.
A 75% MFA rollout is in progress. Is that partial credit?
Not by itself. 3.5.3 gets the 3-point partial deduction when MFA is implemented for remote and privileged users but not the general user. The methodology's own example says a 75% rollout with a plan of action still in progress is assessed as not implemented.
Sources
- NIST SP 800-171 DoD Assessment Methodology, Version 1.2.1 (PDF) — June 24, 2020. Used for the 5/3/1 rules, the 42- and 14-item lists, the two partial-credit conditions, the N/A comments and the 3.12.4 rule. Checked 2026-10-30.
- 32 CFR 170.24 — CMMC Scoring Methodology — used for the CMMC Level 2 scoring scale, the N/A = MET treatment and the two partial-credit requirements. Checked 2026-10-30.
- 32 CFR 170.21 — Plan of Action and Milestones requirements — used for the POA&M eligibility boundary. Checked 2026-10-30.
- DFARS 252.204-7019 and 252.204-7020 (current clause text) — the clauses that link to the v1.2.1 methodology and require a current assessment. Checked 2026-10-30.
- NIST SP 800-171 Rev 2 — the 110-requirement standard the methodology scores. Checked 2026-10-30.
All external sources above were opened on 2026-10-30. The weights in the table match assets/data.js and the arithmetic in VERIFICATION.md: 110 items, 313 points, floor -203.
Related: target-score planner · POA&M planner · what the score range means · how to run the assessment