Furniture Retail

Custom furniture store software in Baltimore: the certificate that names a different product

Every retail system we have ever opened stores compliance as a flag on a row. Federal law does not work that way. A mattress carries a printed certification that is true only when the mattress is sold with a foundation the label identifies by number — so the claim belongs to a pair of products, and putting the same mattress on a different base makes the sentence on the tag stop describing what left your store. That is one field. This post is about the other twenty or so, and about what they cost you when your software does not know they exist.

Custom furniture store software in Baltimore: a walnut workroom bench with folded upholstery swatches, wood finish chips on a brass ring, foam blocks, a clipboard and a tablet showing a faint blue grid, and at the center a blank white sewn-in label on folded cover fabric beside a blank card in a brass easel
The sewn label and the floor card. One is a federal record with a specified typeface and a foreign key printed on it; the other is the only version your customer ever reads. Most systems store neither.
The short version. The Census Bureau counts 359 furniture stores in Maryland with paid employees, 3,348 people and $146,727,000 of payroll. Thirteen of those stores are in Baltimore City and they employ 66 people between them — 5.1 each, against a state average of 9.3, and a payroll per employee of $30,424 against the state’s $43,825. Baltimore City is also the only Maryland jurisdiction reporting establishments in both categories where home‑furnishings shops outnumber furniture stores, 18 to 13. On 6 September 2026 we checked the published price of 47 products a furniture, mattress or flooring retailer might reasonably buy. Fifteen publish a usable number. Of the fourteen built specifically for furniture and flooring retail, not one publishes a subscription rate: one returns HTTP 503, one returns a 114‑byte body, one redirects to a blog post dated August 2022, and six return 404. Then the part no platform models. 16 CFR 1633.12 requires a mattress label to carry a prototype identification number, a certification that names the foundation it was tested with, and no other information, set in a specified width, color, point size and typeface. 16 CFR 1633.11(b)(1) decides for you when two sizes are one record. 16 CFR Part 1261 makes a dresser subject to a tip‑over standard by its date of manufacture — a field nothing requires anyone to print on the dresser — and puts the standard itself outside the Code of Federal Regulations. 16 CFR 1110.11’s seven certificate fields became a border filing on 8 July 2026. The FTC’s order rule gives you thirty days to ship, or fifty if the buyer applied for credit, and at day thirty‑one the buyer’s silence changes sides. And Maryland’s COMAR 10.19.08 bans flame‑retardant chemicals above 0.1 percent by mass without saying what the mass is measured against.

Thirteen stores, sixty-six people

Start with the size of the thing, because it decides everything about what software is worth buying. The County Business Patterns file for 2023 — the most recent complete year, published by the Census Bureau — counts 359 furniture stores in Maryland with at least one paid employee. Those stores employ 3,348 people and pay them $146,727,000 a year. Add the neighboring codes that a real showroom competes with and the picture fills out.

Maryland home-furnishings retail, 2023. Establishments with paid employees. Source: Census Bureau, County Business Patterns 2023, state file, NAICS 2017 codes.
NAICSCategoryEstablishmentsEmployeesAnnual payrollStaff per storePayroll per employee
442110Furniture stores3593,348$146,727,0009.3$43,825
442299All other home furnishings stores1992,720$66,793,00013.7$24,556
442210Floor covering stores1821,153$69,238,0006.3$60,050
443141Household appliance stores88542$30,342,0006.2$55,982
442291Window treatment stores31118$5,450,0003.8$46,186
TotalHome furnishings retail8597,881$318,550,0009.2$40,420

Two things in that table are worth pausing on. Floor covering stores pay $60,050 per employee and home furnishings stores pay $24,556 — a 2.45× spread inside what a shopper would call the same aisle. That is the difference between a trade that sends measured, installed, warranted work out of the door and a trade that sells a lamp over a counter. And the whole sector is small: 7,881 people across Maryland, which is roughly half the headcount of the state’s 83 home centers alone (14,426). The category you are in is not the one the big-box chains are in, even when you sell the same sofa.

Now the city. Baltimore City has thirteen furniture stores with paid employees and sixty-six employees between them.

Furniture stores (NAICS 442110) by Maryland jurisdiction, 2023, ranked by establishments. Source: Census Bureau, County Business Patterns 2023, county file.
JurisdictionEstablishmentsEmployeesAnnual payrollStaff per storePayroll per employee
Montgomery62465$24,143,0007.5$51,920
Baltimore County61718$28,298,00011.8$39,412
Prince George’s49784$31,217,00016.0$39,818
Anne Arundel37267$14,065,0007.2$52,678
Frederick22155$8,388,0007.0$54,116
Howard21225$9,986,00010.7$44,382
Harford15101$5,174,0006.7$51,228
Baltimore City1366$2,008,0005.1$30,424
Charles12130$5,655,00010.8$43,500
Washington10121$4,456,00012.1$36,826
Carroll921$1,498,0002.3$71,333
Wicomico957$2,636,0006.3$46,246

Baltimore City has 3.6 percent of Maryland’s furniture stores, 2.0 percent of the people who work in them and 1.4 percent of the payroll. Its stores are the smallest in the state that report at all, at 5.1 employees each, and its payroll per employee is 30.6 percent below the state figure. Prince George’s County, by contrast, runs 16.0 employees per store — the biggest in Maryland — on 49 establishments. That is a county of showrooms; the city is a county of shops.

The size distribution says the same thing more bluntly. Of the 357 Maryland furniture stores the Census size table accounts for, 203 employ fewer than five people and 77 employ five to nine. That is 280 of 357, or 78.4 percent, under ten employees. Thirty-four employ ten to nineteen, thirty-nine employ twenty to forty-nine, four employ fifty to ninety-nine, and not one Maryland furniture store employs a hundred people or more.

Maryland furniture stores by employment size class, 2023. The size table accounts for 357 of the 359 establishments. Source: Census Bureau, County Business Patterns 2023, state file.
EmployeesEstablishmentsShareRunning share
Fewer than 520356.9%56.9%
5 to 97721.6%78.4%
10 to 19349.5%88.0%
20 to 493910.9%98.9%
50 to 9941.1%100.0%
100 or more00.0%100.0%

One more comparison, because it is the most Baltimore fact in the file. Fifteen Maryland jurisdictions report establishments in both furniture stores and other home furnishings stores. In fourteen of them there are more furniture stores than home furnishings stores — Montgomery 62 to 39, Baltimore County 61 to 23, Prince George’s 49 to 10. In one, the order flips: Baltimore City has 18 home furnishings stores and 13 furniture stores. The city’s trade is the small storefront on a corner in Hampden or Fells Point, not the twenty-thousand-square-foot showroom off a highway exit. That is not a weakness. It is a description of who your software has to fit.

And it explains a pricing problem that runs through the rest of this post. Almost every product sold into this category is metered for the showroom, not the shop. When a delivery platform includes 2,500 tasks in its entry tier and your whole business does three hundred deliveries a month, you are not buying a meter. You are buying a subscription with a very large number printed on it.

A caveat worth stating plainly, because it changes how you should read every number above: County Business Patterns counts only establishments with paid employees. A one-person antiques dealer, a sole-trader upholsterer, a two-person interior design practice that sells furniture on the side — none of them appear. Maryland has 239 interior design establishments with employees and 288 used merchandise stores with employees; the sole-proprietor layer beneath both is invisible here. If your competition feels larger than 359, that is because it is.

What the vendors publish, and what they publish instead

On 6 September 2026 we asked forty-seven products what they cost. The method is deliberately dumb and completely reproducible: request each vendor’s own /pricing page with an ordinary desktop browser string, follow redirects, and record the final status code, the URL we actually landed on, and whether the served HTML contains a dollar figure. No aggregators, no review sites, no sales calls. If a price is not on the page, it is not published, and we say so.

Fifteen of the forty-seven publish a usable number. That is 31.9 percent, which is roughly average for the categories we have surveyed. The interesting result is not the average. It is what happens when you split the list into products built for this trade and products built for retail in general.

What forty-seven furniture, flooring, retail, e-commerce, inventory and last-mile products returned on 6 September 2026. Checked with a desktop user-agent, redirects followed.
OutcomeProductsShareExamples
Publishes at least one usable price1531.9%BigCommerce, Square, Rain POS, RetailEdge, SpotOn, Fishbowl, Zoho Inventory, Cin7, Katana, Onfleet, Routific, ShipStation, Shippo, WooCommerce, MeasureSquare
Returns 4041225.5%Furniture Wizard, Genesis Advantage, Myriad Software, MicroD, RFMS, 3D Cloud, Cylindo, MicroBiz, inFlow, Zoho Commerce, Descartes, Circuit
Serves a page with no price on it612.8%Lightspeed Retail, Clover, Odoo, Acumatica, Podium, PROFITsystems
Redirects to something that is not a price612.8%DispatchTrack, Elite EXTRA, Broadlume, QFloors, Blueport, ShopKeep
Blocks the request (403)48.5%NetSuite, Epicor, Heartland, Bringg
Errors or never answers48.5%STORIS (503), Roomvo (400), Adobe Commerce (cross-host redirect), QuickBooks (no response)

Fourteen of the forty-seven are built specifically for furniture, mattress or flooring retail: STORIS, Furniture Wizard, Genesis Advantage, Myriad Software, PROFITsystems, MicroD, Blueport, RFMS, QFloors, MeasureSquare, Broadlume, 3D Cloud, Cylindo and Roomvo. Not one of them publishes a subscription price. The single number any of them will show you is MeasureSquare’s $400 onboarding starter kit and its $199 per person per day classroom training in Pasadena — and its plan cards, on the day we looked, rendered every tier as $0.00.

We want to be fair about why. Furniture retail software is genuinely configuration-heavy: a floor plan, a delivery calendar, a special-order workflow, a finance-company integration and a warehouse are not a checkbox each, and a published rate card invites an unfair comparison against a product that does less. Every vendor in this list has a defensible reason to want a conversation first. But the effect on a thirteen-store city market is that a Baltimore owner cannot compare two furniture systems without booking two demos, and the demo is the product’s first sales meeting rather than your first evaluation.

Four of the responses are worth naming individually, because they are the sort of thing you can only see by looking.

STORIS, the best-known furniture retail platform in North America, returned HTTP 503 on its own /pricing URL with an 18,067-byte body. A 503 is a server telling you it is temporarily unable to handle the request. We are not treating it as a decision, and it may well have been fixed within the hour; we are recording what a customer got on 6 September 2026.

PROFITsystems answered /pricing with HTTP 200 and a body of exactly 114 bytes. This is the third time we have seen a 114-byte pricing page in this series, from three unrelated vendors in three unrelated trades. We have no theory. We just note that somewhere there is a very small default file doing a great deal of work.

QFloors/pricing redirects to an article at /qfloors-updates-pricing-08-22/ — a post announcing a pricing update, slugged with a date four years old. That is not a broken page; it is an honest one that nobody has revisited. And Circuit’s getcircuit.com/pricing now resolves across domains to spoke.com/pricing, which returns 404: a rebrand that carried the link and lost the page.

Then Podium, which serves a 261,696-byte pricing page containing exactly three dollar figures. All three are customer testimonials: $96,000 of additional monthly revenue, $96,000 again in the summary, and $80,000 raised in two days from one campaign. Not one of them is a price. And Roomvo, the room visualizer most flooring retailers meet first, geolocated our request and redirected it to /my/pricing/ — the Malaysian path — which then returned HTTP 400. We have seen vendors serve the wrong currency before. This is the first one that guessed a country and then failed.

Finally, the honourable mention. Lightspeed Retail serves 309,252 bytes at its retail pricing URL without a single dollar sign in the HTML, and Clover serves 7,820 bytes with none either. Both are perfectly ordinary modern web applications that build their price tables in the browser. The practical consequence for a shop owner is the same as a 404: you cannot read the price without running their code.

The meter was built for a business that delivers pizza

Here is the number that decides most of this. A Baltimore furniture store running two trucks with two-person crews does somewhere between ten and fifteen drops a day, five or six days a week. Call it 300 deliveries a month. That is a rounding error to a last-mile platform, and it is the single most operationally complex thing the store does all week.

Two of the delivery products in our sweep publish a rate. Set them both at three hundred deliveries a month and look at what a delivery costs.

Published last-mile pricing at 300 deliveries a month, as advertised on 6 September 2026. Entry tiers, list price, before any negotiated discount.
ProductEntry tierMonthlyIncluded volumeUsedCost per delivery
Routific101–1,000 orders$150.001,00030.0%$0.5000
OnfleetLaunch$619.002,50012.0%$2.0633
DispatchTracknot published

A 4.13× spread between the two vendors that will tell you their price, at the volume a real Baltimore store actually runs, and the more expensive one is more expensive precisely because it includes 2,500 tasks you will never use. DispatchTrack — the platform most often recommended for furniture and appliance delivery, and the one whose marketing is aimed squarely at this trade — redirects /pricing to a demo booking form, so it cannot be in the comparison at all.

Now divide the ladder, which is the single most useful thing you can do to any tiered price. Onfleet publishes three tiers with their included task counts. The per-task price does not fall as you climb. It rises.

Onfleet: the price of an included task at each published tier. Our arithmetic from Onfleet’s own figures, 6 September 2026.
TierFromIncluded tasksPrice per included taskChange
Launch$619.002,500$0.24760
Scale$1,349.005,000$0.26980+8.97%
Enterprise$3,099.0010,000$0.30990+14.86%

That is not a criticism. It is a description of what you are buying: at the higher tiers you are paying for capability — analytics, routing controls, support — and the task allowance is along for the ride. But it is the opposite of the shape most owners assume a volume tier has, and it means “we will grow into it” is a bad reason to buy the middle plan.

Compare it with an inventory product priced on the same nominal unit. Zoho Inventory publishes four tiers with monthly order allowances, and its curve runs the normal way.

Zoho Inventory: the price of an included order at each published tier, annual billing. Our arithmetic from Zoho’s own figures, 6 September 2026.
TierMonthlyIncluded ordersPrice per included orderChange
Standard$29.00500$0.05800
Premium$79.003,000$0.02633−54.60%
Plus$129.007,500$0.01720−34.68%
Enterprise$249.0015,000$0.01660−3.49%

Two products, both metering a thing called an order, one charging 25 percent more per unit as you grow and one charging 71 percent less. Neither is wrong. They are simply not the same kind of price, and no comparison table on a review site will tell you that, because review sites compare the sticker.

The cliff at the hundred-and-first delivery

Routific is the most transparent card in the sweep and rewards reading closely. It is free up to 100 orders a month, then a flat $150 to 1,000, then a marginal ladder: 15 cents an order to 2,000, 13 cents to 3,000, 10 cents to 5,000, 8 cents to 10,000, 5 cents to 20,000, 3 cents to 50,000. Work out the average.

Routific: total monthly cost and average cost per order, computed from the published band structure, 6 September 2026.
Orders per monthMonthly totalAverage per order
100$0.00$0.0000
101$150.00$1.4851
300$150.00$0.5000
1,000$150.00$0.1500
2,000$300.00$0.1500
3,000$430.00$0.1433
5,000$630.00$0.1260
10,000$1,030.00$0.1030
20,000$1,530.00$0.0765
50,000$2,430.00$0.0486

The hundred-and-first delivery of the month costs $150. Every delivery after it, up to a thousand, costs nothing. And the top of the published ladder is 30.6× cheaper per order than that hundred-and-first one. A furniture store at 300 deliveries a month sits in the flattest, most expensive part of the curve: it pays fifty cents a delivery for a tool that charges a high-volume grocer under five.

One small thing we noticed while doing this, and mention only because a program has to resolve it: the published bands read “5,001 to 10,000” and then “10,000 to 20,000”. The integer 10,000 appears in two bands at two different rates. Any human knows what is meant. A billing engine does not, and this is exactly the class of ambiguity that turns into a support ticket at month end.

The fee for bringing your own processor

The other meter worth taking apart is the e-commerce one, and BigCommerce is the only major platform in the sweep that publishes the whole card. Alongside the subscription it lists an Open Payment Provider Fee: a monthly charge, expressed as a percentage of eligible order value, that applies when your orders are not processed through one of its embedded payment providers. Through an embedded provider the fee is zero.

BigCommerce published plans and the open payment provider fee, 6 September 2026. Fee computed at each plan’s own published sales cap. The page states that eligible value is reduced by 10 percent for this calculation, so both figures are given.
PlanAnnual billingPer yearSales capFee rateFee at capFee after 10% reductionFee ÷ subscription
Core$29.00/mo$348.00$30,0002.0%$600.00$540.001.55×
Growth$79.00/mo$948.00$100,0001.0%$1,000.00$900.000.95×
Scale$299.00/mo$3,588.00$399,9960.6%$2,399.98$2,159.980.60×
Performancefrom $1,499.00/mo$17,988.00contractednone0.00×

Read the last column downwards. The charge for using your own payment processor is one and a half times the subscription on the cheapest plan, about the same as the subscription on the next one, sixty percent of it on the third, and nothing at all on the fourth. It is a regressive fee: proportionally heaviest on the smallest store and absent from the largest. For a furniture retailer that is not a footnote, because furniture is the American retail category most likely to run its own financing arrangements and to keep a processor relationship it negotiated years ago.

Shippo does a smaller version of the same thing at the other end of the stack: its free Starter plan carries a $0.05 fee for every label purchased through your own carrier account. Two products in one stack, both charging you a little for the crime of already having a supplier.

And one product that still sells a license

In a category where everything is a monthly meter, exactly one product in our sweep publishes a one-time price. RetailEdge advertises its point of sale “starting at $495, One time, no required on-going charges”. Against Onfleet’s $619 a month, RetailEdge’s entire license is consumed in under twenty-five days.

We are not telling you to buy it. A perpetual license has its own costs, and a fifteen-year-old Windows point of sale is not a foundation for an e-commerce business. We include it because it is the only fixed number on the whole board, and because owning software outright — which is what we sell — is not an eccentric idea in this trade. It used to be the normal one.

Everything that published a price on 6 September 2026, as published. List prices, before discounts, in USD.
ProductWhat it doesPublished price
RetailEdgeRetail point of sale$495 one time, “no required on-going charges”
Square RetailPoint of sale$0 / $49 / $149 per month per location
Rain POSPoint of sale and website$99/mo Startup
SpotOnPoint of sale$0 or $55 per station per month; hardware $995 → $750 and $495 → $297; card present 2.79% + $0.20 or 2.45% + $0.15
BigCommerceE-commerce platform$39 / $105 / $399 monthly; $29 / $79 / $299 annual; Performance from $1,499 annual; extra storefronts $30 / $50 / $100
WooCommerceE-commerce platform$0 platform fee; hosting $25–$350/mo; extensions $29–$299/year each
FishbowlInventory$229 / $429 / $729 per month; Advanced Warehouse from $595; Advanced Manufacturing from $675
Zoho InventoryInventory$29 / $79 / $129 / $249 per month, annual billing
Cin7Inventory$349 / $599 / $1,199 per month
KatanaInventory and productionCore from $299/mo; add-ons $199, $249 and $149/mo; onboarding $2,000 optional
OnfleetLast-mile deliveryFrom $619 / $1,349 / $3,099 per month; Courier Suite from $299
RoutificRoute optimizationFree to 100 orders; $150 to 1,000; then 15¢ → 3¢ per order
ShipStationParcel shipping$14.99 at 50 shipments to $174.99 at 5,000 (Standard); Premium from $349.99
ShippoParcel shippingStarter free to 30 labels; Pro from $17/mo ($205/year); $0.08 per label above 10,000
MeasureSquareFlooring measurement$400 onboarding; $199 per person per day training. Plan tiers rendered $0.00.

Two stacks a Baltimore store could actually assemble from that table, built only from published prices, both of which are floors rather than quotes.

Two modeled stacks from published prices only, 6 September 2026. Neither includes payment processing, hardware, implementation or the open payment provider fee.
StackComponentsPer monthPer year
A — small store, one showroomRain POS $99.00 + BigCommerce Growth $79.00 + Routific $150.00$328.00$3,936.00
B — two locations, warehouse, own trucksCin7 Standard $349.00 + BigCommerce Scale $299.00 + Onfleet Launch $619.00$1,267.00$15,204.00

Stack B is 3.86× Stack A and $11,268.00 more a year, and the single largest line in it is the delivery platform — 48.9 percent of the monthly bill for a capability the store is using at twelve percent of its included volume. That is the whole argument of this section in one number.

The part no national platform models

Everything above is a spreadsheet exercise. This section is the reason we write these posts at all, because it is the part where a generic retail system quietly stops describing your business. Furniture is one of the few American retail categories whose product record is specified by federal regulation — not the safety of the product, the record. Read the rules as a data model and they turn out to contain a primary key rule, a foreign key, a closed schema, a typographic specification, a retention clock with no fixed length, and a threshold with no denominator. We will take them in that order.

The certificate names a different product

Every mattress you sell carries a label the federal open-flame standard requires. Most of what is on it is unsurprising: manufacturer, address, month and year of manufacture, model. Two of the fields are not.

The first is a prototype identification number. The second is the certification of compliance, and its wording depends on how the mattress is meant to be sold.

“For mattresses intended to be sold with a foundation, a certification stating ‘This mattress meets the requirements of 16 CFR part 1633 (federal flammability (open flame) standard for mattresses) when used with foundation <ID>.’ Such foundation(s) shall be clearly identified by a simple and distinct name and/or number on the mattress label” — 16 CFR 1633.12(a)(6)(ii)

Sit with that for a moment. The compliance claim printed on the product is conditional on a second product, named on the label by its own identifier. There is a third variant, at (a)(6)(iii), for a mattress meant to be sold either way, which names the foundations it may be paired with. And (a)(7) requires a matching plain-language statement: this mattress is intended to be used with, or without, or with the specific foundations listed.

In data terms, that is not an attribute. It is an edge between two rows, and the certification is only true for pairs on that edge. A salesperson who puts a customer’s chosen mattress on a different base — because the matching foundation is back-ordered, because the customer wants an adjustable, because the split king needed two — has assembled a set the label on it does not describe. Nothing about that is exotic. It happens on a Saturday afternoon in every mattress store in Maryland.

Now ask what your point of sale does with it. In every retail system we have worked in, compliance is a boolean or a text field hanging off a product row: certified: true, or a document filename, or nothing at all. There is no place to say “this claim holds for this mattress with these three foundations and not otherwise”, and no place for the till to notice when a line pairs an item with something outside that set. The information exists — it is printed on the tag, in a specified point size — and it dies at the loading dock, because the field that would have carried it into the sale was never created.

This is the single clearest example we have found of a general truth about this trade: the regulator already designed the schema, and the software declined to implement it.

The regulator wrote your primary key

The companion rule is stranger still, and it answers a question every retail database has to answer on its first day: when are two things the same product?

“Unique identification number for the qualified or confirmed prototype and a list of the unique identification numbers of each subordinate prototype based on the qualified or confirmed prototype. Subordinate prototypes that differ from each other only be [sic] length or width may share the same identification number.” — 16 CFR 1633.11(b)(1)

The “be” is in the regulation; we quote it as published. Set the typo aside and read the sentence as a rule about identity: size is not a distinguishing attribute; anything else is. A twin, a full, a queen and a king built the same way share one identification number. Change the fill, the cover, the barrier fabric or the method of assembly and you have a different subordinate prototype, which needs its own number, its own description of materials and suppliers, and its own documented reasoning that the change will not push it past the test criteria.

That is a variant model, written by a federal agency in 2006, and it is more precise than the variant model in most commerce platforms today. It tells you exactly which columns belong on the parent and which belong on the child. And it comes with a join table: 1633.11(b)(3) requires “a list of which models and production lots of mattress sets are represented by each qualified, confirmed and/or subordinate prototype identification number”.

A retailer is not the party keeping those records — that duty sits with manufacturers and importers. But the identifiers land in your building on every unit, and the day a supplier issues a recall or a customer asks a hard question, the retailer who stored the prototype number against the sale answers in a minute and the one who did not spends a week in a filing cabinet.

A label that may carry nothing else, in a typeface the government chose

Here is the sentence that made us want to write this post. The mattress label must be

“a permanent, conspicuous, and legible label(s) containing the following information (and no other information) in English” — 16 CFR 1633.12(a)

“And no other information.” This is a closed schema. Not a minimum set of fields with room for your own; a fixed set, with additions prohibited. We have read a great many labeling rules for this series — plant tags, crab-meat tins, prescription vials, alcohol shelf tags — and this is the first one that forbids extra columns.

Then the format requirements, which read like a stylesheet:

“The mattress label required in paragraph (a) of this section must measure 2¾″ in width and the length can increase as needed for varying information. The label must be white with black text. … All information specified in paragraphs (a)(1) through (6) of this section must be in 6-point font or larger with mixed uppercase and lowercase letters. The text must be left justified and begin ¼″ from left edge of label.” — 16 CFR 1633.12(b), (b)(1)

“The statement specified in paragraph (a)(7)(i) of this section must be in 10-point Arial/Helvetica font or larger, uppercase letters with the words ‘WITHOUT A FOUNDATION’ bolded and the word ‘WITHOUT’ in italics. The text shall be centered in a text box with the width measuring 2½″” — 16 CFR 1633.12(b)(2)

A named typeface. A point size. A bold. An italic. A justification. A left margin in fractional inches. A box width. And, where the foundation identifier appears, 12-point, bolded and underlined. The federal government has specified the rendering of a data record down to the weight of a single word, and it did so because the word carries the safety meaning: without is the difference between a compliant sale and a non-compliant one.

We find this genuinely admirable, and we say so because the lesson generalizes. Somebody at the Consumer Product Safety Commission understood that a field is not communicated until it is rendered, and that leaving the rendering to the label printer would let the important word disappear into the design. Most product catalogs we are asked to fix have the opposite problem: a beautifully normalized database whose most important value shows up on the shop floor as a nine-point gray abbreviation nobody reads.

The records outlive the product, and the retention clock has no length

Every retention rule we have written about in this series has a number in it: one year, three years, seven years, ninety days. This one does not.

“The records required under this Section shall be maintained by the manufacturer (including importers) for as long as mattress sets based on the prototype in question are in production and shall be retained for 3 years thereafter.” — 16 CFR 1633.11(e)

The clock does not start until an event that has not happened yet, and may not happen for a decade. You cannot compute a destruction date from the date of the record; you can only compute it from a state change in a different system — production ending — that nobody is required to log. Any retention policy expressed as “delete after N years” is structurally incapable of implementing this rule, and every document management product we have integrated with expresses retention exactly that way.

The location rule is the other half, and it is the one that reaches the sales floor:

“For mattress sets produced outside of the United States, a copy of all records required by this section must be maintained at a U.S. location, which must be identified on the mattress set label as specified in § 1633.12(a).” — 16 CFR 1633.11(f)(2)

The address printed on the tag is not decoration. It is a pointer to a filing cabinet, and the regulation requires the pointer to be printed on the product. That is as clean a piece of physical database design as you will find in the CFR.

The dresser standard is not in the law, and its trigger is a date nobody prints

Now move from the bedroom’s mattress to the chest of drawers beside it. Since 2023 there has been a mandatory federal tip-over standard for clothing storage units. Here is the whole of the substantive rule:

“Each clothing storage unit that is subject to ASTM F2057-23, Standard Safety Specification for Clothing Storage Units, approved on February 1, 2023, shall comply with ASTM F2057-23.” — 16 CFR 1261.2

That is it. The requirements themselves are incorporated by reference and live in a private standard you must read on ASTM’s website in a read-only viewer or buy a copy of. There is nothing improper about this — incorporation by reference is a long-standing and lawful drafting technique, and the Commission provides the citation and the access routes. But it has a practical consequence for anyone building software: you cannot search the law for the rule. The text your product must satisfy is not in the corpus, so no amount of parsing the CFR will produce it, and any compliance feature has to be built from a document that cannot be redistributed.

The scoping rule is the part that costs money on a real sales floor:

“Clothing storage unit means any free-standing furniture item manufactured in the United States or imported for use in the United States that is intended for the storage of clothing, typical of bedroom furniture. All clothing storage units that are manufactured after September 1, 2023, are subject to the requirements of this part.” — 16 CFR 1261.1(b)

The trigger is the date of manufacture, not the date of sale. In September 2026 a Maryland showroom can lawfully hold floor stock and warehouse inventory from both sides of that line, and the only thing separating a unit inside the standard from one outside it is a date. Unlike a mattress — where 1633.12(a)(3) requires the month and year of manufacture to be printed on the label — nothing requires a dresser to carry its manufacture date on the furniture at all.

So the field that decides which safety standard governs a chest of drawers is a field that exists only in your purchasing records, if you kept it. It arrives on a packing list or a supplier certificate and is thrown away at receiving by every inventory system we have ever seen, because “date of manufacture” is not a column those systems have. It is a column this trade needs.

Maryland gives you a percentage and not a denominator

Maryland adds a layer of its own, and it is the layer that decides which SKUs you may legally offer at all. Health-General §24–306.1, implemented at COMAR 10.19.08, prohibits flame-retardant chemicals above a threshold in four classes of product.

“A person may not import, sell, or offer for sale any juvenile product, mattress, upholstered furniture, or reupholstered furniture that contains more than 0.1 percent of flame-retardant chemicals by mass.” — COMAR 10.19.08.03B

Read alone, that is a product-level test: 0.1 percent of the mass of the thing. But the paragraph immediately above it removes whole categories of component from the regulation’s reach.

“This regulation does not apply to: … (2) A component of upholstered or reupholstered furniture other than cover fabric, barrier material, resilient filling material, and decking material; (3) Thread or fiber when used for stitching mattress components together; or (4) Except for foam, a component of an adult mattress.” — COMAR 10.19.08.03A

So for a sofa, four component classes are in scope and everything else — the hardwood frame, the springs, the legs, the fasteners — is out. For an adult mattress, only the foam is in scope. Two different component scopes for two products in the same regulation, which is fine and sensible.

What the rule does not say is what the denominator of that 0.1 percent is. If the mass is the whole sofa, a treated cover fabric is being measured against a frame that is most of the weight. If the mass is the in-scope components only, the same fabric is measured against a few pounds of textile. The difference is not academic.

The same sofa, two readings of one threshold. A worked illustration on a modeled 90 lb three-seat sofa with 4 lb of cover fabric, 18 lb of foam and decking and 2 lb of barrier material. Illustrative masses, not a measurement.
Reading of “by mass”Denominator0.1% allowanceRatio
Mass of the finished product90.00 lb1.4400 oz3.75×
Mass of the in-scope components (fabric + foam/decking + barrier)24.00 lb0.3840 oz1.00×
Mass of the treated component alone (cover fabric)4.00 lb0.0640 oz0.17×

Between the widest and narrowest reading there is a factor of 22.5. We are not offering a legal opinion on which reading is right — that is a question for your counsel and, in the end, for the Department — and we would guess most people in the trade read it component-wise, because that is how the underlying chemistry and the supplier documentation work. Our point is narrower and it is a software point: whatever the answer is, your product record has to be able to express it, which means carrying a bill of materials with masses on it, not a compliance checkbox on a sofa.

And there is a second dependency hiding in the definition. A flame-retardant chemical is one that is used to resist or inhibit the spread of fire

“… including any chemical for which the term ‘flame retardant’ appears on a safety data sheet developed in accordance with 29 CFR §1910.1200(g)” — COMAR 10.19.08.02B(2)(a)

The legality of your sofa can therefore turn on what a supplier wrote in a PDF. Not on a test you commissioned, not on a number in your own system: on a phrase in a document produced by someone else, in a format designed for workplace safety rather than product compliance. If your compliance data model does not have a place to store supplier safety data sheets, versioned, against the components they describe, it cannot answer this question at all — and COMAR 10.19.08.04C says an inspector may ask for exactly those sheets, along with technical specifications and any information available on composition.

One last, small thing, offered generously because it is obviously a drafting artifact rather than a trap. The statute lists the four chemical properties as alternatives, ending “3. Contains one or more carbon elements and one or more nitrogen elements; or 4. Is a nanoscale chemical.” The regulation restates the same list with the nanoscale case moved to the front and the remaining three joined by “and”. The regulation’s own lead-in — “has one or more of the following properties” — settles it, and the statute is unambiguous, so a lawyer reading either text reaches the same place. A program does not read lead-ins. A parser built to turn that list into a filter, splitting on the conjunction the way parsers do, produces an intersection where the law means a union, and quietly reports that nothing in your catalog is affected. We have seen that failure mode in real compliance tooling more than once, and it is always silent.

The exemption is written for your customer, not for you

Maryland’s prohibition carves out one channel, and the wording of the carve-out is worth reading twice.

“This chapter does not apply to the sale or distribution of a juvenile product, a mattress, upholstered furniture, or reupholstered furniture that is resold, offered for resale, or distributed by a consumer for consumer use.” — COMAR 10.19.08.01B

The exemption is drawn around the consumer. A household selling its own sofa on a marketplace is plainly outside the chapter. A dealer that buys that sofa from the household and puts it on a floor is not obviously inside the exemption — it is not a consumer — and “reupholstered furniture” is named in the prohibition rather than excused from it, with the definition at .02B(5) covering furniture whose original fabric, padding, decking, barrier material, foam or other resilient filling has been replaced and which has not been sold since.

Maryland has 288 used merchandise stores with paid employees, employing 3,650 people — more people than the state’s 359 furniture stores, which employ 3,348. Consignment, estate buying and reupholstery are not a fringe of this trade in Baltimore; on the city’s main streets they are a large part of it. Whether and how the chapter reaches them is a real question with real money attached, and it is not one a blog can answer for you.

What we can say is what it means for a build. Your system has to know, on every unit, how it entered the building: bought new from a distributor, taken in trade, accepted on consignment for a customer who still owns it, or reupholstered in your own workroom. Those four are different legal objects under this chapter, and in most inventory systems they are the same object with a different note in a comments box.

The penalty structure is mild by the standards of this series, and worth knowing precisely. COMAR 10.19.08.05C provides that for a violation the Secretary shall issue a letter of reprimand, and .05A ties the civil penalty ladder to that reprimand: a first violation after a letter of reprimand carries up to $2,500, a second up to $5,000, a third up to $7,500 and any subsequent violation up to $10,000 each. Under .06A you have 10 days from receipt of the notice to request a hearing in writing, and the Office of Administrative Hearings must decide within 30 days after it. Ten days is short. It is short enough that the question of who opens the post while the owner is at market is an operational one.

The e-commerce half, which is the half with the deadlines

Furniture is the retail category where online selling is hardest, and it is hardest for a reason that has nothing to do with photography. A sofa is a twelve-week lead time, a two-person delivery, an appointment window, a finance application and a deposit — and the Federal Trade Commission has had a rule about exactly that shape of transaction since 1975. It applies to internet orders in terms, it is enforced, and in our experience almost nobody running a small store has read it.

The Mail, Internet, or Telephone Order Merchandise Rule, at 16 CFR Part 435, is short. It is also, read carefully, a specification for a piece of software, and the parts of it that matter to a furniture retailer are precisely the parts that no off-the-shelf cart implements.

Thirty days, or fifty if they asked you for credit

The core obligation is that you must have a reasonable basis, at the time you solicit the order, to expect that you can ship within the time you stated, or within thirty days if you stated none. Then comes the proviso.

“Provided, however, where, at the time the merchandise is ordered the buyer applies to the seller for credit to pay for the merchandise in whole or in part, the seller shall have fifty (50) days, rather than thirty (30) days, to perform the actions required in this paragraph (a)(1)(ii).” — 16 CFR 435.2(a)(1)

The same sofa. The same customer. The same warehouse. A 66.7 percent longer statutory window, created by whether the buyer ticked “apply for financing” at checkout. There is no retail platform we have worked with that varies a compliance deadline on the payment method chosen in the cart, and yet furniture is the American retail category where financed and unfinanced orders sit side by side in the same day’s takings.

Note the boundary carefully, because it cuts the other way too: the thirty and fifty day defaults apply only where no time was clearly and conspicuously stated. If your product page says “ships in 6–8 weeks”, that is the promise you must have had a reasonable basis to make, and eight weeks is the deadline — longer than thirty days, but now a date you have to defend. Whichever way you go, the deadline is a computed property of the order, not a setting on the store.

The clock starts when the lender answers

And the clock does not start when the customer clicks buy. It starts on “receipt of a properly completed order”, which the definitions section ties to money or credit actually being confirmed.

“Provided, however, that where the seller receives notice that a payment by means other than cash or credit as tendered by the buyer has been dishonored or that the buyer does not qualify for a credit sale, receipt of a properly completed order shall mean the time at which: … (3) The seller receives notice that the buyer qualifies for a credit sale.” — 16 CFR 435.1(c)

So on a financed order, the fifty-day clock starts on an event that happens inside a third party’s system, on their schedule, and arrives at your store as a webhook, an email or a phone call. If nobody writes that timestamp down, you cannot compute your own deadline — and you certainly cannot prove later what it was. Every furniture business we have looked at can tell you the order date. Very few can tell you the approval date, and the approval date is the one the rule cares about.

Silence changes sides

Now the part we think is the most beautiful and the most dangerous. When you cannot ship on time, you must offer the buyer a choice: consent to a delay, or cancel and take a prompt refund. The offer must go out no later than the original deadline — not when you get round to it. What happens next depends on how long the delay is.

If the revised date you give is thirty days or less beyond the original deadline, the notice must tell the buyer that

“… unless the seller receives, prior to shipment and prior to the expiration of the definite revised shipping date, a response from the buyer rejecting the delay and cancelling the order, the buyer will be deemed to have consented to a delayed shipment on or before the definite revised shipping date.” — 16 CFR 435.2(b)(1)(ii)

Silence means yes. But if you have to go back a second time — a renewed option, after the first revised date also slips — the default reverses:

“… unless the seller receives … notification from the buyer specifically consenting to the further delay, the buyer will be deemed to have rejected any further delay, and to have cancelled the order if the seller is in fact unable to ship” — 16 CFR 435.2(b)(2)(ii)

Silence means no. And separately, under 435.2(c)(2), where the first revised date you gave is more than thirty days later than the original deadline — which for a special-order sofa is the normal case, not the exception — you must deem the order canceled and refund unless you both ship within thirty days of the original deadline and obtain the buyer’s express consent within those same thirty days.

What the buyer’s silence means, under 16 CFR 435.2. The same non-response, three different legal outcomes.
SituationRuleIf the buyer says nothing
First delay, revised date 30 days or less beyond the original deadline435.2(b)(1)(ii)Consent. You may ship on the revised date.
First delay, revised date more than 30 days beyond the original deadline, or no date possible435.2(c)(2)Cancellation. Express consent is required within 30 days.
Renewed option after a revised date also slips435.2(b)(2)(ii)Rejection and cancellation.

Think about what that means for the “your order is delayed” email that every commerce platform sends. It is one template. It has to be three, the choice between them depends on arithmetic against two dates, and getting it wrong is not a customer-service problem — it is the difference between a shipment the buyer consented to and one they are entitled to treat as canceled with their money back.

The refund has two speeds

“Prompt refund” is defined, and it is defined twice.

“… a refund sent by any means at least as fast and reliable as first class mail within seven (7) working days of the date on which the buyer’s right to refund vests” — 16 CFR 435.1(b)(1)

“Where a refund is made pursuant to paragraph (d)(2)(i) of this section, a refund sent by any means at least as fast and reliable as first class mail within one (1) billing cycle from the date on which the buyer’s right to refund vests” — 16 CFR 435.1(b)(2)

Seven working days for most refunds; one billing cycle where the seller is itself the creditor. A store that offers its own house account therefore has two refund deadlines running against two different sets of orders, measured in two different units — one in working days, one in a cycle whose length depends on the account. A refund queue that treats every case as “within a week” will be early sometimes and late sometimes, and will not know which.

The rule punishes you twice for not having a system

Two separate paragraphs of the rule make the absence of software into evidence. This is unusual enough that we quote both.

“In any action brought by the Federal Trade Commission, alleging a violation of this part, the failure of a respondent-seller to have records or other documentary proof establishing its use of systems and procedures which assure the shipment of merchandise in the ordinary course of business within any applicable time set forth in this part will create a rebuttable presumption that the seller lacked a reasonable basis for any expectation of shipment within said applicable time.” — 16 CFR 435.2(a)(4)

“… the failure of a respondent-seller to have records or other documentary proof establishing its use of systems and procedures which assure compliance, in the ordinary course of business, with any requirement of paragraph (b) or (c) of this section will create a rebuttable presumption that the seller failed to comply with said requirement.” — 16 CFR 435.2(d)

We build software for a living, so we are aware of how self-serving it sounds when we say this. But read the sentences: the burden shifts on the absence of a system. Not on a customer complaint, not on a pattern of late orders — on the lack of records showing that you had, in the ordinary course of business, procedures that assure the outcome. A spreadsheet maintained by the one person who remembers is not that. An order record that stores the promised date, the approval date, the notice sent, the response received and the refund issued, and can print them for any order in the last four years, is.

One genuine open question, and a field it forces

The rule defines shipment in terms of a carrier:

“Shipment shall mean the act by which the merchandise is physically placed in the possession of the carrier.” — 16 CFR 435.1(e)

Most furniture stores in Baltimore deliver a good share of their orders on their own trucks with their own crews. Whether “placed in the possession of the carrier” occurs when a store loads its own van — and if so, when exactly — is not something we are going to pretend to resolve in a blog post. What we will say is that the ambiguity is itself a design requirement: the order record needs to distinguish parcel, third-party freight and own-truck fulfillment, and to timestamp the moment each one leaves your control, because the answer differs by channel and you will want the evidence either way.

What the product page has to carry

The happier version of all this is that most of the compliance data doubles as the best sales copy you have. The fields the law makes you know — what the frame is made of, what the fill is, which foundation the mattress was certified with, when it was manufactured, where it was made, how long it takes to arrive — are the exact fields a customer spending $2,400 on a sofa wants to see and almost never finds.

Concretely, a furniture product page that is doing its job carries a promised-ship window computed from the supplier’s current lead time rather than typed by hand; a delivery method that changes the promise when the customer’s address falls outside the own-truck radius; a compatible-foundation set on every mattress, so the cart cannot assemble a pair the certification does not cover; the manufacture date on anything that is a clothing storage unit; the component composition that a Maryland question would turn on; and the supplier’s certificate on file behind it all. That is an Online Store in our pricing, and we build it from $6,000 as a fixed price. It is not a bigger job than a generic theme. It is a differently shaped one.

The border moved twice this year

Almost every piece of furniture sold in Baltimore was made somewhere else, and a good deal of it was made outside the United States. Two things happened in 2026 that change what a furniture retailer’s data has to do about that, and both are recent enough that most stores have not felt them yet.

On 8 July 2026 the certificate became a border filing

Consumer product certificates are not new. What changed this summer is that for imports they stopped being a document you hold and became data you transmit. Under 16 CFR 1110.13(a)(1), a finished product certifier importing a regulated product must eFile the certificate data elements listed in 16 CFR 1110.11 into Customs’ ACE system at the time of entry. The Consumer Product Safety Commission has said the requirement became mandatory on 8 July 2026, with Foreign Trade Zone goods later entered for consumption or warehousing following on 8 January 2027.

16 CFR 1110.11(a) lists seven content requirements: identify the product, state every rule being certified to, identify the certifier with full contact details, identify a contact for the person holding the records, give the date and place of manufacture, give the most recent date and place of testing, and provide the attestation. Mattresses and clothing storage units are both regulated products, so both are in scope.

Two of those seven are worth reading as data design, because they are unusually thoughtful.

“Finished product certificates must contain at least one of the following unique identifiers: global trade item number (GTIN), model number, registered number, serial number, stock keeping number (SKU), universal product code (UPC), or alternate identifier, along with a sufficient description to match the finished product to the certificate.” — 16 CFR 1110.11(a)(1)

Seven acceptable identifier types, any one of which will do, plus a human-readable description to make the match. That is a regulator acknowledging that different supply chains key their products differently and declining to force a single scheme — the opposite philosophy from the mattress label, which is a closed schema down to the typeface. The same agency, two rules, two entirely defensible answers to the question “what is this thing called?”

“Identify and provide contact information … for the individual maintaining records listed in § 1110.17 on behalf of the finished product certifier. The individual can be a position title, provided that the position is always staffed and responsive to CPSC’s requests.” — 16 CFR 1110.11(a)(4)

A federal rule that lets you put a role where a person goes, on the express condition that the role is never vacant. We have had that argument in design reviews a hundred times — person or role, nullable or not — and here is the Consumer Product Safety Commission settling it in one sentence with the correct constraint attached.

Then a rule that decides your cardinality: “Each finished product certificate must describe only one product.” One certificate, one product, at 1110.13(a). And a rule that puts a document in your hands as a retailer:

“A finished product certifier must furnish the required finished product certificate to each distributor or retailer of the finished product.” — 16 CFR 1110.13(b)

Your suppliers owe you these. Whether you have them, filed against the model they cover and retrievable while a customer is standing in front of you, is a question about your systems and nobody else’s. And 1110.13(c) requires certifiers to produce a certificate for inspection “immediately, meaning within 24 hours” — a definition of “immediately” that is worth stealing for your own service levels.

One last observation, offered in the spirit of a bug report rather than a complaint. Paragraph (a)(6) requires the date and place of testing for compliance with “the rule(s), ban(s), standard(s), or regulation(s) cited in § 1110.11(a)(4)”. But (a)(4) is the paragraph about the records contact. The rules are cited in (a)(2). It is obviously a renumbering artifact from the rulemaking and any human reader resolves it instantly. A program that follows cross-references literally — and compliance tooling increasingly does — resolves it to the wrong field. We checked the current text on the day of writing, because the lesson we have learned the hard way in this series is that a regulation you read last week is not evidence of what it says today.

To be fair to CPSC, its own announcement is careful about scope: eFiling “does not apply to domestic manufacturers, including small businesses manufacturing in the United States” and “creates no new testing, certification, or compliance obligations”. If you buy finished goods from a domestic supplier, this is your supplier’s filing, not yours. If you container-load direct from overseas — and plenty of independent furniture retailers do, because that is where the margin is — it is yours.

And in February, the tariffs stopped being lawful

The second change is larger and stranger. On 20 February 2026 the Supreme Court decided Learning Resources, Inc. v. Trump, No. 24–1287, argued 5 November 2025 and heard together with Trump v. V.O.S. Selections, Inc., No. 25–250. The holding is one sentence.

“Held: IEEPA does not authorize the President to impose tariffs.” — Learning Resources, Inc. v. Trump, No. 24–1287, slip op. (U.S. Feb. 20, 2026)

The Federal Circuit below had reached the same place, concluding that the statute’s grant of authority to “regulate…importation” did not authorize tariffs that “are unbounded in scope, amount, and duration”. The Court agreed 6–3, in an opinion by the Chief Justice, and affirmed the judgment in V.O.S. Selections.

What follows from that, for a Baltimore retailer, is not a headline. It is a records problem. Duties collected under an authority a court has held did not exist are, in principle, recoverable — but not automatically, and not by press release. Recovery runs through Customs, entry by entry, and what any importer gets back depends on which entries it made, which duty lines were collected under which authority, whether those entries have liquidated, and whether anyone preserved the paperwork.

We are not customs advisers and we are not going to tell you what you are owed; that is a conversation with your broker and your accountant, and it should happen soon rather than later. What we will say is the software half, because it is the half nobody warns you about. A small importer’s accounting system almost always books freight and duty as a single landed-cost adjustment on a purchase order. That is fine for margin. It is useless for a refund, because a refund is a claim about a duty line under a named authority on a named entry, and that resolution does not exist anywhere in your books. The stores that will collect fastest are the ones whose purchasing records happened to keep entry numbers, HTS classifications and duty amounts as separate fields — which is to say, the ones that were slightly over-engineered for no reason anyone could articulate at the time.

That is the general shape of this whole post, actually. The fields you cannot justify on the day you design them are the ones that turn out to be worth money, and they are almost always the fields a regulator already told you to keep.

What custom actually costs

We price in fixed packages, published on the site, because we think a studio that will not tell you its price has no standing to complain about vendors who will not tell you theirs. Here they are against the two stacks we modeled earlier.

founderandai fixed-price packages, and how long each stack takes to reach the same money. Subscription figures are the published floors modeled above and exclude payment processing, hardware and implementation.
PackageFixed priceMonths of Stack A ($3,936/yr)Months of Stack B ($15,204/yr)
Prototype Sprint$3,50010.72.8
Online Storefrom $6,00018.34.7
Custom Appfrom $12,00036.69.5
Operations Systemfrom $12,00036.69.5

Every price includes the whole thing: deployed and live, full source code, authentication, roles and security, payments and integrations, and a fixed date. You own it. There is no per-seat charge afterwards and no per-location charge, which for a store that runs a showroom, a warehouse and a clearance outlet is not a small point — Square Retail’s $49 and $149 tiers are billed per location, so three locations is $147 or $447 a month before anything else in the stack.

We should be honest about what those numbers do and do not prove. A twelve-thousand-dollar build that replaces a fifteen-thousand-dollar-a-year stack pays for itself in ten months on paper and never quite does in practice, because you will keep some of the stack, and because software you own still needs hosting and occasional work. The comparison is useful for a different reason: it tells you the order of magnitude of the decision. If a delivery platform is costing you $619 a month to schedule three hundred drops, the question is not whether a cheaper platform exists. It is whether scheduling three hundred drops is a $7,428-a-year problem.

What we would actually build for a Baltimore furniture store

Not a point of sale. We almost never recommend replacing one, and for a store already running Lightspeed or Square or a furniture system that works, replacing it is a large bill for a lateral move. What breaks in this trade is the space between systems, and that is what we build.

The core of it is one order record that is allowed to know everything about one order. Today that knowledge is scattered: the point of sale has the money, a wall calendar or a routing app has the delivery, a spreadsheet has the supplier lead times, an email folder has the finance approval, and a filing cabinet has the certificates. Nothing joins them, so nobody can answer a question that crosses two of them — which is every interesting question in a furniture business.

On that record we put the things this post has been about. A promised-ship window computed from the supplier’s live lead time and stamped with the basis for it, so that the reasonable-basis question has an answer with a date on it. A credit-approval timestamp captured from the finance provider, because it starts the clock. A delay-notice engine that picks between the three notice templates by comparing the revised date to the original deadline, records what went out and when, and records the reply or the absence of one. A refund queue that knows which orders are on a seven-working-day clock and which are on a billing cycle. A delivery appointment that is a real scheduled object with a crew, a vehicle, a window and a two-person flag, not a note in a comments field.

And on the product side, the fields the regulators already specified: the prototype identification number and the set of foundations a mattress is certified with, so the cart and the till can both refuse an uncertified pair; the date of manufacture on anything that is a clothing storage unit; a component-level composition record with masses, so a Maryland question about a percentage has somewhere to be answered; and a supplier certificate store, versioned, linked to the models it covers, so that when a distributor furnishes you a certificate it lands somewhere better than an inbox.

Most of this is unglamorous. All of it is the difference between a shop that can answer a question in thirty seconds and one that answers it in three days, and in a trade where a single order can be four thousand dollars and twelve weeks long, the answer speed is the customer experience.

Build, buy, or both

We would rather you kept your subscriptions than bought a build you do not need, so here is the honest division, and it is the only list in this post.

  • Keep renting the point of sale, card processing, accounting and parcel labels. These are commodity problems solved well by companies whose scale you cannot match, and replacing them is a cost with no upside.
  • Buy the specialist tool if you have genuinely high volume in one narrow thing — if you run thousands of routed stops a month, a routing platform will beat anything we would write for you, and Routific at three cents an order at the top of its ladder is very hard to argue with.
  • Build the order record, the promise-and-notice logic, the delivery calendar and the compliance fields — the parts that are specific to furniture, specific to your suppliers, and not sold by anyone because the market is 359 stores in Maryland and nobody is writing a product for it.
  • Do not build anything you cannot describe as a question somebody in the business actually asks. If nobody has ever needed to know it, a field for it is a maintenance cost with no reader.

The strongest case for a build in this trade is not cost. It is that the shape of the thing you need does not exist as a product. Nobody sells a mattress-and-foundation certification graph. Nobody sells a delay-notice engine that knows the FTC’s thirty-day inversion. Nobody sells a component-mass record designed around a Maryland regulation that fourteen states have a version of. Those are two to six weeks of work each, once, and then they are yours.

Who we are

founderandai is a small studio of ex-startup founders in Baltimore. We build custom software at a fixed price, we work directly with the people who write the code, and everything we build belongs to the client, source and all. We write these posts by doing the research ourselves: we pull the Census files, we request the vendor pages and record what they return, we read the regulations in the regulators’ own databases rather than in secondary summaries, and we recompute every number in the tables from the published page before it ships. Where we are uncertain, we say so, and where a question belongs to a lawyer or an accountant, we say that too.

Nothing in this article is legal, tax or customs advice. The regulations quoted here were fetched from eCFR, the Maryland Division of State Documents’ COMAR database, the Maryland General Assembly’s statute service and the Supreme Court’s own slip opinion on 6 September 2026, and regulations change. If a decision turns on one of them, take the citation to your own adviser rather than the paragraph to your development team.

Frequently asked questions

Does a Baltimore furniture store have to keep mattress flammability records, or is that the manufacturer’s job?

16 CFR 1633.11 puts the record-keeping duty on every manufacturer and on any other person initially introducing mattress sets into commerce, which includes an importer. A store that buys finished mattresses from a domestic maker is not the certifier and does not hold the prototype file. What the store does need is the paperwork its suppliers owe it: 16 CFR 1110.13(b) requires a finished product certifier to furnish the certificate to each distributor or retailer of the product. Collecting those certificates, storing them against the model they cover, and being able to produce the right one for the right sale is the retailer’s problem, and it is a software problem.

What is the foundation identifier on a mattress label, and why does it affect how I sell?

16 CFR 1633.12(a)(6) requires the mattress label to carry a certification of compliance, and where the mattress is intended to be sold with a foundation, the wording is that the mattress meets the standard when used with a named foundation, identified on the label by a simple and distinct name or number. The compliance claim therefore describes a pair of products. If a salesperson rings the mattress up on a different base, the sentence printed on the tag no longer describes what left the store. In data terms this is an edge between two rows, not a flag on one, and almost no retail system models it.

Does Maryland’s flame-retardant ban apply to used furniture I take in on trade?

COMAR 10.19.08.01B says the chapter does not apply to the sale or distribution of a juvenile product, mattress, upholstered furniture or reupholstered furniture that is resold, offered for resale, or distributed by a consumer for consumer use. The exemption is written around the consumer. A dealer that buys a sofa from a household and resells it is not obviously inside that wording, and reupholstered furniture is named in the prohibition rather than excused from it. Maryland has 288 used merchandise stores with paid employees, so this is not a hypothetical question. Take it to your own counsel, and in the meantime make sure your system can tell a trade-in from a consignment from a new order.

How long do I have to ship an online furniture order?

Under the FTC’s Mail, Internet, or Telephone Order Merchandise Rule at 16 CFR 435.2(a)(1), you must have a reasonable basis to expect that you can ship within the time you clearly and conspicuously stated, or within thirty days if you stated no time. The clock runs from receipt of a properly completed order, which 16 CFR 435.1(c) ties to payment being honoured or credit being approved rather than to the moment the customer clicked buy. If you cannot make it, you must offer the buyer a choice between consenting to a delay and canceling for a prompt refund, and you must do that no later than the original deadline.

Does offering financing change my shipping deadline?

Yes. 16 CFR 435.2(a)(1)(ii) gives a seller fifty days rather than thirty where, at the time the merchandise is ordered, the buyer applies to the seller for credit to pay for it in whole or in part. That is a 66.7 percent longer window created by a checkbox at checkout, on the same sofa, for the same customer. It only applies where no shipping time was stated; if your product page promises a date, the date you promised governs.

What changed at the border on 8 July 2026?

CPSC’s eFiling requirement became mandatory. Under 16 CFR 1110.13(a)(1), an importer of a regulated consumer product must transmit the certificate data elements listed in 16 CFR 1110.11 electronically to Customs at the time of entry, rather than holding a certificate and producing it on request. Those elements include a unique product identifier, every rule being certified to, the certifier’s contact details, a contact for the person holding the records, the date and place of manufacture, the date and place of testing, and an attestation. CPSC has said the requirement reaches Foreign Trade Zone entries for consumption or warehousing on 8 January 2027.

Can a Baltimore retailer get back the tariffs it paid in 2025?

In Learning Resources, Inc. v. Trump, decided 20 February 2026, the Supreme Court held that IEEPA does not authorize the President to impose tariffs. Refunds are being processed through Customs rather than handed out automatically, and what any given importer can recover depends on its own entry records: which entries, which duty lines, which authority each line was collected under, and whether the entry has liquidated. If you imported directly, this is a question your accounting and purchasing data has to answer, and most small retailers have never had to store duty at line level. Speak to your customs broker and your accountant.

What would custom software actually replace in a furniture store?

Usually the seams rather than the systems. The point of sale is rarely the problem; the problem is that the delivery calendar, the special-order lead time, the deposit ledger, the supplier certificate file and the online store each know part of an order and none of them knows all of it. We generally build one order record that carries the promised date, the payment method, the compliance documents and the delivery appointment together, and let the existing point of sale and accounting keep doing what they already do well.

Start here

Which foundation was that mattress certified with?

Book a free 30‑minute call. Bring last month’s orders, your delivery calendar and your current software bill, and we’ll go through them with you: whether your system can tell a financed order from a cash one on the day the clock starts, what your delay notices actually say and which of the three they should be, whether the manufacture date survives receiving, and what an online store would cost that computes its own promise instead of guessing. Then we’ll tell you what we would build, what you should keep renting, and the fixed price that goes with it.