# Contract End Date for "Project" Contracts

**URL:** <https://community.hubspot.com/t/contract-end-date-for-project-contracts/163289>\
**Category:** HubSpot Ideas\
**Tags:** contract, enterprise\
**Created:** [October 28, 2026, 3:05pm UTC](https://community.hubspot.com/t/contract-end-date-for-project-contracts/163289 "2026-10-28T15:05:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![NCiprich](https://avatars.discourse-cdn.com/v4/letter/n/ecae2f/32.png) [@NCiprich](https://community.hubspot.com/u/NCiprich)\
**Post date:** [October 28, 2026, 3:05pm UTC](https://community.hubspot.com/t/contract-end-date-for-project-contracts/163289/1 "2026-10-28T15:05:25Z")

</div>

We use the Contracts object as our source of truth for active vs. past customers. We sell two kinds of work:

- **Retainers:** recurring line items with a term. These work well. HubSpot calculates the end date, and the contract moves to Completed on its own.
- **Projects:** a one-time fee, sometimes invoiced in milestones (Part 1, Part 2, etc.). The contract only has one-time line items.

We don’t bill in HubSpot (billing happens in QuickBooks), so our contracts have HubSpot billing turned off.

**The problem:** a contract with only one-time line items never gets an end date, and the end date can’t be entered by hand. Completed only happens once a contract passes its end date, and it can’t be set manually either. So project contracts stay Active forever, even after the work is finished. That means we can’t use “active contracts” to tell who’s still a customer.

The only options today are:

- **Terminate the contract.** That’s misleading: the project wasn’t cancelled, it was finished, and it muddies churn reporting.
- **Add a $0 recurring line item** just to create an end date. It’s a workaround that adds clutter and needs explaining to every user.

**What we’d like (any of these would solve it):**

1. A “Mark as Completed” action on contracts, with a completion date.
2. The ability to set an end date on contracts that only have one-time line items.
3. An optional end date or service period on one-time line items, which the contract end date could be calculated from.

This matters most for teams that bill outside HubSpot and use contracts as their customer record rather than their billing engine.

---

<div class="post-metadata">

**Author:** ![val\_kouba](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/val_kouba/32/35805_2.png) [@val\_kouba](https://community.hubspot.com/u/val_kouba)\
**Post date:** [October 28, 2026, 8:35pm UTC](https://community.hubspot.com/t/contract-end-date-for-project-contracts/163289/4 "2026-10-28T20:35:35Z")

</div>

@NCiprich Really interesting - I’ve also seen some challenges with how effective date is handled. A couple process questions while thinking about options:

If you don’t have split terms, is billing up-front or after project completion?

Any terms in your contract around when services have to be delivered? Ie - can’t cross years, etc?

I haven’t checked, but assuming the effective and end dates can’t be updated with workflow actions?

I’m actively working on something very similar with a QBO integration project using contracts - we have Billing off too and it sets some limits. Will jump back in here if I come across something that might help!

---

<div class="post-metadata">

**Author:** ![val\_kouba](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/val_kouba/32/35805_2.png) [@val\_kouba](https://community.hubspot.com/u/val_kouba)\
**Post date:** [October 29, 2026, 8:27pm UTC](https://community.hubspot.com/t/contract-end-date-for-project-contracts/163289/5 "2026-10-29T20:27:57Z")

</div>

Hey @NCiprich - I think I have a solve that addresses points 2 or 3.

In a Contract-Based workflow, you can add an ‘edit record’ action that gives you the chance to update the _ **Contract End Date** _ property.

Copying from another date-based property is a good idea. Maybe a forecasted end date on the deal or a line item that can be copied here. Lots of ways to approach, but the workflow feature to edit the field should be flexible for different scenerios. Hope this helps!

 ![Screenshot 2026-10-29 at 2.37.25 PM](https://d2qpr2jzcazej7.cloudfront.net/original/3X/b/2/b2cf418ef1d433597b2502db2963ecc6e5b1a940.png)
