Skip to main content

Migrate Mid-Life Contracts

When you move to DualEntry in the middle of existing contract terms, you need the contract record to reflect the full original value while generating entries only from the point DualEntry takes over. Two fields make this possible: Cutover Date and Accumulated Revenue.

The problem migration solves

Without migration support, customers switching to DualEntry mid-contract face two bad choices:
  • Enter the contract with an artificially reduced TCV that excludes prior history, which breaks waterfall and rollforward reporting.
  • Enter the full TCV and let DualEntry generate entries for periods already recognized elsewhere, creating duplicates.
The cutover date and accumulated revenue fields eliminate both problems. DualEntry shows the full contract value on the record and in reports, but generates invoices and recognition entries only from the cutover date forward.

Cutover date

The cutover date tells DualEntry where to start generating records. All invoices and recognition entries are created from this date forward. Nothing is created for periods before it.
AttributeDetail
Field namecutover_date
RequiredYes, when accumulated revenue is greater than $0. Defaults to contract start date otherwise.
ConstraintMust be the first of a month
ValidationMust be on or after contract_start_date and on or before contract_end_date
When the cutover date equals the contract start date, DualEntry treats the contract as new and the migration path does not activate. When the cutover date is after the contract start date, the migration path activates.

What the cutover date drives

  • Billing start date is set to the cutover date.
  • Recognition start date is set to the cutover date.
  • Recognition schedule covers only the remaining amount (TCV minus accumulated revenue) from the cutover date through the contract end date.

Relationship to other date fields

FieldMeaning
Contract start dateOriginal start of the obligation, which may predate DualEntry
Cutover dateWhere DualEntry begins generating entries
Contract end dateFull original end date, unchanged

Accumulated revenue

Accumulated revenue represents the total revenue already recognized in your prior system up to, but not including, the cutover date.
AttributeDetail
Field nameprior_recognized_amount
RequiredNo, defaults to $0
ValidationMust be at least $0 and cannot exceed TCV

How accumulated revenue works

  • TCV is always the full original contract value. Accumulated revenue does not reduce TCV. It reflects what portion of TCV was earned before DualEntry.
  • No entries are created for this amount. DualEntry treats it as informational. It does not post journal entries, generate invoices, or create revenue recognition records for prior periods.
  • Recognition schedule starts at cutover date. Only the remaining unrecognized revenue (TCV minus accumulated revenue) is scheduled from the cutover date forward.
  • Invoices start at cutover date. Pre-cutover billing is not replicated. The billing schedule generates from the cutover date for remaining periods only.

Set up a migrated contract

  1. Navigate to Contracts and select New Contract.
  2. Enter the original contract start date, end date, customer, and currency. Use the original start date, not the cutover date.
  3. Add performance obligations with their full original terms (item, quantity, unit rate, recognition strategy, and SSP). The TCV should reflect the full original contract value.
  4. Set the Cutover Date to the first of the month when DualEntry takes over.
  5. Enter the Accumulated Revenue amount representing total revenue recognized in the prior system through the cutover date.
  6. Save the contract. DualEntry sets the billing start date and recognition start date to the cutover date automatically.
  7. Activate the contract. DualEntry generates recognition entries and invoices from the cutover date forward only.
The cutover date must be the first of a month. DualEntry blocks or warns if you enter a date that is not the first of the month.

Example

A customer has a 120,000annualcontractthatstartedJuly1,2025.TheygoliveinDualEntryonJanuary1,2026,havingalreadyrecognizedsixmonthsofrevenue(120,000 annual contract that started July 1, 2025. They go live in DualEntry on January 1, 2026, having already recognized six months of revenue (10,000 per month = $60,000) in their old system.
FieldValue
Contract start dateJul 1, 2025
Contract end dateJun 30, 2026
TCV$120,000
Accumulated revenue$60,000
Cutover dateJan 1, 2026
Remaining to recognize$60,000 over 6 months
DualEntry generates six monthly recognition entries of 10,000(JanuarythroughJune2026).NoentriesarecreatedforJulythroughDecember2025.Thecontractrecordshowsthefull10,000 (January through June 2026). No entries are created for July through December 2025. The contract record shows the full 120,000 TCV.

Reporting

Migrated contracts appear in reports with their full contract value and a clear separation between pre-DualEntry and post-cutover activity.
  • Waterfall report shows a pre-DualEntry column representing accumulated revenue. This makes the waterfall balance across the full contract term.
  • Rollforward report uses TCV minus accumulated revenue as the opening deferred revenue balance at cutover. This is the opening balance DualEntry manages going forward.
  • Contract record displays TCV, accumulated revenue, and remaining balance as three visible fields.

Current limitations

  • Month-aligned cutover only. The cutover date must be the first of a month. Mid-period cutover with stub period calculations is not supported.
  • No bulk upload. Contracts must be entered one at a time through the contract form.
  • Manual entry only. Accumulated revenue is user-entered. DualEntry does not calculate or validate it against external systems.

Next steps

Last modified on June 11, 2026