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.
| Attribute | Detail |
|---|
| Field name | cutover_date |
| Required | Yes, when accumulated revenue is greater than $0. Defaults to contract start date otherwise. |
| Constraint | Must be the first of a month |
| Validation | Must 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
| Field | Meaning |
|---|
| Contract start date | Original start of the obligation, which may predate DualEntry |
| Cutover date | Where DualEntry begins generating entries |
| Contract end date | Full 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.
| Attribute | Detail |
|---|
| Field name | prior_recognized_amount |
| Required | No, defaults to $0 |
| Validation | Must 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
- Navigate to Contracts and select New Contract.
- Enter the original contract start date, end date, customer, and currency. Use the original start date, not the cutover date.
- 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.
- Set the Cutover Date to the first of the month when DualEntry takes over.
- Enter the Accumulated Revenue amount representing total revenue recognized in the prior system through the cutover date.
- Save the contract. DualEntry sets the billing start date and recognition start date to the cutover date automatically.
- 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(10,000 per month = $60,000) in their old system.
| Field | Value |
|---|
| Contract start date | Jul 1, 2025 |
| Contract end date | Jun 30, 2026 |
| TCV | $120,000 |
| Accumulated revenue | $60,000 |
| Cutover date | Jan 1, 2026 |
| Remaining to recognize | $60,000 over 6 months |
DualEntry generates six monthly recognition entries of 10,000(JanuarythroughJune2026).NoentriesarecreatedforJulythroughDecember2025.Thecontractrecordshowsthefull120,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