Case study · Frontsigns · Internal tool · 2024

A pricing calculator
that turns a sign into a ticket.

Frontsigns is a US signage company. Its staff quote custom signs every day: channel letters, marquee letters, mesh banners, street signs. Each one has its own sizes, materials, faces, lighting and installation. I designed the internal calculator they use to configure a sign, see an itemized price build up as they go, and send the finished quote as a ticket.

Frontsigns Pricing Calculator — a line item with Channel Letters / Marquee Letters selected, the letter-type tile grid, height, face, paintable colors, vinyl, raceway bar and LED options, a text element and custom price on the left, and an itemized summary with tax, total and a Send button on the right.
Role
UX/UI Designer
Product
Internal pricing & quoting tool
Users
Frontsigns sales & production staff
Platform
Desktop web
Context

Every sign is a different product with its own price.

A single order rarely means a single sign. A storefront job can combine channel letters for the facade, a logo cabinet, a mesh banner for the opening and installation on top. Each product prices differently: channel letters by letter height and type, banners by width × height plus grommets, marquee letters by face, paint colors, vinyl and LEDs.

The calculator had to hold all of that in one place. A worker needed to build up a multi-product order, see what each choice costs, and send a clean, itemized ticket to the next team without retyping anything.

Structure

Line items → products → elements.

The model behind the screen is a three-level hierarchy, and the layout follows it:

  • Line item: a named piece of the order, such as "Main facade" or "Opening banner". An order can hold several.
  • Product: what's being made inside that line item: Channel Letters, Mesh Banner, Street Signs and more. A line item can hold several products.
  • Elements: the repeatable parts of a product, such as text rows, logos, printing panels and banners. Each row can be duplicated or deleted on its own.

The summary on the right mirrors the same hierarchy. Every option the worker picks on the left shows up on the right with its own line and price, so there's never a mystery number in the total.

Empty state — one line item named Line Item 1 with an empty Select Product field, an Add Product button, and a summary showing dashes for tax and total with a disabled Send button.

The starting state: one line item, one empty product, and a summary that stays empty until there's something to price. Send stays disabled until then.

Choosing a product

A grouped, searchable product picker.

The catalog is long, and workers think in families first, so the product field opens as a searchable list grouped by category (Channel Letter, Free-standing Signs and so on). Once a product is chosen, the field shows it as a path, for example Channel Letters / Marquee Letters, so the parent category stays visible without opening the list again.

Product dropdown open with a search field and grouped options under Channel Letter (Marquee Letters selected) and Free-standing Signs.
Collapsed view — the line item and its Channel Letters / Marquee Letters product folded down, while the summary on the right keeps the full itemized breakdown, attached files, tax and total.

Left: the grouped picker with search. Right: the same product collapsed. The form folds away, but the summary keeps the full breakdown.

Configuring

Visual type tiles, then only the fields that product needs.

Letter types are easy to confuse by name alone, so channel-letter types are picked from image tiles: Injection Molded, Formed Plastic, Cut Plastic, Changeable, Aluminum, Marquee, Cast Metal, Cut Metal, Laminated, Fabricated Metal and Cast & Etched Plaques. Each tile shows a sample "G", so the worker matches what the customer described to what the shop actually makes.

Below the tiles, the form changes with the product. Marquee letters ask for height, face (e.g. bulbs), paintable colors, regular or perforated vinyl, an optional raceway bar and LED. A mesh banner only needs height, width and grommets. A street sign combines channel letters, a logo and printing. Workers never see fields that don't apply.

Two marquee-letter products in one line item: text rows with a Curved Font checkbox, a logo row with a drag-and-drop upload area for AI, JPEG, PNG or PDF files and attached file chips, custom price, installation, and a summary listing both products with their options and prices.

Two marquee products in one line item: text rows with a curved-font option, a logo with artwork upload, and the summary listing each product's options and prices.

Pricing

A live summary, with room for judgment.

The summary is the part workers actually read. Each product gets its own block, with every option on its own row: type, size, face, paint, vinyl, text, logo and installation. The price sits on the right, and tax and total are at the bottom. Attached artwork shows up as file chips, so whoever picks up the ticket gets the files with it.

Calculated prices don't cover every case, so each product also has a Custom Price field. A worker can override the number when a job needs it without breaking the rest of the quote.

A line item with two empty products, each with its own Delete button and collapse arrow, plus Add Product and Clear All actions.
Two line items stacked, each with its own Delete button and collapse arrow, plus Expand All and Collapse All controls at the top.

Building up an order: several products in a line item, several line items in an order. Expand All and Collapse All keep long quotes manageable.

Iterations

Getting the hierarchy right took a few rounds.

Earlier versions put the line item in its own card above the products, with products as separate cards below. Each product also had its own nested Clear All. It worked, but the structure was hard to read: it wasn't obvious which product belonged to which line item, and long orders became a wall of cards.

The final version puts each line item and its products in one container, with collapse controls at every level and a single place to add or clear products. The type field also changed from a dropdown to the image tiles. That was a small change, but it removed a common source of wrong quotes.

Earlier iteration — the line item as its own card with Add Product and Clear All, then separate cards for a Channel Letters product and a Mesh Banner product.
Earlier iteration — a Street Signs product combining channel-letter text rows, a logo and a printing row with type, size and grommets, with Add Channel Letter, Add Logo, Add Printing and Add Painting actions.

Earlier iterations: line item and products as separate cards (left), and the Street Signs product combining letters, logo and printing (right).

Reflection

Internal tools still need design.

The people using this aren't customers. They're staff quoting jobs all day, and every confusing field turns into a phone call or a wrong price. Most of the design work here was making a complicated pricing model easy to follow. The structure on the left matches the structure on the right, people pick from pictures where names are ambiguous, and every number in the total can be traced back to an option.

Happy to walk through the pricing logic and the edge cases in more detail.

Get in touch →

Like what you see?

I'm open to senior product design roles and select freelance engagements. Always happy to chat.

Get in touch →