Interior design advice sounds like taste, but a lot of it is plain arithmetic: how big a chandelier, how wide the art over a sofa, whether the sofa gets through the door at all. Once a rule of thumb is written down precisely, it fits in a few lines of code.

Here are five of the rules published with the LoftLoom sizing calculators, written as small JavaScript functions so you can read and check them. They're rules of thumb, not laws of physics, and a designer may break them on purpose.

1. Chandelier diameter: add the room's sides

Add the room's length and width in feet, and read the result in inches. A 14 × 16 ft room gets a fixture of about 30 inches.

const chandelierForRoom = (lengthFt, widthFt) => lengthFt + widthFt; 

Over a dining table the room doesn't matter; the table does. The fixture should be one-half to two-thirds of the table's width.

const chandelierForTable = (tableWidthIn) => [Math.round(tableWidthIn / 2), Math.round((tableWidthIn * 2) / 3)]; chandelierForTable(42); // [21, 28] 

2. The biggest dining table a room can take

Everyone at the table needs 36 inches behind them to pull out a chair, on every side. So subtract 72 inches from each room dimension. That's a ceiling, not a target.

const largestTable = (roomLengthFt, roomWidthFt) => [roomLengthFt * 12 - 72, roomWidthFt * 12 - 72]; largestTable(12, 16); // [72, 120] → a 72 × 120 in. footprint at most 

Seating is the same idea in the other direction: about 24 inches of table edge per person with standard chairs, and 28 to 30 inches with armchairs.

const seatsAlongEdge = (edgeIn, perPerson = 24) => Math.floor(edgeIn / perPerson); 2 * seatsAlongEdge(96); // 8 along the two long sides of a 96 in. table 

3. Art over a sofa: two-thirds to three-quarters

The art, or the whole group of frames, should span about two-thirds to three-quarters of the furniture below it.

const artWidth = (furnitureWidthIn) => [Math.floor((furnitureWidthIn * 2) / 3), Math.floor((furnitureWidthIn * 3) / 4)]; artWidth(84); // [56, 63] for an 84 in. sofa 

Rounding down matters here. With Math.round, a 62-inch headboard gives 41 to 47 inches; the published guidance says 41 to 46. Hang it 8 to 10 inches above a sofa back.

4. Will the sofa go through the door?

This is the one that ruins delivery days. Measure the doorway's clear width with the door open. If the sofa's depth or its height, whichever is smaller, is at least 2 inches narrower than the opening, it goes through on its back or side. If not, compare its diagonal depth (top of the back frame to the front of the arm), again with 2 inches to spare.

function sofaFits({ doorIn, depthIn, heightIn, diagonalIn }) { const clearance = 2; if (Math.min(depthIn, heightIn) + clearance <= doorIn) return "flat"; if (diagonalIn && diagonalIn + clearance <= doorIn) return "angled"; return "no"; } sofaFits({ doorIn: 32, depthIn: 34, heightIn: 30 }); // "flat" 

Taking the door off its hinges usually adds about 2 inches, and every doorway on the route counts, not just the front one.

5. Check against a table, not just a formula

Each LoftLoom calculator page also publishes a quick-reference table, and the functions in this post were tested against those rows: room 14 × 16 ft → about 30 in., a 54 in. table → 27 to 36 in., an 11 × 14 ft room → a 60 × 96 in. table at most, and every row of the wall-art table. That's how the rounding bug in rule 3 showed up: one row was off by an inch.

Try them

All nine calculators are free at loftloom.com/tools: rug, chandelier, dining table, coffee table, wall art, lampshade, bar stool height, sofa-through-the-door, and Christmas tree size. Each one shows its working, so you can see which rule produced the number.