{"slug": "show-hn-i-put-a-2-43-necklace-on-3-outfits-vlms-priced-it-at-19-to-104", "title": "Show HN: I put a $2.43 necklace on 3 outfits. VLMs priced it at $19 to $104", "summary": "A study by researcher Brianne Lee found that six multimodal large language models priced a $2.43 Temu necklace at $19 to $104 depending on the outfit worn in the photo, with the same object valued up to 3.6 times higher in formal attire versus casual wear. The blind-condition geometric means ranged from Claude Fable 5's $62 formal vs $19 yard (3.3×) to Kimi K3's $104 vs $29 (3.6×), and text-only descriptions reproduced the effect at 2.2–3.9×, confirming that context-driven valuation bias persists even without images.", "body_md": "### Same person, same $2.43 necklace, three outfits: a behavioral study of context-driven valuation bias in six multimodal LLMs\n\n**Brianne Lee** · July 2026 · [briannelee011@gmail.com](mailto:briannelee011@gmail.com)\nCompanion study to [ Which answer did the 17-year-old write?](https://github.com/BraveAnn011/llm-author-misattribution) (Lee, 2026)\n\nOne woman, one chunky gold-tone chain necklace, one pair of earrings — verified purchase price **$2.43 and $0.71** (Temu, receipts in evidence vault). Photographed the same week in three outfits: a tailored blazer against wood panelling, party attire under club lighting, and a flannel shirt in a recycling yard, plus a flat-lay of the jewelry alone on neutral cloth.\n\nAsk six frontier multimodal models what the necklace costs. The answer depends on the outfit — by up to **3.6×** — for a physically identical object. This repo measures that halo, separates it from reference-class error, checks whether the models' material claims shift with context, and records what each model says when confronted with its own bias.\n\n6 models (Claude Fable 5, GPT-5.6, GPT-4o, Grok 4.5, Kimi K3, DeepSeek V4-Pro — DeepSeek text-only) × 7 conditions × repeats, fresh stateless API session per trial: **~1,500 sessions, 4,604 analysis rows**. Every session ends with a cue-probe (\"what visual cues did you use?\") and a ground-truth reveal turn, coded as data. A sequential arm shows two photos in one session and asks whether the necklaces are the same object — with question order counterbalanced.\n\n| Condition | Stimuli | Manipulation |\n|---|---|---|\n| blind | S1 formal / S2 party / S3 yard / S4 flat-lay | none |\n| inst_corp / inst_social | S1, S2 | \"photo from a company website\" vs \"personal social media\" |\n| debias | S1–S3 | instruction: context carries no price information |\n| open | S1–S4 | free response, no format |\n| text | T1–T3 | verbal outfit descriptions, no image |\n| sequential | pairs | same-object probe, pressure, reveal, counterfactual |\n\nHypotheses were pre-registered in the protocol with kill conditions (see `docs/`\n\n): H1 halo (relative), H2 reference-class anchoring (absolute), H3 fabricated material warrant, H4 confession without correction.\n\n**F1 — The outfit prices the jewelry (H1 confirmed).** Blind condition, geometric means: Claude $62 formal vs $19 yard (3.3×), Kimi $104 vs $29 (3.6×), GPT-5.6 and Grok ~1.2–2.0×. Chance would be 1.0×.\n\n**F2 — Two different halo mechanisms.** The flat-lay baseline splits the effect: Claude's yard estimate equals its no-context estimate (0.99×) — formal *inflates*. Kimi's yard estimate is 36% *below* its no-context estimate — casual *deflates*. Identical halo ratios can hide opposite machinery; without the isolation control they'd be indistinguishable.\n\n**F3 — The halo needs no image.** Text-only outfit descriptions reproduce the effect in all six models at 2.2–3.9×. This kills the photographic-quality confound entirely and lets a text-only model (DeepSeek, 2.2×) into the comparison.\n\n**F4 — Refusal is a policy skin, not an absence of bias.** GPT-4o declines 79% of image valuations (\"I can't determine the price from the image\") — then produces the *largest* text-only halo (3.9×). The guardrail blocks the modality, not the inference.\n\n**F5 — Models price the reference class, not the object (H2 confirmed).** Flat-lay estimates run $19–46: 8–19× the receipt, but only 0.8–1.9× a pre-registered $15–40 Western-retail comparable. The order-of-magnitude \"error\" is retail anchoring; scoring against both anchors was pre-registered to separate these.\n\n**F6 — Material stories drift with context (H3, directional).** Upscale material terms appear almost exclusively under formal framing: GPT-5.6 says \"gold-plated\" 12× in formal contexts and 0× on the flat-lay; Kimi produces \"gold vermeil\" only under formal framing. Modest but consistent: the model narrates its prior as if it were pixel evidence.\n\n**F7 — Denial without correction (H4 confirmed).** Asked afterward \"would you have given a different number if the person were dressed differently?\": Claude says yes 24/24 (100%). GPT-4o says yes 34/192 (**18%**) — denying a bias it demonstrably exhibits at 3.9× in text. The direct replication of the companion study's confession-without-correction finding, in a visual domain, with the roles reshuffled: the model that admits is not the model that's unbiased.\n\n**F8 — Fabricated difference.** Shown two photos of the same necklace, Claude asserts they are different objects 11 times and never once says \"same\" (0% same-object accuracy); GPT-5.6 scores 79%. A model inventing a structural difference between identical objects is the visual analog of inventing a material story.\n\n**F9 — The debias instruction trims, doesn't cure:** Claude 3.3→2.6×, Kimi 3.6→3.0×. And an institutional label (\"company website\" vs \"personal social media\") shifts prices for 4 of 5 vision models (GPT-5.6 largest, 1.34×).\n\n**F10 — Meta-finding.** One provider's replacement API key returned answers to *other users' prompts* (0/180 parseable; grammar lessons and greetings instead of jewelry estimates). All 649 affected rows were quarantined (`data/quarantine/`\n\n), and Gemini is excluded from analysis. The toolchain failed in exactly the way this research program keeps documenting; detection required reading raw outputs, not trusting exit codes.\n\n| Model | Formal | Party | Yard | Flat-lay | Halo (F/Y) | Text-only halo |\n|---|---|---|---|---|---|---|\n| Kimi K3 | $104 | $50 | $29 | $46 | 3.6× |\n2.8× |\n| Claude Fable 5 | $62 | $29 | $19 | $19 | 3.3× |\n2.4× |\n| GPT-5.6 | $61 | $129 | $46 | $31 | 1.3× | 3.9× |\n| Grok 4.5 | $62 | $45 | $50 | $33 | 1.2× | 2.6× |\n| GPT-4o | refuses (79%) | — | — | $39 | — | 3.9× |\n| DeepSeek V4 (text) | — | — | — | — | — | 2.2× |\n\nGround truth: $2.43.\n\nMultimodal models are being deployed for insurance appraisal, resale pricing, damage assessment, and identity-adjacent judgments. These results show the assessed value of an object can carry a multiplier derived from the *person wearing it* — their clothing, their setting — and that the model will, when asked, either narrate that prior as visual evidence (F6), deny it (F7), or invent object differences to justify it (F8). All metrics here (halo ratio, isolation delta, material drift, counterfactual admission rate) are cheap, model-agnostic behavioral instruments.\n\n```\npip install requests\ncp scripts/keys_template.json scripts/keys.json   # add your keys (gitignored)\npython3 scripts/run_halo.py --list-models          # verify model ids\npython3 scripts/run_halo.py --dry-run --arm both --repeats 1\npython3 scripts/run_halo.py --arm fresh --repeats 10 --models claude\npython3 analysis/analyze_halo.py data/halo_master_v1.csv\n```\n\n`analyze_halo.py`\n\nreproduces every number above from the released data.\n\n```\ndata/       halo_master_v1.csv (4,604 rows) · raw JSONL per run · quarantine/ (Gemini)\nstimuli/    S1–S4 (resized 1536px; originals withheld — see ethics note)\nscripts/    run_halo.py · keys_template.json\nanalysis/   analyze_halo.py\ndocs/       AI_Halo_proto_v4 (pre-registered protocol incl. kill conditions) · receipts\n```\n\nN = 1 person, one jewelry set, one price tier, one ethnicity/gender: a structured case study, not a bias-rate estimate. Fresh-arm sessions are independent; some cells have unequal n from interrupted runs (all raw logs released, including failures). Gemini excluded (F10). Kimi run with reasoning disabled via API parameter; GPT-5.6 uses `max_completion_tokens`\n\n. Stimuli are author self-portraits, published with consent; face-cropped variants (S5/S6) planned. \"True price\" is a purchase receipt, not an appraisal — hence dual scoring.\n\nData and text CC BY 4.0 · Code MIT.\nLee, B. (2026). *Does the outfit price the jewelry? Context-driven valuation bias in multimodal LLMs.* GitHub repository.", "url": "https://wpnews.pro/news/show-hn-i-put-a-2-43-necklace-on-3-outfits-vlms-priced-it-at-19-to-104", "canonical_source": "https://github.com/BraveAnn011/ai-halo-valuation-bias", "published_at": "2026-07-28 13:07:40+00:00", "updated_at": "2026-07-28 13:22:25.025196+00:00", "lang": "en", "topics": ["large-language-models", "computer-vision", "ai-research", "ai-ethics"], "entities": ["Brianne Lee", "Claude Fable 5", "GPT-5.6", "GPT-4o", "Grok 4.5", "Kimi K3", "DeepSeek V4-Pro", "Temu"], "alternates": {"html": "https://wpnews.pro/news/show-hn-i-put-a-2-43-necklace-on-3-outfits-vlms-priced-it-at-19-to-104", "markdown": "https://wpnews.pro/news/show-hn-i-put-a-2-43-necklace-on-3-outfits-vlms-priced-it-at-19-to-104.md", "text": "https://wpnews.pro/news/show-hn-i-put-a-2-43-necklace-on-3-outfits-vlms-priced-it-at-19-to-104.txt", "jsonld": "https://wpnews.pro/news/show-hn-i-put-a-2-43-necklace-on-3-outfits-vlms-priced-it-at-19-to-104.jsonld"}}