June 26, 2026

We Threw Out the Week and Saved Your Approvals

Demi van Kesteren

Software developer

Share this article

Where it all started

After almost two years(!) of on-and-off planning, designing, developing, (beta) testing, gathering feedback and redoing the whole process all over again, the new approvals workflow is finally available to all Tracket users!

What at first may look like an update to the approvals overview page, appears to have been lots of behind-the-scenes work, required rethinking the logic and structure behind one of Tracket's very first big features and provides lots of opportunities and improvements. Things went right, things went wrong, we got stuck, and we sprinted forward again. We're excited to share how we went from saving full weeks to saving days, and how multiple iterations of testing and prototyping lead to today's solution.

Old timesheet view

Why weeks had to go

The approval process was one of Tracket's very first big features, dating back to November 2021. You could create time entries, or "worklogs" back then, on items with a category, description and (billable) minutes, and view them on "the period overview". Throughout the years, Tracket grew and gained more and more features, and approvals got some tweaks here and there, but nothing big did change. Eventually came Tracket 2.0. We touched and changed almost everything, except approvals; they still had their original look and workflow.

With Tracket growing, scalability became more and more important, and the approvals page was having more trouble, especially for larger accounts. Loading all users' approvals for the week in one big list could take a long time, even too long sometimes.

And there were technical limitations we kept running into. To go into a bit more technical detail, an approval, if known, was stored as a single document in our database. This brought two big issues:

  1. An approval is always bound to a full week, from the start until the end of the week and stored consecutively, making flexible periods basically impossible. This is also why changing the start of the week reopens all approvals, as shifting them would result in partly approved week - something that's not possible with the current workflow.
  2. The database we use does not allow us to retrieve what does not exist. That means that if there was no approval document, we assumed it was open. But because of this limitation, reporting on some approval-related data was harder or impossible, and it required several additional requests to get the data in the desired shape.

We decided it was time for a change.

A day-based approach

After several talks with development, design and product, we decided to get rid of saving weeks and start saving days instead. And boy what a change it was! Saving approval information on a daily basis provided more flexibility, scalability and improved loading speeds, as we are able to only retrieve more specific data that we actually need. Not only within the app, but also our automations benefit from these changes too: we managed to reduce the amount of database reads up to 99.9%!

Tracket reads chart

Read operations over 30 days as a single line. It spikes repeatedly, crossing 200 million once around September 29 to 30, with a second tall peak near October 13 to 14 just below 200 million, then drops to flat near zero after October 14. The line is purple for the old query pattern and shifts to teal after October 14, where the new aggregate query takes over.

Read operations spike, crossing 200 million once around Sep 29, then flatten after Oct 14 where the line shifts from purple to teal.


What 99.9% looks like in practice. Reads before and after the switch to days.

Why days?

We evaluated several approached: daily, weekly and yearly. Here's why daily won:

  • Future-proof: Approvals and timesheets might not always be bound to weeks as they are right now. Day documents allow us to support more flexible periods in the future.
  • Speed: Comparing the three options, days updated the quickest when we tried different periods of time.
  • Simplicity: Data is never more than one level deep and smaller than a day. Making updates is straightforward.
  • Better queries: Searching and retrieving data is simpler, more specific and faster. And there is no need for nested data.

Of course there are downsides to this solution too. First of all, we'll have to store more data. Saving a week (or not) compared to always having seven days takes up more storage. And approvals are still seven days, meaning we have to "build" a week ourselves. That brings the risk of one or multiple days being in a different state. We handle that with additional checks and transactions, to catch and revert mismatches should they arrise.

There will always be risks and downsides to a solution, but they do not outweigh the improvements and opportunities it provided us with, for example:

  • We made some changes to the approval domain, like changing the use of timestamps to ISO dates (YYYY-MM-DD), because who doesn't love a good timezone bug?
  • We started saving the approver in a list in preparation of multi-level approvals.
  • And with the introduction of the Active time tracking period, we managed to tackle another request: only show relevant users in Tracket. Because when should you need those days? Exactly, while you track time.

A Process two years in the making


Phase 1: Finding the Right Solution

Our first talks and refinements started in May 2024, shortly after the release of Tracket 2.0. The first designs were already there and soon after development brainstormed about the new setup. The old weekly documents were no longer an option, so we looked at alternatives, compared their pros and cons and came to the solution of saving days.

We tried it out first; we learned what worked, what did not work, where designs needed adjustment and what surprised us (in a good way). A requirement was that it had to run alongside the old approvals for a while. By the end of the year, we had a feature-flagged first version ready.


Phase 2: Beta Testing

A little into 2025, our first few customers, started beta testing, both big and small accounts! We gathered feedback, learned what people liked and where improvements could be made to for example loading speeds and UX. The beta ran for several months while we worked on bigger changes behind the scenes.

We migrated over 14.5 million time entries as part of the approval improvements, adjusting parts of the data model and making other technical decisions along the way. Nobody noticed, which is exactly what you want from a migration.

That, together with the release of the Active time tracking period, made us prepare for the second beta at the end of 2025. Based on all the feedback we gathered and our own testing, we added grouping options, toggling columns, sorting pending approvals and added a new self-approval setting.


Phase 3: Final Steps and Public Launch

At the start of 2026, it was time to create the days for every single account, pulling existing approval data and writing it into the new days. The migration created millions of days for thousands of users in a just few days.  We opened the public beta sign-up and over thirty accounts applied and tested.

Then, on May 5th, 2026, almost exactly two years after the first talks, we released the new approvals workflow to everyone.

The result? A more structured, focused and fresh overview. It gives better insight into the approval workflow and eliminates the needs to select a specific approver; anyone with permission can approve. No more resubmitting timesheets when your approver is unavailable.

What's Next?

We're not done yet! We have other things under consideration regarding approvals for the future, such as multi-level approvals and improved notifications. And the change from weeks to days opens up possibilities we're only beginning to explore.

Try out the new approvals today and let us know what you think!

A big thank you to everyone who beta tested, provided feedback and supported us over the past few months. This release wouldn't be what it is without you!

Check out our public roadmap

Read the full release notes

Share this article

Avisi Apps builds apps you can trust

SOC 2
ISO 27701:2019 & ISO 27001:2022
GDPR/CCPA
HIPAA/NIS2