<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Duaer Team</title>
    <description>The latest articles on DEV Community by Duaer Team (@duaerteam).</description>
    <link>https://dev.to/duaerteam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4167742%2F192a8190-11dc-41ed-9e0c-7bc8dbad7ea5.png</url>
      <title>DEV Community: Duaer Team</title>
      <link>https://dev.to/duaerteam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/duaerteam"/>
    <language>en</language>
    <item>
      <title>Onboarding buddy program: what the buddy does, how much time it takes, and what they don't answer</title>
      <dc:creator>Duaer Team</dc:creator>
      <pubDate>Mon, 12 Oct 2026 01:23:53 +0000</pubDate>
      <link>https://dev.to/duaerteam/onboarding-buddy-program-what-the-buddy-does-how-much-time-it-takes-and-what-they-dont-answer-314</link>
      <guid>https://dev.to/duaerteam/onboarding-buddy-program-what-the-buddy-does-how-much-time-it-takes-and-what-they-dont-answer-314</guid>
      <description>&lt;p&gt;This article is AI-generated.&lt;/p&gt;

&lt;p&gt;An onboarding buddy is the colleague a new starter can ask the small questions: where things are, how people actually do things here, who to talk to. When it works, new people settle faster and managers get fewer interruptions. When it doesn't, the buddy is either a name on a welcome email who never gets asked anything, or the person who ends up answering every question for three months.&lt;/p&gt;

&lt;p&gt;This article covers how to set up a buddy program that holds up: what the role is, how much time to set aside, and a clear split between what the buddy answers and what should already be written down. It isn't about planning the first 30 days of training or about handling repeated questions in general. Examples are illustrative, with placeholder names.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the role in one paragraph
&lt;/h2&gt;

&lt;p&gt;Write down what the buddy is for before you pick anyone. A version you can adapt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The buddy helps the new starter find their way around in the first few weeks: introductions, everyday how-we-do-it questions, and pointing to the right document or person. The buddy is not the new starter's manager or trainer, and doesn't assess their work. (illustrative)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That last sentence matters. If the role isn't separated from training and management, the buddy ends up doing all three.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a buddy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not the manager.&lt;/strong&gt; New people ask different questions when the person can't judge them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Been here long enough to know where things are,&lt;/strong&gt; but close enough to the new starter's work to be useful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Willing.&lt;/strong&gt; Ask, don't assign. A reluctant buddy is worse than none.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Has the time.&lt;/strong&gt; Agree it with their manager, so it isn't squeezed into lunch breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Set the time explicitly
&lt;/h2&gt;

&lt;p&gt;A buddy program fails quietly when nobody budgets the time. Agree on a rough shape up front, for example (illustrative):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Period&lt;/th&gt;
&lt;th&gt;Buddy time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Week 1&lt;/td&gt;
&lt;td&gt;A short check-in each day&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weeks 2–4&lt;/td&gt;
&lt;td&gt;Two check-ins a week&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weeks 5–8&lt;/td&gt;
&lt;td&gt;One check-in a week, then end&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Put an end date on it. It gives both people permission to stop, and it's a natural point to ask what worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the buddy answers, and what they don't
&lt;/h2&gt;

&lt;p&gt;This split is the core of the program. Write it as a short table and give it to both people on day one.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question type&lt;/th&gt;
&lt;th&gt;Who answers&lt;/th&gt;
&lt;th&gt;Example (illustrative)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Where is something / who do I ask&lt;/td&gt;
&lt;td&gt;Buddy, then point to the document&lt;/td&gt;
&lt;td&gt;"Where are the expense forms?"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How do people usually do this here&lt;/td&gt;
&lt;td&gt;Buddy&lt;/td&gt;
&lt;td&gt;"Do people book meeting rooms or just use them?"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rules, policies, procedures&lt;/td&gt;
&lt;td&gt;The written document; buddy shows where it is&lt;/td&gt;
&lt;td&gt;"What's the approval step for purchases?"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How to do my actual job&lt;/td&gt;
&lt;td&gt;Manager or trainer&lt;/td&gt;
&lt;td&gt;"How do I prepare the weekly report?"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anything about workload, priorities or personal matters&lt;/td&gt;
&lt;td&gt;Manager&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The buddy's most useful habit is "let me show you where that's written", not "here's the answer". Each time they point to a document, the new starter learns where to look next time. Each time they answer from memory, the knowledge stays in their head.&lt;/p&gt;

&lt;h2&gt;
  
  
  A buddy checklist
&lt;/h2&gt;

&lt;p&gt;Give the buddy a one-page list (illustrative):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Day 1: introduce the new starter to the people they'll work with most&lt;/li&gt;
&lt;li&gt;[ ] Day 1: show where the team's shared documents and procedures live&lt;/li&gt;
&lt;li&gt;[ ] Week 1: lunch or coffee, no agenda&lt;/li&gt;
&lt;li&gt;[ ] Week 2: ask what they've had trouble finding&lt;/li&gt;
&lt;li&gt;[ ] Week 4: ask which questions they've asked more than once&lt;/li&gt;
&lt;li&gt;[ ] End: pass the list of repeated questions to the manager&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Turn repeated questions into documents
&lt;/h2&gt;

&lt;p&gt;The last item on that checklist is where a buddy program pays off beyond one person. If a new starter asked the same thing twice, or the buddy answered it from memory, the answer probably isn't written down anywhere obvious. The manager decides whether to add it to the onboarding documents. The next new starter then finds it without asking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common pitfalls
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Buddy becomes trainer.&lt;/strong&gt; Keep the split table visible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No end date.&lt;/strong&gt; The relationship drifts and neither person knows if it's still on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buddy is the only source.&lt;/strong&gt; If every answer comes from one person, nothing gets written down.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No feedback.&lt;/strong&gt; Ask both people at the end what they'd change.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrap-up
&lt;/h2&gt;

&lt;p&gt;A buddy program works when the role is narrow, the time is agreed, and the buddy points to documents rather than replacing them. Set those three things up and the program helps the next new starter too, not just this one.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>onboarding</category>
      <category>management</category>
      <category>career</category>
    </item>
    <item>
      <title>How to track follow-up tasks so nothing quietly stalls</title>
      <dc:creator>Duaer Team</dc:creator>
      <pubDate>Sun, 11 Oct 2026 01:18:31 +0000</pubDate>
      <link>https://dev.to/duaerteam/how-to-track-follow-up-tasks-so-nothing-quietly-stalls-5ghk</link>
      <guid>https://dev.to/duaerteam/how-to-track-follow-up-tasks-so-nothing-quietly-stalls-5ghk</guid>
      <description>&lt;p&gt;Follow-up work is the stuff that happens after the "real" task: chasing a reply, checking that a fix actually shipped, confirming that a request someone promised to handle got handled. It's rarely hard. It just slips. One person in an automation forum listed the usual casualties: "a client wrote and nobody replied, a deal sat untouched for weeks, a payment was started and never finished."&lt;/p&gt;

&lt;p&gt;None of those are failures of skill. They are failures of tracking. This article walks through a simple, tool-agnostic way to track follow-up tasks for yourself or a small team: what columns to keep, what each status means, how to run a weekly overdue review, and a formula you can drop into a spreadsheet to flag what's late. It isn't about meeting action items specifically; it covers any loose end that needs someone to come back to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why follow-ups get lost
&lt;/h2&gt;

&lt;p&gt;Follow-ups have three properties that make them easy to drop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;They're triggered by something else.&lt;/strong&gt; You send an email and the follow-up is "check for a reply on Thursday". The original task feels finished, so the follow-up never gets written down.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;They depend on other people.&lt;/strong&gt; You can't complete them alone, so they sit in a vague "waiting" state with no date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;They're small.&lt;/strong&gt; Nobody wants a project plan for "ping the supplier again", so they live in memory, chat history or a sticky note.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A tracker fixes all three if it does one thing well: every follow-up gets a line, an owner and a date the moment it's created.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Pick one place
&lt;/h2&gt;

&lt;p&gt;The specific tool matters much less than having exactly one. A spreadsheet, a task app, a plain text file—any of these works if it's the only place follow-ups live. The common failure is a split: some in email flags, some in a notebook, some in a chat "saved messages" list. Then the weekly review has to search four places and nobody does it.&lt;/p&gt;

&lt;p&gt;If you're tracking for a team, use a shared spreadsheet or shared list everyone can see. Visibility is half the value: people follow up faster when the item has their name on it in public.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Use a small set of columns
&lt;/h2&gt;

&lt;p&gt;Here is a layout that works for most people. Keep it this small at first; add columns only when you notice you keep needing the information.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;What to write&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ID&lt;/td&gt;
&lt;td&gt;A short number (F-001, F-002…)&lt;/td&gt;
&lt;td&gt;Lets you refer to an item in chat without retyping it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What&lt;/td&gt;
&lt;td&gt;The follow-up as an action: "Get signed quote back from Supplier X"&lt;/td&gt;
&lt;td&gt;A verb forces clarity about what "done" is&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;td&gt;One name&lt;/td&gt;
&lt;td&gt;Two owners means no owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiting on&lt;/td&gt;
&lt;td&gt;Who or what you're waiting for, if anyone&lt;/td&gt;
&lt;td&gt;Separates "my move" from "their move"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Created&lt;/td&gt;
&lt;td&gt;Date the item was added&lt;/td&gt;
&lt;td&gt;Shows how long things really take&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next check&lt;/td&gt;
&lt;td&gt;The date you'll look at it again&lt;/td&gt;
&lt;td&gt;The single most important column&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;One of the defined statuses below&lt;/td&gt;
&lt;td&gt;Lets you filter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Done when&lt;/td&gt;
&lt;td&gt;One sentence describing completion&lt;/td&gt;
&lt;td&gt;Stops items closing too early&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notes&lt;/td&gt;
&lt;td&gt;Latest update, with date&lt;/td&gt;
&lt;td&gt;History without a separate log&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Illustrative rows:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;th&gt;Waiting on&lt;/th&gt;
&lt;th&gt;Created&lt;/th&gt;
&lt;th&gt;Next check&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Done when&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;F-014&lt;/td&gt;
&lt;td&gt;Get signed quote back&lt;/td&gt;
&lt;td&gt;Person A&lt;/td&gt;
&lt;td&gt;Supplier X&lt;/td&gt;
&lt;td&gt;2026-10-02&lt;/td&gt;
&lt;td&gt;2026-10-08&lt;/td&gt;
&lt;td&gt;Waiting&lt;/td&gt;
&lt;td&gt;Signed PDF saved in contracts folder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F-015&lt;/td&gt;
&lt;td&gt;Confirm login fix works for user&lt;/td&gt;
&lt;td&gt;Person B&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;2026-10-09&lt;/td&gt;
&lt;td&gt;2026-10-12&lt;/td&gt;
&lt;td&gt;Open&lt;/td&gt;
&lt;td&gt;User confirms they can log in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F-016&lt;/td&gt;
&lt;td&gt;Reply to client question about invoice&lt;/td&gt;
&lt;td&gt;Person A&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;2026-10-10&lt;/td&gt;
&lt;td&gt;2026-10-20&lt;/td&gt;
&lt;td&gt;Open&lt;/td&gt;
&lt;td&gt;Reply sent and client acknowledged&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Note the column called &lt;strong&gt;Next check&lt;/strong&gt; rather than "Due". Many follow-ups don't have a real deadline, but every one of them needs a date when somebody looks again. If you leave this blank, the item is already lost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Define your statuses and stick to them
&lt;/h2&gt;

&lt;p&gt;Statuses only help if everyone means the same thing. Four is usually enough:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open&lt;/strong&gt; — the owner needs to act next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Waiting&lt;/strong&gt; — someone else needs to act; the owner checks again on the next-check date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocked&lt;/strong&gt; — it can't move until something specific changes; the note says what.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Done&lt;/strong&gt; — the "Done when" sentence is true. Not "mostly", not "I sent it".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two rules make statuses trustworthy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Every status change gets a dated note.&lt;/strong&gt; "2026-10-08 chased by email, they said Friday" is enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Waiting always has a next-check date.&lt;/strong&gt; "Waiting" without a date is how deals sit untouched for weeks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Avoid adding statuses like "In progress" or "Almost done". They feel informative but don't tell anyone what to do next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Capture follow-ups at the moment they're created
&lt;/h2&gt;

&lt;p&gt;The tracker is only as good as what goes into it. Build the habit of adding a line at the exact moment a follow-up is born:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You send an email that needs a reply → add a line with next check in two or three working days.&lt;/li&gt;
&lt;li&gt;Someone promises to do something for you → add a line with them in "Waiting on".&lt;/li&gt;
&lt;li&gt;You hand something to a colleague → add a line, owner is them, and tell them.&lt;/li&gt;
&lt;li&gt;A ticket or request is "fixed" → add a line to confirm with the requester.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If adding a line takes more than thirty seconds, the tracker is too complicated. Trim columns until it doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Flag overdue items automatically
&lt;/h2&gt;

&lt;p&gt;A spreadsheet can do the nagging for you. Add a &lt;strong&gt;Flag&lt;/strong&gt; column with a formula that looks at the status and the next-check date. Assuming Next check is in column F and Status in column G, put this in row 2 and fill down:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(G2="Done","",IF(F2&amp;lt;TODAY(),"Overdue",IF(F2-TODAY()&amp;lt;=2,"Due soon","")))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Done items show nothing.&lt;/li&gt;
&lt;li&gt;If the next-check date has passed, it shows &lt;strong&gt;Overdue&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;If it's within two days, it shows &lt;strong&gt;Due soon&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Otherwise it stays blank.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I tested the logic in LibreOffice Calc with a fixed reference date of 2026-10-11 in place of TODAY(): a Waiting item dated 2026-10-08 showed Overdue, an Open item dated 2026-10-12 showed Due soon, an Open item dated 2026-10-20 stayed blank, and a Done item dated 2026-10-01 stayed blank. Depending on your locale, LibreOffice may expect semicolons instead of commas between arguments.&lt;/p&gt;

&lt;p&gt;Add conditional formatting so "Overdue" turns red and "Due soon" turns amber, then sort or filter by the Flag column. That view is your daily list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Run a weekly overdue review
&lt;/h2&gt;

&lt;p&gt;Daily glances catch the urgent items. A weekly review keeps the tracker honest. Set a fixed fifteen-minute slot, same day each week, and go through it in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Overdue first.&lt;/strong&gt; For each one: act now, set a new next-check date with a note explaining why, or close it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Waiting items.&lt;/strong&gt; Has the other person gone quiet twice? Change the approach: call instead of emailing, or ask whoever can unblock it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocked items.&lt;/strong&gt; Is the blocker still real? If it's been blocked for more than two weeks, raise it with someone who can decide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Items with no next-check date.&lt;/strong&gt; There shouldn't be any. Add one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Done items.&lt;/strong&gt; Move them to a "Closed" sheet so the active list stays short. Don't delete them; the history is useful.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a team, do this review together for the overdue items only, and keep it brisk. The goal is decisions, not status reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Decide when to escalate
&lt;/h2&gt;

&lt;p&gt;Some follow-ups will never close by politeness alone. A simple rule removes the awkwardness of deciding each time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Second missed next-check&lt;/strong&gt; on a Waiting item → change channel (phone, a direct message, or in person).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third missed next-check&lt;/strong&gt; → tell the person who asked for the work, or someone who can make the call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocked for two weekly reviews&lt;/strong&gt; → escalate with a one-line summary: what's needed, from whom, since when.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Write the rule at the top of the tracker so it's not personal when you apply it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A checklist for a healthy tracker
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Every item has exactly one owner.&lt;/li&gt;
&lt;li&gt;[ ] Every non-Done item has a next-check date.&lt;/li&gt;
&lt;li&gt;[ ] Every Waiting item says who it's waiting on.&lt;/li&gt;
&lt;li&gt;[ ] Every item has a "Done when" sentence.&lt;/li&gt;
&lt;li&gt;[ ] The Flag column shows no overdue items older than a week.&lt;/li&gt;
&lt;li&gt;[ ] Done items have been moved out this week.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common mistakes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tracking tasks instead of follow-ups.&lt;/strong&gt; The tracker becomes a full to-do list and the follow-ups drown. Fix: only add items that depend on coming back later or on someone else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared ownership.&lt;/strong&gt; "Person A / Person B" means each assumes the other did it. Fix: one name; mention the second person in Notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Closing on effort, not outcome.&lt;/strong&gt; "Emailed them" isn't done. Fix: the "Done when" column.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skipping the weekly review when busy.&lt;/strong&gt; That's exactly when things slip. Fix: keep it to fifteen minutes and review overdue items only if time is short.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endless date pushing.&lt;/strong&gt; Moving next check forward without a note hides a stuck item. Fix: every date change needs a dated note, and the escalation rule applies after two misses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;Tracking follow-up tasks comes down to a handful of habits: one place, one owner, a next-check date on everything, clear statuses, a formula that flags what's late, and a short weekly review. None of it needs a special tool. Start with the columns above, add your current loose ends today, and run your first review at the end of the week.&lt;/p&gt;

&lt;p&gt;This article was drafted with AI assistance.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>management</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Meeting action items tracker: one table, one owner per row, overdue first next time</title>
      <dc:creator>Duaer Team</dc:creator>
      <pubDate>Sat, 10 Oct 2026 23:35:19 +0000</pubDate>
      <link>https://dev.to/duaerteam/meeting-action-items-tracker-one-table-one-owner-per-row-overdue-first-next-time-nbl</link>
      <guid>https://dev.to/duaerteam/meeting-action-items-tracker-one-table-one-owner-per-row-overdue-first-next-time-nbl</guid>
      <description>&lt;p&gt;This article is AI-generated.&lt;/p&gt;

&lt;p&gt;Meeting notes often end with a few lines like "maintenance to look at it", "follow up with the carrier", "someone to update the checklist". A week later nobody can say which of those happened. The notes weren't wrong. They just didn't say who, by when, or what finished looks like.&lt;/p&gt;

&lt;p&gt;This article gives you a tracker layout to replace the to-do section of your meeting notes: the columns, a worked before and after, and how to open the next meeting by walking through overdue items first. How to nudge and escalate between meetings, and how to track personal tasks outside of meetings, are separate topics. Names and items below are illustrative.&lt;/p&gt;

&lt;h2&gt;
  
  
  The columns
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;What goes in it&lt;/th&gt;
&lt;th&gt;What not to write&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A ID&lt;/td&gt;
&lt;td&gt;A running number that is never reused, e.g. WH-118&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B Raised&lt;/td&gt;
&lt;td&gt;Which meeting it came from&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C Action&lt;/td&gt;
&lt;td&gt;One action, starting with a verb&lt;/td&gt;
&lt;td&gt;"Packaging issue"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D Owner&lt;/td&gt;
&lt;td&gt;One person's name&lt;/td&gt;
&lt;td&gt;"Procurement", "Person A and Person B"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E Due date&lt;/td&gt;
&lt;td&gt;A real date&lt;/td&gt;
&lt;td&gt;"ASAP", "next week"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F Done when&lt;/td&gt;
&lt;td&gt;The visible result that closes it&lt;/td&gt;
&lt;td&gt;"follow up", "look into"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;G Status&lt;/td&gt;
&lt;td&gt;Open, In progress, Blocked, Done&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;H Last update&lt;/td&gt;
&lt;td&gt;Date of the latest note&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I Notes&lt;/td&gt;
&lt;td&gt;One line: what's blocking it, or the new date&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J Days overdue&lt;/td&gt;
&lt;td&gt;Formula&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K Sort order&lt;/td&gt;
&lt;td&gt;Formula&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;One owner per row.&lt;/strong&gt; Two names means each person assumes the other is doing it. If several people are involved, name one owner and list the others as "with" in the notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Done when" is the column people skip.&lt;/strong&gt; "Follow up with the customer" can stay open for a month. "Send the complaint analysis to Person A" is either sent or it isn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two formulas
&lt;/h2&gt;

&lt;p&gt;Days overdue, J2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(OR(G2="Done",E2=""),"",IF(E2&amp;lt;TODAY(),TODAY()-E2,""))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sort order, K2, so overdue rows float to the top and rows with no due date don't hide at the bottom:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(G2="Done",4,IF(E2="",1,IF(E2&amp;lt;TODAY(),2,3)))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1 is "missing a due date", 2 is "overdue", 3 is "on time", 4 is "done". Sort the sheet by column K, then by due date. Rows with no owner or no due date are the ones to fix before you even look at overdue items, because they will never become overdue on their own.&lt;/p&gt;

&lt;p&gt;With illustrative data, assuming today is 2026-10-09:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Raised&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;th&gt;Due&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Days overdue&lt;/th&gt;
&lt;th&gt;Order&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WH-101&lt;/td&gt;
&lt;td&gt;2026-09-25&lt;/td&gt;
&lt;td&gt;Person A&lt;/td&gt;
&lt;td&gt;2026-10-02&lt;/td&gt;
&lt;td&gt;Open&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-102&lt;/td&gt;
&lt;td&gt;2026-09-25&lt;/td&gt;
&lt;td&gt;Person B&lt;/td&gt;
&lt;td&gt;2026-10-16&lt;/td&gt;
&lt;td&gt;In progress&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-103&lt;/td&gt;
&lt;td&gt;2026-09-25&lt;/td&gt;
&lt;td&gt;Person C&lt;/td&gt;
&lt;td&gt;2026-10-05&lt;/td&gt;
&lt;td&gt;Done&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-110&lt;/td&gt;
&lt;td&gt;2026-10-02&lt;/td&gt;
&lt;td&gt;Person B&lt;/td&gt;
&lt;td&gt;2026-10-07&lt;/td&gt;
&lt;td&gt;Blocked&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-111&lt;/td&gt;
&lt;td&gt;2026-10-02&lt;/td&gt;
&lt;td&gt;Person D&lt;/td&gt;
&lt;td&gt;(blank)&lt;/td&gt;
&lt;td&gt;Open&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;(illustrative data; formulas tested on this sheet in LibreOffice; the syntax is the same in Excel, but I haven't run each one in Excel itself)&lt;/p&gt;

&lt;p&gt;WH-111 sorts above the overdue rows on purpose: until it has a due date, it can't be tracked at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before and after
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Before (illustrative), from a weekly warehouse meeting:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Action items: Dock door 4 keeps jamming, maintenance to look at it. Late carrier pickups again this week, follow up. Returns checklist is out of date, someone to update. Label printer on packing line 2, ASAP. Person A and Person B to sort out the cycle count backlog.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;After (illustrative):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;th&gt;Due&lt;/th&gt;
&lt;th&gt;Done when&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WH-118&lt;/td&gt;
&lt;td&gt;Book a repair for dock door 4&lt;/td&gt;
&lt;td&gt;Person C&lt;/td&gt;
&lt;td&gt;2026-10-12&lt;/td&gt;
&lt;td&gt;Repair date confirmed in the maintenance log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-119&lt;/td&gt;
&lt;td&gt;Send the carrier a list of this week's late pickups&lt;/td&gt;
&lt;td&gt;Person A&lt;/td&gt;
&lt;td&gt;2026-10-10&lt;/td&gt;
&lt;td&gt;List sent, reply requested by 2026-10-14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-120&lt;/td&gt;
&lt;td&gt;Update the returns checklist to the current process&lt;/td&gt;
&lt;td&gt;Person D&lt;/td&gt;
&lt;td&gt;2026-10-16&lt;/td&gt;
&lt;td&gt;New version saved in "warehouse/checklists", old one moved to "retired"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-121&lt;/td&gt;
&lt;td&gt;Get the packing line 2 label printer fixed or swapped&lt;/td&gt;
&lt;td&gt;Person B&lt;/td&gt;
&lt;td&gt;2026-10-10&lt;/td&gt;
&lt;td&gt;Line 2 printing labels again&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WH-122&lt;/td&gt;
&lt;td&gt;Clear the cycle count backlog for aisles 1–6&lt;/td&gt;
&lt;td&gt;Person A (with: Person B)&lt;/td&gt;
&lt;td&gt;2026-10-20&lt;/td&gt;
&lt;td&gt;Counts entered for aisles 1–6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;(illustrative)&lt;/p&gt;

&lt;p&gt;Every "before" line was a real concern. What was missing: "maintenance" and "someone" aren't people, "ASAP" isn't a date, "follow up" has no end, and two names on one line meant nobody owned it. The "after" version fixes those four things and nothing else.&lt;/p&gt;

&lt;p&gt;Anything with no action and no owner, such as "everyone please keep aisles clear", stays in the notes as a reminder and stays out of the tracker.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to run the tracker at the next meeting
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Before the meeting&lt;/strong&gt;, the person who writes the minutes sorts the tracker by column K and filters out Done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open the meeting with the tracker&lt;/strong&gt;, in this order: rows with no owner or no due date, then overdue, then due before the next meeting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overdue rows get a new date in the notes&lt;/strong&gt;, not in the due date column. Keep the original due date so the days-overdue column stays honest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A row is only Done when its "done when" is met.&lt;/strong&gt; "Mostly done" stays In progress with a note.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New actions from this meeting get added before you leave the room&lt;/strong&gt;, or within the same day. A tracker updated three days later has already lost the details.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep this part short. If reviewing the tracker takes the whole meeting, the tracker has too many open rows, which is itself useful information.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few rules that keep it usable
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One tracker for the meeting series&lt;/strong&gt;, not a fresh list inside each set of minutes. Minutes link to the tracker by ID: "see WH-120".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IDs never get reused.&lt;/strong&gt; When an action is split, the original stays and the new part gets a new ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocked needs a name.&lt;/strong&gt; A Blocked row should say in the notes who it's waiting on, otherwise it sits there indefinitely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File name and location, not "see attachment".&lt;/strong&gt; If an action produces a document, the notes say where it is, for example &lt;code&gt;warehouse/checklists/returns-checklist_v4&lt;/code&gt; (illustrative).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>management</category>
      <category>spreadsheets</category>
      <category>meetings</category>
    </item>
    <item>
      <title>How to combine multiple Excel files with different columns into one fixed report, and check the totals</title>
      <dc:creator>Duaer Team</dc:creator>
      <pubDate>Thu, 08 Oct 2026 01:16:56 +0000</pubDate>
      <link>https://dev.to/duaerteam/how-to-combine-multiple-excel-files-with-different-columns-into-one-fixed-report-and-check-the-64m</link>
      <guid>https://dev.to/duaerteam/how-to-combine-multiple-excel-files-with-different-columns-into-one-fixed-report-and-check-the-64m</guid>
      <description>&lt;p&gt;If you work in operations, admin, a PMO or a budget office, you probably know the routine: every month or quarter, several projects, departments or regions each send you their own file or sheet, and you roll them up into one report with a fixed layout that goes to leadership or finance.&lt;/p&gt;

&lt;p&gt;Disclosure: I'm on the Duaer team, and this article was drafted with AI help.&lt;/p&gt;

&lt;p&gt;The merge itself is rarely the hard part. The hard parts are that no two sheets look alike, and that once the report is done, nobody can quite explain why the total is the number it is. This article walks through a method you can reuse every period: a column mapping table, a fixed set of cleaning rules, an exceptions table that separates "included after a fix" from "excluded", a reconciliation page that ties every number back to its source, and an acceptance checklist you can copy.&lt;/p&gt;

&lt;p&gt;The images below come from an illustrative demo workbook we built: four regional source sheets, a merged detail sheet, an exceptions sheet, a summary report and a checks page. Every number in it is randomly generated, and row 1 of every sheet says so. None of it comes from a real business or a real transaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "everyone fills in their own sheet" goes wrong
&lt;/h2&gt;

&lt;p&gt;When the sheets come from different people, a predictable set of problems shows up period after period:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Different column names and order.&lt;/strong&gt; One region calls it "Order ID", another "Order #", a third "Order No". Dates are in column A in one sheet and column B in the next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed date formats.&lt;/strong&gt; One sheet has real dates. Another has text such as &lt;code&gt;2026/7/3&lt;/code&gt;. A third has text such as &lt;code&gt;3 Jul 2026&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amounts stored as text with commas.&lt;/strong&gt; The cell shows &lt;code&gt;4,420.00&lt;/code&gt;, but it is a string. SUM quietly skips it, the total comes out low, and nothing warns you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subtotal rows mixed into the data.&lt;/strong&gt; Someone adds a "month total" row at the end of each month. Treat it as an order and that month is counted twice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blank rows and exact duplicates.&lt;/strong&gt; Left over from copy and paste.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One order ID on two rows with different quantities.&lt;/strong&gt; The dangerous one, because there is no way to tell from the sheet which row is right.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these is hard to fix once. The problem is fixing them every period, slightly differently each time. The goal is to turn each fix into a written rule, keep the rules in the workbook, and leave a trail anyone can follow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pin down the report layout.&lt;/strong&gt; The best spec is last period's report, the one that was accepted. Which columns, which breakdown (for example month by region), where the totals sit. Once the layout is fixed, each period only the data changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep an untouched copy of every source sheet.&lt;/strong&gt; Never clean in place. Every check later on goes back to the original, and an edited original cannot be reconciled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count the raw data rows per sheet.&lt;/strong&gt; Everything below the header, including blank and subtotal rows. That count is where your reconciliation starts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decide what you don't want anyone deciding for you.&lt;/strong&gt; If an order appears twice with different quantities, do you want the person doing the merge to pick one, or to list both for you to confirm? I'd strongly suggest the second.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 1: Build a column mapping table
&lt;/h2&gt;

&lt;p&gt;The mapping table answers one question: for every column in every source sheet, which unified field does it feed, and what was done to it? It is the instruction sheet for the job. Next period you follow it again; if someone else takes over, they follow it too.&lt;/p&gt;

&lt;p&gt;Here is the mapping sheet from the illustrative demo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fosvxocfsej5z0w6x8ks3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fosvxocfsej5z0w6x8ks3.png" alt="Column mapping sheet: each source sheet's columns mapped to unified fields, with the handling rule for each field (illustrative data)" width="800" height="137"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A header you can copy (illustrative values, swap in your own column names):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Unified field&lt;/th&gt;
&lt;th&gt;Sheet A column&lt;/th&gt;
&lt;th&gt;Sheet B column&lt;/th&gt;
&lt;th&gt;Sheet C column&lt;/th&gt;
&lt;th&gt;Handling&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Order ID&lt;/td&gt;
&lt;td&gt;Order ID&lt;/td&gt;
&lt;td&gt;Order #&lt;/td&gt;
&lt;td&gt;Order No&lt;/td&gt;
&lt;td&gt;Kept as is; used for duplicate checks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;Date (text, 2026/7/3)&lt;/td&gt;
&lt;td&gt;Order time (text, 3 Jul 2026)&lt;/td&gt;
&lt;td&gt;Converted to real dates, shown as YYYY-MM-DD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Region&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;td&gt;(none)&lt;/td&gt;
&lt;td&gt;Filled in from the sheet name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amount&lt;/td&gt;
&lt;td&gt;Amount&lt;/td&gt;
&lt;td&gt;Amount (text with commas)&lt;/td&gt;
&lt;td&gt;Deal amount&lt;/td&gt;
&lt;td&gt;Commas removed, converted to numbers; blanks go to Exceptions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(not used)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Notes&lt;/td&gt;
&lt;td&gt;Not in the report; kept in the source&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Three rules for a good mapping table:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every column of every sheet appears.&lt;/strong&gt; Columns you don't need are listed as "not used", so the next person knows they were dropped on purpose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Handling column states a rule, not an outcome.&lt;/strong&gt; "Commas removed, converted to numbers" works next period too. "Fixed" doesn't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fields the report needs but the sources lack say where they come from.&lt;/strong&gt; Region from the sheet name, month from the date.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Clean by category, with a fixed rule for each
&lt;/h2&gt;

&lt;p&gt;With columns aligned, work through the problem types in this order. For each one, decide what happens to the row and where the evidence goes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text amounts.&lt;/strong&gt; Strip the thousands separators and convert. A helper column in Excel or Sheets does it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=VALUE(SUBSTITUTE(E3,",",""))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mixed dates.&lt;/strong&gt; Normalise text into something unambiguous before converting. &lt;code&gt;DATEVALUE&lt;/code&gt; on a string like &lt;code&gt;3 Jul 2026&lt;/code&gt; depends on your locale settings and failed in one of our test environments, so for that pattern a lookup on the month abbreviation is safer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=DATE(VALUE(RIGHT(B3,4)),
      MATCH(MID(B3,FIND(" ",B3)+1,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},0),
      VALUE(LEFT(B3,FIND(" ",B3)-1)))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For &lt;code&gt;2026/7/3&lt;/code&gt;, &lt;code&gt;=DATEVALUE(SUBSTITUTE(B3,"/","-"))&lt;/code&gt; worked in our tests. Whatever you use, spot-check a few rows afterwards and confirm every date falls inside the reporting period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subtotal rows.&lt;/strong&gt; They are not orders, so they stay out of the detail. Don't just throw them away, though. A subtotal is a number the sheet owner calculated themselves, which is exactly what you want to reconcile against later. Log each one in the exceptions table as "excluded, used as a cross-check".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blank rows.&lt;/strong&gt; Excluded, but logged with sheet and row number, so the gap between raw rows and merged rows can be explained line by line.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exact duplicates.&lt;/strong&gt; Only treat a row as a duplicate when the order ID and every other column match. Keep the first occurrence and log the rest. Building a key from the whole row is more reliable than checking the order ID alone:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=COUNTIF(K3:K2000,K3)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here column K joins order ID, date, product, quantity and amount with a &lt;code&gt;|&lt;/code&gt; separator; anything above 1 is a duplicate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Same order ID, different quantity.&lt;/strong&gt; Do not guess. "Keep the larger one" or "keep the later one" sounds reasonable, but either way you have made a business decision for someone else. Exclude both rows, list them as waiting for the owner's call, and add the confirmed row back once you hear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blank amounts.&lt;/strong&gt; Two cases. If quantity and unit price are both present, you can fill in quantity × unit price and include the row, but it must be listed in the exceptions table so everyone knows the number was calculated. If quantity is missing too, leave it out and wait; don't estimate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: An exceptions table that separates "included after fix" from "excluded"
&lt;/h2&gt;

&lt;p&gt;Every row that was skipped, recalculated or put on hold goes into one exceptions table. This is the one from the illustrative demo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzkadciygsdexkciepkoj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzkadciygsdexkciepkoj.png" alt="Exceptions sheet: each row lists source sheet, source row, order ID, issue, handling, whether it was included, and the amount involved (illustrative data)" width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Header to copy:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Source sheet&lt;/th&gt;
&lt;th&gt;Source row&lt;/th&gt;
&lt;th&gt;Order ID&lt;/th&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Handling&lt;/th&gt;
&lt;th&gt;Included&lt;/th&gt;
&lt;th&gt;Amount involved&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The "Included" column takes only Yes or No:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Yes&lt;/strong&gt; means the row was corrected and is in the merged detail. The exceptions table is simply telling you it was touched.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No&lt;/strong&gt; means the row is not in the merged result at all: blanks, subtotals, duplicates, and anything waiting for confirmation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this illustrative demo file, the four source sheets hold 6,324 raw data rows in total and the merged detail holds 6,303. The exceptions table has 25 rows: 21 excluded and 4 included after the amount was recalculated as quantity × unit price. The 21 excluded rows are 8 exact duplicates, 3 blank rows, 3 monthly subtotal rows, 3 rows with neither amount nor quantity, and 4 rows belonging to two order IDs that each appear twice with different quantities. Those four are all left out until the owner confirms. 6,303 plus 21 is 6,324, so every raw row is accounted for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: A reconciliation page that explains the total
&lt;/h2&gt;

&lt;p&gt;This is the page worth the most effort. It doesn't ask whether the report looks right; it asks whether a handful of equations hold. The checks page from the illustrative demo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa0wgstn7ohzuqg3vyoww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa0wgstn7ohzuqg3vyoww.png" alt="Checks and acceptance sheet: per-sheet row and amount checks, North sheet subtotals against merged month totals, summary total against merged detail total, and a yes/no checklist (illustrative data)" width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Three groups of checks cover most of the risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Per sheet, rows and amounts.&lt;/strong&gt; One line per source sheet: raw data rows, merged rows, excluded rows from the exceptions table. Then the source amount calculated under the same rules, and the merged amount.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(B3=C3+D3,"Match","Mismatch")
=IF(ROUND(F3-G3,2)=0,"Match","Mismatch")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"Calculated under the same rules" is doing real work there. Text amounts are summed after stripping commas. A sheet with subtotal rows is summed without them. A sheet with recalculated amounts adds those back. A sheet with excluded duplicates subtracts them. If the check uses different rules from the cleaning, it proves nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Existing subtotals against merged totals.&lt;/strong&gt; If a source sheet came with its own monthly subtotals, compare each one with the merged total for the same region and month. When the owner's own arithmetic agrees with your merge, you know no rows went missing or got doubled in between.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Report total against merged detail total.&lt;/strong&gt; Build the summary report entirely from formulas that point at the merged detail (SUMIFS by month and region, for example), so the two totals should be equal by construction. When they aren't, it is usually a month or region label written slightly differently and silently left out.&lt;/p&gt;

&lt;p&gt;In the illustrative demo, that adds up to 12 checks: 4 row checks, 4 amount checks, 3 monthly subtotal checks for the North sheet and 1 grand-total check. All 12 show "Match".&lt;/p&gt;

&lt;h2&gt;
  
  
  Acceptance checklist (answer yes or no to each)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] The column mapping covers every column of every source sheet; unused columns are marked "not used"&lt;/li&gt;
&lt;li&gt;[ ] The report's columns, breakdown and total positions match the agreed fixed layout&lt;/li&gt;
&lt;li&gt;[ ] Every date in the merged detail is a real date and falls inside the period&lt;/li&gt;
&lt;li&gt;[ ] Every amount, quantity and unit price in the merged detail is a number, not text&lt;/li&gt;
&lt;li&gt;[ ] Every merged row carries its source sheet and source row, and a few picked at random trace back correctly&lt;/li&gt;
&lt;li&gt;[ ] Per sheet: raw data rows = merged rows + excluded rows in the exceptions table&lt;/li&gt;
&lt;li&gt;[ ] Per sheet: source amount under the cleaning rules = merged amount&lt;/li&gt;
&lt;li&gt;[ ] Each existing subtotal in a source sheet (if any) = the matching merged total&lt;/li&gt;
&lt;li&gt;[ ] Report grand total = merged detail amount total&lt;/li&gt;
&lt;li&gt;[ ] Every exceptions row states the issue, the handling and Yes/No for included&lt;/li&gt;
&lt;li&gt;[ ] Every recalculated row is listed in the exceptions table with how it was calculated&lt;/li&gt;
&lt;li&gt;[ ] Rows sharing an order ID with different content were not resolved by guessing and are listed for the owner&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hand the report over only when every line is yes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common pitfalls
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Text amounts skipped without warning.&lt;/strong&gt; SUM ignores text and doesn't complain. Add "every amount is a number" to the checklist, and calculate the per-sheet source amount from comma-stripped values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subtotal rows counted as orders.&lt;/strong&gt; They look like data rows with a blank order ID. Pull them out before merging, log them as exceptions, and add "existing subtotal = merged total" to the checklist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deduplicating on order ID alone.&lt;/strong&gt; A repeated ID can be a pasted copy or two genuinely different records. Remove only exact duplicates automatically; list the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dates landing in the wrong month.&lt;/strong&gt; Day and month get swapped, and 3 July becomes 7 March. Check that every date is inside the period, and compare row counts per month with last period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hand-typed numbers in the report.&lt;/strong&gt; Typed in under deadline pressure, they break the moment next period's data arrives. Keep every report cell a formula, and say so in the checklist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Logging what was dropped but not what was recalculated.&lt;/strong&gt; Recalculated rows feel finished because they're in the result. Log both kinds, with the Included column filled in every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handing it off
&lt;/h2&gt;

&lt;p&gt;If you pass this job to a colleague or to an AI, give them three things up front: the original source sheets, last period's accepted report, and your preference for rows that need confirmation. Ask for the mapping table, the exceptions table and the reconciliation page back, then go down the checklist.&lt;/p&gt;

</description>
      <category>excel</category>
      <category>spreadsheets</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
