Appearance
Reports
BridalOp ships a Sales Dashboard landing page plus 20 built-in reports across five categories, and an AI assistant called Bri that can answer questions about your business data in plain English.
Revenue is reported net of sales tax
Across every report, revenue figures exclude sales tax collected. Tax you collect is a liability you remit to the state, not income — so it never counts toward your revenue, gross margin, commissionable sales, or dashboard KPIs.

Sales Dashboard
The Sales Dashboard at /reports/sales-dashboard is the executive landing page — every number that matters in one screen. A featured card pinned to the top of /reports and a quick-link card on the home Dashboard both link straight to it.
The dashboard renders seven KPI tiles. Every tile is clickable and drills into the underlying report pre-filtered to the same period:
| Tile | What It Shows |
|---|---|
| Revenue This Month | Month-to-date revenue with a delta vs the prior month |
| Revenue This Quarter | Quarter-to-date revenue with a delta vs the prior quarter |
| Revenue Year-to-Date | YTD revenue with a delta vs the prior year |
| Appointments Booked | Appointment count this month |
| Close Ratio (Bridal Gowns) | Bridal gown close ratio with a weekly sparkline trend |
| Gross Margin by Department | Bar chart of revenue + gross margin across product types |
| Highest Margin Categories | Top 5 categories ranked by margin |
Use the dashboard as your morning check-in: glance at the row of KPIs, click whichever number deserves a deeper look.
Sales
| Report | What It Shows |
|---|---|
| Sales Summary | Total revenue, order count, average order value, tax collected, and discounts given. Includes a revenue trend chart and breakdown by order type. |
| Item Sales | Every product sold in the period with quantity, revenue, average price, cost, and profit margin. Sortable by any column. |
| Category Sales | Sales aggregated by product category — items sold, revenue, average price, percentage of total revenue, COGS, Gross Margin, and Margin %. |
| Department Margin | Gross margin grouped by product type (Gowns / Bridesmaid / Accessories / Veils / Shoes / Alterations / Other) — KPI tiles, bar chart, and table. |
| Close Ratio | Bridal-appointment-to-gown-sale conversion ratio over a configurable window, broken out by store and per-consultant. |
| Team Sales | Staff performance — orders closed, items sold, revenue, and average order value per team member. |
| Payment Methods | Transaction count and total amount per payment method (cash, card, gift card, etc.) with percentage breakdown. |
| Discounts | Every discount used in the period — name, code, type (percent/fixed), usage count, and total amount given. |
| Commissions | Commission earned per staff member based on their commission rules and total sales closed. |
Department Margin
The Department Margin report at /reports/department-margin answers a single question: which product types are actually making you money?
Two KPI tiles up top — Revenue and Gross Margin for the period — sit above a Revenue vs. Gross Margin by Department bar chart and a per-department table.
| Column | Description |
|---|---|
| Department | Product type (Gowns, Bridesmaid, Accessories, Veils, Shoes, Alterations, Other) |
| Units Sold | Quantity sold across all line items in the department |
| Revenue | Net revenue (after discounts) |
| COGS | Cost of goods sold — sum of unit_cost × quantity |
| Gross Margin | Revenue minus COGS |
| Margin % | Gross margin as a percentage of revenue |
Margin numbers don't drift
Each line's unit_cost is snapshotted at sale time, so historical margin won't shift later when you update a product's cost. Existing orders use a backfill from the inventory item's purchase price (or, falling back, the product's cost plus any per-variant additional cost) so day-one numbers are solid too.
Close Ratio
The Close Ratio report at /reports/close-ratio measures how often a bridal appointment turns into a gown sale within a configurable window after the appointment.
| Filter | Options |
|---|---|
| Consultation Types | Checkboxes for every appointment type you offer. Tick exactly which ones count as bridal consultations. Use All types to select or clear them all. |
| Conversion Window | 14 days, 30 days (default), 60 days, or 90 days after the appointment |
| Group By | Week or Month (store rollup view only) |
Pick your own consultation types
Boutiques often run more than one bridal consultation type — say a Classic Bridal Appointment plus a Bubbly Appointment — and any of them can end in a gown sale. The Consultation Types filter lets you choose exactly which appointment types count, so no real consultations (or the closes they earned) get dropped. Leave the boxes as they load and BridalOp counts every appointment type whose name reads as bridal; tick your own set to override that default.
There are two views:
- Store rollup — period-over-period close ratio for the whole boutique. Columns: Period, Appointments, Closes, Close Ratio, Gown Revenue.
- Per-consultant — same metrics, but per consultant. Columns: Consultant, Appointments, Closes, Close Ratio, Gown Revenue.
Dedup rule: each gown sale credits at most one appointment — the earliest qualifying one. So when a bride comes in for two consultations before buying, the close ratio doesn't get inflated by the repeat visit. The number stays honest.
Team Sales
The Team Sales report at /reports/team-sales credits every completed order to a seller and rolls up orders closed, items sold, revenue, and average order value per team member.
Each sale is attributed to its assigned salesperson, falling back to whoever rang it up if no one was assigned. That means a sale credited to a seller shows up under their name — not lumped into Unassigned — and matches how the same sale is credited on the Commissions and Close Ratio reports.
Commissions
The Commissions report at /reports/commissions shows commission earned per staff member for the period. Commission amounts are snapshotted at sale time, so they don't shift later when you change a rate.
| Column | Description |
|---|---|
| Staff Member | The seller who earned the commission |
| Rate | The effective rate actually applied to their sales for the period |
| Orders Closed | Distinct orders that earned commission |
| Total Sales | Their commissionable sales (net of tax), counting each order once |
| Commission Earned | Total commission dollars earned |
Commission rates resolve from most specific to most general: a rule for a specific seller and category, then that seller's default, then a category-wide rule, then a tenant-wide rule that applies to every seller and category (for example, "2% on all sales"). A tenant-wide rule is honored even when you've set no per-seller rates.
Rate and Total Sales stay honest
The Rate column reflects the rate genuinely applied to each seller's sales rather than a stored default, so a boutique running a single shared rule still sees the real number instead of "Not set". Total Sales counts each order once even when it has several commissionable lines, so a multi-item sale is no longer double- or triple-counted.
Financial
| Report | What It Shows |
|---|---|
| Sales Tax | Taxable sales, tax collected, and tax rate — broken down by location and by month. |
| Layaway Overview | Active, completed, and overdue layaway plans with outstanding balances and next payment due dates. |
| Inbound Expenses | Vendor purchase order expenses with outstanding balances. Shows what you owe vendors, when payment is due, and total balance due grouped by month. Includes vendor, PO number, product, customer, estimated arrival, payment terms, paid amount, balance due, and due date. Exportable as CSV or PDF. Supports threshold alerts (see below). |
Inbound Expenses — Threshold Alerts
The Inbound Expenses report includes a Threshold Alerts setting that notifies you when your projected monthly expenses get too high.

Click Alert Settings in the top-right corner of the Inbound Expenses report to configure:
| Setting | Description |
|---|---|
| Enable threshold alerts | Toggle alerts on or off |
| Threshold amount ($) | You'll be notified when any month's projected expenses reach or exceed this amount |
| Also notify managers | Send the alert email to all active managers in addition to the store owner |
Alerts are checked daily at 7:00 AM ET. When your projected inbound expenses for the current month hit or exceed your threshold, BridalOp sends an email notification to the store owner (and optionally all managers).
Inventory
| Report | What It Shows |
|---|---|
| Inventory Summary | Total items, inventory value at cost, and counts by status (available, reserved, sold, on-order, damaged). Broken down by product with ownership type (store-owned vs. consignment). |
| Consignment | Items sold per consignment vendor, total sales, vendor payout, and your store's revenue share. |
Operations
| Report | What It Shows |
|---|---|
| Appointments | Total appointments, no-show count and rate, cancellations, completions, and average party size. Includes trend chart, breakdown by type and source, and per-consultant stats. |
| Staff Hours | Shifts worked, days worked, total hours, break time, and average hours per day — per staff member. |
| SMS Usage | Total messages sent, credits used, delivery rate, and failed count. Broken down by context (automated vs. bulk) with a daily trend chart. |
Customers
| Report | What It Shows |
|---|---|
| Customer Insights | Total and new customers, repeat customers (2+ orders), upcoming weddings. Includes trend chart, acquisition source breakdown (walk-in, referral, social, Google), and event type distribution. |
| Sales by Zip Code | Traffic and sales grouped by the customer's zip code — new customers, appointments, orders, and revenue per zip, plus a chart of your top zips by revenue. |
Sales by Zip Code
The Sales by Zip Code report at /reports/sales-by-zip shows where your traffic and sales come from geographically. It groups everything by the customer's zip code so you can see which areas drive the most brides and the most revenue — useful for targeting local marketing.
Four KPI tiles up top total the period, above a Top Zip Codes by Revenue bar chart and a searchable per-zip table.
| Column | Description |
|---|---|
| Zip Code | The customer's 5-digit zip (ZIP+4 is collapsed to its base) |
| New Customers | New customers added in the period from that zip |
| Appointments | Appointments booked in the period for customers in that zip |
| Orders | Completed orders in the period |
| Revenue | Net revenue (after discounts, before tax) from that zip |
| % of Revenue | That zip's share of total revenue for the period |
Where zip comes from
Zip is read from the customer's saved address. Brides who booked online without a saved address roll up under Unknown until their address is filled in.
Filters
Every report supports a date range filter and most support a location filter. Select a custom range or use quick presets to narrow the data.
Ask Bri
Bri is BridalOp's AI assistant — ask questions about your business data in plain English and get instant answers.

Opening Bri
Click the Ask Bri button in the top-right area of any report page. A chat panel slides open from the right side of the screen.
What You Can Ask
Bri has read-only access to your sales, customers, appointments, inventory, staff, and financial data. Ask anything you'd normally dig through reports for:
- "What were my top 5 selling products this month?"
- "How much revenue did we make last week?"
- "Which consultant had the most appointments?"
- "How many new customers did we get this month?"
- "What is our no-show rate?"
- "Which payment method is most popular?"
Click any suggested question to submit it instantly, or type your own.
How It Works
Type a question and press Enter or click Send. Bri analyzes your data and responds with a clear, formatted answer — dollar amounts, dates, and counts are all presented in readable form.
The conversation is maintained throughout your session, so you can ask follow-up questions. Your messages appear on the right in pink, and Bri's responses appear on the left.
Data Privacy
Bri only has read-only access to your boutique's data — it can never modify, delete, or share anything. Internal IDs and system fields are never exposed in responses. All queries are scoped to your account and rate-limited for security.

