June 12, 2026
Sona Voskanyan

NetSuite Mid-Life Asset and Alternate Depreciation Migration

This guide provides step-by-step instructions on using CSV imports to upload mid-life fixed assets, configure their depreciation schedules, and attach alternate depreciation.

Importing Mid-Life Assets and Alternate Depreciation Using CSV Imports - A Step-by-Step Guide

Scenario

Fixed asset imports fall into two distinct workflows—one for new assets and one for mid-life assets—and this guide covers the mid-life track. Mid-life assets are those that are already partially or fully depreciated at the time of import and must therefore carry prior depreciation history. This guide provides step-by-step instructions on using CSV imports to upload mid-life fixed assets, configure their depreciation schedules, and attach alternate depreciation.

Solution

Pre-Import System Configuration:

Before uploading mid-life fixed assets, you must update two specific settings in NetSuite to facilitate the CSV import.

  • Navigation Path: Go to Fixed Assets > Setup > System Setup.
  • Required Action: Under the Asset Setup section, uncheck the following two boxes:
    • “Run Server Scripts on CSV Import”
    • “Allow Asset Value Editing”

💡Note: This setting resets Asset Values and should also be used when creating new Fixed Assets.

💡Note: If these checkboxes remain selected, the system will prevent the mid-life fixed asset upload from processing successfully.

Phase 1: Uploading Mid-life Fixed Assets

1. CSV Import File Fields:

Open a new Excel spreadsheet to build your CSV import template. You can include optional NetSuite fields alongside the fixed asset columns listed below. While you are free to customize the file, it must contain all mandatory fields from the NetSuite "Fixed Asset" form (for example, add "Location" if it is mandatory on your "Fixed Asset" form):

Column Header Description & Requirements
Name The descriptive name of the asset.
Asset Description A summary identifying the asset.
Asset Type The category used to group assets for reporting and processing. It can be created beforehand from Fixed Assets > Setup > Asset Types.
Asset Status The asset's lifecycle state (Depreciating, Fully Depreciated, or Disposed).
Subsidiary The Subsidiary for this asset.
Depreciation Method The specific depreciation method chosen for general ledger calculations. It can be created in advance under Fixed Assets > Setup > Depreciation Methods.
Depreciation Active A flag indicating if the asset is actively depreciating. (Can be configured to activate automatically once a related job/project is marked complete.)
Purchase Date The exact date the asset was originally acquired.
Depreciation Start Date The date on which depreciation calculations commence.
Depreciation End Date The date depreciation of the asset is expected to finish. This defaults to the asset's depreciation start date plus the useful lifetime.
Asset Lifetime The expected total useful lifespan of the asset, in months.
Department (optional) The Department for this asset.
Last Depreciation Period The specific period number (relative to the asset's total lifespan) when it was last depreciated.
Note
This field represents the total number of completed depreciation periods, not a calendar month.

For instance, entering a value of "1" does not mean January; it means the asset has been depreciated for exactly one period (e.g., if December is the only historical period imported, the value is 1).

NetSuite will automatically advance this to period 2, then 3, in future runs. Set this value to the exact number of periods already depreciated as of your cut-off date.
Last Depreciation Date The date of the asset's most recent depreciation run.
Last Depreciation Amount The monetary value of the most recent depreciation entry.
Asset Original Cost The initial purchase price of the asset.
Asset Current Cost The asset's value after accounting for any historical write-downs.
Current Net Book Value The asset's current financial value on the books (Original Cost minus Cumulative Depreciation).
Residual Value / Percentage The asset's estimated salvage value (or percentage of original cost) at the end of its useful life.
Depreciation Rules Controls how partial initial/final months are handled:
  • Acquisition: Depreciates in the first month of service.
  • Disposal: Shifts depreciation to the final month.
  • Pro-rata: Calculates a proportional amount based on a standard 30-day month.
Note
If your assets require a specific depreciation rule, you must include it in your upload file. Leaving this field blank will cause the system to automatically and permanently apply the "Acquisition" default, which cannot be modified after the upload is complete.

Those are the same fields that you will see when you try to create a fixed asset using the UI page.

Important: Before importing, please verify that your asset financials reconcile perfectly as of the cut-off date (Original Cost minus Cumulative Depreciation must equal Net Book Value). If there are any mathematical imbalances or inconsistent dates, the import will be inaccurate. Because these fields cannot be edited post-upload, you will be forced to delete the asset entirely and re-import it.
  1. Save your completed Excel spreadsheet as a CSV (Comma delimited) (*.csv) file.
  2. CSV Import
    Navigation Path: Go to Setup > Import/Export > Import CSV Records.

Set Scan & Select Options: In the Import Assistant, select the following classifications:

  • Import Type: Custom Records
  • Record Type: FAM Asset
  • File Selection: Choose the CSV file you just saved, then click Next.

Choose Data Handling: Select Add as your data handling option.

Configure Advanced Options (Critical Step)

Click to expand the Advanced Options menu.

Check the box for “Run Server SuiteScript and Trigger Workflows”.

Important: Checking this box allows NetSuite's background server scripts to automatically populate key asset fields that are normally grayed out and cannot be mapped manually or directly through a CSV file.

Click Next.

Map the Fields

The Layout: Your CSV headers will appear on the left, NetSuite destination fields on the right, and the current mappings in the middle.

Action: Review the auto-generated mappings. Any required or missed fields will be highlighted in red; manually drag and drop your CSV columns to map them to the correct NetSuite fields.

Click Next once all required fields are mapped.

Name and Save the Import:

Provide a descriptive name for this import map (e.g., FAM Asset Upload).

Saving this map allows you to bypass the mapping process and reuse it for all future fixed asset uploads.

Click Save & Run.

Phase 2: Uploading Depreciation History

Once your fixed assets are successfully uploaded and visible in the Asset list, you must upload their historical depreciation data. This ensures your mid-life assets carry their cumulative historical value without triggering past general ledger (GL) postings during the next Depreciation Run.

  1. CSV Import File Fields

Open a new Excel spreadsheet and create a template using the following specific columns:

Column Header Description & Requirements
Asset Internal ID The unique internal ID generated by NetSuite during your initial asset upload. Note Ensure the internal ID matches the related Fixed Asset (e.g., created previously via CSV Imports). Because it serves as the primary unique identifier, an incorrect internal ID will link the depreciation history to the wrong asset—even if the asset name and general asset ID are perfectly accurate.
DHR Name The unique identifier or reference number for this Depreciation History Record (DHR). This name can be shared across multiple rows, regardless of whether they belong to the same or different assets. Note During CSV imports, NetSuite automatically applies the standard "dhr-default-name" to all imported records.
Transaction Type Should be populated as "Depreciation" for every row.
Net Book Value The asset's current book value at the cut-off date (Original Cost minus Cumulative Depreciation).
Transaction Amount The cumulative depreciation total is calculated up to your chosen cut-off date.
Transaction Date The official cut-off date for your historical data migration.


  1. Once completed, save the Excel file as a CSV (Comma-delimited) (*.csv).
  2. CSV Import

Navigation Path: Go to Setup > Import/Export > Import CSV Records.

Set Scan & Select Options: In the Import Assistant, select the following classifications:

  • Import Type: Custom Records
  • Record Type: FAM Depreciation History
  • File Selection: Choose the CSV file you just saved, then click Next.

Choose Data Handling: Select Add or Update as your data handling option.

Configure Advanced Options (Critical Step)

Click to expand the Advanced Options menu.

Check the box for “Run Server SuiteScript and Trigger Workflows”.

Click Next.

Map the Fields

The Layout: Your CSV headers will appear on the left, NetSuite destination fields on the right, and the current mappings in the middle.

Action: Review the auto-generated mappings. Any required or missed fields will be highlighted in red; manually drag and drop your CSV columns to map them to the correct NetSuite fields.

Note: You can include the asset name in your upload file to make it easier to read, but it will not be mapped into the system and will be left unmapped (marked in red). Don't worry, the Asset Internal ID is the primary identifier the system uses to match and differentiate the records.

Click Next once all required fields are mapped.

Name and Save the Import

Provide a descriptive name for this import map (e.g., FAM Depreciation History Upload).

Saving this map allows you to bypass the mapping process and reuse it for all future fixed asset uploads.

Click Save & Run.

  1. Verifying the Import

After the import completes successfully, you should verify that the records were updated correctly:

  • Navigate to the specific asset's record page.
  • Click on the Depreciation History tab.
  • Open the newly added history record to confirm that the cumulative depreciation has been recorded as the initial depreciation transaction.

Important: Ensure that this entry acts strictly as a historical record baseline and has not generated an actual, duplicate posting to your General Ledger.

Phase 3: Uploading Alternate Depreciation

Beyond primary book depreciation, assets often require independent alternate schedules for tax or statutory reporting (such as Federal or State tax). These schedules do not post to your General Ledger, allowing a single asset to track multiple tax jurisdictions simultaneously. This phase covers how to upload these alternate depreciation baselines for the mid-life assets created in Phase 1.

  1. CSV Import File Fields

Open a new Excel spreadsheet and create a template using the following columns. Each row represents one alternate depreciation schedule for one asset, so an asset that is reported under two methods will have two rows (sharing the same Asset Internal ID and ID but differing in the Alternate Method):

Column Header Description & Requirements
Asset Internal ID The unique internal ID generated by NetSuite during your initial asset upload. Note Ensure the internal ID matches the one created in step one. Because it serves as the primary unique identifier, an incorrect internal ID will link the depreciation history to the wrong asset—even if the asset name and general asset ID are perfectly accurate.
ID The asset's serial number or identifier in NetSuite.
Asset Name The descriptive name of the asset.
Alternate Method The alternate depreciation method being recorded, including its useful life (for example, Federal Tax Basis (5Y / 60M) or PA Tax Basis (5Y / 60M)). The method must already exist under Fixed Assets > Setup > Depreciation Methods. To attach more than one alternate schedule to the same asset, add a row that repeats the Asset Internal ID and ID but uses a different Alternate Method.
Original Cost The asset's original cost basis used for this alternate method. It may differ from the book Original Cost if the tax or statutory basis is calculated differently.
Current Cost The asset's current cost under this alternate method after any historical write-downs.
Net Book Value The remaining book value under this alternate method as of the cut-off date (Current Cost minus the cumulative alternate depreciation recorded so far).
Residual Value The asset's estimated salvage value at the end of its useful life under this alternate method. Enter 0 when the method depreciates the asset to zero.


  1. Once completed, save the Excel file as a CSV (Comma delimited) (*.csv).
  2. CSV Import

Navigation Path: Go to Setup > Import/Export > Import CSV Records.

Set Scan & Select Options: In the Import Assistant, select the following classifications:

  • Import Type: Custom Records
  • Record Type: FAM Alternate Depreciation
  • File Selection: Choose the CSV file you just saved, then click Next.

Choose Data Handling: Select Add or Update as your data handling option.

Configure Advanced Options (Critical Step)

Click to expand the Advanced Options menu.

Check the box for “Run Server SuiteScript and Trigger Workflows”.

Click Next.

Map the Fields

The Layout: Your CSV headers will appear on the left, NetSuite destination fields on the right, and the current mappings in the middle.

Action: Review the auto-generated mappings, paying particular attention to the Asset Internal ID and Alternate Method fields. Any required or missed fields will be highlighted in red; manually drag and drop your CSV columns to map them to the correct NetSuite fields.

Note: You can include the asset name in your upload file to make it easier to read, but it will not be mapped into the system and will be left unmapped (marked in red). Don't worry, the Asset Internal ID is the primary identifier the system uses to match and differentiate the records.

Click Next once all required fields are mapped.

Name and Save the Import

Provide a descriptive name for this import map (e.g., FAM Alternate Depreciation Upload).

Saving this map allows you to bypass the mapping process and reuse it for all future alternate depreciation uploads.

Click Save & Run.

Important: If you are reusing a saved CSV file from a previous environment or a prior asset batch, update the internal IDs (and any file/record IDs) in the file before importing. Leaving the old IDs in place can cause the import to fail or attach the alternate depreciation to assets that already exist, producing errors that are difficult to unwind.

  1. Verifying the Import

After the import completes successfully, confirm that the alternate schedules are attached to the correct assets:

  • Navigate to the specific asset's record page.
  • Open the Alternate Depreciation (or Alternate Methods) tab.
  • Confirm that each alternate method you uploaded appears as its own entry, with the correct cost, net book value, and residual value.

Phase 4: Running Depreciations

Now that your asset records, historical depreciation, and alternate schedules are successfully uploaded, you are ready to begin the live depreciation process. This step calculates the next scheduled depreciation expense and generates the corresponding journal entries in your General Ledger (GL). Note that this applies to book/accounting depreciation only; alternate schedules continue to serve strictly as non-posting baselines for tax and statutory reporting.

Navigation Path: Go to Fixed Assets > Transactions > Asset Depreciation.

Required Parameters: Before executing the run, select the appropriate filters on the screen:

  • Asset Group: Select the specific category or group of assets you want to depreciate.
  • Subsidiary: Choose the target subsidiary associated with these assets.
  • Period End Date: Set the effective date as of which the current depreciation should be calculated and posted.

Post-Execution Verification

Once the processing status completes, you can verify that NetSuite has seamlessly picked up where your mid-life historical upload left off:

  • Navigate back to a processed asset's record page.
  • Select the Depreciation History tab.
  • Review the line items—you will now see the Journal Entries generated by the system, confirming that automated monthly GL postings have officially commenced.
  • Select the Alternate Depreciation history tabs.
  • Verify that the system calculates the depreciation amount without generating or posting any General Ledger journal entries.

Share this post