Skip to content
CKBench · method

How we test and score memory cards

Every number in a CKBench review comes from one results file, produced by a bench we built because the marketing figures answer almost none of the questions that matter. This page is the method behind those numbers, the rubric behind the scores, and an honest list of what we do not test.

The principle

Every byte committed, every byte verified

Two rules shape everything else. The first is that a write does not count until the card confirms it. All test writes use unbuffered write-through handles and the timer stops only after the flush returns, so nothing is credited to the card that is actually sitting in the computer's memory. This is why our write speeds read lower than burst benchmarks like CrystalDiskMark: a burst benchmark measures a card's small RAM buffer for a few seconds, and we measure what the card sustains when the data has to land. Read speeds match CrystalDiskMark within a couple of percent, which is how you can tell the gap is method rather than a slow sample.

The second rule is that data is checked, not assumed. Every test byte is generated from a seeded random stream and compared on read-back, so a card that drops, zeroes or repeats data cannot hide it. A cache-leak canary runs before anything else and aborts the whole run if any read comes from the operating system instead of the card.

The tests only ever create and delete their own files, and the tool refuses to touch a fixed disk without an explicit override.

The tests

What actually gets measured

TestWhat it answers
Cache-leak canaryIs the operating system lying to us? Writes and re-reads a small file twice before any measurement is trusted.
Sequential read and writeThe headline speeds, three passes each, every byte committed.
Random 4KSmall scattered operations, the workload that matters for app storage and the A-class floors.
Sustained writeFive minutes of continuous writing with the cooling fan off. Produces the worst ten-second window, which is what sets a video speed class.
Settle pre-passAn untimed warm-up so the measured window starts on a controller that has finished reacting to the previous test rather than one still cleaning up.
Capacity fill and verifyFills every free byte with unpredictable verifiable data, then reads all of it back and compares. The only test that catches a fake.
Position sweepThroughput at the start, middle and end of the card's address range, where tiered fake flash shows its seams.
ThermalAn infrared frame captured the instant the timed write stops, because a card sheds heat in seconds.

The verdict that decides a video speed class always comes from the worst ten-second window, never the average. A class rating is a promise the card has to keep for the whole recording, and your camera does not get to record over the average.

The rubric

How the score is built

Every review carries a score out of 5. It is the mean of five dimensions, each scored out of 5 in half-point steps, with the mean rounded to the nearest half point. Since September 2026 every dimension is read off a fixed table, published below: each table has one measured input, its edges sit where the measurements on this bench actually fall, and an input exactly on an edge takes the higher band. The tables are the same for every card. Whether a number is enough for the job a card is sold for is a question the verdict answers in words, and the picker tools answer per device; it is not a reason to move a row. Every review publishes its own breakdown with the inputs behind it, so you can see which dimension moved the number and disagree with us specifically rather than generally.

Dimension 1

Claim accuracy

Does the card do what its label says? Every printed mark is checked against a measurement: capacity, speed class, UHS grade, video class, app class, the read and write figures on the box. The score comes from the printed claim the card meets least well. Claims a bench cannot settle in one session, like endurance hours, are listed as not testable rather than quietly dropped, and never count against the card.

Dimension 2

Sustained performance

The worst ten-second window across five minutes of continuous committed writing, placed on the SD Association's own ladder of video speed floors. Includes whether the write curve has a cache cliff hiding in it, and whether the card ever stops accepting writes outright.

Dimension 3

Endurance behavior

What scattered-write churn, the pattern loop recording produces, does to the card: how much random-write speed it gives up across three passes, and how long its sequential write stays depressed afterwards. This is a directional indicator, not an endurance test: no bench session can tell you a card will still be working in year three.

Dimension 4

Capacity integrity

Is the space real? Measured by filling the entire card with verifiable data and reading every byte back. Counts both how much usable capacity the card delivers against its label and whether every byte survives the round trip.

Dimension 5

Thermal behavior

Peak surface temperature at the end of an uncooled sustained write, scored on the headroom it leaves under the temperature the card is rated for, with a deduction if the card slowed down on the way there. Heat that throttles is a fault. Heat that costs no speed is a fact, and a card that ends five minutes of writing a few degrees under its own rating has less margin the day the ambient rises. How much heat a card makes for the work it does is reported as context, not scored.

How each dimension is scored

Each table has one input, taken from the card's results file the same way every time, so a score can be recomputed by anyone with the numbers. Every edge reads "or more": an input exactly on an edge takes the higher band. Half points are the smallest step. The published breakdown in every review carries the inputs its rows were read from.

Claim accuracy

Every claim printed on the card face or its retail packaging is measured, and the ratio of measured to claimed is taken for each: a printed write speed against the three-pass committed sequential write, a printed read speed against the sequential read on a reader proven capable of exceeding the claim, and every class mark against the worst ten seconds of sustained writing divided by that class's floor. The lowest ratio sets the score. A read claim above the ceiling of every reader on this bench is marked not settled and left out, because a number the bench cannot test is not evidence against the card. App class marks are not testable on a USB reader, endurance hours are trusted rather than tested, and a manufacturer specification that is not printed is not a claim. Capacity enters only as a gate: below the line in the capacity table, this row is 1 as well. A look-alike or wrong SD family mark costs one point.

Weakest printed claim, measured as a share of what was claimedClaim accuracy score
95.0% or more (every printed claim met or beaten)5
90.0% to 94.9%4.5
85.0% to 89.9%4
80.0% to 84.9%3
75.0% to 79.9%2.5
70.0% to 74.9%2
60.0% to 69.9%1.5
Below 60.0%, a class mark the card does not hold, or a capacity below the disqualifier line1

The step from 4 to 3 at 85% is deliberate. A printed number missed by a few percent is a rounding; one missed by more than 15% is a false claim, and the three write claims this bench has caught short sit at 83.4%, 79.5% and 71.3%.

Sustained performance

The input is the worst ten-second average across the five-minute uncooled sustained write, started on a settled controller. If the whole-card fill finds a cache cliff the five-minute test did not, the post-cliff figure is used instead. A card that stops accepting writes for a second or more, reproduced on a second reader, scores 2 here whatever class it holds, and the instantaneous-floor rule below caps its overall score as well.

Worst ten seconds of sustained writingSustained performance score
75 MB/s or more (V60 with at least a quarter in hand, or any V90)5
60 to 74.99 MB/s (V60 held)4.5
45 to 59.99 MB/s (upper V30)4
30 to 44.99 MB/s (lower V30)3
20 to 29.99 MB/s (upper V10)2.5
10 to 19.99 MB/s (lower V10)2
6 to 9.99 MB/s (V6)1.5
Below 6 MB/s1

The top band starts at 75 rather than at the V90 floor on purpose. A card on the standard UHS-I bus cannot reach V90 no matter how good it is, so a 5 that required V90 would be a bus-tier gate rather than a quality bar. Seventy-five is the midpoint of the V60 band, and three cards on the plain UHS-I bus clear it.

Endurance behavior

Two inputs. The first is fade: how much of its random-write speed the card gives up between the first and third of three twenty-second scattered-write passes. Anything under 5% is inside the bench's own settle tolerance and counts as no fade; a card that got faster scores as zero. The second is recovery: how many seconds of continuous writing after that churn it takes the card to get back to 90% of its steady sequential rate, which is where a dash cam's event-file churn shows up.

Random-write fade, first pass to thirdEndurance behavior score
Below 5.0%5
5.0% to 9.9%4.5
10.0% to 19.9%4
20.0% to 34.9%3
35.0% to 49.9%2
50.0% or more1

Then the recovery deduction, never below 1: back to speed within 20 seconds, nothing; 21 to 60 seconds, half a point; 61 to 120 seconds, one point; 121 to 300 seconds, a point and a half; not back to speed inside the run, two points. Every genuine card we have measured sits between no fade and 5.3%, with one at 16%; the reference card that collapsed to a third of its speed sits at 71%.

Capacity integrity

The card's declared user area, the size the card reports to the reader and the size your computer shows for the disk, is divided by the label in decimal bytes, taken to two decimal places, and scored from this table. It is the declared area rather than the formatted volume, so the filesystem a card ships with cannot move it. And it counts only once the whole-card fill has verified clean: every declared byte written, read back and matched, with zero mismatches and zero read errors.

Declared user area, as a share of the labelCapacity score
99.50% or more5
98.00% to 99.49%4.5
96.50% to 97.99%4
95.00% to 96.49%3.5
92.50% to 94.99%3
90.00% to 92.49%2.5
Below 90.00%, or a fill that fails to verify1, and the capacity disqualifier applies

A fill that fails to verify is re-run on the second card reader. If the failure follows the card, the card scores 1 and the disqualifier applies; if it stays with the reader, it is recorded as an anomaly and the clean run is scored. The shortfall inside the honest range is scored here and nowhere else: a label's own footnote says actual storage is less, so a card delivering 97% of it has not contradicted its packaging, and claim accuracy does not deduct for the same gigabytes a second time. Every genuine memory card we have measured declares between 96.7% and 100.1% of its label, in a few clusters this table separates, and every fake has failed to verify with real capacity below 52% of the label behind a declaration that reads higher.

Thermal behavior

The input is the headroom, in degrees C, between the card's peak surface temperature at the end of the uncooled five-minute write and the maximum operating temperature its maker publishes, 85 C for most cards and stated as assumed where the maker prints nothing. The peak is the hottest card-surface reading we have for the unit, normalized to the 76 F the bench is held at. A full-size SD card disappears inside the reader, so it is pulled the instant the write stops and shot face-on; the reading through the slot is never scored, because it under-reads by 10 to 14 F.

Headroom under the rated maximumThermal behavior score
25 C or more (a peak at or below 60 C on an 85 C card)5
20 to 24.9 C4.5
15 to 19.9 C4
10 to 14.9 C3.5
5 to 9.9 C3
0 to 4.9 C2
Above the rated maximum1

Then the throttle deduction, never below 1: a card whose write rate at the end of the uncooled five minutes is under 97% of its rate at the start loses a point, under 90% two points. No card on this bench has triggered it yet; the rule exists so the first one that does is scored the same way as the next. Heat per unit of work, the temperature rise per MB/s written, is published as a rank among the cards we have measured and is not scored: it rewards a fast card for being fast, which the sustained row already does, and it cannot see a card running above its own rating.

Adopted September 2026. The capacity table went first, on 15 September; the other four followed the same day, after every published score had been re-derived from its measurements. Until then those four rows were judgments against the cards that came before, and they drifted: the same 98.8% of label scored 4.5 on one card and 4 on another, and a card was marked down for printing no speed figure while another was not. Six published reviews carry overall scores these tables set differently, every one of them higher, because their rows were docked for things no measurement reproduces: the Botslab 128GB (3 to 4.5), the Newegg TeamGroup 128GB (2.5 to 3.5), the VIOFO High Endurance 32GB (3.5 to 4) and 128GB (3 to 3.5), the Samsung PRO Ultimate (4.5 to 5) and the SanDisk MAX Endurance (4.5 to 5). The Botslab, the Newegg TeamGroup and the VIOFO pair were amended on 19 September 2026, each with a dated note at the top saying what moved and why; the PRO Ultimate and the MAX Endurance follow the same way. Other reviews carry individual rows the tables set differently without changing their overall score, and each is brought onto the tables when it is next revised (the SanDisk High Endurance 512GB, the Vantrue Endurance PRO, the SanDisk Ultra 128GB and the FitcamX 64GB on 19 September 2026). The full derivation, every candidate table and every card's placement, is in the bench protocol.

Three rules that override the average

The capacity disqualifier. A card that materially misrepresents its capacity, which the table above fixes at below 90% of the label or a fill that fails to verify, is capped at 1 out of 5 regardless of every other dimension. Speed is irrelevant when the space is not there, and a counterfeit that happens to be quick is still a counterfeit. The ImageMate counterfeit is the reason this rule exists: its five dimensions average 2.4 and it is published as a 1.

The instantaneous floor. A card that stops accepting writes outright during continuous writing, a single blocked write of a second or more, reproduced on a second card reader, is capped at 4 out of 5 regardless of the class it holds, and its sustained performance row reads 2. The video speed classes are ten-second averages, and a card averaging 140 MB/s can stop dead for two seconds inside a window and still clear V60. A dash cam does not average: it has a small buffer and a continuous stream, and that stop is what it reports as a slow card. The SanDisk High Endurance 512GB is the reason this rule exists: it holds V60 and stalled for 3.6 seconds on one reader and 3.3 on another. Added September 2026 and applied from then on; no earlier score moves, because no other card on this bench has produced a blocked write over one second on any reader.

No score without a complete run. A card is only scored when the sustained write, the random 4K passes and the full capacity fill and verify all completed. A partial run gets published as a partial run, with the missing leg named, and no number attached.

The fine print that matters

Conventions we hold to

ConventionWhy
Throughput in decimal MB/s1 MB is 1,000,000 bytes, because that is what card labels and the SD video speed class floors mean. Quoting binary here would flatter every card by about 5%.
Block sizes in binary MiB1 MiB is 1,048,576 bytes, because that is what the drive actually moves per operation.
Capacity in decimal GBSame reason as throughput: it is the unit on the label. Your computer counts in binary, which is why a genuine 128 GB card displays as about 119 GB.
Read speed is reported with the reader namedCard readers are not interchangeable. Standard UHS-I signalling tops out around 96 to 97 MB/s, and some readers support a faster non-standard mode that some cards can use. Every card is benched on the same reader so the corpus stays comparable, and a second, separately characterized reader is kept as a control rather than run routinely. It comes out to check anomalies in either direction: a result that looks wrong, and equally a result that looks too good for the card's class, since a card reading above the UHS-I ceiling is as much an anomaly as one reading far below it. Where the two readers disagree we publish both numbers, because a figure you cannot reproduce on ordinary hardware is not much use to you.
Anomalies are diagnosed with a known card, not a re-runWhen a run looks wrong, re-running the same card tells you little. Putting a card whose numbers we already know through the suspect path isolates the reader from the card in one pass. That is how the counterfeit's slow session was traced: a card with a five-day-old baseline went through the same reader and returned figures within 1% of it, which cleared the hardware and pointed at the card.
A-class results are indicativeOur random 4K procedure differs from the SD Association's, and read IOPS on a USB reader sit near a bus-imposed ceiling around 1600, which is uncomfortably close to A1's 1500 floor. A2 is not testable at all on USB readers, whose floors assume command queuing they do not perform.
No card prices. Hardware prices, datedCard prices move too fast to maintain: one SanDisk Extreme 512GB in this corpus went from 42.99 to 117.00 USD in thirteen months, a 172% move, which would have made any figure we printed a lie within a season. So cards get no price in the copy, only a recorded purchase price in the card's internal record and a link to the live listing. Durable hardware such as card readers is different, and since August 2026 we do quote it: readers hold their price for years, and what one costs relative to another is often the whole buying decision. Any figure we print carries the date we checked it and says where we looked, because a sale price quoted as the price is the fastest way to be wrong. We lead with the relative version, since one reader costing roughly twice another stays true long after both numbers have drifted.
Limits

What we do not test, and why

A method is only credible if it names its own gaps. These are ours.

Power loss. Sudden power removal mid-write is arguably the most common way a card fails in a dash cam, and nothing in our suite touches it. Doing it properly needs switchable power hardware and a protocol that deliberately risks the card and its filesystem, so it is a separate project rather than a line item. Every result we publish describes a card that was never interrupted.

Real endurance. We measure how a card behaves under churn, which is a good directional read on whether it was built for loop recording. It is not a measurement of lifespan, and nothing done in an hour can be. Manufacturer endurance ratings are reported with their published conditions attached and marked as not testable in session.

Sample size. Each review is one retail unit, with one run on most phases and three passes inside each speed test. That characterizes the card in our hand and gives us a fingerprint to compare future cards against. It cannot see unit-to-unit variation across a production line, and for counterfeits there is no product line to generalize about at all.

Long-term retention. How well a card holds data sitting unpowered in a drawer for a year is a real question and we have no way to answer it on this timescale.

Independence

Who pays for the cards

We buy the cards we test, or they arrive inside a device we bought. One card in the corpus was supplied by its manufacturer: Vantrue sent an Endurance PRO 128GB as part of a review kit in September 2026, and that unit’s review says so on its own page. No manufacturer has seen a result before publication or had any editorial input, on that card or on any other, and each review states how that specific unit was acquired. Where a review links to a product it is usually an affiliate link, disclosed on the page, and the link never changes a number. CK Tech Check runs no advertising of any kind.

Updated September 2026. This paragraph previously read “no manufacturer has supplied a card”, which was true until the unit above arrived. Rather than quietly drop the sentence we have narrowed it, because the part that actually protects you is the rest of it: nobody outside CK Tech Check sees a number before you do. A supplied card is tested on the same bench, to the same protocol, and scored by the same rubric as one we paid for.

If a card we recommended turns out to be wrong, the correction goes on the page rather than quietly into the archive. Two of the reviews currently published carry amendments made after the fact, both marked.

See the method applied

27 cards we bench-tested, 2026-07-21 to 2026-09-17. Every one of them went through the full method: some beat their own labels, some quietly keep a few gigabytes for themselves, and some are not the size they say they are.

Browse CKBench