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
MI9 POS Import
What is this?
MI9 is a retail management system used by larger multi-store operations. Margin Master imports MI9 data files and builds team-based pricing analysis tables, supporting the most fields of any POS system at over 75 fields.
Import File Format
| Property | Value |
|---|---|
| Delimiter | Tab (\t) |
| File pattern | MM*.txt (e.g., MM_Team1.txt, MM_Team2.txt, MM_Unsequenced.txt) |
| Header row | Yes (1 row) |
| Total fields | 75+ |
How Import Works

The export file is read from the Import Path set under Tools > Options > Miscellaneous:


Use a single main table (one row per SKU per store).
Apply and Rebuild Now.
Place your MI9 export files in the configured import folder. Files follow the
MM*.txtnaming pattern.Margin Master reads each file using the SepReader library for high-performance parsing.
Each row is mapped to the Margin Master data model using hardcoded field mappings (no external
.mapor.fmtfiles).Data is bulk-merged into the database using Z.BulkOperations in batches of 10,000 rows.
Files are processed in batches of 50,000 records at a time for memory efficiency.
If a batch fails, Margin Master retries up to 5 times with increasing wait times between attempts.
Unlike most POS systems, MI9 builds team-based main tables (e.g.,
StoreGroup_Team1_mainTable) rather than per-store tables.
Field Mapping
Core Fields
| MI9 Field | Margin Master Field | Notes |
|---|---|---|
| StoreNumber | StoreNumber | Store identifier |
| SKU | SKU | Product identifier |
| AceSku | AceSku | Priority SKU for Ace Hardware stores |
| Description | Description | Product description |
| Department | Department | Department code |
| Class | Class | Product class |
| Location | Location | Bin/shelf location |
Pricing Fields
| MI9 Field | Margin Master Field | Notes |
|---|---|---|
| RetailLevel1–5 | RetailLevel1–5 | Retail price levels |
| RetailZone | RetailZone | Zone retail price |
| Level1–5Zone | Level1–5Zone | Zone-level prices |
| StoreCost | StoreCost | Store cost |
| AVGCost | AVGCost | Average cost |
| ReplacementCost | ReplacementCost | Replacement cost |
| CurrentPrice | CurrentPrice | Uses cascading logic to determine value |
| FuturePrice | FuturePrice | Planned future price |
CurrentPrice cascading logic: MI9 uses a priority-based approach to determine the current price from multiple price level fields.
Sales History Fields
| MI9 Field | Margin Master Field | Notes |
|---|---|---|
| History1–12 | History1–History12 | Monthly sales history |
Ace-Specific Fields
| MI9 Field | Margin Master Field | Notes |
|---|---|---|
| VendorOwner | VendorOwner | Vendor owner code |
| VendorNumber | VendorNumber | Vendor number |
| VendorName | VendorName | Vendor name |
| Discontinued | Discontinued | Discontinued flag |
| PrivateLabel | PrivateLabel | Private label indicator |
Status Fields
| MI9 Field | Margin Master Field | Notes |
|---|---|---|
| ProductStatus | ProductStatus | Product-level status code |
| StoreProductStatus | StoreProductStatus | Store-level status code |
| BlockedAutoChanges | BlockedAutoChanges | Blocks automatic price changes |
Status codes include: A (Active), B (Blocked), C (Clearance), D (Discontinued), N (New), R (Return), S (Seasonal), W (Warehouse), X (Inactive).
Tips
- Team-based tables: MI9 groups stores into teams. Margin Master builds a separate main table for each team (e.g.,
StoreGroup_Team1_mainTable) rather than one table per store. - Store configuration: Each MI9 store is configured in the Mi9StoreManager table with a BranchCode, GroupName, and Excluded flag. Stores marked as Excluded are skipped during import.
- AceSku priority: For Ace Hardware stores, MI9 files include an
AceSkufield. When present, this takes priority over the standardSKUfield for vendor catalog matching. - Large file handling: MI9 files can be very large. Margin Master processes them in 50,000-record batches and bulk-merges in 10,000-record batches to manage memory.
- Ace Hardware pairing: MI9 supports Ace Hardware vendor pairing through the VendorOwner, VendorNumber, and VendorName fields.
Common Questions
Q: What do the Team1, Team2, and Unsequenced file names mean? A: These correspond to store groups configured in your MI9 system. Each group gets its own main table in Margin Master. Stores not assigned to a specific team appear in the Unsequenced file.
Q: Why is my store not appearing in the import? A: Check the Mi9StoreManager configuration. The store may be marked as Excluded, or its BranchCode may not match the data in the import file.
Q: What happens if an import batch fails? A: Margin Master automatically retries up to 5 times with exponential backoff (increasing wait times). If all retries fail, the error is logged and the remaining batches continue processing.
