Title Nine
Title Nine's own bra-size calculator — real band + cup math off three measurements, computed exactly as the site computes it, including the extended cup…
Title Nine's own bra-size calculator — real band + cup math off three measurements, computed exactly as the site computes it, including the extended cup range (up to "M (11D)") that generic AI knowledge gets wrong — plus the exact 'Shop <size>' catalog link when the size is in stock.
Domain: titlenine.com
Also known as: Title Nine, TitleNine, titlenine.com
Call it directly
bowmark.providers.titlenine.calculateBraSize(input: TitlenineBraMeasurements): Promise<TitlenineBraSizeResult>Functions
| Function | What it does |
|---|---|
calculateBraSize | Runs Title Nine's own bra-size calculator — chest/bust/under-bust in, a real band + cup size out computed exactly as the site computes it, including Title Nine's own extended cup labeling… |
Types
// Title Nine's OWN shapes — not a capability contract.
interface TitlenineBraMeasurements {
chestInches: number; // site's calculatable range: 30-46
bustInches: number;
belowBustInches: number; // site requires >= 24
}
interface TitlenineBraSizeResult {
bandSize: number;
cupCode: string; // the site's own raw catalog query param, e.g. "DD%2B"
cupLabel: string; // the label shown to the customer, e.g. "M (11D)"
sizeLabel: string; // "<bandSize><cupLabel>", e.g. "40M (11D)"
inStock: boolean; // false for the extended range (n2 >= 9)
shopUrl: string | null; // pre-filtered catalog link, only when inStock
unavailableMessage: string | null;
calculatorUrl: string;
}Examples
// "I'm not sure what size sports bra to get from Title Nine — 34 inch chest, 38 inch bust, 30 inch underbust."
const result = await bowmark.providers.titlenine.calculateBraSize({
chestInches: 34,
bustInches: 38,
belowBustInches: 30,
});
return { size: result.sizeLabel, shopUrl: result.shopUrl };// A fuller-bust input — the extended range generic knowledge gets wrong.
const result = await bowmark.providers.titlenine.calculateBraSize({
chestInches: 40,
bustInches: 47,
belowBustInches: 32,
});
return { size: result.sizeLabel, inStock: result.inStock, note: result.unavailableMessage };