Build
CSV and price sheets
Suggested columns for UGP grades in CSV exports, feeds and wholesale price sheets, with the rules a sheet has to follow.
Rules for any sheet or export
- Codes are fine; the name is reachable. A sheet can show NS, OB, A, B, C or D alone, with the full names in a legend or a header. §11.4
- The version is on the sheet. Put "Graded to UGP v1.0" in the header, or a
ugp_versioncolumn. §14.6 - Disclosures are per line. A carrier lock, non-genuine parts and a partial kit are shown on the line they apply to. §11.4
- Statuses never go in the grade column. Repair or Parts stock goes on its own sheet or in a status column, with the grade column empty. §11.1
- Supplier-mapped grades are labelled. A grade transcribed from a supplier's scale shows the supplier's scale and grade on its line, and its core code ends
~src:supplier. §13.6 - No "+" or "−". Premium is its own column or flag, on Like New only. §10.3
Suggested columns
UGP does not fix a CSV layout. These column names follow the record schema, so a sheet can be read back into a record. Annex B
| Column | Example | Notes |
|---|---|---|
ugp_version | 1.0 | The version graded under |
ugp_status | READY | READY, or the status |
ugp_grade | B | NS, OB, A–D; empty unless READY |
ugp_name | Very Good | In the sheet's language |
ugp_premium | false | true only on A |
ugp_core_code | U1- | The full record in one string |
mapped_from_scale | MobileSentrix | Supplier-mapped grades only: the supplier's scale (axes.cosmetic.mapped_from.scale) |
mapped_from_value | Grade B | Supplier-mapped grades only: the supplier's own grade |
battery_health_pct | 80 | With its basis |
battery_basis | declared | measured or declared |
operator_lock | L | U, L, V or N |
carrier | Rogers | When locked |
parts | U | G, D, M, U or N |
non_genuine_parts | display | Each non-genuine part |
kit | H | F, P or H |
kit_missing | charging cable | When partial |
record_scope | unit | unit or lot |
A small example
ugp_version,model,storage,ugp_grade,ugp_name,ugp_premium,battery_health_pct,battery_basis,operator_lock,carrier,non_genuine_parts,kit,ugp_core_code
1.0,iPhone 15,128GB,A,Like New,true,93,measured,U,,,F,U1-PHN-CA0-FF-B93M-LC-RU-DV-PG-KF
1.0,iPhone 15,128GB,B,Very Good,false,80,declared,U,,,H,U1-PHN-CB-FF-B80D-LC-RU-DW-PU-KH
1.0,iPhone 14,256GB,D,Acceptable,false,84,measured,L,Rogers,display,F,U1-PHN-CD-FF-B84M-LC-RL-DV-PM-KFLots
A line that sells a lot carries record_scope: lot and either one declared grade or a grade distribution, backed by an ISO 2859-1 sampling plan at general inspection level II. The default AQLs are 2.5 for cosmetic, 1.0 for functional and 0 for identity and encumbrance, and a declared distribution holds to ±5 percentage points per grade. §14.5