3.1 KiB
3.1 KiB
Our Unified Condition Grading System
We normalise the condition grades of all sources into a single four-tier system:
| Grade | Label | Description |
|---|---|---|
| S | Like New | Virtually indistinguishable from new. Minimal to no signs of use. Screen is perfect. |
| A | Excellent | Light traces of use. Minor cosmetic marks that are barely noticeable. Fully functional. |
| B | Good | Normal signs of use. Visible light scratches or marks. Fully functional. |
| C | Fair | Clear cosmetic defects — dents, deep scratches, color deviations, screen marks. Still fully functional. |
Source Mappings
BilligTeknik
BilligTeknik uses its own letter system (Premium, A, B, C, D). Listings can also carry a combined grade such as "A/B" meaning the device falls between two grades — we map these to the better of the two.
| BilligTeknik grade | Our grade | Rationale |
|---|---|---|
| Premium | S | "Top of A-class", near-new, very few uses |
| A | A | Carefully selected, excellent condition |
| A/B | A | Between A and B — we favour the better grade |
| B | B | Fully functional, minor marks/scratches |
| B/C | B | Between B and C — we favour the better grade |
| C | C | Visible wear, effective price |
| C/D | C | Between C and D — we favour the better grade |
| D | C | One or more clear deviations; still maps to our worst tier |
Nuvoo
Nuvoo uses Swedish descriptive labels as Shopify product variant options.
| Nuvoo label (Swedish) | Our grade | Rationale |
|---|---|---|
| Nyskick | S | "Like new" — virtually unused |
| Utmärkt | A | "Excellent" — light surface traces |
| Bra | B | "Good" — normal signs of use |
| Okej | C | "Okay" — clear cosmetic defects |
Implementation Notes
- The mapping lives in
scrapers/shared.py→map_condition_grade(raw, source). - The normalised grade is stored in
laptops.condition_grade. - The original raw label from the source is not stored separately (it can be derived from
condition_detailif needed). - For BilligTeknik combined grades like "A/B", we always pick the better (leftmost) grade.
- Unknown/unmapped values are stored as-is (so we can detect and handle new grades later).