Guide
Write it from a record of the day, not from memory: three to five outcomes, blockers with a named owner, and tomorrow's first task. You can keep the record by hand or with a tool. Toggl or Timing win when the report must show billable hours. ActivityWatch wins for free tracking across operating systems. Dayflow wins when you want an automatic Mac timeline written in plain language.
An end-of-day report is a short written note, usually sent to a manager, a client or a team channel, that says what got done, what is stuck and what happens next. A good one lets the reader decide whether things are on track without having to ask you a follow-up question.
It usually goes wrong at 5:45 p.m. You open a blank message, try to rebuild eight hours from memory, and end up listing the last two things you did plus whatever was on your calendar. The bug you fixed at 10 a.m. disappears. So does the hour you spent unblocking a coworker. The report reads as busy but says very little.
This guide gives you a method that works with a notes file and nothing else, then shows where software can do part of the work. One disclosure up front: Dayflow, which comes up in one of the steps, is our product. The tool details below come from a comparison of each vendor’s own documentation as published on October 4, 2026.
Before you write a word, decide who is reading. The same day reads differently depending on the audience:
If your team already runs a morning standup, the end-of-day report should not repeat it. The standup is for coordination, the report is the written record. Our piece on automatic standup updates covers how the two can feed from the same notes.
Illustration: A designer working with an agency client might send the client “Homepage hero mockups v2 are in Figma for review, mobile versions tomorrow,” while telling their own lead “Hero v2 done, but the client still has not sent brand fonts, which will block mobile by Thursday.” Same day, two reports, different emphasis.
Mistake to avoid: writing one generic report for everyone. It ends up too detailed for the client and too vague for the manager.
This is the step where most reports fail, and it has little to do with writing skill. Memory compresses a day into a few highlights and drops the rest. If you want to see how far your own sense of time drifts from the clock, the time estimation test is a short exercise for that. It is not a diagnostic.
The fix is to capture the day as it happens, then write from that record. There are four practical ways to do it.
By hand. Write one line every time you switch tasks: the time, what you did, and a link if there is one. This costs nothing and gives you exactly the detail you chose to write down. The cost is discipline. On busy days, the log stops right when you need it most.
With a timer. Toggl (formerly Toggl Track) is built around manual and real-time timers, timesheets and calendar integrations. The vendor also lists automated background tracking and a timeline in its desktop app, and states that it does not take screenshots or record keystrokes. It runs on the web, Mac, Windows, iOS, Android and in browser extensions, and its data syncs through the cloud. Our Toggl for Mac comparison goes into how it fits on a Mac specifically.
With an automatic tracker. Timing records time across apps, websites and documents on the Mac, down to specific URLs and Mail threads, and lists AI activity summaries and AI-powered suggestions for time entries. It is Mac only, and the vendor states tracked times stay on your Mac unless you opt into sync. See our Timing alternative comparison for how it differs from Dayflow.
ActivityWatch is free and open source under MPL-2.0. It records your active app, window title and whether you are away from the keyboard. Browser extensions add the tab title and URL, and editor plugins add coding activity. All data stays on your device. It does not list built-in AI summaries, so you read the raw data and write the summary yourself. Our ActivityWatch vs Dayflow comparison covers the tradeoffs.
With Dayflow. Dayflow records the screen at one frame every 10 seconds and has AI write the day into a readable timeline. With Local AI, a model runs on your Mac through Ollama or LM Studio and screenshot analysis stays on-device. If you choose your own cloud provider or Dayflow Pro, selected screenshots are processed off-device. Our page on local and cloud processing explains the difference.
Illustration: A by-hand log for a developer might look like this:
Mistake to avoid: treating the log as the report. The log is raw material, written for you. Nobody else should have to read “9:45 - started on bug.” For more on building this habit, see how to remember what you worked on.
Turn the log into three to five outcomes. An outcome is a result someone else can see or use, not a description of effort.
A useful pattern is verb, thing, current state, and a link:
Notice what is missing. “Worked on the checkout bug for a few hours” tells the reader you were busy. “Fixed checkout timeout bug, PR #418 open” tells them the problem is nearly gone and what to look at.
Illustration: Before and after, using the log from step 2.
Before: “Busy day. Did some code review, worked on the checkout issue, had a call with Priya, helped Sam with staging.”
After: “Done: Fixed checkout timeout (PR #418, needs review). Agreed rate-limit approach with Priya (notes in API doc). Helped Sam unblock the staging deploy.”
The second version is barely longer and the reader can act on every line.
Mistake to avoid: listing meetings. “Attended sprint planning” is not an outcome unless something came out of it. If a meeting produced a decision, report the decision.
A blocker section is where an end-of-day report earns its keep. It is the only part that asks the reader to do something.
For each blocker, write three things: what is stuck, what it is waiting on, and who can move it. If you know when it starts to hurt, add that too.
Illustration: “Blocked: Mobile hero layouts. Waiting on brand font files from the client. Can you chase this, Dana? It will delay mobile by Thursday if they do not arrive tomorrow.”
Compare that with “Blocked on fonts.” The first version tells Dana exactly what to do and why it matters this week.
If nothing is blocked, say so in one line. “No blockers” is useful information.
Mistake to avoid: writing “No blockers” every day out of habit when there are real ones. Small blockers you leave out today become late deliverables you have to explain next week.
Close with what you will start on tomorrow and any risk you can already see. Keep it to the first task or two, not a full to-do list.
This line does two jobs. It gives the reader a chance to redirect you before you spend a morning on the wrong thing. And it gives you a starting point when you sit down tomorrow, which helps a lot on mornings when starting is the hard part. If that sounds familiar, our piece on getting started with ADHD task paralysis goes further.
Illustration: “Next: Address review comments on PR #418 first thing, then start rate-limit changes. Risk: rate-limit work may spill into Friday if the API vendor’s docs are wrong.”
Mistake to avoid: turning the plan into a wish list of eight items. When half of them do not happen, tomorrow’s report has to explain why, and the reader stops trusting the plan line.
Send the report at roughly the same time every day, with the same headings in the same order: Done, Blocked, Next. A predictable format is faster to write and faster to read. Readers learn where to look.
Once a week, combine the daily reports into a weekly summary. Five dailies with consistent headings make this quick, because you are mostly deleting detail. The weekly status report template gives you a structure for it.
If you use Dayflow, you can export a date range as Markdown from Settings → Export and use that as the starting point for the weekly roll-up. The export work history workflow walks through it, and the Claude weekly report workflow shows how to have an assistant draft a summary from the export. Keep in mind that an assistant receives whatever Dayflow data it retrieves in your conversation. Local storage does not make a cloud assistant conversation local.
Illustration: A Friday roll-up might read: “This week: Checkout timeout fixed and shipped. Rate-limit approach agreed and half built. Mobile hero still blocked on client fonts. Next week: finish rate limits, start mobile layouts once fonts land.”
Mistake to avoid: sending an AI-written draft without reading it. Summaries from any tool, Dayflow included, can miss work or misread what you were doing. Check outcomes before you share them.
| Approach | Effort | What you get | Cost |
|---|---|---|---|
| By hand (notes file or template) | High: you write a line at every task switch | Exactly what you chose to write, with gaps on busy days | $0 |
| Toggl (formerly Toggl Track), timer-based | Medium: start and stop timers, or review background tracking in the desktop app | Hours by project and task, with billable rates and team reports on paid plans | Free plan for up to 3 users; Starter is $9 per user per month billed annually or $12 billed monthly |
| Timing (automatic) | Low: review recorded time and assign it to projects | App, website and document time, AI activity summaries, billing status tracking | No free tier; Professional is $9 per month billed annually or $11 billed monthly; 30-day trial, no credit card required |
| ActivityWatch (automatic) | Low to medium: review app and window data, write the summary yourself | Active app, window title and away-from-keyboard data, stored locally | Free |
| Dayflow | Low: read and correct an AI-written timeline | A plain-language timeline of the day and Markdown export of a date range | $0 (MIT licensed); optional Pro plan at $20 a month |
As noted at the top, Dayflow is our product, so weigh that row with that in mind. It is Mac only (macOS 14 or later), and it has no invoicing, payroll approvals, team reports or website blocking. For the full list of Mac time trackers and how they compare, see our Mac time trackers guide.
Dayflow is built to help you remember and describe your day. Several end-of-day report needs fall outside that.
If one of these describes you, pick the tool named above and keep using the six-step method. The method does not depend on any particular app.
A good end-of-day report is short: what is done, what is stuck and who can clear it, and what you start on tomorrow. The writing takes a few minutes. The hard part is having an accurate record of the day to write from.
You can build that record by hand with a daily work log and pay nothing. If you need billable hours, Toggl or Timing fit better. If you want free, local tracking on any operating system, ActivityWatch does the job. If you are on a Mac and want the day written into a readable timeline you can correct and export, Dayflow is free to try. Whatever you pick, check the summary before you hit send.
Include three to five outcomes stated as results, any blockers with the person who can clear them, and tomorrow's first task. Add a link to the work where one exists, such as a pull request, document or ticket. Leave out a list of every meeting and message. The reader wants to know whether things are on track and whether they need to act, so lead with that.
Short enough to read in under a minute. For most people that means one short section each for done, blocked and next, with a line or two per item. If the report keeps growing, move detail into linked documents and keep the report itself as a summary. A long report that nobody reads helps no one, including you.
A standup is usually spoken, happens at the start of the day and focuses on coordination with the team. An end-of-day report is written, sent at the close of the day and works as a record a manager or client can read later. Many teams use one or the other. The same running log of your day can feed both.
Do not rely on memory at 6 p.m. Keep a running log during the day, either by writing one line each time you switch tasks or by letting software record it. A timer app like Toggl records what you start and stop. Automatic tools like Timing, ActivityWatch or Dayflow record activity in the background so you review instead of recall.
Not well. Dayflow writes a readable timeline but has no invoicing, billable rates or payroll approvals. If your report has to show billable hours to a client, Timing or Toggl is the better choice. Timing tracks billing status and has report rounding, and Toggl supports billable rates on paid plans. Dayflow fits better as a memory aid than as a billing system.
ActivityWatch is free, open source under MPL-2.0, and runs on Windows, Linux, Mac and Android. It records your active app, window title and away-from-keyboard time, and stores the data on your own device. It does not list AI summaries, so you still write the report yourself from its data. Dayflow is Mac only and will not help here.
Yes, and say why. A day lost to a broken build, an outage or back-to-back meetings is useful information for your manager. Write what you attempted, what blocked progress and what you need to move forward. Skipping the report on bad days teaches readers that silence means trouble, which is worse than an honest short note.
According to Toggl's own documentation, it does not take screenshots or record keystrokes. It works with manual and real-time timers, timesheets and calendar integrations, and the vendor also lists automated background tracking and a timeline in the desktop app. That makes it a reasonable pick if your workplace or clients object to screen capture.
AI can draft it, but you should edit it before sending. Summaries from any tool can miss work or misread what you were doing, and Dayflow's own documentation says to check outcomes before sharing. Also note that sending your activity data to a cloud assistant means that data leaves your Mac, even if the tracker stores it locally.
Dayflow is $0 and open source. Full recordings stay on your Mac, with local AI available for on-device analysis.
Download for MacOS macOS 14+ · MIT licensed · no account required