
Examples of Milestones in Project Management: 8 Key Types
Explore 8 examples of milestones in project management. Learn to set SMART milestones for any project, from software to personal goals, with actionable tips.
A project can look healthy right up until the status meeting where someone asks a simple question: what, exactly, is done? The team has been active, the roadmap has dates, and progress updates sound encouraging. Yet approvals are still fuzzy, dependencies are still shifting, and no one wants to commit more budget or people because the checkpoints are too vague to trust.
Project milestones solve that problem when they are defined as decision points, not calendar markers. A useful milestone tells the team what must be true, who signs off, what work depends on it, and what changes if it slips. In practice, that means a milestone should trigger an action: release funding, start build work, open testing, schedule deployment, or escalate a risk. If it does not change behavior, it is usually just a date on a slide.
That distinction matters because weak milestones create expensive confusion. Teams start parallel work too early, stakeholders assume approval where none exists, and delivery risk stays hidden until late in the schedule. Strong milestones do the opposite. They turn broad goals into inspectable outcomes that can be measured, reviewed, and used in weekly operating routines.
The examples in this guide treat each milestone as a working micro-plan rather than a label. For each one, the goal is to define a clear outcome, set SMART criteria, identify dependencies, choose the right timing, and tie the checkpoint into the project's normal review cadence. If you need the broader planning structure around those checkpoints, this guide to software project planning helps connect milestones to scope, sequencing, and team capacity. If you're also shaping the bigger sequence of work, it helps to see how milestones fit inside a broader product roadmap.
Table of Contents
- 1. Project Kickoff Milestone
- 2. Design Completion and Approval Milestone
- 3. Alpha/Beta Release Milestone
- 4. Feature or Sprint Completion Milestone
- 5. Testing and Quality Assurance Milestone
- 6. Infrastructure or Deployment Readiness Milestone
- 7. Budget Checkpoint and Resource Allocation Review Milestone
- 8. Launch/Go-Live and Post-Launch Support Milestone
- 8 Project Milestones Comparison
- Turn Milestones into Momentum
1. Project Kickoff Milestone
Monday starts with a kickoff call. By Friday, engineering is sizing one version of the work, the sponsor is repeating another, and operations has not been told what support they will need to provide. That is what a weak kickoff milestone produces. It gives the project a meeting, but not a working agreement.
A kickoff milestone should mark the point where the project can move into execution without each team filling gaps with its own assumptions. The practical test is simple. Can the team start work with a shared scope, named decision-makers, agreed success measures, and a clear operating rhythm? If the answer is no, kickoff has not happened yet.
What this milestone should lock in
Use a SMART statement that names the evidence: “Kickoff complete by [date] when charter is approved, core team roles are assigned, delivery cadence is scheduled, risks and assumptions are logged, and escalation owner is named.” That format keeps the milestone tied to observable artifacts rather than the mood in the room. If you need a sharper structure for writing those outcomes, use one of these goal-setting frameworks for project milestones and team commitments.
This milestone usually depends on four inputs being ready first. Draft scope. Sponsor availability. Initial budget assumptions. Functional leads who can speak for their area and make commitments. If one of those is missing, the team should delay the milestone and say why. Running kickoff early feels fast, but it usually creates rework in the first two weeks.
A practical kickoff micro-plan looks like this:
- Charter approved: Document scope boundaries, intended outcomes, major constraints, and what is explicitly out of scope.
- Roles assigned: Name one responsible person per function. Department labels create ambiguity fast.
- Cadence scheduled: Put status reviews, risk reviews, and decision meetings on the calendar with owners and frequency.
- Escalation path defined: State who resolves scope disputes, timeline conflicts, and resource contention.
- Risk and assumption log started: Record the conditions the plan depends on before work begins, not after the first surprise.
One rule saves a lot of pain. If a kickoff ends without documented decisions and owners, it was an alignment meeting, not a milestone.
For software teams, I usually tie kickoff to the planning artifacts that will govern the next delivery cycle. That often means the roadmap, backlog shape, release assumptions, and any cross-team dependencies are clear enough for sequencing work. If you want a tighter planning flow behind that handoff, this guide to software project planning is a useful companion.
The common failure mode is enthusiasm without commitment. Stakeholders leave energized, but nobody has agreed on what changes require approval, what trade-offs are acceptable, or who can make the call when schedule and scope collide. Good kickoff milestones create a baseline the team can refer back to when dates slip, priorities change, or new work appears midstream. That baseline is what turns kickoff from ceremony into control.
2. Design Completion and Approval Milestone
Design completion sounds straightforward until the team reaches it and discovers three different standards for “done.” Product says the flows are approved. Design says a few edge states are still open. Engineering says the prototype looks polished but doesn't specify enough for implementation.
That's why this milestone needs two parts: completion and approval. They are related, but they are not the same thing.

A stronger definition of done
For a mobile app, this milestone could mean all primary user flows are represented in approved wireframes or prototypes, edge cases are documented, the design system components are identified, and engineering has reviewed technical feasibility. For a building project, it could mean blueprints are finalized and approved for the next construction phase.
A practical template looks like this: “Design approved on [date] when core flows, edge states, annotations, stakeholder sign-off, and implementation constraints are documented.” That wording matters. It keeps the milestone tied to visible evidence rather than subjective comfort.
- Include developers early: If engineers only review after stakeholder approval, rework lands late and expensively.
- Separate comments from decisions: A Figma thread full of opinions isn't approval.
- Name the approver: “Stakeholders approved” is too vague. One accountable approver prevents endless loops.
- Store rationale: Teams forget why a trade-off was made, then reopen the same debate later.
A lot of teams blur outcomes and activities here. “Finish design” is an activity phrase. “Checkout flow approved for implementation” is a milestone phrase. That distinction matters because modern guidance treats milestones as checkpoints rather than the work itself, and Asana's explanation of project milestones emphasizes that teams should choose milestones that represent significant progress or phase completion in its project milestones resource.
If you're using goals or OKRs to decide what deserves a milestone, this breakdown of goal-setting frameworks is useful. It helps convert broad ambition into checkpoints that can sequence work.
3. Alpha/Beta Release Milestone
On Monday, the build looks solid in staging. By Thursday, five beta users have hit the same onboarding dead end, one browser-specific bug has blocked sign-up, and support is answering questions the product should have handled itself. That is why this milestone matters. Alpha and beta releases expose the gap between internal confidence and external use.
The practical decision is not whether to run a release milestone. It is how much uncertainty to expose at once. Alpha works best for controlled learning with internal users, selected customers, or design partners. Beta works best once the product can survive wider variation in devices, workflows, and user expectations without turning feedback into noise.
What this milestone should actually mean
Write the milestone as an operational checkpoint, not a vague shipping moment. A useful version looks like this:
“Alpha release completed on [date] when the target workflow is usable by [defined user group], feedback channels are live, triage ownership is assigned, and exit criteria for beta are documented.”
Or, for beta:
“Beta release completed on [date] when version [x] is available to [defined audience], usage and defect reporting are monitored daily, and promotion criteria for general release are agreed by product, engineering, and support.”
That wording forces clarity in four places that teams often leave fuzzy: audience, evidence, ownership, and next-stage criteria.
Dependencies to confirm before release
This milestone should sit on top of a small set of hard dependencies. If any of these are missing, the team usually spends the release period reacting instead of learning.
- Core user path works end to end: Pick the few workflows the release is meant to validate and confirm they work in the target environment.
- Known severe issues are triaged: Open defects can exist, but their impact and owner should already be clear.
- Feedback intake is configured: Use a form, in-product prompt, support alias, or community thread. Do not rely on scattered Slack messages.
- Monitoring is active: Crash reporting, analytics, logs, and alerting need to be live before users arrive.
- Support and product roles are named: Someone has to review incoming issues, respond to users, and decide what qualifies as a release blocker.
I have seen teams skip the last two because they wanted to get the build out quickly. The result is predictable. Useful signals get buried under duplicate reports, low-value opinions, and unowned bugs.
Timing and routine integration
Alpha or beta milestones work best when they are tied to a short review cadence. Daily triage is common during the first few days. Twice-weekly review can work once issue volume stabilizes. The release milestone should also have a scheduled exit review on the calendar before the build goes out. If that meeting does not exist, beta often drifts into an indefinite holding pattern.
A simple routine looks like this:
- Day 1 to 3: monitor usage, defects, and support friction daily
- End of week 1: review patterns, not anecdotes
- End of week 2 or at the agreed threshold: decide to expand, fix, pause, or promote
The point is to answer a defined question. Can new users complete onboarding without assistance? Does the new workflow reduce confusion or create it? Are defects concentrated in one platform or spread across the experience? A beta release without a decision question is just exposed unfinished work.
Common failure patterns
One failure pattern is releasing too early to boost morale. That usually produces feedback about obvious defects rather than product fit, which wastes the testers you worked hard to recruit.
Another is choosing only friendly users who already know the product. That can protect team confidence, but it weakens the release as a learning checkpoint. Include at least some users who do not share the team's assumptions.
The third is measuring activity instead of outcome. “We invited 50 users” is not a milestone result. “The onboarding flow was used by the target beta group, top blockers were categorized, and the team approved the fixes required for wider release” is.
Used well, this milestone gives the team a controlled way to convert real usage into decisions. Used poorly, it creates heat without insight.
4. Feature or Sprint Completion Milestone
Sprint completion is useful because it gives fast-moving teams a recurring checkpoint that doesn't require a giant phase gate every time. But it only works when the milestone represents integrated value, not a pile of partially finished items.
Agile teams often drift into one of two extremes. Some create too many tiny milestones and drown in ceremony. Others avoid milestone thinking completely and lose visibility on whether delivery is compounding into anything meaningful.

What counts as complete
For iterative work, the milestone should usually be tied to a tested, reviewable increment. “Sprint finished” is weak. “Account settings update integrated, tested, demoed, and accepted for release readiness” is strong.
The most practical way to write this milestone is to make the evidence explicit:
- Scope is bounded: The sprint or feature set has a named objective, not a shopping list.
- Integration is complete: Code exists in the shared branch or target environment, not just on local machines.
- Review happened: Stakeholders or the product owner reviewed what shipped in the increment.
- Carryover is visible: Deferred items are listed separately instead of being redefined as done implicitly.
The GanttPRO discussion of milestones points to a real issue in digital work: too many milestones reduce clarity, while too few hide risk. That tension is captured well in its article on project milestone examples. In short-cycle software teams, lightweight checkpoints such as sprint-ready, beta-ready, or release-ready often work better than heavyweight phase labels.
One thing I've seen repeatedly is that sprint milestones fail when teams use them to grade effort rather than outcomes. “We worked hard” doesn't count. The milestone needs to prove something changed in the product or the project state.
For product teams running weekly or biweekly cycles, this is one of the clearest examples of milestones in project management because it keeps momentum visible without pretending every iteration deserves executive review.
5. Testing and Quality Assurance Milestone
Friday afternoon is when weak QA milestones get exposed. The build is in staging, launch pressure is rising, and the team is still arguing about whether open defects are acceptable or dangerous. At that point, the problem is rarely testing effort. The problem is that nobody defined the gate clearly enough to make a release decision.
A testing and QA milestone should mark a decision point with evidence attached. It sits after build completion and before deployment readiness, and it answers one practical question: does this release meet the standard required for its actual use case?
That standard changes by product type. A finance workflow may need permission validation, transaction accuracy checks, and audit trail review. A healthcare feature may require stricter documentation and traceability. An e-commerce release often lives or dies on browser coverage, checkout reliability, and whether the system holds up under realistic traffic. The milestone should reflect those risks instead of using the same generic checklist for every release.
A useful milestone statement is specific enough to audit and simple enough to use under pressure: “QA milestone achieved on [date] when planned functional, regression, usability, and release-risk tests are complete, unresolved defects are reviewed by severity, and release owners approve disposition.” That wording does three jobs. It defines scope, names the decision criteria, and assigns ownership.
Here is the micro-plan that works in practice:
- SMART template: “By [date], complete execution of agreed test scope for [release or feature], confirm all critical paths pass, document unresolved defects by severity, and record a release decision from the accountable owner.”
- Dependencies: Stable build in the test environment, approved acceptance criteria, test data prepared, defect severity rules agreed, and named approvers available.
- Timing: Set the milestone after feature completion but before deployment preparation is fully underway. If QA ends too late, every defect becomes a release crisis.
- Routine integration: Review QA milestone status in daily standups, track blocking defects in the triage meeting, and confirm exit criteria again in the release review.
The trade-off is straightforward. Tight QA gates slow teams down in the short term, but loose gates push risk into production where fixes cost more and trust drops faster. I have seen teams save two days by cutting regression coverage, then lose a week handling preventable post-release issues. Speed matters. Controlled speed matters more.
Common failure points show up early if you know where to look:
- Severity is undefined: Teams debate every bug because nobody agreed what blocks release.
- The environment is too clean: Tests pass in staging and fail in real conditions because devices, browsers, data volume, or user roles were simplified.
- Usability is assumed: The feature works technically, but real users still get stuck.
- Defect lists replace decisions: A backlog of bugs is not a release recommendation.
If progress is still reported as “QA is ongoing,” the milestone is too vague to manage. Teams usually fix that by using clearer QA status criteria and better visibility in their progress tracking software, so test execution, defect aging, and exit readiness are visible without chasing updates across tools.
6. Infrastructure or Deployment Readiness Milestone
Release day failures rarely start with bad code. They start when a team learns, too late, that production is configured differently, secrets are missing, alerts fire for the wrong reasons, or rollback exists only as a vague idea in someone's head.
That risk deserves a separate milestone.
Infrastructure or deployment readiness should confirm two things: the release can be deployed into the target environment, and the team can run it safely once it is live. Those checks sound similar, but they fail for different reasons. A deployment can succeed technically and still create an operational mess if logging is incomplete, dashboards are unclear, or on-call ownership is fuzzy.
A useful milestone statement is: “Deployment readiness approved by [date] when production configuration is validated, deployment and rollback are tested, monitoring is live, access is confirmed, and support owners sign off.” That gives the team a SMART checkpoint instead of a hand-wavy status like “ops is basically ready.”
The dependencies are usually clear. Build stability should already be in place. QA exit criteria should be met or close enough that the release candidate is not changing every few hours. Security reviews, change approvals, and any vendor provisioning that affects production access should also be complete before this milestone is called done.
The evidence should be inspectable:
- Production and staging differences are documented and reviewed
- Secrets, certificates, and environment variables are present and validated
- Deployment automation has been tested on the current release path
- Rollback steps are written, timed, and rehearsed
- Monitoring, logging, and alert thresholds are configured for real usage
- Backups, restore steps, and data validation checks are confirmed
- On-call ownership, support escalation, and release-day contacts are assigned
I push teams to test rollback as a real task, not a checkbox. If rollback takes too long, depends on one senior engineer, or leaves data in an uncertain state, the release is not ready. A deployment plan is only as good as the team's ability to recover under pressure.
Timing matters here. Set this milestone after QA confidence is high enough to justify release preparation, but before the go-live decision. If you place it too late, deployment risk gets compressed into the final hours before launch. That is when teams skip checks they would never skip a week earlier.
The common failure mode is bundling this work into “engineering done.” That hides the ugly details. Firewall rules, permissions, migration sequencing, capacity limits, DNS changes, and alert tuning do not look dramatic in status meetings, but they are exactly what turns a clean release into a long night.
Review this milestone in release readiness meetings, not just in engineering standups. The people who will respond to incidents should confirm they have what they need before customers ever touch the release. That trade-off is worth making. A slightly slower handoff beats a fast deployment followed by confused ownership and preventable downtime.
7. Budget Checkpoint and Resource Allocation Review Milestone
Three months into a project, the burn rate looks acceptable on paper. Then a shared specialist gets pulled into another initiative, a vendor quote lands above estimate, and the team is still reporting green. That is usually the point where a budget milestone stops being finance admin and starts being delivery control.
This milestone exists to force an explicit decision before cost drift turns into schedule damage. Used well, it answers four practical questions: what has been spent, what the project now needs, what trade-offs the team is willing to make, and who approves the change.
Turn the budget review into a decision point
A budget checkpoint should sit before a commitment that is expensive or hard to reverse. Common examples include signing a vendor statement of work, approving contractor extensions, adding headcount, or funding a launch campaign. If the review happens after that commitment, the milestone loses most of its value.
I have seen teams treat budget reviews as status theater. The spreadsheet gets updated, nobody challenges the assumptions, and the same staffing gap appears again in the next meeting. A working milestone ends with a clear call: continue as planned, reallocate people, trim scope, add budget, or pause the next phase.
A practical SMART template is:
“Budget and resource review completed by [date], with actual spend, forecast to next milestone, role capacity by workstream, and approval for phase [X] signed off by [owner].”
That wording matters. It ties the checkpoint to a date, a decision, and an accountable person. It also prevents vague updates such as “budget is broadly on track,” which usually means no one has tested the forecast.
Use these checks in the review:
- Compare spend by workstream: One total budget number can hide overruns in integrations, testing support, procurement, or contractor hours.
- Review capacity by role, not just headcount: Five people assigned does not help if the missing role is the only data engineer or security reviewer.
- Separate sunk cost from next-step value: Past spend should inform the decision, not trap the team into defending weak work.
- Tie extra spend to a specific outcome: More budget should buy risk reduction, schedule protection, or required scope, not general reassurance.
- Document resource conflicts openly: Split allocations across projects distort delivery plans faster than the budget report suggests.
Timing matters here too. Set this milestone at a point where changes are still possible. If you wait until the final stretch, the team is choosing between overspending and missing the date, and neither option is usually honest planning.
The common failure mode is reviewing money without reviewing effort. Budget pressure often starts as a staffing problem. A key person gets spread across too many priorities, handoffs slow down, quality slips, and external spend climbs because the team is compensating for lost internal capacity. Treat budget and resource allocation as one milestone, not two separate conversations.
Run this review with the project owner, delivery lead, and whoever controls funding or staffing approvals. If one of those people is missing, the team can identify the problem but still cannot act on it. A milestone only works if the meeting can change the plan.
8. Launch/Go-Live and Post-Launch Support Milestone
At 9:02 a.m., the release goes live. By 9:11, support gets the first customer ticket. By 9:20, a production integration starts failing for one customer segment, and the team realizes the handoff plan was thinner than the release checklist. That is why this milestone has to cover go-live and the first support period as one unit of work.
Launch is not a finish line. It is an operating shift.

The launch milestone is not the end
Use this milestone only when the product is live for the intended audience, monitoring is active, decision-makers are available, and the team knows what counts as a launch issue versus routine follow-up. In SaaS, that usually includes customer communications sent, support articles published, incident routing tested, and on-call coverage confirmed. In e-commerce, add payment processing, order flow checks, tax or shipping validation, and fulfillment escalation contacts.
Treat it as a micro-plan, not a date on a roadmap. A workable SMART version looks like this: “Release version 3.4 to all production users by Thursday at 6 p.m., monitor core transactions and error alerts for 48 hours, resolve or contain all launch-critical issues within the support window, and complete handoff to the steady-state support owner by Monday at noon.” That format forces the team to define scope, timing, ownership, and the success condition.
The dependencies should be explicit before anyone approves the launch window:
- Release decision recorded: The final go or no-go call has a named owner and a scheduled decision time.
- Support coverage assigned: Product, engineering, support, and operations know who is on point during the first response window.
- Monitoring tied to actions: Alerts map to thresholds, owners, and response steps. A dashboard nobody is watching is not readiness.
- Rollback or containment plan prepared: The team knows when to pause, revert, patch, or limit impact.
- Post-launch review booked: Schedule it before launch, while calendars are still open and details will still be fresh.
Timing matters here. Set this milestone at the end of delivery work but do not close it at deployment. Close it after the defined stabilization period, once launch-critical defects are either fixed, contained, or formally accepted by the right owner. That is the trade-off. A stricter definition gives a more honest view of delivery health, but it also keeps the project team engaged longer. In practice, that is usually the better call, because teams that declare victory at deployment often dump unresolved risk onto support.
A common failure mode is staffing the war room with technical people only. Launch problems are not always technical first. Sometimes the issue is customer messaging, billing confusion, bad documentation, or an internal team that does not know the product is live. Include the people who can make operational decisions, not just diagnose systems.
If you want this milestone to work in practice, run it with a short checklist, a named incident lead, a defined support window, and one rule for closure: the release is complete only after the system is live and the first post-launch period passes without unresolved launch-critical issues. That keeps the milestone tied to service stability, not ceremony.
8 Project Milestones Comparison
| Milestone | 🔄 Implementation Complexity | ⚡ Resource & Time Intensity | ⭐ Expected Outcomes | 📊 Ideal Use Cases | 💡 Key Advantages |
|---|---|---|---|---|---|
| Project Kickoff Milestone | Moderate–High: cross-stakeholder alignment and chartering | Moderate: planning time, stakeholder meetings | Aligned scope, approved KPIs, execution baseline ⭐⭐⭐ | New projects, cross-functional initiatives, strategic programs | Prevents scope creep, secures buy-in, sets expectations |
| Design Completion and Approval Milestone | Moderate: iterative reviews and feasibility checks | Moderate: designer + stakeholder time, prototyping tools | Clear specifications, reduced dev rework ⭐⭐⭐ | UI/UX builds, architecture handoffs, product features | Clarifies requirements, improves developer productivity |
| Alpha/Beta Release Milestone | High: release coordination, tester management, feedback loops | High: testing support, analytics, triage resources | Validated product, bug discovery, user insights ⭐⭐⭐⭐ | Pre-launch validation, user research, market fit testing | Real-world feedback, early advocates, issue detection |
| Feature or Sprint Completion Milestone | Low–Moderate: regular cadence, disciplined process | Moderate ongoing: dev, QA, demo time per sprint | Incremental delivery, faster iteration ⭐⭐⭐ | Agile teams, iterative development, rapid delivery cycles | Frequent progress checks, course correction, team momentum |
| Testing and Quality Assurance Milestone | High: comprehensive test plans and coverage | High: QA engineers, automation, testing environments | Reduced production defects, increased stability ⭐⭐⭐⭐ | Regulated software, performance-critical applications | Protects reputation, uncovers security/perf issues early |
| Infrastructure or Deployment Readiness Milestone | High: infra provisioning, automation, runbook prep | High: DevOps expertise, tooling, staging environments | Reliable deployments, scalable operations ⭐⭐⭐⭐ | Large-scale launches, high-availability systems, peak traffic | Prevents outages, enables fast rollback and recovery |
| Budget Checkpoint & Resource Allocation Review Milestone | Moderate: financial analysis and reprioritization | Low–Moderate: finance + PM time, reporting tools | Controlled spend, aligned resourcing, ROI visibility ⭐⭐⭐ | Enterprise programs, grant-funded research, investor-backed startups | Prevents overruns, enables proactive reallocation |
| Launch / Go‑Live & Post‑Launch Support Milestone | Very High: intense cross-team coordination under pressure | Very High: monitoring, support staffing, comms effort | Market validation, usage data, risk of launch issues ⭐⭐⭐⭐ | Major product launches, seasonal campaigns, OS releases | Drives adoption, demonstrates value, informs next roadmap |
Turn Milestones into Momentum
Good milestones do two jobs at once. They mark progress, and they force decisions. That's why they remain so useful across software, construction, consulting, research, and product work. A long project can hide a lot of ambiguity. A milestone can't. It asks a simple question: what is now true that was not true before?
The most effective examples of milestones in project management share a few traits. They are specific. They are externally checkable. They sit on real dependencies. And they connect to action in the daily rhythm of the team. If a milestone can't change staffing, approvals, sequencing, or release confidence, it probably isn't a milestone. It's just a date label.
The practical shift is to stop writing milestones as vague nouns and start writing them as testable conditions. “Design complete” becomes “checkout prototype approved with annotated edge states.” “QA done” becomes “release criteria reviewed and blocking defects resolved or accepted.” “Launch” becomes “live, monitored, staffed, and stable through the initial support window.” That level of definition feels stricter at first, but it saves time because fewer people need to argue later about what the milestone meant.
There's also a habit piece often overlooked. Milestones don't create momentum by themselves. Daily work does. The milestone only helps if the team can connect it to routines, ownership, and planned versus actual progress. That's where a system can help. Beyond Time, built by Tribble Software Private Limited, is one option for teams or individuals who want to link goals to sequenced milestones, daily focus, and time-tracked execution using an OKR-based approach. Used well, that kind of setup keeps milestones from sitting in a roadmap untouched until the status meeting.
If you want better milestone design right away, don't rebuild your whole project plan. Pick one active milestone that matters. Rewrite it as a zero-duration checkpoint with a date, owner, dependencies, and visible evidence. Then check whether your team's calendar and routines support it. That first correction usually reveals more than another planning session ever will.
If you want a more disciplined way to turn goals into milestones and daily execution, Tribble Software Private Limited offers Beyond Time, an AI-powered system that connects OKRs, measurable milestones, routines, and planned-versus-actual tracking so projects move from intention to accountable progress.