Sock loss index calculator
Ten pairs bought and 14 single socks left after 12 months means 6 of 20 socks are gone: 30% in total, a sock loss index of 2.5% per month. Count the drawer, type three numbers and get a calm figure. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Pairs bought
- 10
- Socks remaining
- 14
- Months owned
- 12
- Socks bought
- 20
- Socks lost
- 6
- Lost fraction
- 0.3
- Loss percent total
- 30
This sock loss index calculator turns three household facts — how many pairs you bought, how many individual socks remain in the drawer, and how many months you have owned them — into a single monthly loss rate: the percentage of the original sock inventory that vanished each month. People use it after a laundry season when the drawer looks thinner than the receipt, when roommates share a washer and want a number rather than a complaint, and when a wardrobe spreadsheet needs a replacement rate instead of a vague story about the dryer. The engine is pure finite arithmetic with no network calls, no sampling, and no date-dependent shortcuts. A familiar check is ten pairs bought, fourteen socks remaining after twelve months, which is six socks gone from twenty and a sock loss index of two point five percent per month.
Where sock-loss thinking fits in households, laundry rooms, and software
People meet this question when a winter drawer looks half empty after a year of gym bags and travel laundry, when a shared house wants a calm number instead of blaming whoever last emptied the dryer, or when a parent is deciding how many replacement pairs to buy before school starts. Students in dorms can compare a cheap multi-pack that vanishes in one semester with a thicker set that survives a full year.
Contest and homework practice often needs a fast, offline source of percentages so solutions can be checked without opaque spreadsheet macros under time pressure. Product and education tools use the rate when a learner types a pair count, a remaining count, and a month horizon and the interface must show a clean monthly percent next to a replacement estimate.
Pair it with cost-per-use or shopping-budget helpers when you are building a small lab of everyday household tools, and keep this page for the search people actually type: how fast are my socks disappearing.
What you can do with it
Audit a household drawer after a laundry season
Count the pairs you bought, count the singles still in the house, and see the monthly percent lost so you can decide whether to buy replacements or change how you fold and store.
Compare dorm or shared-laundry inventories
Roommates can log the same three numbers after a semester and see whose sock stock is leaking faster, without turning the dryer into a courtroom.
Plan replacement purchases from a monthly rate
A wardrobe spreadsheet can turn the sock loss index into an expected number of pairs to reorder each quarter instead of guessing at checkout.
FAQ
What does the sock loss index calculator cost?
It is free in your browser on this page.
What happens if I bought zero pairs?
The original inventory would be empty, so the lost fraction and the monthly index are undefined (division by zero).
Does this model a specific dryer or washer brand?
No. It only uses the pair count, remaining sock count, and months you supply. There is no appliance factor, seasonal weather term, or assumed laundry cycle.
How is the sock loss index calculated?
Each pair bought counts as two socks. The socks still in the house are subtracted to get the number lost, which is divided by the socks bought, turned into a percentage and spread over the months you have owned them.
Do I count the remaining socks one by one or in pairs?
Count them one by one, including odd socks without a partner. Only the purchase is entered in pairs; the calculator doubles that figure, so the remaining count can never be more than twice the pairs you bought.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/life/socks-loss-index \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pairs_bought":10,"socks_remaining":14,"months_owned":12}'const res = await fetch("https://api.kit.forhosting.com/life/socks-loss-index", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pairs_bought": 10,
"socks_remaining": 14,
"months_owned": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/socks-loss-index",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pairs_bought": 10,
"socks_remaining": 14,
"months_owned": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/socks-loss-index", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pairs_bought":10,"socks_remaining":14,"months_owned":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pairs_bought":10,"socks_remaining":14,"months_owned":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/socks-loss-index", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"pairs_bought": 10,
"socks_remaining": 14,
"months_owned": 12
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.socks_loss_index",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs_value | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Use it free in the browser for a quick drawer audit, or call the API at $0.002 per successful request when you need the same reproducible index in a household log, a dorm inventory, or a teaching demo.
What the sock loss index means and what the response contains
The sock loss index is the share of the original sock inventory that disappeared, expressed as a percentage, then divided by the months of ownership so households can compare a six-month laundry stretch with a two-year drawer. Ten pairs and fourteen remaining socks after a year is six lost of twenty, thirty percent gone, two point five percent per month. Count every pair you purchased as two socks, subtract the individual socks still in the house, and you have socks_lost. Divide socks_lost by socks_bought to get the lost fraction; multiply by one hundred for a total loss percent; divide that percent by months_owned to obtain socks_loss_index, the monthly percentage. The response echoes the three inputs, reports socks_bought as twice the pair count, socks_lost, the unit lost_fraction between zero and one, loss_percent_total, the primary socks_loss_index, a formula string, a method tag, and the rounding precision. There is no hidden dryer model, no seasonal weather factor, and no assumed washer brand: the engine either evaluates the closed form or rejects the input with invalid_input. Rejected cases include a missing pairs_bought, socks_remaining, or months_owned field, non-finite values, magnitudes above the documented ceiling, a negative pair count or remaining count, remaining socks that exceed twice the pairs bought, a non-positive ownership horizon, and — the case this page is explicit about — pairs_bought equal to zero, because dividing by an empty original inventory is undefined.
How pairs, remaining socks, and months are read and how the rate stays reproducible
Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong monthly rate. Remaining socks cannot be negative and cannot exceed twice the pairs bought. The preferred fields are pairs_bought for how many pairs entered the household, socks_remaining for how many individual socks are still on hand, and months_owned for the ownership horizon in months. Aliases pairs, bought, n_pairs, and pair_count for the pair count; remaining, remaining_socks, socks, and socks_left for the leftover singles; and months, month, owned_months, and ownership_months for the horizon are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. Zero for remaining socks is valid and simply means the entire inventory is gone, so the total loss percent is one hundred and the index is one hundred divided by months_owned. pairs_bought must be strictly positive: if it is zero or at or below a tiny epsilon, the request fails with invalid_input because the original sock count would be zero and the fraction is undefined. months_owned must also be strictly positive, because the monthly index divides by that horizon. An optional precision field, with aliases decimals and dp, chooses how many decimal places to expose, defaulting to ten and capped at fifteen so JSON goldens stay stable. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the inventory arithmetic yourself.
Where sock-loss thinking fits in households, laundry rooms, and software
Households can log pairs_bought, count the singles left, and see whether the monthly loss is a trickle or a leak worth changing how laundry is folded and stored. Developers call the same contract from scripts to seed deterministic test vectors for wardrobe widgets, to normalize user-entered pair counts before a household-budget demo, or to satisfy product statements that demand a socks_loss_index field rather than a joke about missing mates. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — lets you move from a personal drawer check to an automated pipeline without changing the mathematical result.
Technical questions
How is the sock loss index defined?
socks_loss_index equals the percentage of original socks that disappeared, divided by months_owned. Original socks are twice pairs_bought; socks lost are that count minus socks_remaining.
Do I enter remaining pairs or remaining individual socks?
Enter individual socks in socks_remaining. Ten remaining pairs would be twenty socks. The engine already doubles pairs_bought; mixing pair counts in the remaining field would understate the leftover inventory.