Demand planning forecast import from Excel fails due to date format mismatch and causes missing records in planning worksheet

We’re migrating demand planning forecasts from Excel files into D365 10.0.41 using the Data Management Framework. The Excel files contain forecast data with US date format (MM/DD/YYYY), but after import, we’re seeing that approximately 40% of forecast lines are missing from the planning worksheet.

The import job shows success with no error logs, but when we check the planning worksheet, many forecast entries are simply not there. We noticed the rows being skipped all have dates in the first half of months (01-12 day values). Our D365 instance is configured with European locale settings.

Has anyone dealt with Excel import skipping rows based on date format interpretation? The planning worksheet is incomplete after migration, and we suspect there’s a locale mismatch between our Excel source files and the D365 environment. We need these forecasts loaded correctly before go-live next month.

You have two approaches here. First option: transform your Excel files before import - use Power Query or a simple PowerShell script to convert dates to ISO format (YYYY-MM-DD) which is unambiguous. Second option: modify the DMF entity’s source data format settings to explicitly specify US date format for the import process.

I prefer the ISO format approach because it eliminates all ambiguity. Create a template Excel file with proper formatting and have users populate that instead of free-form date entry.

Had this exact scenario last year. The root cause is that Data Management Framework inherits regional settings from the user context executing the import, not from the entity configuration. If your import user has European locale, DMF interprets all dates as DD/MM/YYYY regardless of what’s actually in the Excel.

The solution involves setting the import user’s language and locale preferences to match the source data format. But this creates problems if you have multiple data sources with different formats.

Classic date format ambiguity issue. When Excel contains MM/DD/YYYY but D365 expects DD/MM/YYYY, any date like 03/05/2025 gets interpreted as May 3rd instead of March 5th. The rows you’re losing (days 01-12) are actually being parsed as month values, which then fail validation silently because month 13+ doesn’t exist.

Check your Data Management Framework entity settings. The date format should match your source, not your D365 locale. Also verify the import staging table - the failed rows might be there with NULL dates.

Let me provide a comprehensive solution addressing all three aspects of your issue:

1. Excel Import Row Skipping (US Date Format)

The rows are being skipped because DMF interprets dates based on the import execution context’s regional settings. When your Excel has 03/05/2025 (March 5th in US format), but DMF expects DD/MM/YYYY, it tries to parse this as May 3rd. For dates where the day portion is 01-12, it succeeds but with wrong values. For days 13-31, parsing fails and the row is rejected silently.

Solution: Standardize to ISO 8601 format (YYYY-MM-DD) in your Excel files before import. Create a Power Query transformation:


= Table.TransformColumns(Source,
  {{"ForecastDate", each Date.ToText(_, "yyyy-MM-dd"), type text}})

This eliminates all ambiguity regardless of locale settings.

2. Planning Worksheet Incomplete After Migration

Beyond the date format issue, incomplete planning worksheets often result from missing dimensional data. Your forecast import needs valid combinations of:

  • Item coverage groups
  • Site/warehouse dimensions
  • Forecast model references
  • Time fence parameters

Validate your master data setup:

  • Verify all items in the forecast exist in the Item master with proper coverage settings
  • Confirm forecast models are configured and active
  • Check that site/warehouse combinations in Excel match D365 master data exactly
  • Ensure the forecast plan is set up to consume the imported forecast type

Run this SQL query against staging to identify orphaned records:

SELECT ItemId, COUNT(*)
FROM ForecastSalesStaging
WHERE NOT EXISTS (SELECT 1 FROM InventTable WHERE ItemId = ForecastSalesStaging.ItemId)
GROUP BY ItemId

3. Locale Mismatch Between Excel and D365

The fundamental issue is that your D365 environment uses European locale (DD/MM/YYYY) but your source data uses US format (MM/DD/YYYY). Rather than changing system locale (which affects all users), implement these controls:

  • User Profile Settings: Set the import service account’s language and locale to en-US. This makes DMF parse dates as MM/DD/YYYY during import execution.

  • Entity Configuration: In the Data Management workspace, edit your forecast entity’s source data format. Under the “Date format” field, explicitly specify “MM/dd/yyyy”.

  • Validation Layer: Add a custom validation in the staging table’s transformation logic. Create a temporary column that parses the date string explicitly:


DateTime forecastDate = DateTimeUtil.parse(dateString, "MM/dd/yyyy");

This forces the interpretation regardless of context locale.

Best Practice Going Forward

Implement a standardized data preparation process:

  1. Provide users with an Excel template that uses Data Validation to enforce ISO date format entry
  2. Create a Power Automate flow that validates the Excel file before it reaches DMF
  3. Configure DMF recurring import jobs to run under a dedicated service account with fixed en-US locale
  4. Add post-import validation reports that compare record counts between source Excel and imported planning worksheet entries

This approach resolved our client’s forecast migration where they were losing 35-40% of records. After implementing ISO format standardization and master data validation, import success rate reached 99.8% with clear error reporting for the remaining 0.2%.

Checked the staging table and you’re right - the missing rows show NULL in the date columns. The DMF entity is using the system locale (DD/MM/YYYY) but our Excel source has MM/DD/YYYY. How do we override the date format for the import entity specifically?