How Card Centering Is Judged, and How to Measure It
The six graders a Pokémon collector meets (PSA, Beckett, CGC, SGC, TAG and ACE) all write centering the same way: the share of the combined border on two opposite sides, wider first, so a card “60/40 left to right” has 60% of that border on one side and 40% on the other, with the back judged separately wherever a back figure is given, and at PSA “at the most off-center part of the card.”12 What differs is the number each grader prints per grade. For a 10, PSA, CGC, SGC and TAG print 55/45 on the front; Beckett gives 55/45 a 9 and asks for 50/50 one way for its 9.5; ACE takes anything “less than a 60/40 split.”234567 On the back, a PSA 10 may be 75/25 and a TAG Gem Mint trading card about 65/35, while SGC publishes no back figure at any grade.254 A ruler cannot tell 55/45 from 60/40 on a modern Pokémon border of about 2.4 mm, a gap of 0.24 mm on the wide side, while one pixel of a 600-dpi scan moves the ratio by under a point.89 This post sets out each grader’s published tolerances with the page and the date I read them, how to measure a card at home, and what the centering gauge in my app, Kiradex, gets right and wrong today.
TL;DR
- One convention, six tables. Centering is the ratio of opposite borders, cut edge to printed frame, wider first, judged per axis and per face. PSA designates it “at the most off-center part of the card,” and a 2005 PSA article says its graders “measure from the worst point.”1210
- The same front gets four answers. A raw card at 57/43 left to right and 52/48 top to bottom is inside the published front figure for a 9 at PSA, SGC and TAG, an 8 at Beckett, a 10 at ACE, and, at CGC, inside only its 3.5’s unqualified 90/10, since CGC prints no trading-card figure from 9 to 4.113
- Backs are looser, and three graders leave gaps. For a 10 the back may be 75/25 at PSA and CGC, about 65/35 on a TAG trading card, and 60/40 for a Beckett 9.5. SGC publishes no back figure at any grade, ACE none for its 10, and CGC no back figure for a trading card below 10.235647
- Beckett’s figures come from an archive. Beckett took its platforms offline after what its October 2, 2026 notice calls “suspicious technical activity”; its grading scale here is the Wayback Machine copy of May 3, 2026, and the live standard may differ when the site returns.126
- A ruler is too coarse; a scan is not. Misreading both borders of a 2.4 mm pair by one half-millimeter mark, in opposite directions, moves the wider number 10.4 points, and one border alone 4.7 to 5.8, depending on the direction; one pixel each way on a 600-dpi scan moves it 0.88.913
- Some Pokémon borders are uneven on purpose. On catalog images the e-card sets of 2002 and 2003 carry a deep strip down the left, two 2003 EX sets a deep bottom border, and cards from Sword & Shield on print small text inside the bottom border, where an automatic reader stops short.814
- What this gives Kiradex. The brief: show the front ratio beside each grader’s published front figure with its source and date, never a grade; drop “Allows up to a” and “the ten-point scale”; measure the worst point, not the median, and name no grader’s grade until a worst-point reading and the phone’s accuracy are both proven; key the uneven-border rules to sets, not years; and treat a missing axis or a missing published figure as exactly that, never as a grade.151611
1. What a centering number means
Every grader in this post writes centering the same way, and PSA’s glossary has the clearest definition of it. “A card’s centering is found by measuring the distance between the photo and the edge of the card from opposite sides.” Its example: a card centered “50/50 top to bottom and 60/40 left to right” is “perfectly centered on the top and bottom borders and shifted to the left with 60% of the border to the left of the photo and 40% to the right.”1 So the two numbers are shares of the border on one axis, they always add to 100, and the wider share is written first. A 60/40 card and a 40/60 card are the same card turned around.
What is measured is the border: “The part of a card that surrounds the photo,” in PSA’s glossary, from the cut edge in to the printed picture or frame.1 It is not the artwork’s content. PSA’s standards say “PSA determines centering by comparing the measurements of the borders from left to right and top to bottom.”2 TAG words every grade in its rubric as “Front image centered within a tolerance of” a figure, and PSA’s 10 says “The image must be centered on the card.”52 On my reading, then, art drawn off to one side of a well-cut card does not make the card off-center; a frame printed closer to one edge does.
A 60/40 card drawn to scale: the difference from 55/45 is a quarter of a millimeter on the wide side.917
Four more rules sit under that convention, each stated on the graders’ own pages.
The worse axis and the worse point count. A card is measured left to right and top to bottom, and the worse of the two is the card’s centering. Beckett writes most of its grades as a figure “both ways”; ACE writes its as “any opposite pair.”67 PSA goes further along the edge: centering “is designated as the percent of difference at the most off-center part of the card.”2 Joe Orlando, signing as PSA’s editor in chief, put it plainly in a December 2005 article: “The first part, which is not subjective at all, is the fact that PSA graders measure from the worst point.” And for tilted pictures on older cards: “Often times, vintage cards are found with a tilt to the picture and the graders will measure from the worst point of that tilt.”10 A frame printed at a slight angle has borders that change along the side, and the number that counts is the worst end, not the middle.
Front and back are judged separately. Every grader that publishes a back figure publishes a separate one, and at the top grades it is always looser than the front: PSA 10 is 55/45 on the front and 75/25 on the back; TAG’s Gem Mint 10 is about 55/45 on the front and about 65/35 on a trading card’s back.25
No border, no ratio. PSA’s glossary defines “Full Bleed” as “the term used when a card has no border. The image on the card goes up to the edge of the cardboard.”1 Where a front has no printed frame on a pair of sides, there is nothing to measure to on that axis. My app’s code treats a full-art card as one with “no printed border to measure,” but that is the code’s assumption.18 “Full art” names a kind of card, not a measurement, and PSA’s glossary defines full bleed, not full art; what decides whether a front can be measured is whether a printed frame is there. None of the six graders’ pages I fetched says how it judges front centering on a card without one.19 That is a gap in what is published, not a statement that such cards are exempt, and I would not read it either way.
The figures are maximums, written as “or better.” PSA’s 9 reads “approximately 60/40 or better on the front”; SGC’s tabs read “60/40 or better centering”; Beckett’s 8 reads “60/40 both ways or better on front.”246 A card inside a grade’s figure has met that grade’s centering line and nothing else: corners, edges, surface and the back are judged too.
2. What each grader publishes, front and back
I read each grader’s own grading-scale page on October 4, 2026 and saved it, and the tables below quote those copies. Two pages needed a browser: PSA’s grades sit in a carousel that shows only the 10 to a plain fetch, so its grade texts were read from the message bundle the page loads; SGC’s sit behind twenty tabs, so a script clicked each one.24 Beckett’s site was offline that day. Its status page, dated October 2, 2026, says that “we detected suspicious technical activity and, out of caution, took our platforms offline,” and requests for its grading scale and FAQ redirected to that page.12 Beckett’s figures below therefore come from the Wayback Machine’s copy of its grading scale of May 3, 2026 and of its FAQ of March 26, 2025, and they may differ when the site returns.620
In every chart, a bar is the wider border’s share a grade allows, so a taller bar is a looser tolerance; a missing bar is a grade with no published figure, labeled as such.
PSA
PSA’s standards give a centering sentence for every grade but its lowest.2
| PSA grade | Front | Back |
|---|---|---|
| GEM-MT 10 | “approximately 55/45” | 75/25 |
| MINT 9 | “approximately 60/40 or better” | 90/10 |
| NM-MT 8 | “approximately 65/35 or better” | 90/10 |
| NM 7 | “approximately 70/30 or better” | 90/10 |
| EX-MT 6 | 80/20 | 90/10 |
| EX 5 | 85/15 | 90/10 |
| VG-EX 4 | 85/15 | 90/10 |
| VG 3 | 90/10 | 90/10 |
| GOOD 2 | 90/10 | 90/10 |
| FR 1.5 | approximately 90/10 | approximately 90/10 |
| PR 1 | no centering sentence | none |
Source: psacard.com/gradingstandards, read October 4, 2026.2
PSA: the back is 75/25 for a 10 and 90/10 from 9 through 1.5, with no figure at 1; the front steps by five points to 7, then jumps.217
PSA 10’s full sentence is “The image must be centered on the card within a tolerance not to exceed approximately 55/45 percent on the front, and 75/25 percent on the reverse.”2 Four more parts of the same page change how those numbers work.
A 5% leeway on the front, for 7 and up. “A 5% leeway is given to the front centering minimum standards for cards which grade PSA 7 or better.” PSA’s worked example is a 9: a card that meets every other requirement and “measures 60/40 off-center on the front automatically meets the PSA front centering standards for PSA 9”; at 65/35 “it may be deemed to meet the PSA front centering standards for PSA 9 if the eye appeal of the card is good.”2 Whether the leeway reaches the 10 is not settled by the page: 10 is “better” than 7, but the only example given is a 9.2
OC, the off-center qualifier. “Cards that are off center will either by designated “OC” or will have a numerical grade that reflects the minimum centering allowed for the grade.”2 The glossary’s example is a card that meets Mint 9 in every other way but has 65/35 centering: it “would be designated Mint 9oc.”1 So a PSA number on a label can sit above what the centering table allows, when the label carries OC.
Eye appeal, both ways. The page’s centering note: “At the grader’s sole discretion, a small variance may be permitted on occasion based on the card’s overall eye appeal.”2 The same page gives the opposite case, a dark card with high contrast against its white borders that “technically measures” 70/30 but “may be prevented from reaching that unqualified grade because the market would view that card as off-center.”2
Half grades lean on centering. Half-point grades exist between PSA 2 and PSA 9, and for them “there will be a clear focus on centering.”2
The tolerances were once written as ranges. PSA’s article of March 27, 1996 gives the 10 as “approximately 55/45 to 60/40 percent on the front, and 75/25 percent on the reverse,” the 9 as 60/40 to 65/35, the 8 as 65/35 to 70/30 and the 7 as 70/30 to 75/25, with the same 5% leeway for “NM7 or better.”21 Today’s page prints the lower bound of each range and keeps the leeway as a separate rule.2
Beckett (BGS)
Beckett’s scale, as archived on May 3, 2026, applies its front figure to both axes at most grades: a BGS 9 needs 55/45 left to right and 55/45 top to bottom.6
| BGS grade | Front | Back |
|---|---|---|
| Pristine 10 | “50/50 all around” | 60/40 |
| Gem Mint 9.5 | “50/50 one way, 55/45 the other” | 60/40 |
| Mint 9 | “55/45 both ways” | 70/30 |
| Near Mint/Mint 8 | “60/40 both ways or better” | 80/20 |
| Near Mint 7 | 65/35 both ways | 90/10 |
| Excellent Mint 6 | 70/30 both ways | 95/5 |
| Excellent 5 | 75/25 both ways | 95/5 |
| Very Good/Excellent 4 | 80/20 both ways | 100/0 |
| Very Good 3 | 85/15 both ways | 100/0 |
| Good 2 | 90/10 both ways | “100/0 or offcut” |
| Poor 1 | “100/0 or offcut on front or back” | (same) |
Source: beckett.com/grading/scale, Wayback Machine copy of May 3, 2026; the site has been offline since Beckett’s notice of October 2, 2026, and the live standard may differ when it returns.612
Beckett, from the archive copy: at the top grades the same front figure buys one grade less than at PSA, and the front applies to both axes.617
A whole grade stricter at the top. The same front figure buys one grade less at Beckett than at PSA: 55/45 is a PSA 10 but a BGS 9, and 60/40 is a PSA 9 but a BGS 8.62
Centering is a subgrade, and it does not cap the overall grade. Beckett’s FAQ: “The overall numerical grade is not a simple average of the four report card grades,” and “the lowest grade is the most heavily weighted in determining the overall grade.” It adds that “the final grade rarely, if ever, exceeds two levels above the lowest of the four characteristic grades,” and gives an example: Centering 10, Corners 6, Edges 10 and Surface 10 come back a 7, “exactly two grading levels above the lowest characteristic grade” (Beckett grades in half-point steps, so 6 to 7 is two levels).20 The example’s low subgrade is corners, not centering; I read the same rule as applying to a low centering subgrade, which the FAQ does not say in so many words.
Gem Mint takes four strong subgrades. “The minimum requirement to receive a grade of Gem Mint is to have at least three grades of 9.5 and the fourth to be no less than a 9.”20
CGC Cards
CGC’s two 10s carry centering figures that name no kind of card; from 9 to 4.5 every centering figure is for sports and non-sports cards only, and 4 carries none, so a trading card has no figure from 9 to 4; and at 3.5 one more figure appears that names no kind of card.3
- Pristine 10: “The centering is 50/50, and the card has flawless color and registration.”3
- Gem Mint 10: “Centering is not to exceed approximately 55/45, and reverse centering is not to exceed 75/25.”3
- From 9 to 4, no trading-card figure. At 9, 8, 7.5, 7, 6 and 4.5 the centering figure is given “For sports and non-sports cards” only. The 9’s trading-card sentence reads “For TCG cards, cards will have only a few minor manufacturing or handling defects,” with no ratio.3
- Very Good+ 3.5: one unqualified figure. “A Very Good+ card may have 90/10 centering and four rounded corners, but not extreme rounding.” That sentence names no kind of card, unlike the six above it, so on its face it covers every standard card CGC grades, a Pokémon card included; the same page gives telephone cards a scale of their own. I read “may have 90/10” as 90/10 or better, the way every other figure in this post is written; CGC does not say so.3
The figures CGC prints below 10 are these. From 9 to 4.5 they are for sports and non-sports cards only; the 3.5’s carries no such qualifier.3
| Grade | Front | Applies to | Back |
|---|---|---|---|
| 9 | 60/40 | sports and non-sports | 90/10 |
| 8 | 65/35 | sports and non-sports | none given |
| 7.5 | 65/35 | sports and non-sports | none given |
| 7 | 70/30 | sports and non-sports | none given |
| 6 | 75/25 | sports and non-sports | none given |
| 4.5 | 85/15 | sports and non-sports | none given |
| 3.5 | 90/10 (“may have”) | no qualifier: every standard card, on its face | none given |
Source: cgccards.com/card-grading/grading-scale, read October 4, 2026.3
CGC: for a trading card, figures at the two 10s and an unqualified 90/10 at 3.5, none from 9 to 4; the muted bars are sports and non-sports figures.317
CGC no longer gives subgrades: “Sub-grades are no longer offered by CGC Cards.” Its FAQ says artificial intelligence “helps to automate many of the time-consuming aspects of grading, such as attributing a card and measuring its centering.”22
SGC
SGC’s scale gives a front figure for most whole grades and none for the back.4
| SGC grade | Front (“or better centering”) |
|---|---|
| 10 PRI (Pristine) | “50/50 centering” |
| 10 GM (Gem) | 55/45 |
| 9.5 Mint+ | no figure (“at first glance appears to be Gem Mint 10”) |
| 9 Mint | 60/40 |
| 8.5 NM/MT+ | 65/35 |
| 8 NM/MT | 65/35 |
| 7.5 NM+ | 70/30 |
| 7 NRMT | 70/30 |
| 6.5, 5.5, 4.5, 3.5, 2.5 | no figure (each “exhibits high-end overall quality and eye appeal”) |
| 6 EX/NM | 75/25 |
| 5 EX | 80/20 |
| 4 VG/EX | 85/15 |
| 3 VG | 90/10 |
| 2 Good, 1.5 Fair | “Centered 90/10 or better” |
| 1 Poor | no figure |
Source: gosgc.com/card-grading/scale, all twenty tabs rendered October 5, 2026 UTC (October 4 in California).4
SGC: front figures only, and none at 9.5, 6.5, 5.5, 4.5, 3.5, 2.5 or 1; its 8.5 and 7.5 do carry one.417
No back centering at all. No SGC grade text gives a back figure.4 The grade texts also mention “four sharp corners*”, and the page never explains the asterisk.4
Guidelines, in SGC’s word. The descriptions are “guidelines, designed to outline the evaluation process,” and “Other factors” “might not be specifically noted.”4
TAG
TAG’s rubric is the finest-grained of the six, and the only one with separate back figures for trading cards and for sports cards.5
| TAG grade (score) | Front | Back, TCG | Back, sports |
|---|---|---|---|
| Pristine 10 (990 to 1000) | ~51/49 | ~52/48 | ~54.5/45.5 |
| Gem Mint 10 (950 to 989) | ~55/45 | ~65/35 | ~70/30 |
| Mint 9 (900 to 949) | ~60/40 | ~75/25 | ~90/10 |
| NM-MT+ 8.5 (850 to 899) | ~62.5/37.5 | ~85/15 | ~95/5 |
| NM-MT 8 (800 to 849) | ~65/35 | ~95/5 | “tiny sliver of border” rule |
| 7.5 down to 1.5 | 2.5 points wider per half grade: 67.5, 70, 72.5, 75, 77.5, 80, 82.5, 85, 87.5, 90, 92.5, 95, then ~98.33/1.67 at 1.5 | the back “may show a tiny sliver of border, but may not be miscut or have a portion of another card displayed” | same |
| Poor 1 (100 to 149) | the “tiny sliver of border” rule only | same | same |
Source: taggrading.com/pages/rubric, read October 4, 2026; the “~” is TAG’s own.5
TAG: the only published tolerance that steps every half grade, and, among the Gem Mint grades, a trading-card back stricter than PSA’s and CGC’s 75/25 and looser only than Beckett’s 9.5 at 60/40.523617
Stricter trading-card backs at the top. TAG’s Gem Mint trading-card back is about 65/35 against about 70/30 for sports.5
A score behind the grade. TAG scores out of 1,000 to answer “how strong of a 10 is this”; “Half points are included on every grade level except for between 9 and 10”; and Pristine “represents less than 1% of the cards TAG’d.”23 Its report breaks a card’s condition into “Corners / Edges / Centering / Surface / and Dimensions.”24
ACE
ACE states its figures per “opposite pair” and gives a back figure for every grade but its 10.7
| ACE grade | Front, strictly better than (any opposite pair) | Back |
|---|---|---|
| 10 Gem Mint | “less than a 60/40 split” | none given |
| 9 Mint | 65/35 | 70/30 |
| 8 Near Mint - Mint | 70/30 | 75/25 |
| 7 Near Mint | 75/25 | 80/20 |
| 6, 5, 4 | 80/20 | 80/20 |
| 3, 2, 1 | 85/15 | 85/15 |
Source: acegrading.com/grading-scale, read October 4, 2026.7
ACE: the loosest 10 of the six and, at the bottom, the strictest.717
The wording reads backwards. ACE’s 9 says “The centering for a card must be greater than 65/35 for any opposite pair on the front,” meaning more even than 65/35, not less.7 “Greater than” here and the 10’s “less than a 60/40 split” both leave the figure itself out, so I read every ACE figure as strictly better than its ratio: a card at exactly 60/40 misses ACE’s 10, and one at exactly 65/35 misses its 9. The other graders’ wording, “or better,” “not to exceed” and “within a tolerance of,” takes the figure in, and I read their few unqualified figures, such as Beckett’s “55/45 both ways,” the same way. That is a reading of ACE’s text, not something ACE spells out.
How ACE says it measures. Cards are “given a centering score which is calculated using 1/1000th of a millimeter accuracy measurements,” turned into “a percentage for Left, Right, Top and Bottom centering for both the front and back of the card.”7 That precision is ACE’s claim; nothing here tests it.
An off-center rule of its own. “The Off-Center modifier is given to a card where the grade for centering is 2 grades or more below the overall card grade.”7
Loosest at the top, strictest at the bottom. A 10 allows anything under 60/40, against 55/45 at PSA, CGC, SGC and TAG; yet even a Poor 1 must be better than 85/15, where PSA, Beckett and TAG go to 90/10 and beyond.7265
All six on the front, side by side
| Grade | PSA | BGS (both ways) | CGC (TCG) | SGC | TAG | ACE |
|---|---|---|---|---|---|---|
| Pristine or top 10 | none | 50/50 | 50/50 | 50/50 | ~51/49 | none |
| 10 | 55/45 | none | 55/45 | 55/45 | ~55/45 | under 60/40 |
| 9.5 | none | 50/50 + 55/45 | none | none | none | none |
| 9 | 60/40 | 55/45 | none | 60/40 | ~60/40 | 65/35 |
| 8 | 65/35 | 60/40 | none | 65/35 | ~65/35 | 70/30 |
| 7 | 70/30 | 65/35 | none | 70/30 | ~70/30 | 75/25 |
| 6 | 80/20 | 70/30 | none | 75/25 | ~75/25 | 80/20 |
| 5 | 85/15 | 75/25 | none | 80/20 | ~80/20 | 80/20 |
| 4 | 85/15 | 80/20 | none | 85/15 | ~85/15 | 80/20 |
| 3 | 90/10 | 85/15 | none | 90/10 | ~90/10 | 85/15 |
“None” means the grader has no such grade or publishes no figure for it. ACE’s figures are strict: a card must be better than the figure, not at it. CGC’s column is what applies to a trading card: below its 10s, CGC’s only such figure is the 90/10 of its 3.5, a grade this table has no row for. Sources: the six pages above, read October 4, 2026, Beckett’s from its May 3, 2026 archive copy.263457
Where they disagree, plainly:
- At 10, ACE is the outlier: under 60/40, against everyone else’s 55/45.7
- From 9 to 3, Beckett asks one band more than SGC and TAG, and one or two more than PSA: two at 6 and 5, where Beckett asks 70/30 and 75/25 against PSA’s 80/20 and 85/15.6245
- At 6 and 5, PSA (80/20, 85/15) is looser than SGC and TAG (75/25, 80/20).245
- On the back, PSA 10 allows 75/25, TAG’s trading-card Gem Mint about 65/35, Beckett’s 9.5 60/40; SGC and ACE state nothing for a 10.25647
- CGC gives trading cards no figure from 9 to 4, and one, an unqualified 90/10, at 3.5.3
3. One card, four answers
Take a raw card that measures 57/43 left to right and 52/48 top to bottom on the front. The worse axis is left to right, at 57. Read against each grader’s published front table, that card is inside the front figure for:11
- PSA: a 9 (60/40), or possibly a 10 if the 5% leeway reaches the 10, which the page leaves open, and only “if the eye appeal of the card is good.”2
- Beckett: an 8 (60/40 both ways). Its 9 needs 55/45 both ways.6
- CGC: not a 10. From 9 to 4 CGC prints no figure for a trading card, so the only CGC figure below 10 that this front is inside is the 3.5’s unqualified “may have 90/10 centering.” That 3.5 marks where CGC’s published figures for a trading card resume, not a judgment that the card is a 3.5.311
- SGC: a 9 (60/40).4
- TAG: a 9 (~60/40).5
- ACE: a 10, since 57/43 is “less than a 60/40 split.”7
The same front is inside a 10’s front figure at one grader, an 8’s at another, and at a third inside no figure between its 10 and its 3.5: four answers from six graders.113 As I read the tables, “the ten-point scale” is six scales that happen to share the numbers 1 to 10. That is the single most useful fact I can give a collector looking at a centering number: it means nothing until you say whose table you are holding it against.
It also means nothing until you say what else is on the card, and here the graders differ again. Centering does not always cap a grade:
- At Beckett the overall grade can run two levels above the lowest subgrade, on the FAQ’s own example of a Corners 6 that came back a 7 overall.20
- At PSA, a card can carry a number above what its centering allows, with OC on the label: “Mint 9oc” is a card that meets a 9 in everything but its 65/35 centering.1
- At ACE, the off-center modifier applies when “the grade for centering is 2 grades or more below the overall card grade.”7
And the back can stop a 10 on its own at PSA, Beckett, CGC and TAG, which all print a back figure for a 10.2635 A front measurement, however good, is one line of one grader’s table.
4. How to measure a card at home
Everything in this section is about measuring your own card against the published figures. None of it predicts a grade, because no grader publishes a way to do that from centering alone, and the back, corners, edges and surface are judged too.
The card and its border
A Pokémon card is 63 by 88 millimeters. My app hard-codes that size, with the comment “A card is 63 by 88,” and collector sites give 63 by 88 mm or 2.5 by 3.5 inches; I found no document from The Pokémon Company or a printer that states it, so the figure stands on the app’s constant and on secondary sites.1825
The borders are narrow, and their width changes by era. I ran a Python copy of the app’s border finder over the TCGdex catalog images of ten cards from each of 27 English sets, evenly spaced through the first half of each set’s numbering, with no filter on rarity.8 On those images:
- About 2.4 mm a side on every set from Unbroken Bonds (2019) through Mega Evolution (2025).8
- 1.2 to 1.5 mm on the EX and Diamond & Pearl sets.8
- About 1.8 to 2.3 mm on Base Set, Fossil and Neo Genesis.8
- Set aside: Sun & Moon base, HeartGold SoulSilver, Black & White and XY read about 1.05 mm or failed outright, which looks like a thin outline in the catalog render rather than the border, so those readings are not used.8
Those millimeter figures assume each image spans the full 63 mm. Catalog images can be cropped or rendered rather than scanned, so treat them as estimates, not as specifications.8
How the printed borders sit by set, on catalog images: the outliers are printed that way, as the last part of this section shows.817
A ruler, a scan and the arithmetic
On a border this narrow, the measuring tool decides what you can tell apart. Take a modern card with 2.4 mm borders. At 55/45 the pair is 2.64 mm and 2.16 mm; at 60/40 it is 2.88 mm and 1.92 mm. The two differ by 0.24 mm on the wide side.9 That quarter of a millimeter is the whole gap between PSA’s front figure for a 10 and its figure for a 9.2
Here is how far one unit of misreading moves the wider number, worked from the border width and the size of the unit:913
| Tool, one unit | Unit size | 2.4 mm border, both sides misread in opposite directions | 2.4 mm, one side read wide | 2.4 mm, one side read narrow | 1.3 mm border, both sides | 1.3 mm, one side read wide | 1.3 mm, one side read narrow |
|---|---|---|---|---|---|---|---|
| Ruler, 0.5 mm marks | 0.5 mm | 10.42 points | 4.72 | 5.81 | 19.23 | 8.06 | 11.90 |
| Rule, 1/32 inch marks | 0.79 mm | 16.54 | 7.09 | 9.91 | 30.53 | 11.69 | 21.97 |
| Scan at 600 dpi, one pixel | 0.042 mm | 0.88 | 0.44 | 0.44 | 1.63 | 0.80 | 0.83 |
| Scan at 1200 dpi, one pixel | 0.021 mm | 0.44 | 0.22 | 0.22 | 0.81 | 0.40 | 0.41 |
Every column starts from a pair that is really 50/50. The “both sides” columns are the case where one border is read a unit wide and the other a unit narrow, which is the worst that one reading per side can do. The “one side” columns are a single misread with the other border exact: read wide, or read narrow, which moves the ratio further. A ruler cannot separate 55/45 from 60/40 on a Pokémon border: one misread half-millimeter mark on one side of an even 2.4 mm pair is already 4.72 points read wide and 5.81 read narrow, about the whole five-point gap between those two figures, and the worst case is 10.42.13 A 600-dpi flatbed scan can: one pixel each way moves the ratio by 0.88 points on a 2.4 mm border and 1.63 on a 1.3 mm one, and at 1200 dpi those halve to 0.44 and 0.81.9
One unit of misreading against the five-point gap between 55/45 and 60/40: both rulers sit above it, both scans well below.91317
Those scan figures are the resolution limit and nothing more. They assume the scanner bed is flat, the card lies square on it, and the frame’s edge is sharp in the scan.9 A warped card, a card lying at an angle, or a soft printed edge each add error the arithmetic does not count.
Worst point, both axes, both faces
The graders’ own rules give the method, and it has three parts.
- Read the worst point, not the average. PSA’s graders “measure from the worst point,” including the worst point of a tilted picture.10 One ruler or pixel reading per side, taken at the middle of each side, can miss a tilt that a grader will count. On a scan, read each border at several places along its length, and keep the worst pair. (That is my practical reading of PSA’s rule, not a method PSA publishes.)
- Read both axes and judge by the worse one. Every grader states its figure per opposite pair, and Beckett says “both ways.”76
- Read both faces. The back has its own figure at PSA, Beckett, TAG and ACE, and at CGC for a 10.26573
Borders that are uneven on purpose
Some Pokémon cards are printed with one border deeper than its opposite. On the catalog images, three patterns stand out.814
The e-card sets: a deep strip down the left. On Expedition, Aquapolis and Skyridge (2002 and 2003), the median left share is 0.767, 0.754 and 0.747 across eight, six and eight cards, the ones of ten tried per set whose borders the finder could read. Expedition 40 reads 5.7 to 7.5 mm on the left against 1.9 to 2.1 mm on the right between 10 and 90% of the edge (the 95% reading, 1.47 mm, is the corner). Aquapolis 60 and Skyridge 50 read, between 10 and 90%, a noisy 1.8 to 7.9 mm on the left against a steady 2.1 to 2.3 mm on the right.814 I read that strip as the e-Reader dot code, which my app’s own code comment places “along the bottom” instead; I could not settle where it sits from a reference: Bulbapedia sat behind a challenge page throughout, and I found no official source.19
Two 2003 EX sets: a deep bottom. EX Ruby & Sapphire and EX Dragon carry a deep bottom border: Dragon 010 reads about 5.1 mm at the bottom against 1.5 mm at the top. EX Hidden Legends and EX Team Rocket Returns, from 2004, read even.814
Sword & Shield on: small print inside the bottom border. On Brilliant Stars 010, the bottom border measures 2.42 mm from 5 to 25% and from 75 to 90% of the card’s width (and 2.52 at 95%), but 0.94 to 1.16 mm from 30 to 60% and again at 70%, with a single 2.42 reading at 65%; the top reads 2.42 mm from 5 to 90% and 2.52 at 95%. Surging Sparks 020 shows the same pattern: 2.31 to 2.42 mm at the ends, 1.05 to 1.36 mm from 30 to 50%, and 1.57 mm at 70%.14 On these renders the printed border is even top to bottom. What sits in the middle of the bottom border is the card’s small print, and a reader that stops at the first change of color stops there.14
Three printings that are uneven by design, drawn from the measured depths; no card art is reproduced.1417
Border depth along the edge on two modern cards: the dip is the small print, and it sits where an automatic reader walks.1417
For a collector with a ruler or a scan, the lesson is to measure to the printed frame, not to the first thing inside the border. On my reading of these images, none of the three patterns is a cutting fault; they are how those cards are printed, and a measurement that treats them as off-center is wrong about the card. How a grader treats them is not on any page I read.19
Fronts with no printed frame
What makes a front measurable is a printed frame on both sides of a pair, not what the card is called. A front whose image runs to the cut edge has no border there: PSA’s glossary calls that “full bleed,” “when a card has no border.”1 “Full art” is a collector’s category, and nothing I read equates it with full bleed: PSA’s definition is of full bleed only, and the app’s comment that a full-art card has “no printed border to measure” is the code’s assumption, not a source.11819 So the test is the card in front of you: where there is no printed frame on a pair of sides, there is no ratio on that axis, and where there is one, it can be measured whatever the card is called. None of the six graders’ pages says how it judges front centering on a card without a frame.19 The back is another matter. The app’s roadmap assumes that “every card has the same blue back,” and if that holds, a back reading is possible on any card; I did not measure a back for this post, so that is the roadmap’s assumption, not a finding.26
5. The craft, as rules with numbers
These are the rules the sections above support, each with where it comes from. They are statements of what the graders publish and what was measured, not grading advice.
| Element | Rule | Source |
|---|---|---|
| The ratio | The share of the combined border on two opposite sides, wider first; 60/40 means 60% of the left-plus-right border is on one side | PSA glossary |
| The border | From the cut edge to the printed frame or picture, not to anything in the art | PSA glossary and standards; TAG rubric |
| Which reading counts | The worse axis, at its most off-center point; PSA’s graders “measure from the worst point” | PSA standards; PSA, 2005 |
| Faces | Front and back judged separately; the back is looser at the top grades wherever a figure is given | PSA, TAG, Beckett, CGC pages |
| A 10, front | 55/45 at PSA, CGC, SGC and TAG; Beckett gives 55/45 a 9 and asks 50/50 one way for its 9.5; ACE takes anything under 60/40 | the six pages |
| A pristine tier, front | 50/50 all around at Beckett, 50/50 at CGC and SGC, ~51/49 at TAG; PSA and ACE have no such tier | Beckett (archive), CGC, SGC, TAG |
| A 10, back | 75/25 at PSA and CGC, ~65/35 on a TAG trading card, 60/40 for Beckett’s 9.5 and Pristine; none published at SGC or for ACE’s 10 | the six pages |
| PSA’s leeway | 5% more on the front for PSA 7 or better: 60/40 automatically meets the 9’s front centering standard; 65/35 may meet it “if the eye appeal of the card is good” | PSA standards |
| The low end | PSA’s 5 and 4 share 85/15; PSA’s 3 to 1.5 and SGC’s 3 to 1.5 share 90/10; past 90/10 a front is inside no published figure at PSA or SGC, whose 1s carry none; the figures that reach past it are Beckett’s Poor 1, “100/0 or offcut”, and TAG’s 2.5 to 1.5, about 92.5/7.5 to 98.33/1.67 (ACE’s loosest is 85/15) | PSA, SGC, Beckett (archive), TAG, ACE |
| CGC and trading cards | No centering figure from 9 to 4; one at 3.5, “may have 90/10 centering,” that names no kind of card | CGC grading scale |
| Centering and the label | Not always a cap: Beckett’s overall can run two levels above its lowest subgrade; PSA and ACE can print a higher number with OC | Beckett FAQ (archive), PSA glossary, ACE |
| Tools | A 0.5 mm ruler: 4.7 to 5.8 points per misread on one side of an even 2.4 mm pair, 10.4 for both sides opposite; a 600-dpi scan: 0.44 and 0.88 | measured |
| Modern bottoms | From Sword & Shield on, small print sits inside the middle of the bottom border; measure to the frame at the ends | measured, catalog images |
| e-card and 2003 EX | A deep strip down the left on the e-card sets, a deep bottom on EX Ruby & Sapphire and EX Dragon; printed, not cut | measured, catalog images; the reading is mine |
| No printed frame | No frame on a pair of sides, no ratio on that axis, whatever the card is called; no grader page says how it judges such a front | PSA glossary; the six pages |
Sources for the table: PSA’s glossary and standards;12 the 2005 PSA article;10 Beckett’s archived scale and FAQ;620 CGC;3 SGC;4 TAG;5 ACE;7 the measurements.913814
Two of those rules deserve a sentence each. The tools rule is why a centering number from a ruler should be read as a band, not a value: on a 2.4 mm border, the five-point gap between PSA’s 10 and 9 is about what one misread mark on one side moves it (4.7 or 5.8, by direction), and about half what two opposite misreads do.213 And the modern-bottoms rule is why anything that measures a card automatically has to know which printing it is looking at: the same reading that is an honest 70/30 on one card is a well-cut card with small print on another.
6. The Apple way: what Kiradex’s gauge does today
Kiradex is my card-collecting app, and its scanner measures a raw card’s front centering off the camera. The code’s own description of why is right: its Centering type calls centering “The one part of a card’s grade a camera can measure rather than judge.”27 What follows is what the code does in the working tree as I read it on October 4, 2026, and then where it goes wrong. The code was read, not run on a phone; the comparisons below re-implement its logic in Python and run it against the published tables and against catalog images, which is the honest limit of what this section can claim.27118
Finding the card
The gauge, CenteringGauge.measure, hands the picture to a card examiner that works in three steps.18
- Vision finds the card. A
VNDetectRectanglesRequestlooks for a rectangle with an aspect ratio from 0.6 to 0.82, a minimum size of 0.25 of the picture, a quadrature tolerance of 20 degrees and a minimum confidence of 0.5, returns up to six, and the examiner keeps the largest. The comment beside the aspect range: “A card is 63 by 88; a hand never holds the camera square to it.”18 - The corners are pushed out. Each corner moves away from the middle to take in a 5% margin of table, so that “the card’s own edge is then found in the picture, rather than trusted to where the rectangle finder put it.”18
- Core Image flattens it. The
CIPerspectiveCorrectionfilter squares the card up, and it is redrawn upright at 800 pixels wide.18
Finding the border
On each side of the flattened picture, the examiner walks 31 lines in from the edge, spread across the middle 30 to 70% of that side, “clear of the corners.” Each walk passes table, then the card’s cut edge, then border, then the printed frame.18
- A boundary is the first step from which three pixels in a row differ from the color before it by more than 38, a distance in RGB “out of 441 between black and white.”18
- The border’s color is sampled just inside the edge, “clear of the cut edge and its shadow.”18
- Agreement: the edge is kept only if at least three fifths of the walks find one and agree within 50%; the border only if they agree within 15%. The reading is the middle value of the walks: the median.18
- A sanity bound: a border must be more than 1.2% and less than 12% of the picture across that side, or, in the comment’s words, “a border is a few percent of the card; anything else is not one.”18
What it reads, and what it refuses
The result is two shares, the left border’s share of left plus right and the top border’s share of top plus bottom, written the way graders write them, wider first: “54/46 · 52/48”, left to right and then top to bottom.2728 The worse axis drives everything after it.27
It refuses in two places. It returns nothing when there is no card, or “no printed border to measure: a full-art card, or a card on a table its own colour.”18 The full-art part is the comment’s assumption; what the code actually tests is whether the walks find a border on each side, which is the right test (section 4). And it drops the top-to-bottom reading by the year of the card’s set: for 2002 to 2004, because those cards “carry a strip of e-Reader code along the bottom”; from 2023, because “the bottom border is printed deeper to hold the card’s small print”; and when the year is unknown, because “A year not known is not trusted.”2729
From the worse axis it computes a ceiling, documented as “The highest grade on the ten-point scale that centring like this allows on the front”: 55/45 for a 10, 60/40 for a 9, 65/35 for an 8, 70/30 for a 7, then 80/20, 85/15 and 90/10 for 6, 5 and 4, and 3 for anything worse.27 Before it compares, it rounds the share and subtracts half a point, because “A measurement off a phone is good to about a point; the half point keeps a true 55/45 from reading as a miss.” Its comment ends: “Corners, edges and surface can only bring it down.”27
What it shows
- The scan sheet: “Allows up to a” and the ceiling, then “corners, edges and surface not judged.”15
- The copy editor: “Measured off the camera, front only. Centering like this allows up to a” ceiling “on the ten-point scale; corners, edges and surface, which aren’t judged, can only bring that down.”16
- When nothing is read: “Centering not measured: needs a bordered card on a plain surface,” said only for a raw card, because “a case hides the card’s edges.”15
- A graded copy shows its grade and drops the centering: a PSA 10’s summary is “PSA 10,” with no measurement beside it.28
What it does not claim
It does not judge the back, the corners, the edges or the surface. The app’s roadmap leaves “A grade guess” open: wear seen from the front “was tried and dropped (false wear on a quarter of unworn catalog scans: printed borders differ too much by era).” The route it proposes is the back, since “every card has the same blue back,” and that “needs real cards of known grade to be tuned on.” It also lists “Run it on a phone” as unproven: “Focus distance, zoom, speed, glare on foil, and slabs behind plastic are all unproven; the Simulator has no camera.”26
The tests are synthetic drawings, not photographs. A card drawn with 48 and 24 pixel side borders and 30 and 42 pixel top and bottom borders, tilted 2 degrees on a dark table, must read 0.667 and 0.417 within 0.04, with a ceiling of 7 or 8; an even card must read 0.5 within 0.04; a gray picture with no card reads nothing.30
Where it goes wrong, measured
Five things in that code are wrong or overstated today, and a sixth is unproven. Each is stated as what the code does now. The grade-mapping comparison is a Python re-implementation of the Swift, which was not itself executed; the border findings come from a Python copy of the Swift border finder run on TCGdex catalog images, which may be scans, renders or crops, not on photographs taken with a phone.118
1. The grade mapping is too kind from 75/25 on (measured, Python re-implementation).11 The comment maps “80/20, 85/15 and 90/10” to 6, 5 and 4. PSA requires 85/15 for both its 5 and its 4 and gives 90/10 to its 3; SGC also gives 85/15 a 4 and 90/10 a 3.2724 The comparison script keeps each grader’s figures as written: a grade with no published figure, such as PSA 1, SGC 1 and TAG 1, is never matched; ACE’s figures are strict (“less than,” “greater than”), so a card at exactly 60/40 misses ACE’s 10; and Beckett’s 9.5 needs 50/50 on one axis. Walking every worst-axis share from 50.0 to 100.0 in steps of 0.1, with the other axis at 50/50:11
- From 75.1 to 85.0, against SGC and ACE. The app says “up to a 6” to 80.4 and 5 from 80.5; SGC says 5 from 75.1 and 4 from 80.1, and ACE says 3 from 80.0, and from 85.0 the front is outside every figure ACE publishes. That is one or two grades above SGC, and two or three above ACE from 80.0, while the app still matches PSA there apart from the half point at 80.1 to 80.4.11
- From 85.5 to 90.0 the app says “up to a 4”; PSA and SGC say 3, Beckett 2, TAG 3 to 3.5.11
- From 90.1 on, past PSA’s and SGC’s last figure. The app says “up to a 4” through 90.4 and “up to a 3” from 90.5. PSA and SGC publish no figure there at all: their 1.5 and 2 need 90/10, PSA 1 has no centering sentence and SGC 1 no figure. Beckett’s only grade left is its Poor 1, “100/0 or offcut,” and TAG steps from 2.5 down to 1.5; past 98.33 its only grade left, the 1, has a sliver-of-border rule and no ratio.112465
- By design, half a point at each boundary. At 55.1 to 55.4, 60.1 to 60.4, 65.1 to 65.4, 70.1 to 70.4, 80.1 to 80.4, 85.1 to 85.4 and 90.1 to 90.4, the rounding and the half-point slack give the higher grade. That is the slack the comment states for phone error, and I count it as a choice, not a defect, except at 85.1 to 85.4 and 90.1 to 90.4, where it lands on top of the low-end error above: at 85.1 to 85.4 the app says 5 where PSA and SGC say 3, and at 90.1 to 90.4 it says 4 where they publish nothing.11
The low end is where the app overstates most: by two grades at PSA and SGC from 85.1 to 85.4 and by one from 85.5 to 90.0, and from 90.1 on it names a grade where PSA and SGC publish no figure for any grade.11 Against SGC and ACE it runs high from 75/25 and 80/20, well before it parts from PSA.11 And from 55.1 on it sits one to three grades above Beckett (three at 80.1 to 80.4, 85.1 to 85.4 and 90.1 to 90.4), whose tables are stricter, which no single mapping can fix.11 The script’s CGC column reads 3.5 from 55.1 to 90.0 only because CGC prints no trading-card figure from 9 to 4, so it says nothing about how the app’s numbers compare with a CGC grade, and I leave it out of this count.113
The app’s mapping against three graders’ front tables, from the comparison script’s output: it matches PSA to 85/15, runs above SGC from 75/25, is too kind against both from 85/15 to 90/10, and past 90/10 names a grade where neither publishes a figure.1117
2. Sword & Shield cards are misread top to bottom (measured, catalog images).814 The app trusts the top-to-bottom reading for every set before 2023 outside 2002 to 2004. Run the app’s border rule over catalog images and the median top share reads 0.697 on Sword & Shield (two cards measured), 0.697 on Brilliant Stars (nine) and 0.697 on Crown Zenith (nine), against 0.667 to 0.688 on the Scarlet & Violet and Mega Evolution sets.8 (Crown Zenith is dated 2023 in the app’s index, so the app already drops its reading.) The cause is the small print, not the cut: the walks cover the stretch of the bottom border where the print sits, as section 4 showed.14 On my reading, the app’s 2023 cutoff gets the right result for Scarlet & Violet for a different reason than its comment gives, and on a perfectly cut card from 2020 to 2022 it would report about 70/30 top to bottom, and the sheet would say “up to a 7.”827 The uncertainty: only two of the ten Sword & Shield base cards gave a top-to-bottom reading, and these are catalog images.8
3. The e-card sets are misread left to right (measured, catalog images).814 The code assumes the e-Reader strip runs “along the bottom,” so for 2002 to 2004 it drops top to bottom and keeps left to right.27 On the e-card catalog images it is the left border that is deep, with median left shares of 0.767, 0.754 and 0.747.8 So for those sets the app keeps the one axis that is printed uneven: a perfectly cut Expedition card would show about 77/23 left to right, and the sheet would say it allows up to a 6.827 The same year rule drops the top-to-bottom reading on EX Hidden Legends and EX Team Rocket Returns (2004), which read even, while it is right to drop it on EX Ruby & Sapphire and EX Dragon (2003), whose bottoms are deep.8 The uncertainty: where the dot code sits could not be confirmed from a reference.19
4. The copy overclaims (read from the code and the graders’ pages). The sheet’s “Allows up to a” with a number, and the editor’s “on the ten-point scale,” imply one scale and a cap.1516 Section 3 showed six scales, and “can only bring that down” is false in three places: Beckett’s overall can run two levels above a low subgrade, PSA prints “Mint 9oc,” and ACE’s off-center modifier exists for a centering grade “2 grades or more below the overall card grade.”2017 The back is not measured, and at PSA, Beckett, CGC and TAG the back alone can stop a 10.2635
5. It reports the median, not the worst point (read from the code). PSA measures “from the worst point” and designates centering “at the most off-center part of the card.”102 The app takes the median of its 31 walks across the middle 40% of each side and skips the corners on purpose.18 On a print that is skewed, a tilted frame or a diamond cut, the border changes along the side; the median then reports the middle of the side while a PSA grader reports the worse end. Beckett and SGC both name diamond cutting in their grade texts.64
A tilted frame: the median of the walks reads 50/50, the worst walk 54/46, and the worst point on the card 60/40, which the walks over the middle 30 to 70% cannot reach.1718
6. Phone accuracy is unproven (arithmetic, no phone run). The comment says a phone reading “is good to about a point.” The flattened card is about 727 pixels across 63 mm, so one pixel is 0.087 mm, and one pixel misread on each side in opposite directions moves a 2.4 mm border’s ratio 1.80 points; on one side alone, from an even pair, 0.89 read wide or 0.92 read narrow.913 Whether the phone holds to a pixel at all, with focus, glare and a hand-held angle, has not been measured; the roadmap says as much.26
What it costs
Unmeasured. Nothing in this post was run on a phone, so there is no time per scan, no battery figure and no accuracy figure from a camera. The app’s tests were read but not run for this post.3026
7. The brief: what Kiradex builds and the checks it must pass
The measurement is the product. A front ratio, read honestly and set beside what each grader publishes, is useful to a collector deciding whether a card is worth sending; a grade the app cannot stand behind is not. Three facts rule a grade out: there is no single ten-point scale, centering does not cap the grade at Beckett or at PSA and ACE once the label carries OC, and the back is not measured.112017 So the app may claim a measurement, may set it beside each grader’s published front figure with the source and the date, and must not claim a grade, a ceiling or what a card “allows.”
1. Show the front reading first, and call it the front
The first line is the reading itself, with the face named: “Front centering 57/43 left to right · 52/48 top to bottom, measured off the camera.” Never “centering 57/43” without “front.”11 When top to bottom is not compared, say why in the card’s terms: “Top-to-bottom isn’t compared on this card: its bottom border is printed deeper” for EX Ruby & Sapphire and EX Dragon, whose bottom border is deep; “Top-to-bottom isn’t compared on this card: its bottom border carries small print” from Sword & Shield on, whose border is even with small print inside it (section 4); and, for the e-card sets, the same shape across the other axis: “Left-to-right isn’t compared on this card: its left border is printed deeper”.814
Check: a test builds the reading string for a card with both axes, one with top nil and one with left nil, and asserts each contains “Front centering” and names the axis it dropped.
2. Set the reading beside each grader’s published front figure
Under the reading, a small table titled “Published front tolerances,” one row per grader, each naming the best grade whose published front rule both axes of the reading satisfy, in the grader’s own terms, with the back figure for that grade and the source and date. A row names a grade only for a reading that passes items 4 and 7: a validated worst-point estimate, inside the accuracy gate. Any other reading gets the same table with each grader’s figures listed and no grade named. For a validated 57/43 · 52/48 front it reads:11263457
| Grader | A 57/43 front is inside the published front figure for | Their back figure for that grade | Source |
|---|---|---|---|
| PSA | 9 (60/40) | 90/10 | psacard.com/gradingstandards, read 2026-10-04 |
| BGS | 8 (60/40 both ways) | 80/20 | beckett.com/grading/scale, archived copy of 2026-05-03 |
| CGC | no trading-card figure from 9 to 4 | none | cgccards.com/card-grading/grading-scale, read 2026-10-04 |
| SGC | 9 (60/40) | not published | gosgc.com/card-grading/scale, read 2026-10-04 (rendered October 5 UTC) |
| TAG | 9 (~60/40) | ~75/25 (trading cards) | taggrading.com/pages/rubric, read 2026-10-04 |
| ACE | 10 (under 60/40) | not published | acegrading.com/grading-scale, read 2026-10-04 |
CGC’s row names no grade. From 9 to 4 CGC prints no centering figure for a trading card, and the only lower figure, the 3.5’s “may have 90/10 centering,” names no kind of card; a 3.5 beside a well-centered card would read as a grade, so for any front from 55.1 to 90.0, where the comparison script’s CGC column reads 3.5, the row says “no trading-card figure from 9 to 4” instead.311
Under the table, one line: “Centering only. Graders also judge the back, corners, edges and surface, and may use discretion; this is not a grade.” Under PSA’s row, a note: “PSA allows 5% more on the front for grades 7 and up when eye appeal is good.”2 Beckett’s row says “archived” until Beckett’s site is back and re-read.12
Three rules for the lookup, each from the graders’ own wording:11672453
- Both axes, every time. Each rule is checked on both axes: “both ways” at Beckett, “any opposite pair” at ACE, the worse axis elsewhere. Beckett’s 9.5 asks “50/50 one way, 55/45 the other,” so a 55/45 · 50/50 front is inside its 9.5 and a 55/45 · 55/45 front only inside its 9. When an axis was not measured (top to bottom dropped under item 5, or a pair of sides with no printed frame), the row says “incomplete: top to bottom not measured” and names no grade. Today’s
worstcounts a missing top as 50/50; this replaces that. - Each threshold keeps its operator. “Or better,” “not to exceed” and “within a tolerance of” take the figure in; ACE’s “less than a 60/40 split” and “greater than” leave it out, so a front at exactly 60/40 misses ACE’s 10.
- No figure is not a grade. Where the reading is past every figure a grader publishes and the grades below carry none (PSA 1, SGC 1, TAG 1, and CGC from 3 down), the row says “no published figure” and names no grade. Where the reading is outside every figure and every grade has one, as at ACE from 85/15 on, the row says “outside ACE’s published figures.”
The tables live as data, a bundled JSON file with a source URL and a read date per grader, each rule carrying its grade, its operator, the axes it covers and the verbatim fragment it came from, or, for a grade with no figure, the page’s own words; measure_ceiling_vs_tables.py holds the same model, and a changed page then means one data edit and a test.11
Check: unit tests on the per-grader lookup, with shares given as the wider share per axis and the other axis at 0.50 unless named. PSA: 0.87 gives 3, 0.84 gives 5, 0.57 · 0.52 gives 9, 0.91 gives “no published figure,” and 0.57 with top to bottom missing gives “incomplete.” SGC: 0.87 gives 3 and 0.91 “no published figure.” Beckett: 0.57 · 0.52 gives 8, 0.55 · 0.50 and 0.50 · 0.55 give 9.5, 0.55 · 0.55 gives 9, and 0.55 with top to bottom missing gives “incomplete.” ACE: 0.599 gives 10, 0.600 gives 9, 0.601 gives 9, and 0.85 gives “outside.” TAG: 0.99 gives “no published figure.” CGC: 0.57 and 0.87 give “no trading-card figure from 9 to 4,” and 0.91 gives “no published figure.” Each expected value is the comparison script’s output for that case, except CGC’s at 0.57 and 0.87, where the script reads 3.5 and the app shows the words instead.11 A second test loads the JSON and fails if any grader lacks source or read, or any rule lacks an operator.
3. Never a grade: the wording to drop
| Drop | Why | Say instead |
|---|---|---|
| “Allows up to a 9,” “ceiling” | Implies one scale and a cap; false at Beckett, and at PSA and ACE with OC | “Inside PSA’s and SGC’s published front figure for a 9” |
| “on the ten-point scale” | Six graders, six tables | name the grader |
| “can only bring that down” | Beckett’s overall can run two levels above a low subgrade | “Graders also judge back, corners, edges and surface” |
| “PSA 10 centering,” “gem centering” | Reads as a grade claim, and PSA’s own wording is “approximately” | “within PSA’s published 55/45 front figure for a 10” |
| “perfectly centered,” “50/50” | Not resolvable until the phone’s accuracy is measured (item 7) | the measured whole numbers, with “± E” when E is above a point (item 7) |
| “pre-grade,” “grade estimate,” “will grade” | Not measured; corners, edges, surface and back are unjudged | nothing: leave it out |
| a grader’s logo or label colors | Trade dress; the names are there only to attribute their published standards | plain-text names |
Sources for the reasons: section 3 and the pages it cites.20172 The strings to change are the scan sheet’s and the copy editor’s.1516
Check: a test calls CenteringNote.text(for:) on a sample reading and fails if the result contains “Allows up to”, “ceiling”, “ten-point” or “can only bring”; the scan sheet’s line is a private readings property in ScanResultPanel.swift, so a second check searches the app’s Swift sources for the same four phrases in string literals. The app has no .strings or .xcstrings file of its own; its copy lives in Swift string literals.1516
4. Measure the worst point, not the median
Report the worst of the walks that agree (or a high percentile of them, if the worst proves noisy on real photographs), not their median, and say so in the copy: “at its widest.” This is PSA’s rule, and the median hides a tilted frame.10218 The worst walk is still not the worst point. The walks cover only the middle 30 to 70% of each side, so on a tilted frame the worst walk reads short of the card’s worst end.1817 How far toward the corners the walks can go before they meet the rounded corner and its shadow is for real photographs to show; on my reading, that is the next step after this one, not part of it.
Check: a synthetic card whose frame is rotated inside an upright card, the left border 30 pixels at the top and 45 at the bottom and the right the mirror, must read the worst walk’s wider share, max(left, 1 - left), as 0.54 within 0.01. The frame is symmetric, so the walks nearest the top and the bottom read 0.46 and 0.54, the same distance from even; asserting the wider share passes whichever one an implementation keeps. The current median reads that card 0.50, so 0.01 tells the two apart; the card’s worst point, at its very end, is 0.60, which walks over the middle 30 to 70% cannot reach.1718
That gap decides what the reading may be set beside. PSA designates centering “at the most off-center part of the card,” so a reading of the middle of each side is not the number a PSA figure is written for.210 On this card the worst walk, 54/46, is inside PSA’s front figure for a 10, and the worst point, 60/40, is not: it is inside the 9’s.11 So until a worst-point estimate is validated, every reading carries the label “sampled region: the middle of each side,” and item 2’s table lists the graders’ figures without naming a grade. A reading counts as a worst-point estimate only once the walks reach the ends of each side, or a correction from the walks to the ends is shown to work, against the scanned cards of item 7 whose worst points were measured.
Check: the tilted card’s reading has region == .sampled, its copy contains “sampled region,” and every row of item 2’s table names no grade. A second test marks the same 0.54 reading, with top to bottom at 0.50, as a validated worst-point estimate with an error of zero and asserts that the rows then name grades, PSA’s 10 among them, so the gate, not the lookup, is what withholds them.
5. Key the uneven-border rules to sets, not years
Three rules replace the year test.81427
- Sword & Shield on: walk the bottom outside the small print. Either walk the bottom side at 10 to 25% and 75 to 90% of its width, where both measured cards read their full border at every step, clear of the print and short of the 95% step, where Brilliant Stars 010’s bottom drifts to 2.52 mm from a steady 2.42, or extend the no-top-to-bottom rule to the Sword & Shield sets. The measured depths put the print at about 30 to 70% and the full border outside it.14
- The e-card sets: drop left to right, keep top to bottom. For Expedition, Aquapolis and Skyridge, the deep strip is on the left. Because
leftis not optional today, the type changes. - The 2003 EX sets: drop top to bottom by set. EX Ruby & Sapphire and EX Dragon have the deep bottom; EX Hidden Legends and EX Team Rocket Returns (2004) read even and should keep their reading.
Checks:
- A synthetic card like the existing
centringIsMeasuredOffAPicturetest, with a 1 mm band of a different color across the middle 30 to 70% of an otherwise even bottom border, must read a top share within 0.04 of 0.5, or nothing.30 measure_borders.py, pointed at the new walk positions, gives a Brilliant Stars median top share between 0.47 and 0.53.8- A trust function keyed by set returns
left == nilfor ecard1 to ecard3 andtop == nilfor ex1 and ex3, the two EX sets measured with a deep bottom, and a test covers the reading string “52/48 top to bottom.” ex2 was not among the sets measured; it joins the list only after its images are measured and the result kept.
6. Say what the back can do
“Back not measured. For a 10, PSA allows 75/25 on the back, TAG about 65/35 on a trading card, and Beckett 60/40 for a 9.5.”256 The back is also where the roadmap wants to look for wear, on its assumption that “every card has the same blue back,” so a back reading is the natural next step. If that assumption holds, the same border finder should work there, on a border of one color with no small print, but neither the assumption nor the finder on a back was tested for this post.26
Check: a test asserts the back line appears under every raw-card reading, with its three figures matching the bundled JSON.
7. Prove the phone’s accuracy before showing whole numbers
The code’s “good to about a point” is a claim, not a measurement. On the flattened card, one pixel each way moves an even 2.4 mm border’s ratio 1.80 points, and one pixel on one side 0.89 to 0.92.913
Photograph ten bordered cards whose borders, worst points included, were measured on a 600-dpi (or 1200-dpi) scan, five shots each, and log the app’s front ratio error per shot, mean and worst, in points. The worst absolute error, E, sets what the app may show:
- E of 1.0 point or less: whole numbers, “57/43.” One point is the code’s own claim.27
- E above 1.0 and up to 2.5 points: whole numbers with the error, as “57/43 ± 1.1,” never rounded to a multiple of 5, which would put the shown ratio on a grader’s threshold. 2.5 is half the five-point step from PSA’s 10 to its 9.2
- E above 2.5 points: no ratio and no grader rows. The sheet says the reading is not yet accurate enough to show.
At any precision, a row in item 2’s table names a grade only when the reading’s whole band, the reading plus or minus E on both axes, sits inside that one grade’s figure. When the band crosses a grader’s threshold, the row names that figure instead of a grade, “at PSA’s 60/40 line, within the error,” never “inside.” The limits and the counts in this item are the brief’s design, not a measurement.26
Check: with E = 1.0, a 57/43 · 52/48 reading shows “57/43” and its PSA row names the 9, since its band, 56.0 to 58.0 left to right and 51.0 to 53.0 top to bottom, sits inside the 9’s figure. With E = 1.1 the same reading shows “57/43 ± 1.1” and its PSA row still names the 9 (55.9 to 58.1), while a 59.5/40.5 · 50/50 reading’s band, 58.4 to 60.6, crosses 60, so its PSA row says “at PSA’s 60/40 line, within the error.” With E = 2.5 the 57/43 reading shows “57/43 ± 2.5,” and its band, 54.5 to 59.5, crosses 55, so its PSA row says “at PSA’s 55/45 line, within the error.” With E = 20, the same 57/43 card shows no ratio and no rows; the comparison script finds that a band that wide would run from PSA’s 10 to its 6.11
Not in this brief
- A grade, a grade range, a pre-grade or any “will grade” language.
- Back measurement itself (item 6 only describes it; the finder on the back is untested).
- Corners, edges and surface.
- Fronts with no printed frame on a pair of sides: no ratio on that axis, so item 2’s rows read “incomplete.” What makes a front eligible is a measurable printed frame, not the “full art” label, and no grader publishes how it judges a front without one.
- Slabbed cards: the app already declines, because “a case hides the card’s edges.”15
- Graders’ logos, label colors or anything that could read as their endorsement.
Key Takeaways
If you collect
- A centering number is a share of opposite borders, wider first, taken on the worse axis at its worst point, front and back separately. A number means nothing until you say whose table you hold it against.1210
- For a 10 on the front, 55/45 is the common published figure (PSA, CGC, SGC, TAG); Beckett gives that a 9; ACE allows anything under 60/40. Beckett’s figures here are from its May 3, 2026 archive copy while its site is offline.23456712
- Check the back. PSA’s 10 allows 75/25 there, a TAG trading-card Gem Mint about 65/35, Beckett’s 9.5 60/40; SGC publishes no back figure, ACE none for its 10, CGC none for trading cards below 10.256473
- Measure with a 600-dpi scan, not a ruler: on a 2.4 mm border a misread half-millimeter mark moves the ratio 4.7 to 5.8 points on one side and 10.4 for both sides opposite, while one scan pixel moves it 0.44 to 0.88.913
- Measure to the printed frame. Modern cards carry small print inside the bottom border, the e-card sets a deep strip down the left, and two 2003 EX sets a deep bottom; those are printing, not cutting, on my reading of the catalog images.148
If you build the app
- Show a measurement and the published tables beside it, sourced and dated, never a grade or a ceiling; keep the tables as data with the verbatim fragment behind each threshold.11
- Map per grader. One table cannot match six: the app’s single mapping already runs two grades above PSA and SGC from 85.1 to 85.4, names a grade past 90/10 where neither publishes a figure, and sits one to three grades above Beckett from 55.1 on.11
- Take the worst of the agreeing walks, not the median, and say so in the copy.1018
- Key the uneven-border rules to sets: the small print from Sword & Shield on, the left strip on the e-card sets, the deep bottom on two 2003 EX sets.814
- Measure the phone against scanned cards before printing whole-number ratios; one pixel on the flattened card is worth 0.89 to 0.92 points when one border is misread and 1.80 when both are, on an even 2.4 mm border.91326
FAQ
What centering does a PSA 10 need?
PSA’s standards say the image “must be centered on the card within a tolerance not to exceed approximately 55/45 percent on the front, and 75/25 percent on the reverse.” PSA also gives “a 5% leeway” on front centering for cards that grade PSA 7 or better, and its worked example is a 9; the page does not say in so many words whether the leeway reaches a 10. Eye appeal can move a card either way at the grader’s discretion.2
What do 60/40 and 55/45 mean in card grading?
They are the two borders on opposite sides as shares of their total, wider first. A card “60/40 left to right” has 60% of the left-plus-right border on one side and 40% on the other; the measurement runs from the cut edge to the printed picture or frame. Graders read both axes and judge by the worse one.167
Is Beckett stricter on centering than PSA?
On the front, by its published scale, yes, by about one grade at the top: 55/45 is a PSA 10 but a BGS 9, and 60/40 is a PSA 9 but a BGS 8, and Beckett applies its figure both ways. Beckett’s site has been offline since a notice dated October 2, 2026, so these figures come from the Wayback Machine’s copy of May 3, 2026 and may differ when the site returns.6212
Does SGC or CGC have back centering standards?
SGC publishes no back centering figure at any grade. CGC gives “reverse centering is not to exceed 75/25” for its Gem Mint 10, and its only other back figure, 90/10 at 9, is for sports and non-sports cards. On the front, CGC’s figures from 9 to 4.5 are for sports and non-sports cards only, while its 3.5, “may have 90/10 centering,” names no kind of card.43
How do you measure card centering at home?
Scan the card at 600 dpi or more, square on a flat bed, and count the pixels from the cut edge to the printed frame on each pair of sides, at several places along each side; keep the worst pair and the worse axis, and do the back as well. At 600 dpi one pixel is 0.042 mm, so one pixel each way moves the ratio of a 2.4 mm border by 0.88 points; a half-millimeter ruler mark moves it 10.4 that way. The method is my reading of how PSA describes its graders measuring; the arithmetic is measured.910
How is centering judged on full-art cards?
None of the six graders’ pages says. What matters for measuring is whether the front has a printed frame: where the image runs to the edge on a pair of sides, which PSA calls “full bleed,” there is no frame to measure a ratio to on that axis. The name “full art” alone does not tell you; look for the frame. The back, where it has a border, can still be measured.119
Can an app grade a card’s centering from a photo?
It can measure centering, which is one part of what graders judge; it cannot judge corners, edges, surface or the back from a picture of the front, and the graders’ tables disagree with each other on what a given ratio earns. My own app’s scanner has not yet had its accuracy measured on a phone.2611
Related on this site: Kiradex’s pixel town is the subject of the series that starts with Pixel-Art Worlds on iPhone, the tile systems and RealityKit recipe; Pixel-Art People: Characters and a Creator on iPhone is the collector who walks it; and Pixel-Art Structures: Houses, Halls and Interiors on iPhone is the post this one borrows its shape from, measured canon first and the app’s brief last.
Sources
-
Collectors Holdings (PSA), “Collecting Lingo” glossary, https://www.psacard.com/Resources/Lingo, fetched October 4, 2026 and saved as
psa-lingo.txtin the author’s evidence folder for this post. Carries the definitions of centering (“measuring the distance between the photo and the edge of the card from opposite sides”), the 50/50 and 60/40 example, “border,” “Full Bleed,” and the “Mint 9oc” example. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Collectors Holdings (PSA), “PSA Grading Standards,” https://www.psacard.com/gradingstandards, fetched October 4, 2026. The grade list is a carousel and a plain fetch contains only PSA 10, so
render_psa_slides.pyloaded the page in headless Chromium and saved its message bundle (psa-grade-messages-1.json, a Next.js chunk served from psacard.com), andextract_psa.pyprinted every grade’s centering sentence intopsa-grades-extracted.txt; the eye-appeal examples are from the rendered page (psa-grading-standards.rendered.txt). Carries the per-grade front and back figures, the OC definition, the 5% leeway for PSA 7 or better with the PSA 9 example, the centering note on eye appeal, the high-contrast example, and half-point grades between PSA 2 and PSA 9. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
CGC Cards, “Grading Scale,” https://www.cgccards.com/card-grading/grading-scale/, fetched October 4, 2026 (
cgc-grading-scale.txt). Carries Pristine 10 (50/50), Gem Mint 10 (approximately 55/45 front, 75/25 reverse), the trading-card sentence at 9 with no ratio, the figures given “For sports and non-sports cards” at 9, 8, 7.5, 7, 6 and 4.5, and the Very Good+ 3.5 sentence, “A Very Good+ card may have 90/10 centering,” which names no kind of card. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
SGC, “Grading Scale,” https://gosgc.com/card-grading/scale. The scale is a list of twenty tabs;
render_sgc_tabs.pyclicked each one and saved the text (sgc-grade-tabs.txt, rendered 2026-10-05 05:22 UTC, October 4 in California) and the Angular bundle the text comes from (sgc-grade-bundle-0.js, from https://gosgc.com/chunk-XZCQGYIQ.js); the introduction (“guidelines”) is insgc-grading-scale.rendered.txt. Carries every grade’s front figure or its absence, the unexplained “four sharp corners*,” and no back figure at any grade. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
TAG Grading, “Rubric,” https://taggrading.com/pages/rubric, fetched October 4, 2026, paired grade by grade by
extract_tag.pyintotag-rubric-extracted.txt. Carries the front figures from ~51/49 (Pristine) to ~98.33/1.67 (1.5), the trading-card and sports back figures to grade 8, and the “tiny sliver of border” rule below. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Beckett Grading Services, “Grading Scale,” https://www.beckett.com/grading/scale, read from the Wayback Machine capture of May 3, 2026, https://web.archive.org/web/20260503161916/https://www.beckett.com/grading/scale (
bgs-grading-scale-wayback-20260503.txt; the pairing of each grade heading with its centering line was checked by script). Carries every grade’s front figure “both ways” and its back figure, and the diamond-cut allowances. The live page was unreachable (note on Beckett’s status page); the live standard may differ when the site returns. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
ACE Grading, “Grading Scale,” https://acegrading.com/grading-scale, fetched October 4, 2026 (
ace-grading-scale.txt). Carries the front and back figures “for any opposite pair,” the 10’s “less than a 60/40 split,” the “1/1000th of a millimeter” measurement claim, and the Off-Center modifier. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Measurement:
measure_borders.py, outputborders-measured.txt, run October 4, 2026, in the author’s evidence folder for this post. A Python copy of the app’s border finder (Kiradex/Scanner/CardStudy.swiftlines 154 to 252: 31 walks over the middle 30 to 70% of each side, a contrast of 38, agreement within 50% for the edge and 15% for the border, the median, a border of 1.2 to 12% of the picture) run over TCGdex catalog images (https://assets.tcgdex.net/en/) of ten cards from each of 27 English sets listed inKiradex/Resources/CardIndex-en.json, picked at even steps through the first half of each set’s card list, with no filter on rarity (the script’s own comment calls them commons and uncommons; it does not check). Images were held in memory and discarded; none was saved. Millimeters assume each image spans the full 63 mm; catalog images may be scans, renders or crops. The Sun & Moon base, HeartGold SoulSilver, Black & White and XY readings (about 1.05 mm, or none) look like a render outline and are set aside. Set names and years are the index’s. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Measurement:
measure_resolution.py, outputresolution.txt, run October 4, 2026, in the author’s evidence folder for this post. Computes 100·e/(2b), the shift in the wider number for a unit of error e on a pair of borders of average width b, for a 0.5 mm ruler, a 1/32-inch rule, 600- and 1200-dpi scans and the app’s flattened card (800 pixels wide including a 5% margin each side, so about 727 pixels across 63 mm), over border widths of 1.3 to 3.0 mm; and the 55/45 and 60/40 example on a 2.4 mm pair (2.64 and 2.16 mm against 2.88 and 1.92 mm, 0.24 mm apart). That expression is exact for both borders misread by e in opposite directions; see the next check for one border alone. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Joe Orlando, “Taking My Hacks: Crucial Grading Tips,” PSA, December 6, 2005, https://www.psacard.com/articles/articleview/4599/taking-my-hacks-crucial-grading-tips, fetched October 4, 2026 (
psa-article-taking-my-hacks.txt). Carries “PSA graders measure from the worst point,” including the worst point of a tilted picture; the article is signed “Joe Orlando, Editor In Chief.” ↩↩↩↩↩↩↩↩↩↩ -
Measurement:
measure_ceiling_vs_tables.py, outputceiling-vs-tables.txt, first run October 4, 2026, revised and re-run October 5, 2026, in the author’s evidence folder for this post. Re-implements the app’sCentering.ceiling(Kiradex/Scanner/Centering.swiftlines 37 to 51) line for line in Python (the Swift was not executed) and compares it in 0.1-point steps from 50.0 to 100.0, with the other axis at 50/50, with the best grade whose published front rule the reading satisfies; every rule is first checked against a verbatim fragment of the saved page, and the script stops if one is missing. Each grade carries a rule, not a bare number: a figure with the operator its wording supports (strict for ACE’s “less than” and “greater than,” inclusive for “or better,” “not to exceed” and “within a tolerance of”), Beckett’s two-axis 9.5, or no published figure, which is never matched (PSA 1, SGC 1, TAG 1, CGC from 3 down). The lookup takes both axes and returns “incomplete” when one is missing, and the script prints the named cases the brief’s tests use, among them the uncertainty bands of item 7 with each band’s ends. CGC’s column holds the figures that on their face cover a trading card: its 10s and its unqualified 3.5 (90/10), and none from 9 to 4, which are for sports and non-sports cards only. The 57/43 case falls in its 55.5 to 59.9 band, and is also printed as a named case. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Beckett, “Tech Updates,” dated October 2nd, 2026, https://maintenance.beckett.com/techupdates, fetched October 4, 2026 (
bgs-maintenance-techupdates.txt). Says “we detected suspicious technical activity and, out of caution, took our platforms offline” and that services “will return in phases.” Requests that day for beckett.com/grading/scale and /grading/faq redirected to maintenance.beckett.com (bgs-live-maintenance.txt). ↩↩↩↩↩↩ -
Author’s check of the arithmetic in
measure_resolution.py:check_resolution.py, outputcheck_resolution.out.txt, kept with the figure scripts beside the post’s draft, written October 4 and extended October 5, 2026. Every case starts from an even pair of width b a side. For one border read wide by e and the other exact, the share is (b + e)/(2b + e): on a 2.4 mm pair, 4.72 points for a 0.5 mm mark (54.7/45.3), 7.09 for a 1/32-inch mark, 0.44 for a 600-dpi pixel, 0.22 at 1200 dpi and 0.89 for one pixel of the app’s flattened card; on a 1.3 mm pair, 8.06, 11.69, 0.80, 0.40 and 1.61. For one border read narrow by e, the exact border becomes the wider and the share is b/(2b - e): on a 2.4 mm pair, 5.81 (55.8/44.2), 9.91, 0.44, 0.22 and 0.92; on a 1.3 mm pair, 11.90, 21.97, 0.83, 0.41 and 1.72. The opposite-direction figures matchresolution.txt. ↩↩↩↩↩↩↩↩↩↩ -
Measurement:
measure_side_profile.py, outputside-profiles.txt, run October 4, 2026, in the author’s evidence folder for this post. Border depth in millimeters at 19 positions from 5 to 95% along 23 edges of 12 cards, from TCGdex catalog images (among them https://assets.tcgdex.net/en/swsh/swsh9/, https://assets.tcgdex.net/en/sv/sv08/, https://assets.tcgdex.net/en/ecard/ecard1/ and https://assets.tcgdex.net/en/ex/ex3/), with the same finder asmeasure_borders.py. Same limits: catalog images, not photographs; millimeters assume a 63 mm span. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Kiradex,
Kiradex/Views/Scan/ScanResultPanel.swift, working tree read October 4, 2026, lines 205 to 214 (the scan sheet’s “Allows up to a” line, and “Centering not measured” for a raw card only). ↩↩↩↩↩↩↩ -
Kiradex,
Kiradex/Views/Card/CopyEditor.swift, working tree read October 4, 2026, lines 117 to 122 (the copy editor’s centering note). ↩↩↩↩↩ -
Figures: drawn by
make_figures.py(withsvgkit.py), the figure scripts kept beside the post’s draft, October 4, 2026, redrawn October 5, 2026, from the saved grader pages (each figure checked against a verbatim fragment before it is drawn),ceiling-vs-tables.txt,measure_resolution.py’s units andresolution.txt,borders-measured.txt,side-profiles.txt, the set names inKiradex/Resources/CardIndex-en.json, and the brief’s tilted-frame test card. No card image, scan or art is used in any figure. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Kiradex,
Kiradex/Scanner/CardStudy.swift, read in the working tree on October 4, 2026 (read only; no git command was run in that repository, so no commit is cited): lines 11 to 13 (nil for no printed border), 21 to 25 (800 pixels wide, a 5% margin), 46 to 53 (no centering without a left and a right border, no top share without a top and a bottom one), 59 to 96 (VNDetectRectanglesRequestsettings, the corners pushed out,CIPerspectiveCorrection; line 61, “A card is 63 by 88”), 154 to 252 (the walks, the contrast of 38, agreement, the median, the 1.2 to 12% bound), and theCenteringGauge.measureentry point after them. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Not found or not reachable on October 4, 2026, from the research dossier’s record: no grader page fetched (PSA, Beckett’s archive copies, CGC, SGC, TAG, ACE) states how front centering is judged on a full-bleed card; Bulbapedia sat behind a Cloudflare challenge throughout, so the e-Reader dot-code placement has no wiki or official citation here; no Pokémon Company or printer document giving the card size or border widths was found. ↩↩↩↩↩↩↩
-
Beckett, “Grading FAQ,” read from the Wayback Machine capture of March 26, 2025, https://web.archive.org/web/20250326181354/https://www.beckett.com/grading/faq, fetched raw with curl after the archive rate-limited the first fetcher and converted by
html2txt.py(bgs-faq-wayback-20250326.txt). Carries “not a simple average,” “the lowest grade is the most heavily weighted,” the two-level rule with its Corners 6 example, and the Gem Mint minimum. ↩↩↩↩↩↩↩↩ -
PSA, “Grading Your Cards,” March 27, 1996, https://www.psacard.com/Articles/ArticleView/117/grading-your-cards, fetched October 4, 2026 (
psa-article-grading-your-cards.txt). Carries the 1996 standards as ranges and the 5% leeway for “NM7 or better.” ↩ -
CGC Cards, “About CGC Grades” (help center), https://www.cgccards.com/about/help-center-faqs/cgc-cards-grading/about-cgc-grades/, fetched October 4, 2026 (
cgc-faq-about-grades.txt). Carries “Sub-grades are no longer offered by CGC Cards” and the use of artificial intelligence in “measuring its centering.” ↩ -
TAG Grading, “Grading Scale,” https://taggrading.com/pages/scale, fetched October 4, 2026 (
tag-grading-scale.txt). Carries the 1,000-point score, half points, and Pristine at “less than 1%” of cards. ↩ -
TAG Grading, “DIG” report page, https://taggrading.com/pages/dig, fetched October 4, 2026 (
tag-dig.txt). Carries the five reported attributes. ↩ -
Card size: the app’s constant (the
CardStudy.swiftnote above, line 61) and collector sites such as https://pokecardfinder.com/standard-pokemon-card-size/ (a lead only, not a primary source), accessed October 4, 2026. No document from The Pokémon Company or a printer was found. ↩ -
Kiradex,
docs/ROADMAP.md, working tree read October 4, 2026, lines 64 to 73 (“A grade guess,” the blue back, “Run it on a phone”). ↩↩↩↩↩↩↩↩ -
Kiradex,
Kiradex/Scanner/Centering.swift, working tree read October 4, 2026, no commit cited: lines 3 to 12 (the type and its description), 14 to 31 (the ratio as graders write it, the reading string, the worse axis), 33 to 51 (ceiling, its comment and the half-point slack), 53 to 68 (the year rule for top to bottom andtrusted(forYear:)). ↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Kiradex,
KiradexTests/CopyTests.swift, working tree read October 4, 2026: line 175 (a graded copy’s summary is “PSA 10”) and lines 211 to 218 (the reading as graders write it, andceilingcases). Not run for this post. ↩↩ -
Kiradex,
Kiradex/Scanner/ScanSession.swift, working tree read October 4, 2026, lines 159 to 163 (the year of the card’s set looked up and the centering trusted for it). ↩ -
Kiradex,
KiradexTests/ScanSessionTests.swift, working tree read October 4, 2026, lines 260 to 306 (the synthetic centering tests). Not run for this post. ↩↩↩