The rules the data must meet. The results below are computed in your browser from the public data when the page loads, with the same code that checks the data every night.
Share of active garments with a weight and readable materials (reported, no threshold).
info
–
Datasets
Classification: public readable by anyone (published by choice) · owner-only only the signed-in owner · private not exposed by the app. All data describes one identifiable person, who publishes the public parts by choice.
Garments owner-only
Every garment owned at some point since tracking began, with its details. The source of truth for garment details (decision D-4).
from Google Sheet (retired): daily checkbox columns, migrated (until 2026-10-09) from owner: logged in the app (/log) (since 2026-10-10) – R-15
Field
Type
Required
Definition
Constraints
date
date
yes
The day (document id).
≥ 2018-01-01; not in the future
worn
list of garment ids
yes
The garments worn that day.
each an existing garment id; no duplicates
Settings owner-only
App settings, e.g. settings/app.sheetRetired, the cut-over date after which the retired Sheet may no longer be synced, and the rotation series marked for the Log page.
from Google Sheet (retired): one-off import of the Comparison tab (values only) (until 2026-10-12) from owner: edited in the app (/manage/comparison) (since 2026-10-12)
Field
Type
Required
Definition
Constraints
id
text
yes
Item id (from its name).
type
text
Kind of spending, e.g. Content, Physical service.
item
text
yes
Name.
details
text
Free-text details.
photo
text
Photo file name (Comparison-<Name>) without .png; empty when none.
Every item description dictated or typed on the Log page ("Describe an item"), the garments the matcher proposed and the one the owner added (if any), to measure how well matching works and compare matchers.
from owner: dictated on the Log page; proposals by web/src/lib/voiceMatch.ts (since 2026-10-18)
Field
Type
Required
Definition
Constraints
at
text
yes
When it was entered (ISO time).
date
date
yes
The day being logged.
text
text
yes
The description as dictated or typed.
proposals
list of garment ids
yes
The proposed garments, best first.
chosen
text
The garment added from the proposals, or empty if none was.
rank
integer
The chosen garment's position in the proposals (0 = best).
mode
text
match (best matches) or browse (only a garment type was said: that type's garments by photo, most worn lately first).
matcher
text
yes
Which matcher made the proposals, e.g. voiceMatch v1.
Public wardrobe data public
The world-readable copy for public pages and the MCP server: all garments, the full day-by-day log (as indexes into the garment list) and the comparison items, in one document, so any metric can be computed for any range with one read (decision D-1).
The original data entry, 2018-01-01 to 2026-10-09 - one row per garment, one checkbox column per day. Retired at the cut-over; kept read-only for reference.
Where
Google Sheet 1IQgCth6qPDHv_mqh8wSg9MaphLPR5dlTv0pi2QgAJLM, tab Threddit (and Comparison)