> For the complete documentation index, see [llms.txt](https://help.tahua.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.tahua.io/knowledge-base/administrator-help-guides/milestones/contract-vs-application-milestones.md).

# Contract vs Application Milestones

Contract Milestones and Application Milestones become visible to the Applicant under different conditions. This explains the difference, and why a published Milestone can still be missing from the App

If an Applicant says a Milestone is missing from their Dashboard even though it's been created and published, the cause is almost always the same: it's a **Contract Milestone**, and the Contract it belongs to hasn't been fully executed yet.

## Contract Milestones vs. Application Milestones

Every Milestone is one of two types, depending on how it was created (see [Milestones FAQs](/knowledge-base/administrator-help-guides/milestones/milestones-faqs.md) for the creation-flow distinction):

**Application Milestone** — created directly against a Funding Application (Create Singular Milestone / Create Milestone Batch, no Contract selected). It's tied to the Application only.

**Contract Milestone** — created from within a Contract's own Add Milestones flow (or linked to one). It's tied to that specific Contract.

This isn't just a labelling difference — it changes when the Applicant can see it.

## The visibility rule

**Application Milestones** appear on the Applicant's Dashboard as soon as they're **published**. There's no dependency on any Contract.

**Contract Milestones** additionally require their Contract to be in an executed/active state — by default, **Contract Signed by Admin** or **Completed**. A Contract Milestone can be published and otherwise ready, but if its Contract is still Being Drafted, Sent, or only signed by the Applicant (not yet countersigned by an admin), it will **not** appear on the Applicant's Dashboard at all.

This is also why Contract Milestones (and only Contract Milestones) can populate the `[[milestone_table]]` personalisation tag in a Contract document — that tag renders the Contract's own linked Milestones. An Application Milestone has no Contract association, so it will never appear in that table regardless of its status.

## Staff can complete a Milestone the Applicant never saw

Because an admin can use **Complete on Behalf** on any Milestone from the admin side, a Contract Milestone can be filled in and Approved by staff at any time — even while its Contract is still in Draft and the Milestone has never been visible to the Applicant. This means a Contract's Milestones list can show a mix of "Approved" (completed by staff via Complete on Behalf) and "Not submitted" (nobody has actioned it — including the Applicant, who can't see it) Milestones, without that being a sign of anything broken.

## See also

* [Milestones FAQs](/knowledge-base/administrator-help-guides/milestones/milestones-faqs.md)
* [Contract Execution & Milestone Payments](/knowledge-base/administrator-help-guides/contracts/contract-execution-and-milestone-payments.md)
* [Signing a Contract](/knowledge-base/administrator-help-guides/contracts/signing-a-contract.md)
