Margin Master Handbook
- Prerequisites
- Firewall and Network Requirements
- Microsoft Edge Download Block
- SQL Server Authentication Setup for IT Administrators
- Antivirus and Endpoint Security Exclusions
- SQL Server Tools
- Install or Upgrade SQL Server Express
- Install or Upgrade SQL Server Management Studio
- A Tour of the Main Window
- The Menus
- The Button Row
- The Main Data Grid
- The Summary Section
- Banners and Badges
- The Options Window
- Store Configuration
- Miscellaneous
- Export Options
- Vendor Settings
- POS / Connections Tabs
- Background Service
- AI Assistant (Experimental)
- How POS Import Works
- Supported Point-of-Sale Systems
- Data Import Workflows
- RockSolid POS Import
- Epicor Eagle FTP Import
- Epicor MySQL Compass Import
- Transact POS Import
- Paladin POS Import
- Falcon POS Import
- Spruce POS Import
- Bistrack POS Import
- RockSolid Max POS Import
- ECS POS Import
- Prosperity POS Import
- Catalyst POS Import
- Westlake POS Import
- MI9 POS Import
- AS/400 POS Import
- CounterWorks POS Import
- Dimension POS Import
- PacSoft POS Import
- ProStix POS Import
- Sympac POS Import
- Propello POS Import
- EagleVision POS Import
- MySQL/Compass Connection Configuration
- ECI VPN Requirement (Spruce, RockSolid MAX)
- Propello POS Integration Guide
- MI9 Data Pipeline — Import to Main Table
- Troubleshooting: Epicor Import Brought In 0 SKUs
- PACE POS Import
- Advantage POS Import
- General Store POS Import
- J-3 POS Import
- KeyStroke POS Import
- AutBusSystem POS Import
- Tomax POS Import
- Enterprise POS Import
- Computakey POS Import
- Redisell POS Import
- DART POS Import
- MIB POS Import
- Substruct POS Import
- DMAS POS Import
- RODS POS Import
- Procom POS Import
- Agility POS Import
- Acumen POS Import
- Cruise POS Import
- LSandE POS Import
- Retalix POS Import
- DIBCorp POS Import
- GMROI POS Import
- ECi Advantage POS Import
- Sunray POS Import
- ActivantAutomotive POS Import
- IBS POS Import
- Versys POS Import
- RMS POS Import
- TAMS POS Import
- Integrasoft POS Import
- Dynamic POS Import
- Microsoft ARS POS Import
- CDS POS Import
- Spartan POS Import
- Nitterhouse POS Import
- Jeds POS Import
- Theisens POS Import
- Emery Jensen POS Import
- SMS Pro POS Import
- Burdens POS Import
- Intact POS Import
- Bloom Retail POS Import
- NCR Counterpoint POS Import
- Horizon POS Import
- Cloud Vendor Data Sync
- Data Aging and Freshness Warnings
- Resetting Vendor and POS Data
- Rebuild Data and Rebuild Selection Lists
- Troubleshooting Vendor Sync
- Understanding the Strategy Hierarchy
- Pricing Strategies
- Creating a Strategy Step
- Updating and Deleting Steps
- Reviewing a Strategy and Running It
- Shared (Premade) Strategies
- SKU-Level Exceptions
- Manage Custom Groups
- Strategy Execution Cloud Tracking
- Importing from Excel
- Cost Break Analysis
- Cost Break Strategies
- Min/Max Strategies
- Strategy Backup & Restore
- Add Items from Catalog
- Store Grouping
- Data Diagnostics and Missing Index Recommendations
- System Diagnostics
- Margin Master Cannot Save Settings
- SQL Server 2025 Express vs. Full License
- Support Issue Management
- Catalog Lookup
- What's New After an Update
- Version History
- Documentation and the Help Buttons
- CTLD — Do It Best Catalog File
- MARGIN_MASTER — Ace Catalog File
- PCDITEMXREF — Do It Best SKU Classification File
- SAP_ZONE_PRICE_MARGIN_MASTER — Ace Zone Pricing File
- PCDPRODCLASS — Do It Best Product Classification Hierarchy File
- SAP_STORE_DEPT_ZONE_MARGIN_MASTER — Ace Store Zone Assignment File
- Taxonomy — Ace Product Classification File
- Mapp_Pricing — Ace MAP & IMAP Pricing File
- margin_mstr_plano — Ace Planogram File
On This Page
Manage Custom Groups
What is this?
Custom Groups let you define named collections of SKUs that can be targeted by specific pricing strategy steps. Instead of applying a price rule to all products or filtering by vendor attributes, you can create a group of hand-picked SKUs and assign them unique pricing, rounding, and store-level settings.
Walk through it in the app: guide 2012 — Pricing with custom groups. Margin Master can walk you through these steps live: turn on Training / Guide Mode from the Help menu, then type 2012 into the Lessons & Guides box — or ask Margin Master support to run it with you.
A custom group is an explicit, hand-picked list of SKUs plus one pricing rule. It is not a filter or a condition — membership is a list, so a product belongs to a group only because you put it there.
How to Access
- Keyboard shortcut:
Ctrl+G - Menu: Strategy > Manage Custom Groups
- From the Pricing Strategy Manager: click "Manage Custom Groups" in the yellow section
To put products into a group without opening this window:
| From | How |
|---|---|
| Main grid, one item | Right-click the row > Add Sku to Custom Group |
| Main grid, everything shown | Strategy > Add Displayed Sku's to Custom Group |
| Sku Detail window | The Custom Groups tab, with Add to Custom Group / Remove from Custom Group between the Available Custom Groups in Strategy and This SKU belongs to the following Custom Groups lists |
All three open a picker with the existing groups plus a Create New... entry. Group names must be 3 to 50 characters, may contain only letters, digits, spaces, underscores and hyphens, and must be unique within the strategy.
A group created this way starts out with no pricing rule, so it prices nothing until you open Manage Custom Groups and give it a Set Future Price to value.
Window Layout

- Current Strategy File · 2. Group list (left panel) · 3. SKUs in the group · 4. Store / Group selection · 5. Future Price panel for the group
The Manage Custom Groups window has two panels:
Left Panel — Group List
A grid showing all custom groups for the active strategy. Each row displays:
| Column | Description |
|---|---|
| # | Sequence number (execution order) |
| Group Name | Name of the custom group |
| Skus | Number of SKUs in the group |
| Active | Whether the group is active (checkbox) |
Status icons appear in the Group Name column:
- Orange dot — group has unsaved changes
- Red error icon — group has a validation error (hover for details)
Right Panel — Group Details
When you select a group, the detail panel shows:
- Group Name (editable text field) — the name of the selected group
- Active toggle (orange switch) — enable or disable the group
- SKU grid — list of all SKUs in the group with columns for SKU and Description
- Store/Group selection — which stores or store groups this group applies to
- Future Price panel — pricing settings for this group (same controls as strategy step pricing)
Managing Groups
Creating a New Group
Click the hamburger menu (top-left) and select New Empty Group. A new group is added with a default name and empty SKU list.
Copying a Group
Select a group, then click the hamburger menu and choose Copy Current Group. This duplicates the group including all its SKUs and settings.
Deleting a Group
Select a group, then click the hamburger menu and choose Delete Current Group. You are asked to confirm first — "Delete Custom Group ""? All SKU(s) will be removed from this group."
Copying a Group from Another Strategy
Hamburger menu > Copy Group from Another Strategy.... Pick a strategy, then one of its groups, and optionally rename it under Copy as name:. The group's settings and its SKUs are copied into the current strategy; the original is untouched. The item is only available when the database holds more than one strategy.
Finding Duplicate SKUs
Hamburger menu > Find Duplicate SKUs... lists every SKU that belongs to more than one group in this strategy, with a chip for each group it is in. Click the X on a chip to remove that SKU from that group immediately.
This matters because groups run in sequence and the last one to touch a SKU sets its price — a product in two groups is silently priced by whichever runs later. Unsaved changes must be saved before the scan runs, and the window offers to do that for you. When nothing is wrong you get "No duplicate SKUs found across the custom groups in this strategy."
Resolve Unassigned
An unassigned group is active but has no price level set, so it never prices anything. The strategy pre-flight check warns about these before every run.
When any exist, the hamburger menu shows Resolve Unassigned (N) with three bulk actions:
| Action | Description |
|---|---|
| Delete All | Removes every unassigned group and its SKUs, after a single confirmation showing the group and SKU counts. |
| Inactivate All | Marks every unassigned group inactive and saves — they stay in the list but leave the pre-flight warning. |
| Assign Price Level... | Opens a picker of price levels (Retail, Level 1, Level 2, etc.), sets every unassigned group to the chosen level, and saves. Levels that need a per-group value (Margin %, Fixed Retail, Cost Break, Set-to-SKU) are not offered. |
Reordering Groups
Use the Up and Down buttons below the group list to change the execution order. Group sequence determines the order in which custom group steps are applied during strategy execution.
Click Sort by Name to reorder every group alphabetically in one step. This renumbers the sequence, so it changes the execution order as well as the display order.
Reordering is not permanent until you Save. The saved order is what you see the next time you open the window.
Managing SKUs in a Group
Adding SKUs
Click the + button in the SKU grid header (tooltip: Add Skus to Custom Group) to open the Add Skus to dialog. It is a paste box, not a search: "Enter one or more Skus separated by commas. For example - 12345,43251,112112", up to 250 characters at a time. To load a longer list, use Import Group Skus instead.
Removing Invalid SKUs
Click the export button in the SKU grid header to remove SKUs that no longer exist in your database. This cleans up orphaned entries.
Deleting Individual SKUs
Click the red X icon on any SKU row to remove that single SKU from the group.
Import/Export SKUs
Click the hamburger menu in the group detail header:
| Action | Description |
|---|---|
| Import Group Skus | Read SKUs from a plain text file (*.txt) |
| Export Group Skus | Write the group's SKU list to a plain text file, one SKU,Description per line, named Group Skus.txt by default |
| Delete ALL Group Skus | Remove all SKUs from the group (with confirmation) |
Import file format. One SKU per line. Margin Master reads the first value on each line as the
SKU — splitting on a tab if there is one, otherwise a comma, otherwise a space, otherwise taking the
whole line — so a plain list of SKUs and an exported SKU,Description file both work, as does a
column pasted out of a spreadsheet. SKUs already in the group are skipped. You are told how many were
added, and separately how many lines could not be read.
Margin Master remembers the folder you last imported from or exported to.
Store/Group Selection
The bottom-left panel lets you choose which stores this custom group applies to:
- Store mode: Check individual stores from the store list
- Group mode: Check store groups (when store grouping is enabled in your configuration)
The mode displayed depends on your store grouping settings.
Saving and Reverting
| Button | Description |
|---|---|
| Save | Persists all changes to the database. Only enabled when there are unsaved changes. |
| Revert | Discards unsaved changes for the current group. Only visible when changes exist. |
| Close | Closes the window. If there are unsaved changes, you are prompted to save, discard, or cancel. |
Warnings you may see when saving
| Title | What it means |
|---|---|
| Nothing to Save | "If you just entered a value, click out of the box you typed in and try again." A value you typed has not been committed yet — click elsewhere, then Save. |
| Custom Group Has No Price Level | Lists groups with nothing to price from. If a group's name contains a number that looks like a margin, Margin Master offers to use it: Yes — set these margins, then save / No — save as-is / Cancel — go back without saving. Otherwise it is a plain Save anyway? |
| Custom Group Prices Below Cost | The rule would price every item the group covers at a negative margin. Answer Yes only if that is deliberate. |
How groups run
Custom groups run after every regular strategy step and before SKU-level exceptions. Three things gate them:
- The yellow Custom Groups step in the Pricing Strategy Manager gates the whole phase.
- The group itself must be Active.
- The group must have a Set Future Price to value; without one it is logged as skipped.
Groups then run in sequence order, so for a SKU in more than one group the last group to run wins. The Strategy Pre-flight Check dialog names any group that cannot price before the run starts, and lets you cancel to fix it.
The lock icon on the main grid
Every item a custom group prices gets a padlock stamped with a G in the narrow * column of the
main grid — whatever the group prices to. It is the quickest way to see at a glance which products
on screen were priced by a group. See The Lock Column.
Tips
Tip: Custom groups are tied to a specific strategy. When you switch strategies, the custom groups shown are those belonging to the newly active strategy.
Tip: The sequence number matters — during strategy execution, groups are processed in order. If a SKU appears in multiple groups, the last group processed wins.
Tip: Use Import Group Skus to quickly populate a group from a spreadsheet or exported file rather than adding SKUs one at a time.
Tip: Run Find Duplicate SKUs... after any large import. A product that lands in two groups is priced by whichever runs later, which is rarely what you intended.
Common Questions
Q: Can a SKU be in multiple custom groups? A: Yes. A SKU can belong to multiple groups. During strategy execution, each group's pricing is applied in sequence order, so the last matching group determines the final price.
Q: What happens if I deactivate a group? A: Inactive groups are skipped during strategy execution. The group and its SKUs are preserved but have no effect on pricing until reactivated.
Q: Why does a group show a red error icon? A: The group has a validation error. Hover over the error icon to see the specific issue — common causes include missing pricing settings or duplicate group names.
Q: I added SKUs to a new group from the main grid, but nothing was priced. A: A group created that way has no pricing rule yet. Open Manage Custom Groups, select the group, and give it a Set Future Price to value.
Q: Can I reuse a group I built in another strategy? A: Yes — Copy Group from Another Strategy... in the hamburger menu copies both the group's settings and its SKU list. The original strategy is not changed.
Q: How do I find out which group priced a particular item?
A: The * column shows a G padlock on group-priced items, but not which group. Use Find Duplicate SKUs... if the item might be in more than one, or check the strategy execution log, which names the group for every SKU it priced.
