Skip to content

data(smartphone): compute display ppi from resolution + size (51,557 records)#112

Merged
Seungpyo1007 merged 2 commits into
mainfrom
data/import-staging
Jul 9, 2026
Merged

data(smartphone): compute display ppi from resolution + size (51,557 records)#112
Seungpyo1007 merged 2 commits into
mainfrom
data/import-staging

Conversation

@Seungpyo1007

@Seungpyo1007 Seungpyo1007 commented Jul 9, 2026

Copy link
Copy Markdown
Member

Summary

Computes display pixel density (ppi) for smartphones from fields already in the record — pure geometry, no new/external data.

  • display.ppi = round(sqrt(width² + height²) / size_inch) for 51,557 smartphones that have a resolution and screen size but no ppi.
  • Coverage ppi ~26% → ~81%.
  • Consistency-validated against the 24k records that already carry a source ppi: 89% exact match, 10% off-by-1 (rounding), only 0.4% differ by more — and those are Apple's marketed/rounded figures (e.g. iPhone "326") vs the true geometric density.
  • Guards: requires w,h ≥ 32 and size > 0; rejects results outside [20, 2000] ppi.

Same deterministic method PR #107 used for monitors & laptops, now applied to the smartphone catalogue. All verified: false. Validation passes. Dump regenerated — 51,557 changed smartphone detail pages.

Closes #1

…57 records

Fills display.ppi = round(sqrt(w^2+h^2)/size_inch) for records that have a
resolution and screen size but no ppi. Pure geometry from existing fields — no
new/external data. Validated against records that already have ppi: 89% exact,
10% off-by-1 (rounding); the rare larger deltas are Apple's marketed/rounded
figures. Coverage ~26% -> ~81%.

Refs #1
@github-actions github-actions Bot added data Dataset changes enhancement New feature or request labels Jul 9, 2026
@Seungpyo1007

Copy link
Copy Markdown
Member Author

🤖 TechEngine · data validation

category      changed   verified
smartphone     51,557     false
  • python -m app.validate✅ passed (0 errors), 108,575 records / 10 categories.
  • display.ppi coverage 24,255 → 75,812 (~26% → ~81% of smartphones).
  • Cross-checked vs existing source ppi: 89% exact, 10% ±1, 0.4% >1 (Apple marketed figures).
  • Dump regenerated: 51,557 smartphone detail pages (list summaries unaffected).

@Seungpyo1007

Copy link
Copy Markdown
Member Author

🤖 TechEngine · verify (Tier 0)

Derivation, not import — the density is computed from resolution and size_inch that already live in each record:

  • Formula round(sqrt(w²+h²)/size_inch) is the physical definition of pixel density; validated to reproduce the source's own ppi within ±1 for 99.6% of records that have both.
  • Bounds guard rejects implausible inputs (tiny resolutions, non-positive size) and outputs outside [20, 2000].
  • The ≤0.4% larger deltas are where the manufacturer published a rounded/marketed ppi; for records lacking ppi entirely, the geometric value is the honest measure.

verified unchanged (false). Safe to rebase-merge.

@Seungpyo1007 Seungpyo1007 moved this from Todo to In Progress in TechAPI-Project Jul 9, 2026
@Seungpyo1007 Seungpyo1007 merged commit 16af33f into main Jul 9, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in TechAPI-Project Jul 9, 2026
@TechEngineBot

Copy link
Copy Markdown
Member

🔎 Data verification — Tier 0 (offline existence/trust)

Scored by app.verify; posted by TechEngineBot. Informational only — the structural gate (app.validate) is separate and authoritative for merge.

Changed records in this PR

No records scored.

Full-dataset baseline

105742 record(s) scored.

%%{init: {"theme":"base","themeVariables":{"pie1":"#3fb950","pie2":"#d29922","pie3":"#f85149","pieStrokeWidth":"0px","pieOpacity":"1"}}}%%
pie showData
    title Verification bands — all records
    "Green" : 13192
    "Yellow" : 90617
    "Red" : 1933
Loading
Category Distribution Total 🟢 🟡 🔴 🟢 %
brand 🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 207 24 183 0 11.6%
soc 🟩🟨🟨🟨🟨🟥🟥🟥🟥🟥🟥🟥 2104 123 680 1301 5.8%
smartphone 🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟥 93396 11602 81206 588 12.4%
tablet 🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟥 3455 174 3253 28 5.0%
watch 🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟥 433 11 412 10 2.5%
pda 🟩🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟥 140 27 107 6 19.3%
gpu 🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 2030 245 1785 0 12.1%
cpu 🟩🟩🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨 3977 986 2991 0 24.8%
All 🟩🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟥 105742 13192 90617 1933 12.5%

green = authoritative source + complete + consistent · yellow = plausible, needs confirmation · red = sparse/weak source or a hard contradiction. Promotion to verified runs in the scheduled verify-network workflow.

@TechEngineBot

Copy link
Copy Markdown
Member

TechEngine change review: PASS

Check Result
python -m app.validate PASS
python integrity_check.py TechAPI/data --strict PASS

Changed data

Category Added Modified Deleted Added verified Added unverified Added Kaggle-sourced
brand 0 0 0 0 0 0
soc 0 0 0 0 0 0
smartphone 0 0 0 0 0 0
tablet 0 0 0 0 0 0
watch 0 0 0 0 0 0
pda 0 0 0 0 0 0
gpu 0 0 0 0 0 0
cpu 0 0 0 0 0 0

Changed record examples

  • No data file changes detected.

Heuristic review

  • Heuristic warnings: none found.

@TechEngineBot

Copy link
Copy Markdown
Member

TechEngine validation stats: PASS

Data summary

Category Total Verified Unverified Missing verified Tracked Verified % of tracked
brand 207 10 197 0 207 4.8%
soc 2104 123 1981 0 2104 5.8%
smartphone 93396 8453 84943 0 93396 9.1%
tablet 3455 174 3281 0 3455 5.0%
watch 433 11 422 0 433 2.5%
pda 140 27 113 0 140 19.3%
gpu 2030 244 1786 0 2030 12.0%
cpu 3977 986 2991 0 3977 24.8%
all 105742 10028 95714 0 105742 9.5%

Warning

Tracked verified coverage is below 50% for watch 2.5% (11/433), brand 4.8% (10/207), tablet 5.0% (174/3455), soc 5.8% (123/2104), smartphone 9.1% (8453/93396), all 9.5% (10028/105742), gpu 12.0% (244/2030), pda 19.3% (27/140), and 1 more.
Tracked coverage excludes records missing the verified field; see the Missing verified column for those records.
This does not fail validation. Keep imported records verified: false until manual audit, but treat this as follow-up verification work before relying on the affected categories as curated data.

Validation notes

  • Full advisory outlier listings are suppressed on successful runs because they are dataset-wide and mostly stable between PRs.
  • Failure runs still include a detailed log excerpt for debugging.

Key output:

## app.validate
## integrity_check.py --strict
loaded CPU=3977 GPU=2030
✅ integrity gate: no hard anomalies.
Integrity section Flagged lines
structural 0
CPU name/tier consistency (desktop mainstream only) 0
CPU single>multi (cinebench/geekbench — should be multi>=single) 0
CPU era-vs-score outliers 8
CPU cross-source ratio outliers (possible wrong-variant) 152
GPU cross-source ratio outliers + sanity 18

Seungpyo1007 added a commit that referenced this pull request Jul 9, 2026
… fields

Applies the same two derivations used for smartphones (#111, #112) to the
tablet/watch/pda catalogues: parse launch os_version from the `os` string, and
compute display.ppi = round(sqrt(w^2+h^2)/size_inch). Deterministic, no new data.
tablet +2656 os_version / +2080 ppi; watch +202 / +279; pda +16 / +54.

Refs #1
Seungpyo1007 added a commit that referenced this pull request Jul 9, 2026
… fields

Applies the same two derivations used for smartphones (#111, #112) to the
tablet/watch/pda catalogues: parse launch os_version from the `os` string, and
compute display.ppi = round(sqrt(w^2+h^2)/size_inch). Deterministic, no new data.
tablet +2656 os_version / +2080 ppi; watch +202 / +279; pda +16 / +54.

Refs #1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data Dataset changes enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Massive dataset rebuild: CPU + brand + GPU + smartphone + SoC (1989-2026)

2 participants