What's New - Margin Master

What's New

Every change in every Margin Master update, organized by when it was published

What's New in Margin Master

Every change we publish, newest first. Open a change for the full details.

  • Published This Month 90 changes
    • Sunday, September 20 6 changes · v2026.920.37574
      • Enhanced Demo Database Security to Prevent Real Store Data Leakage
        Added comprehensive checks to prevent real store POS data from being accidentally included in demo databases, closing a security gap where actual store pricing, costs, and sales history could have been shared with all demo users.
        #1532· Infrastructure & Internal
      • Demo database refresh: realistic pricing, single-store focus, and Do-It-Best date fix
        Overhauls the demo database generation to produce realistic single-store pricing scenarios with believable revenue figures, fixes a datetime2 conversion bug that was discarding all Do-It-Best last-price-change dates, and establishes a maintenance runbook for keeping demo data credible after vendor syncs.
        #1531· Infrastructure & InternalCloud Sync
      • Enable Save button after renaming pricing strategy steps
        Fixed an issue where the Save button remained disabled after renaming a step in the Manage Pricing Strategies (V2) dialog, preventing users from saving their changes.
        #1530· Strategy & Pricing
      • Custom group SKU import now supports Excel and CSV files
        The Custom Group SKU import feature now accepts Excel workbooks (*.xlsx, *.xls) and CSV files in addition to plain text files, eliminating the need to convert spreadsheets before importing SKU lists into pricing groups.
        #1529· Strategy & Pricing
      • Demo mode no longer shows stale point-of-sale data warnings
        Demo databases now suppress point-of-sale data aging indicators and warnings, since demo users cannot refresh POS data by running imports. Vendor catalog aging continues to function normally in demo mode, as users can still sync vendor data to see how freshness tracking works.
        #1528· User Interface
      • Prevent binary files from being imported as custom group SKUs
        The custom group SKU import now validates that selected files are text or spreadsheets and that each SKU contains only valid characters. This prevents binary files from being accidentally imported and creating unmatchable SKU entries.
        #1527· Strategy & Pricing
    • Saturday, September 19 3 changes · v2026.919.34497
      • Enhanced demo databases with second store and functional zone pricing
        Demo databases now include a second store location with realistic pricing variations, and Ace Hardware demos are assigned to zone 6003 which covers 11% of the product assortment (versus the previous zone which covered only 0.2%). This makes zone pricing features visible and demonstrable during training and product demos.
        #1525· Infrastructure & Internal
      • Add thumb-drive transfer system for demo databases with provenance verification
        Adds PowerShell scripts to safely transfer demo databases between machines using removable drives. Each database is verified as synthetic both before export and after import to prevent accidental transfer of real customer data.
        #1520· Infrastructure & Internal
      • Fix Enter Demo Mode from startup Use Demo Database window
        Corrected a bug that prevented the Enter Demo Mode button from working when accessed through the startup "Use Demo Database" window. The feature now properly installs the selected demo database and launches the application.
        #1519· Infrastructure & Internal
    • Thursday, September 17 4 changes · v2026.917.35782
      • Fix startup identity check when Beck Hardware stamp was in database instead of settings
        Corrects a critical startup bug where 24 stamped installations (including Josephs' Hardware - Do it Best 4657) were incorrectly prompted to confirm their identity as "Beck Hardware - Ace 33859" after upgrading to the 9/14 build, with no option to proceed. The fix detects and repairs the stamp when found in the database's About table and prevents future occurrences by ensuring both identity fields are written together.
        #1518· Infrastructure & Internal
      • SQL Server Tools consolidated into single window with page navigation
        The SQL Server Tools window now shows all database management tasks as pages within one window instead of stacking multiple separate windows on top of each other. Users navigate between tasks using a unified banner with a Back button, and the window retains focus throughout the workflow.
        #1517· User Interface
      • Automatic restart protection for background service
        The background service now automatically restarts if it ever stops unexpectedly, with Windows configured to retry after 1, 2, and 5 minutes. Additional safeguards prevent schedule migration failures from stopping the service entirely.
        #1516· Performance & Reliability
      • Fix modal dialogs hiding behind main window during database setup
        Fixed an issue where modal database setup dialogs (Create New, Restore, Demo) could hide behind the main window when other windows were activated, making the application appear frozen. These dialogs now properly own their parent windows to stay on top.
        #1515· Performance & Reliability
    • Wednesday, September 16 10 changes · v2026.916.33958
      • Fix Cost Break validation error reporting when loading pricing strategies
        Fixed how Margin Master reports missing Cost Break models when loading saved pricing strategies. Previously, a deleted Cost Break model was incorrectly reported as a "selection box" error with confusing warnings about WHERE clauses. The validation now provides clear, accurate error messages explaining that the model no longer exists and how to resolve it.
        #1512· Strategy & Pricing
      • Fix Excel map import error message to show why the import failed
        When an Excel import failed before any steps could run, the error dialog showed an empty message that users couldn't act on. The dialog now displays the actual exception message explaining why the import failed.
        #1511· Imports & POS
      • Database setup now names the stopped SQL Server service and fixes Start button
        When SQL Server is installed but not running, the Database Setup window now clearly identifies which service is stopped (e.g., "SQL Server (SQLEXPRESS)") and directs users to click the "Start SQL Server Service" button. Previously, users saw only a generic "network-related error" message. The Start button also now reliably enables after the initial scan completes.
        #1510· Infrastructure & Internal
      • Fixed SKU Detail margin preview not calculating for vendor store numbers
        Fixed a bug where typing a margin percentage into a SKU-level exception would not recalculate the retail price preview in real-time when store numbers differed between POS and vendor systems. The preview now correctly identifies matching stores and uses the same cost calculation as strategy runs.
        #1509· Strategy & Pricing
      • Propello integration simplified to file import and CSV export only
        The direct connection to Propello (Epicor Retail Cloud) has been removed at Epicor's request. Propello stores now use file-based workflows exclusively: import the inventory export .xlsx file from your import folder, and export price changes as a CSV file for the Price Change Import tool in Propello.
        #1504· Imports & POS
      • Purchase order readiness guidance in Import BisTrack Data window
        The Import BisTrack Data window now tells operators about waiting purchase orders when no new yard files are available, including whether each order is ready to apply or blocked because its yard has no data in Margin Master yet.
        #1503· Imports & POS
      • Chat with Support: Stop button fix and pre-filled contact information
        The "Chat with Support" feature now pre-fills your name and email from your store's primary contact when requesting human assistance, and the Stop button has been moved to prevent accidental double-clicks from interrupting responses.
        #1502· User Interface
      • Chat with Support: AI-first in-app support with hand-off to a person
        Adds a new in-app support chat accessible from Help menu and a header pill. The assistant answers questions using documentation and guided lessons, can draft support issues, and offers hand-off to a live person when needed. The conversation persists for the session and requires AI services to be enabled.
        #1501· User Interface
      • Mi9 store grouping moved to Store Manager; team rows now carry team name
        Mi9 team assignments (Core, NonCore) are now managed in the Store Manager window alongside all other stores, using the same Store Groups system that Epicor uses. Team table rows now carry the team name (e.g., "Core") in the Store Number column instead of the legacy "G" marker, making reports and exports clearer.
        #1499· Cloud Sync & Vendor Data
      • Strategy Execution Summary menu now explains when no run has been made
        The Strategy > Show Strategy Execution Summary menu item now stays enabled and displays an explanatory message when no strategy has been run yet, instead of being disabled. This resolves user confusion about why the menu item appeared unavailable.
        #1498· User Interface
    • Monday, September 14 7 changes · v2026.914.29604, v2026.914.13400
      • Fix Store Manager grid collision between blank store rows and numeric store IDs
        Fixed a rare bug where stores with blank POS store numbers could disappear from the Store Manager grid when their internal row ID matched an actual POS store number. The blank-row partition key is now prefixed to prevent collisions.
        #1497· Infrastructure & Internal
      • Publish digest lists every shipped PR from git; release body links open without GitHub
        The publish workflow now enumerates shipped pull requests once from git merge commits and feeds that single list to the release body, /whatsnew record, and publish digest. Release body links now open for anyone—phone, second browser, support analyst—without requiring GitHub sign-in, fixing the digest's previously empty "What Shipped" section.
        #1495· Infrastructure & Internal
      • Epicor FTP/INFILE Single Main Table Support (Per-Store Grain)
        The single main table option is now available for Epicor stores that import through the FTP/INFILE route. Like the MySQL/Compass route released earlier, this consolidates all store data into one table with one row per SKU per store, replacing the previous one-table-per-store approach.
        #1493· Imports & POSEpicorAce Hardware
      • RockSolid OLEDB driver check and installation from Options tab
        Added a new RockSolid tab in Options that displays the status of the Microsoft.ACE.OLEDB.12.0 driver required for RockSolid imports and provides a one-click Install/Verify button. The startup check now uses a centralized service that properly detects the driver for 64-bit Margin Master.
        #1491· Imports & POS
      • Fix crash when loading saved date selections without date range
        Fixed a crash that occurred when loading a saved selection containing a single-date filter (Equal, Greater Than, or Less Than). The application was incorrectly expecting a date range for all date filters, causing the strategy step to fail for Berthoud Ace Hardware.
        #1490· Strategy & Pricing
      • Margin Master Update — September 14, 2026
        Summary being prepared.
        #1489· Imports & POSEpicorAce Hardware
      • Single Main Table Framework with Mi9 Support (Phase 1-2)
        Introduced a new single-table architecture option for Mi9 stores, consolidating all store data into one Mi9_mainTable instead of separate per-store or per-team tables. This reduces database complexity, improves query performance through better indexing, and simplifies multi-store operations while maintaining full backward compatibility with existing multi-table configurations.
        #1488· Infrastructure & Internal
    • Friday, September 11 9 changes · v2026.911.40037
      • Fixed broken installs being unable to report themselves
        Resolved three critical gaps that prevented a store with an uninstalled or broken SQL Server from submitting a support issue: the Submit Issue wizard now prompts for store identity when no database is available, uninstall warnings now properly alert users to restart before reinstalling, and Support Scripts has been restored to the main menu.
        #1487· Infrastructure & Internal
      • Fix purchase order import and prevent accidental store deletion
        Fixed several critical issues with BisTrack purchase order processing that prevented PO files from being discovered and tagged, and removed a dangerous prompt that could delete entire store datasets during routine imports. Purchase order files in subfolders are now found automatically, and stores not included in a single import are preserved rather than offered for deletion.
        #1486· Imports & POS
      • Lesson narration pronunciations for technical terms
        Added a pronunciation list that controls how the lesson narrator says specific technical terms (e.g., "SKU" as "skyoo", "SQL" spelled out). This ensures consistent, correct pronunciation across all lesson audio without changing the on-screen text.
        #1485· Infrastructure & Internal
      • Check Connection Settings: share SQL Server access with a second computer
        Added a new tool in SQL Server Tools to help retail stores connect a second computer to the host's Margin Master database. The host creates a secure connection block that can be copy-pasted to configure workstations automatically, replacing manual SQL Server setup.
        #1484· Infrastructure & Internal
      • Show live script feedback in SQL Server Tools instead of a bare progress bar
        SQL Server Tools and the script progress window now display the installer's latest output lines under the progress bar in real-time, along with explicit status messages for waiting on UAC prompts and when scripts go silent. Previously, users saw only a progress bar with no indication whether the installer was actually working.
        #1482· User Interface
      • SQL Express setup scripts now detect pending restarts and explain setup failures
        The SQL Express install and upgrade PowerShell scripts now check for pending Windows restarts before running setup, automatically stopping if one is required, and decode setup error codes to explain why setup failed—addressing a store's SQL Server 2025 upgrade that failed seven minutes in with error 1722 after a Visual C++ update that needed a restart.
        #1481· Infrastructure & Internal
      • Install SQL Express in Mixed Mode authentication by default
        The SQL Express installer now enables Mixed Mode authentication (Windows + SQL logins) automatically, allowing the MarginMaster SQL login to work immediately without additional configuration. The `sa` account remains disabled for security unless explicitly enabled with a password parameter.
        #1480· Infrastructure & Internal
      • Published SQL Server shared login credentials in public documentation
        The shared MarginMaster SQL Server login password is now published directly in customer-facing documentation instead of requiring stores to contact support to obtain it. This streamlines multi-PC setup while maintaining network-based security through firewall scoping.
        #1479· Infrastructure & Internal
      • Add step-by-step runbook for connecting a second computer to shared database
        Added comprehensive documentation to guide support analysts through the process of connecting a second workstation to an existing Margin Master database over a local network. The new runbook provides click-by-click instructions for configuring SQL Server remote access, testing connections, and troubleshooting common issues.
        #1477· Infrastructure & Internal
    • Thursday, September 10 6 changes · v2026.910.33745
      • Fix database restore failures being hidden and targeting wrong files
        Fixed two critical bugs in the database restore feature that caused restore operations to appear successful when they actually failed, and could target files still in use by the live database. The restore dialog now correctly reports SQL Server errors immediately and always names restored files after the new database name.
        #1474· Infrastructure & Internal
      • Fix Westlake Excel export hanging with large datasets
        Fixed an issue where the Westlake Excel export would silently fail when attempting to export more than 50,000 records. The confirmation prompt for large exports was being displayed incorrectly, causing the export to never complete.
        #1473· Reporting & Exports
      • Fix crash when checking automatic strategy backup setting during startup
        Fixed an issue where the automatic strategy backup service could crash during startup or after saving a strategy if the settings database was temporarily unavailable. The service now logs a warning and continues gracefully instead of throwing an error.
        #1472· Performance & Reliability
      • Fix store identity validation to prevent configuration mix-ups between stores
        Added startup detection and automatic repair when a store's configured identity contradicts the database's own record, preventing data from one store being synced or backed up under another store's name. This addresses cases where license fallback had incorrectly stamped unrelated stores with a different company's store number.
        #1471· Infrastructure & Internal
      • Add provenance guard to prevent publishing real customer data as demo database
        Implements comprehensive safety checks to prevent accidentally publishing real customer databases as demo databases. After an incident where two demo databases were discovered to contain actual customer data with credentials, the system now requires proof that a database contains only synthetic data before it can be uploaded, recorded, or screenshotted.
        #1470· Infrastructure & Internal
      • Fix menu fly-out navigation in training tours for nested menu items
        Fixed an issue where training tours could not open menu fly-outs that are nested inside other menus (such as "Data > Remove Price Decreases"). The screenshot and tour system now correctly locates and opens these inline menu items, and a new test ensures all lesson tours target reachable menu paths.
        #1469· User Interface
    • Wednesday, September 9 9 changes · v2026.909.40658, v2026.909.20833
      • Detect and migrate installations configured for closed store numbers
        The application now detects when it's configured for a store number that has been retired in RetailerSoft and offers guided migration to the correct live store number. This addresses a silent issue where stores could run indefinitely with pricing data for closed stores—one installation ran 680 times against a retired store number without any indication something was wrong.
        #1467· Infrastructure & Internal
      • Rename Database now works on any database and moves to SQL Server Tools
        The Rename Database tool has been completely rebuilt to work on any Margin Master database—not just "MarginMaster3"—and now lives in the SQL Server Tools window alongside Migrate and Delete Database. The database housekeeping tools (Optimize/Shrink, Reset Database, Run Maintenance Scripts) have also moved into SQL Server Tools under its Tools menu, consolidating all database utilities in one place.
        #1466· Infrastructure & Internal
      • "Show Skus NOT included in Strategy" is now a filter you can narrow down
        The "Show Skus NOT included in Strategy" feature is now an active filter that persists and composes with other selections, rather than a one-time query that discarded your selection boxes. When you have a PS Rule or PS Rule History selection box, the filter appears as a ticked BLANK entry; otherwise, a "No Pricing Rule" pill shows beside the selection tabs.
        #1465· Strategy & Pricing
      • Add menu command to reopen strategy execution summary
        A new menu item under Strategy > Show Strategy Execution Summary allows users to reopen the summary screen from their most recent strategy run without having to execute the strategy again. This makes it easy to review run statistics, step details, and drill into changes after the summary has been closed.
        #1463· Strategy & Pricing
      • Fix Strategy Execution Summary dialog layout to prevent button clipping
        The Strategy Execution Summary dialog has been widened to ensure all action buttons fit on a single line without wrapping or clipping. The dialog now opens at 1300 pixels wide instead of 1100, preventing the "Close" button from wrapping to a second line and other buttons from being clipped off the left edge.
        #1461· User Interface
      • Fix Strategy Execution Summary dialog button clipping and drill-in result persistence
        Fixed two issues in the Strategy Execution Summary dialog: buttons were being clipped off the left edge when the dialog was too narrow, and drill-in results (Show Skus Not In Strategy, Show Affected Items) were being replaced by the default post-run view immediately after loading.
        #1460· User Interface
      • Fix frozen progress display during multi-minute POS data merge on Compass imports
        Resolved an issue where long-running Compass/MySQL POS data merge operations appeared frozen with no progress updates, causing imports to be incorrectly flagged as stalled and potentially force-quit by watchdog timers.
        #1459· Imports & POS
      • Add timeout protection for startup update check and download
        The startup update check and download now have timeout protection to prevent Margin Master from hanging on the splash screen when an update server or endpoint security software becomes unresponsive. A new support document provides antivirus exclusion guidance for IT staff.
        #1458· Performance & Reliability
      • Show update download progress in title bar while installation runs in background
        A new blue "Installing update…" badge now appears in the title bar while Margin Master downloads an update in the background, showing the download percentage so you know the app is actively fetching a new version rather than just being slow. This is especially helpful when catching up across multiple releases, which can take several minutes.
        #1457· User Interface
    • Tuesday, September 8 4 changes · v2026.908.35163
      • Show helpful message when POS system has no import layout
        The Import Manager now displays a clear message when the selected POS system has no import layout available, instead of showing an empty list with no explanation. This also eliminates redundant error logging that occurred when repeatedly checking for unavailable import layouts.
        #1454· Imports & POS
      • Fixed MySQL Compass inventory import timeout and retry loop issues
        Resolved a critical issue where MySQL Compass inventory imports could hang indefinitely when encountering database timeouts, and optimized the import process to reduce contention on busy servers.
        #1453· Imports & POS
      • Show and export items not priced by strategy, with accurate counts and reasons
        The Strategy Execution Summary now explains "Items not priced" in plain language and offers buttons to view or export those items. The "Show Skus NOT included in Strategy" menu item now counts correctly (using PSRuleHistory instead of PSRule) and is only available after a strategy has run. A new export writes every not-priced item to Excel with a Reason column explaining why each was left alone.
        #1452· Strategy & Pricing
      • Fix zone override validation to prevent invalid pricing zones
        Zone overrides in the Store Manager now validate that the entered zone number exists and has pricing data before saving. This prevents stores from being priced against invalid zones that would silently skip all zone pricing.
        #1450· Strategy & Pricing
    • Monday, September 7 1 change · v2026.907.33451
      • Fix periodic update check not running after normal application launch
        Corrected a bug where the automatic update checker would fail to start when the application was launched normally, causing installations to miss available updates until the next restart. The checker now properly activates on every launch and logs its status for diagnostics.
        #1449· Infrastructure & Internal
    • Friday, September 4 7 changes · v2026.904.35423, v2026.904.23918
      • Data Aging: fix date divergence and clarify sync outcome messages
        Fixed two issues where the "Last Synced" date on the Data Aging window could advance without actually updating catalog data, and revised warning messages to report what is provable rather than accusing the sync of failing when data may be current.
        #1445· Cloud Sync & Vendor DataCloud Sync
      • Settings folder repair dialog with automatic permission fix
        When Windows blocks Margin Master from saving settings files, the app now shows what's blocked, explains the impact, and provides a "Fix This Now" button that grants the needed permission automatically. A title-bar indicator stays visible until the folder is repaired, and only files the app actually writes trigger the alert.
        #1443· Infrastructure & Internal
      • Cost Break view: fix nine dead bindings and wire up the Rebuild button
        Fixed nine broken data bindings in the Cost Break view that were causing errors on every load, and connected the Rebuild button so it now properly recalculates cost break levels when clicked.
        #1442· User Interface
      • Fix memory leak in Future Price panel timer mechanism
        Resolved a memory leak in the Future Price panel where abandoned timers continued running indefinitely. The reset mechanism now uses a deferred dispatcher call instead of creating new timer instances.
        #1441· Performance & Reliability
      • Fix Cost Break timer crashes and memory leaks
        Resolved multiple threading issues in the Cost Break dialog that caused crashes when editing pricing levels and left timers running after closing the window. Fixed boundary drift when updating pricing levels and ensured proper cleanup when the dialog is closed.
        #1440· Performance & Reliability
      • Fix settings corruption during rapid database reconnection events
        Fixed a critical issue where rapid database connection changes (such as during a database restore) could cause settings to be cleared and customer configurations to be lost. The system now properly handles multiple simultaneous reconnection requests.
        #1438· Performance & Reliability
      • Fixed duplicate rounding scheme headers causing regeneration failures
        Resolved an issue where duplicate RoundingScheme header rows with identical names (differing only by trailing spaces or case) caused freshly regenerated pricing bands to be incorrectly deleted, leaving schemes empty. The system now consolidates duplicate headers before validation and regeneration.
        #1437· Strategy & Pricing
    • Thursday, September 3 3 changes · v2026.903.29159
    • Wednesday, September 2 12 changes · v2026.902.30550, v2026.902.22878
    • Tuesday, September 1 9 changes · v2026.901.31604, v2026.901.28986
      • Fix rounding scheme edits appearing unsaved until app restart
        Fixed a caching issue where edits made to rounding schemes appeared to revert when reopening the rounding editor, even though they were correctly saved to the database. Changes now display immediately without requiring an application restart.
        #1417· User Interface
      • Alert users when settings folder lacks write permissions
        Added a startup check that detects when Windows permissions prevent Margin Master from saving settings files (like DatabaseConnections.json) in its ProgramData folder. Previously, this surfaced as "User cancelled" errors and caused the database setup to loop on every launch; now the app shows a clear error message explaining the permission problem and how to fix it.
        #1415· Performance & Reliability
      • Guided Lessons: in-app editor and main window overview series
        Adds an in-app lesson editor for developers to revise step wording with live text-to-speech preview, publishes a six-part main window overview series covering menus, selection boxes, buttons, grid, summary and pricing panel, and introduces guided training for database creation and POS data import.
        #1411· User Interface
      • Fix export path resolution to prevent "Access denied" errors on C:\ drive
        Fixed a critical bug where export operations could fail with "Access denied" when the default export path setting was missing or blank. All import and export operations now consistently resolve to C:\MarginMaster (or the configured path) instead of sometimes defaulting to the C:\ drive root, which standard users cannot write to.
        #1410· Infrastructure & Internal
      • Fix rounding scheme generator stalling on round-down pricing rules
        Resolved a critical bug where certain rounding schemes would stop generating price bands partway through, leaving prices above the stall point unrounded. The issue occurred when a price rounded below itself to a value the previous band didn't cover, causing the generator to repeat the same bands until hitting the row limit.
        #1409· Strategy & Pricing
      • Guided Lessons: Distinguish lessons from guides, improve bubble placement, first guide added
        The training system now separates interactive "guides" (user performs each step) from educational "lessons" (app demonstrates). The training bubble intelligently avoids open menus and dialogs, and a new "Creating a new database" guide walks users through the database creation process.
        #1408· User Interface
      • Guided Lessons: lesson library with tree navigation and speech-bubble callout
        The training window now has two modes: a large library view with a searchable tree of lessons and detailed descriptions, and a compact speech-bubble callout that follows the highlighted controls during lessons. The library replaces the previous collapsible list with a richer browsing experience showing lesson steps, progress, and navigation between series parts.
        #1407· User Interface
      • Unified training window with side-by-side lesson browser and player
        The training window now shows the lesson browser and player side by side in a single card, starts centred on the current monitor, remembers its position and browse state, and automatically moves aside when a dialog would cover it on narrow screens.
        #1405· User Interface
      • Guided Lessons: topic-organized catalog, number blocks, multi-part series
        The lesson catalog now organizes lessons by topic (matching the documentation structure), supports multi-part lesson series with navigation between parts, and uses a numbering convention where the thousands digit indicates the topic area (1xxx = Getting Started, 2xxx = Pricing & Analysis, etc.).
        #1404· User Interface
Loading...

Reconnecting to the server...

This usually takes a few seconds.