Skip to content
Rubric SCGR1/1.0 Thresholds not calibrated 29 Aug 2026
Sovereign Circuit · Grading Rubric

You cannot hash an adjective.

The attestation protocol makes it impossible to move your number after seeing the other side's number. That is worth nothing if the two sides are pricing different described objects — and by default they are, because the industry standard grades condition with words like minor scratches. This rubric never asks for an adjective. It asks for counts and instrument readings, and derives the grade.

Version
SCGR1/1.0
Axes
F · C · S
Fields
66
rubric_hash
91ffd026…a336f79
1 · The problem

Two honest inspectors, two different grades.

R2v3 is the certification serious refurbishing facilities actually hold. Its equipment categorization sorts cosmetic condition into nine bands using phrases like minor scratches, light scratches and scratches. The published analysis of the standard's own second draft says the quiet part out loud: those terms "do not have well-defined status."

So a commitment scheme built on "Used Good, I'd say" commits to nothing. Both parties can seal a grade, reveal it, and still be describing different machines. The cryptography is sound and the input is mush.

The move

Never collect the category. Collect counts against defined thresholds and readings taken off the machine, then derive the category from them. The adjective becomes an output — reproducible, and arguable one line at a time.

What this does not fix

It does not make grading objective. Someone still decides whether that mark is a scratch or a smudge, and whether it is 9mm or 11mm. What changes is that the remaining judgement calls become individually contestable instead of bundled into one unfalsifiable letter, and a dispute becomes answerable with a ruler instead of an argument. That is a real improvement and it is not the same thing as objectivity. Section 9 is the honest list of what is still unresolved.

2 · Three axes

Two adopted verbatim. One that R2v3 does not have.

F

Function

F0 – F6

Adopted verbatim from R2v3 REC. Does it work, and how completely was that verified.

C

Cosmetic

C0 – C9

Adopted verbatim from R2v3 REC — but derived from counts here, not from adjectives.

S

Sovereign

S0 – S4

New. Can this machine be defended. Nothing in R2v3 grades this at all.

Because F and C are unmodified, a Sovereign Circuit grade is legible to any R2-certified facility without translation. F5/C6/S3 reads as "Refurbished, Used Excellent" to a buyer who has never heard of this program, and adds a third letter they can ignore.

S is the axis that decides placement. R2v3 grades whether a machine works and how it looks. It says nothing about whether it has a hardware root of trust, whether its firmware still receives fixes, or whether its DMA-capable ports can be shut. For a program whose whole premise is placing used hardware inside a security envelope, that is the thing that matters most — and the standard is silent on it.

3 · The observation sheet

66 fields, and nothing outside the registry.

The registry is hashed into rubric_hash, so the sheet in the inspector's hand is provably the sheet the grade was derived from. Two field classes, and the distinction is not cosmetic — it decides what happens when two parties disagree.

M

Machine-read

SMART counters, battery capacity, TPM version, test-suite results. Read off the device. If two parties report different values, the round voids — see section 7.

H

Human-observed

Counts of visible defects, presence of damage, completeness. Tolerated within a stated band, because two careful people can look at the same scuff and count differently.

3.1 Measurement conditions

Counts are not reproducible unless the conditions are fixed.

Ambient
≈500 lux diffuse, no direct specular source
Distance
50 cm, unaided vision, corrective lenses permitted
Chassis
Unpowered; lid closed for the top surface, 90° for the interior
Display
Powered, full-white then full-black field
Dents
Widest dimension of the deformation, not the discoloration around it
Scratches
Longest continuous run; one crossing a seam counts once
Hinge play
Lid at 90°, deflection at the top edge under light pressure

A defect qualifying at more than one threshold is counted at every threshold it meets. A 30mm scratch increments both scratches_ge_10mm and scratches_ge_25mm.

3.2 Registry

The tol column is the largest difference between two independent observers the rubric will treat as two careful people looking at the same unit. It is not a claim that differences inside it are meaningless. Class M fields have no tolerance.

FieldClassTypeTolDefinition
Cosmetic — visible condition
unusedHbool—Never placed into service
packagingHenum—none | generic | original
restored_to_like_newHbool—Cosmetically repaired, no blemishes
warranty_attachedHbool—Program warranty issued with unit
cleaned_labels_removedHbool—Cleaned, non-original labels off
dents_ge_2mmHint1Deformations >=2mm in any dimension
dents_ge_6mmHint0Deformations >=6mm ('heavy')
scratches_ge_10mmHint2External scratches >=10mm long
scratches_ge_25mmHint1External scratches >=25mm long
discolored_zones_ge_10mmHint1Faded/discolored areas >=10mm
label_residue_zonesHint1Adhesive or tag residue areas
display_scratches_ge_5mmHint1Panel scratches >=5mm, white field
display_delaminationHbool—Coating or bonding separation
keys_missingHint0Absent keycaps
keys_legend_wornHint2Keycaps with illegible legends
housing_crackedHbool—Any through-crack in the housing
hinge_damagedHbool—Hinge bent, seized or detached
hinge_play_mmHint1Lid deflection at 90 degrees, mm
latch_brokenHbool—Latch non-functional
missing_partsHlist—Bezels, feet, covers, panels, keys
critical_parts_missingHbool—Parts required to operate
Functional — bench results
postsMbool—Completes power-on self test
all_hardware_passMbool—Full hardware test suite
key_functions_passMbool—R2v3 F3 key-function test set
ports_totalMint0Count of external ports
ports_failedMint0Ports failing loopback or device test
wifi_passMbool—Associates and passes throughput test
bt_passMbool—Pairs and sustains a link
audio_passMbool—Output and input verified
camera_passMbool—Captures at rated resolution
trackpad_passMbool—Tracks across full surface
ram_test_passMbool—Full-pass memory test, no errors
thermal_throttle_observedMbool—Throttled under 15-min load
display_dead_pixelsMint0Permanently unlit subpixels
display_stuck_pixelsMint0Permanently lit subpixels
oem_parts_onlyHbool—All replacements OEM original
os_licensed_configuredMbool—Licensed OS loaded, configured
software_test_results_availableMbool—Test log retained
Storage and battery — instrument readings
storage_presentMbool—Storage device installed
smart_5Mint0Reallocated sector count
smart_187Mint0Reported uncorrectable errors
smart_188Mint0Command timeout
smart_197Mint0Current pending sector count
smart_198Mint0Offline uncorrectable
power_on_hoursMint0SMART 9
battery_presentMbool—Battery installed
battery_design_mwhMint0Rated capacity when new, mWh
battery_full_charge_mwhMint0Present full-charge capacity, mWh
battery_cyclesMint0Reported charge cycles
Sovereign — protectability
tpm_versionMenum—none | 1.2 | 2.0
secure_boot_capableMbool—Firmware supports Secure Boot
secure_boot_enabledMbool—Secure Boot currently enforced
uefi_not_legacyMbool—Boots UEFI, not legacy BIOS/CSM
iommu_presentMbool—VT-d / AMD-Vi present and enabled
dma_ports_lockableMbool—DMA-capable ports can be disabled
firmware_latest_appliedMbool—Latest vendor firmware applied
cpu_microcode_currentMbool—Current microcode revision
vendor_support_activeMbool—Vendor still issues firmware fixes
supported_os_availableMbool—A vendor-supported OS will run
full_disk_encryptionMbool—FDE enabled at placement
wipe_standardMenum—none | clear | purge (NIST SP 800-88r2)
wipe_verifiedMbool—Sanitization independently verified
Identity and provenance
backlight_uniformHbool—No visible bleed or blotching
ecc_memoryMbool—Error-correcting memory
storage_typeMenum—none | hdd | sata_ssd | nvme
wipe_certificate_idMstr—Certificate identifier, or empty
4 · Cosmetic derivation

Highest band whose predicates fully hold.

Evaluated top-down. Every predicate is a count against a threshold, so two people with the same sheet always reach the same letter. The bands are conjunctive — every condition must hold — which matters later, in section 7.

CodeLabelBinding predicates
C9New Open Boxunused, pristine, original packaging opened
C8Unusedunused, pristine, packaging not original
C7Certified Pre-Ownedrestored to like-new, pristine, warranty attached
C6Used Excellentno dents; ≤2 scratches ≥10mm; none ≥25mm; no display scratches; no discoloration; no residue; cleaned; nothing missing; no structural damage
C5Used Very Goodno heavy dents; ≤2 dents ≥2mm; ≤1 scratch ≥25mm; ≤1 discolored zone; ≤1 display scratch; nothing missing
C4Used Goodno heavy dents; ≤5 dents ≥2mm; ≤1 key missing; nothing missing; no structural damage
C3Used Fair≤3 heavy dents; no critical parts missing — the placement floor
C2Used Poorheavy damage prevalent
C1Damagedhousing cracked through, or critical parts missing
C0Not categorizednot evaluated

"Pristine" means every visible-defect count is zero, nothing is missing, and there is no structural damage.

5 · Functional derivation

SMART indicators disqualify. They do not score.

CodeLabelRequires
F6Like Newhardware clean, licensed OS configured, test log retained, OEM parts only, battery ≥90% of design (or no battery)
F5Refurbishedhardware clean, licensed OS configured, test log retained
F4Hardware Functionalhardware clean, software not configured
F3Key Functions Workingpasses the key-function set
F2Verified Specialtyper R2v3 Appendix D
F1Collectible or Specialtyrare, unsupported, may have missing parts
F0Not functionaldoes not POST, or fails key functions

Backblaze's analysis of its own drive fleet identifies five SMART attributes that actually correlate with impending failure: 5, 187, 188, 197 and 198. A non-zero value in any of the five caps the unit at F3.

Not a trade-off

It is not scored, weighted, or offset against condition. A drive that has begun to fail is not a drive with a slightly lower grade, and a program that places storage inside households does not get to be clever about this. Power-on hours, by contrast, are recorded but are not a defect — a 44,000-hour drive with clean counters grades F6.

Battery health is full_charge_mwh / design_mwh as an integer percentage, rounded half-up — the same rounding the price protocol uses, for the same reason. Below 90% the unit cannot hold F6. A unit with no battery is not penalised: the field reports null, which is not zero.

6 · Sovereign derivation

Can it be defended.

S4

Sovereign Full

TPM 2.0 · Secure Boot enforced · UEFI · IOMMU · DMA ports lockable · firmware current · vendor support active · microcode current · FDE · sanitized to Purge

S3

Sovereign Standard

TPM 2.0 · Secure Boot capable · UEFI · firmware current · FDE

S2

Sovereign Limited

UEFI · Secure Boot capable · FDE — but no TPM 2.0

S1

Contained Only

Legacy BIOS, or cannot enforce Secure Boot, or no FDE. Never placed with households or children.

S0

Not placeable

Not sanitized, sanitization unverified, or no supported OS exists.

TPM 1.2 does not reach S3. Microsoft's position is that 1.2 is insufficient and that the TPM 2.0 line is not moving; a rubric treating 1.2 as adequate would be writing cheques the OS vendor will not honour.

Sanitization is a gate, not a grade

S0 is absolute. An unsanitized unit is not placeable at any tier, in any cosmetic condition, at any price. Vector GV-5 below is an immaculate, fully-current, zero-defect machine that routes to recovery because its wipe was not verified. Sanitization follows NIST SP 800-88 Rev. 2, which R2v3 requires.

Live demonstration

Grade a unit in your browser.

This is the real derivation, not a mock-up — a direct port of grading.py. It self-checks against all eleven published vectors on load and reports the result below rather than hiding a mismatch. Nothing leaves your device.

checking…

Try it: load GV-1 and turn off vendor_support_active. Nothing physical changes and the unit loses Tier A. Then load GV-1 and pile on cosmetic damage — dents, scratches, worn key legends — and watch it hold Tier A while the cosmetic band collapses. Appearance does not decide placement. Finally, uncheck wipe_verified on anything at all.

7 · Tiers, floors, materiality

Hardware is matched to the workload. Protection is not.

That sentence is only true if it is enforced, so three conditions apply identically at Tier A and Tier D. Fail any one and the unit routes to recovery regardless of everything else. The test suite asserts this at every tier rather than asserting it in prose.

  • sanitization verified
  • full-disk encryption enabled
  • a vendor-supported operating system available
TierServesRequires
ABusiness and agencyS4, F5
BSmall business, nonprofit, congregationS3, F4
CHousehold adultsS2, F4
DChildren — homework and coding labS2, F3
LContained lab use onlyS1
PRepair before placementC2
RRecoveryanything else

What descends the cascade is the consequence of compromise, never the standard of defence. A child's homework machine has no corporate credentials and no lateral path into an enterprise network. It does not have weaker encryption.

Cosmetic condition does not choose a tier — C3 and C6 place identically. But C1 and C2 are not descriptions of appearance. C1 is a cracked housing; C2 has critical parts missing. Those are durability findings wearing cosmetic clothing, so they gate placement where ordinary wear does not.

7.1 Machine readings are not opinions

If two parties report different values for a Class M field, that is not a disagreement about judgement. It means the device was altered between readings, the wrong unit was read, or a reading is fabricated. The round voids. Values are not averaged, toleranced, or split. This check runs first, and it voids even when the two sheets happen to derive to the same grade — because the problem is not the grade, it is that one of the two readings is not real.

7.2 Materiality — the rule that makes this usable

Two inspectors will disagree about whether that is three scratches or five. Almost always it changes nothing. So the rubric does not reconcile observations. It reconciles grades.

  1. Class M conflicts → void.
  2. Derive a grade from each sheet independently.
  3. Same grade → the divergence is immaterial and the round proceeds. However much the counts differ.
  4. Different grades → escalate only the pivotal fields: those which, substituted alone, move the grade.

Re-inspection becomes a single measurement instead of a re-run of the whole sheet. Because the cosmetic bands are conjunctive, each field crossing its own threshold flips the grade on its own — so a material divergence usually returns several independently pivotal fields rather than one.

7.3 Unresolved divergence

If re-inspection does not settle it, the conservative merge takes the worse value for every differing field, producing the lowest grade consistent with both sheets. This is not a fair-value estimate and is not presented as one. It is a deliberate tie-break against the party proposing the unit, and its purpose is to make unresolved divergence unattractive rather than to be correct. Two parties who cannot agree on what is physically in front of them should find that expensive.

7.4 Ordering: grade before price

The grade must be agreed before the price commitment window opens. Otherwise a party who can see where the price is heading has a reason to shade their observations toward it.

  1. 1observeboth parties fill the sheet independently
  2. 2commitSHA-256 over each sheet plus a nonce
  3. 3revealboth sheets open
  4. 4reconcilevoid / immaterial / material
  5. 5publishgrade_token fixed and published
  6. 6price commitSCDA1 begins; policy_hash binds the grade_token
  7. 7price revealsettlement per the protocol spec

Steps 1–5 are this document. Steps 6–7 are the Dual Attestation Protocol. The grade_token commits over the observations and the rubric, not the derived letters — because the derivation is deterministic and published, anyone holding the sheet can recompute the letters and check them.

8 · Normative vectors

Eleven units, and the pairs carry the argument.

All vectors share one reference unit: a three-year-old fleet laptop, 57,000 mWh design battery at 52,000 mWh, 9,800 power-on hours, clean SMART, TPM 2.0, purge-verified. Each changes as little as possible from it. Reproduced by test_grading.py — 247 assertions.

IDCaseGradeTierBattLoad
GV-1Reference fleet laptopThree years old, cleaned, fully current firmware, purge-verified.F6/C6/S4A91%2
GV-2Vendor support endedPhysically identical to GV-1. Vendor no longer issues firmware fixes, so it can no longer hold the top sovereign band or serve Tier A.F6/C6/S3B91%2
GV-3TPM 1.2 onlyWell-kept and fully functional, but without a TPM 2.0 root of trust it is capped at Sovereign Limited and cannot exceed household adult use.F6/C6/S2C91%2
GV-4Dented but soundVisibly used — heavy dents, long scratches, worn key legends, tag residue. Nothing missing, nothing structural. It grades C3 on looks and still serves Tier A, because appearance does not decide placement.F6/C3/S4A91%45
GV-4bThe rubber foot problemIdentical to GV-4 plus one missing rubber foot. R2v3 F4 admits no missing parts of any kind, so the unit drops two functional bands and three tiers over a piece of rubber. Recorded as a known defect of the inherited standard, not as a result the rubric endorses.F3/C3/S4D91%50
GV-5Pristine but unsanitizedImmaculate, current, fully functional — and not sanitized. S0. Not placeable at any tier, at any price, in any condition.F6/C6/S0R91%0
GV-6Drive beginning to failReallocated sectors and pending sectors present. A drive that is starting to fail is not a slightly lower grade, so it drops to F3.F3/C6/S4D91%2
GV-7Legacy BIOS machineNo Secure Boot chain. S1 — contained lab use only. Deliberately NOT placed with households or children even though it works fine.F6/C6/S1L91%2
GV-8Tired batteryIdentical to GV-1 apart from a battery at 62% of design capacity. One instrument reading, one band.F5/C6/S4A61%2
GV-9Cracked housingBoots, passes every functional test and holds the top sovereign grade — and is still routed to recovery, because a cracked housing is a structural finding, not an aesthetic one.F6/C1/S4R91%11
GV-10Cascade unit for a homework deskOlder and only key-functions tested, but TPM 2.0, Secure Boot capable, encrypted and purge-verified. Serves Tier D at the same protection standard as Tier A.F3/C4/S3D72%16
GV-1 → GV-2

Nothing physical changes. The vendor stops issuing firmware fixes and the unit loses Tier A. Support lifetime, not condition, is what ends a machine's working life at the top.

GV-1 → GV-4

Seven dents, fourteen long scratches, worn key legends, tag residue. Drops three cosmetic bands and stays at Tier A.

GV-4 → GV-4b

One missing rubber foot. Drops two functional bands and three tiers. This is inherited from R2v3 F4 and it is wrong — see open item 4. Published rather than quietly patched.

GV-1 → GV-5

Immaculate, current, fully functional, unsanitized. Recovery. The gate that overrides everything.

GV-9

Passes every functional test, holds the top sovereign grade, cracked housing. Recovery. This one was a real bug found by running the vectors: tier derivation originally ignored the cosmetic axis and placed a cracked-chassis laptop at Tier A.

8.1 Reconciliation vectors

IDCaseStatusPivotal fields
RV-1Immaterial divergenceimmaterialnone
RV-2Material divergence, single pivotal fieldmaterialdents_ge_6mm
RV-3Machine-read conflictvoidnone
RV-4Several independently pivotal fieldsmaterialdents_ge_2mm discolored_zones_ge_10mm scratches_ge_25mm

RV-1's two sheets differ on two fields and nothing is escalated at all. RV-2's differ on one, and that one is named. RV-3 voids on a machine-field conflict. RV-4 returns three independently pivotal fields, which is what conjunctive bands produce.

9 · Open items

What is unresolved.

Stated plainly rather than papered over.

  1. The thresholds are not calibrated. 2mm, 10mm, 25mm, 90% battery, C3 as the placement floor — every one is a defensible starting point and none is an empirical finding. Until paired inspection data exists, the honest claim is "deterministic", not "accurate".
  2. Inter-rater reliability is unmeasured. The entire value proposition is that two inspectors converge. That is a testable claim and it has not been tested.
  3. Tolerances are guesses. ±1 dent, ±2 scratches. These should fall out of the calibration data, not out of a judgement call.
  4. The rubber foot problem. R2v3 F4 requires "no missing or damaged components or parts" and draws no distinction between a rubber foot and a memory module. GV-4b drops three tiers over a piece of rubber. Inherited faithfully because diverging from the standard silently is worse than inheriting a known defect visibly. The fix breaks verbatim R2v3 compatibility, so it is a v1.1 decision.
  5. Sovereign thresholds encode a point in time. "Vendor support active" and "firmware current" are true until they are not, so a unit's S grade decays without anyone touching it. There is no re-grading cadence, and a placed unit silently falling out of its tier is a real operational risk.
  6. No adversarial testing. Could a sophisticated party construct a sheet that passes the materiality test while being materially wrong — diverging on many fields that are individually immaterial but jointly misleading?
  7. Photographic evidence is unspecified. Nothing here says what must be photographed, at what resolution, with what scale reference, or how those images bind into the commitment.
  8. S1 placement is a policy question. v1.0 refuses to place S1 units with households or children. That is the conservative call and it may be wrong — it may simply mean usable machines are destroyed. It deserves an explicit decision by someone accountable, not a default buried in a derivation function.
Sources

Cited to primary sources.

The protocol stops either side moving their number. The rubric stops them describing different machines. Neither is worth much without the other.