<?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: Ponte Sheets</title>
    <description>The latest articles on DEV Community by Ponte Sheets (@pontesheets).</description>
    <link>https://dev.to/pontesheets</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%2F4195429%2Fb3c8f518-9a1a-4d27-916a-c99b29302b91.png</url>
      <title>DEV Community: Ponte Sheets</title>
      <link>https://dev.to/pontesheets</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pontesheets"/>
    <language>en</language>
    <item>
      <title>Free Freelancer Bookkeeping Spreadsheet for Google Sheets (2026): What It Needs and How to Build One</title>
      <dc:creator>Ponte Sheets</dc:creator>
      <pubDate>Wed, 21 Oct 2026 14:23:52 +0000</pubDate>
      <link>https://dev.to/pontesheets/free-freelancer-bookkeeping-spreadsheet-for-google-sheets-2026-what-it-needs-and-how-to-build-one-di1</link>
      <guid>https://dev.to/pontesheets/free-freelancer-bookkeeping-spreadsheet-for-google-sheets-2026-what-it-needs-and-how-to-build-one-di1</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I'm the maker of Ponte Sheets. Not tax advice.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most freelancers don't need accounting software. They need one place to write down money in and money out, and to see at a glance whether the business made money this month. A spreadsheet does that well, and Google Sheets is free.&lt;/p&gt;

&lt;p&gt;This post covers what a freelancer bookkeeping spreadsheet actually needs, how to build a basic one yourself with a few formulas, and, if you'd rather skip the setup, where to get a free ready-made one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a freelancer bookkeeping sheet needs
&lt;/h2&gt;

&lt;p&gt;You can add plenty more, but these five pieces are the core:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A monthly income and expense log.&lt;/strong&gt; One row per transaction: date, description, category, amount, and whether it's income or an expense. Twelve monthly tabs keep each month short and easy to scan. A single long tab works too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Categories.&lt;/strong&gt; "Software," "Equipment," "Travel," "Client work" and so on. Categories turn a pile of transactions into something you can read, and they're what your accountant will ask for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Net profit.&lt;/strong&gt; Income minus expenses. It's the number that tells you how the business is really doing, because revenue alone doesn't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A monthly chart.&lt;/strong&gt; Income vs. expenses by month. Slow months and creeping costs jump out of a chart much faster than out of a table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A year summary for your accountant.&lt;/strong&gt; Totals by category for the year, on one tab. At tax time you send that one page instead of rebuilding everything from bank statements.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to set one up yourself
&lt;/h2&gt;

&lt;p&gt;Here's a simple version you can build in about 20 minutes. &lt;strong&gt;The column layout below is a generic example for this tutorial. It isn't the layout of any particular template.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: The transaction log
&lt;/h3&gt;

&lt;p&gt;Create a tab called &lt;code&gt;Log&lt;/code&gt; with these headers in row 1 (generic example):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;A: Date&lt;/th&gt;
&lt;th&gt;B: Description&lt;/th&gt;
&lt;th&gt;C: Category&lt;/th&gt;
&lt;th&gt;D: Type&lt;/th&gt;
&lt;th&gt;E: Amount&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2026-01-05&lt;/td&gt;
&lt;td&gt;Website project&lt;/td&gt;
&lt;td&gt;Client work&lt;/td&gt;
&lt;td&gt;Income&lt;/td&gt;
&lt;td&gt;2000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-01-09&lt;/td&gt;
&lt;td&gt;Design software&lt;/td&gt;
&lt;td&gt;Software&lt;/td&gt;
&lt;td&gt;Expense&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Format column A as a date (Format → Number → Date), or the month formulas below won't work.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Data → Data validation&lt;/strong&gt; on column D so it only accepts &lt;code&gt;Income&lt;/code&gt; or &lt;code&gt;Expense&lt;/code&gt;. Typos like "income " with a trailing space quietly break your totals.&lt;/li&gt;
&lt;li&gt;Do the same for column C with a dropdown of your categories. Keep the list on a separate &lt;code&gt;Categories&lt;/code&gt; tab so it's easy to edit.&lt;/li&gt;
&lt;li&gt;Enter every amount as a positive number. The Type column decides whether it counts as income or an expense.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Monthly totals with SUMIFS
&lt;/h3&gt;

&lt;p&gt;Create a &lt;code&gt;Summary&lt;/code&gt; tab. Put the first day of each month in column A (&lt;code&gt;2026-01-01&lt;/code&gt;, &lt;code&gt;2026-02-01&lt;/code&gt;, ... &lt;code&gt;2026-12-01&lt;/code&gt;), then add headers: B = Income, C = Expenses, D = Net.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Income for the month&lt;/strong&gt; (in B2):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIFS(Log!$E:$E, Log!$D:$D, "Income", Log!$A:$A, "&amp;gt;="&amp;amp;A2, Log!$A:$A, "&amp;lt;"&amp;amp;EDATE(A2,1))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This adds up every amount where the type is Income and the date falls between the first of this month and the first of next month. &lt;code&gt;EDATE(A2,1)&lt;/code&gt; just means "one month after A2."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expenses for the month&lt;/strong&gt; (in C2): the same formula with &lt;code&gt;"Expense"&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIFS(Log!$E:$E, Log!$D:$D, "Expense", Log!$A:$A, "&amp;gt;="&amp;amp;A2, Log!$A:$A, "&amp;lt;"&amp;amp;EDATE(A2,1))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Net profit&lt;/strong&gt; (in D2):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=B2-C2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Net = income − expenses. Fill all three formulas down to row 13 and you have a month-by-month profit table.&lt;/p&gt;

&lt;p&gt;For year totals, add a row underneath:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUM(B2:B13)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and the same for columns C and D.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Totals by category
&lt;/h3&gt;

&lt;p&gt;On the &lt;code&gt;Categories&lt;/code&gt; tab, list your categories in column A. In column B:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIFS(Log!$E:$E, Log!$C:$C, A2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That gives you the year total per category. To limit it to one year, add the date conditions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIFS(Log!$E:$E, Log!$C:$C, A2, Log!$A:$A, "&amp;gt;="&amp;amp;DATE(2026,1,1), Log!$A:$A, "&amp;lt;"&amp;amp;DATE(2027,1,1))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the year summary for your accountant: one column of categories, one column of totals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: The monthly chart
&lt;/h3&gt;

&lt;p&gt;Select &lt;code&gt;Summary!A1:C13&lt;/code&gt;, then &lt;strong&gt;Insert → Chart&lt;/strong&gt;. Pick a column chart. You'll get income and expense bars side by side for each month. If you want profit as a line on top, include column D and switch to a combo chart in the chart editor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common mistakes to avoid
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dates stored as text.&lt;/strong&gt; If a SUMIFS returns 0 when it shouldn't, check that column A holds real dates. &lt;code&gt;=ISNUMBER(A2)&lt;/code&gt; should return TRUE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixing personal and business transactions.&lt;/strong&gt; Log business money only. If you have to mix accounts, add a category like "Personal (exclude)" and leave it out of your totals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logging once a year.&lt;/strong&gt; Ten minutes a week beats a whole weekend in March digging through receipts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Too many categories.&lt;/strong&gt; Start with 8–12. You can split them later, but merging them after the fact is a pain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Or: use a free ready-made version
&lt;/h2&gt;

&lt;p&gt;If you'd rather not build and debug this yourself, I made a free one. &lt;strong&gt;Ponte Sheets Lite&lt;/strong&gt; is a bookkeeping spreadsheet for freelancers that works in both Google Sheets and Excel, with no macros. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;12 monthly tabs&lt;/strong&gt; for logging income and expenses&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;income / expense / net-profit dashboard&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;monthly breakdown chart&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;categories tab&lt;/strong&gt; you can hand to your accountant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The formulas are already wired up, so you just type in transactions. Make a copy in Google Sheets or open it in Excel and start logging.&lt;/p&gt;

&lt;p&gt;If you later want more, the paid Pro version ($19 one-time) adds a tax set-aside estimate, a safe-to-spend number, a steady monthly salary calculation, and pending-invoice tracking.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet-lite?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article6" rel="noopener noreferrer"&gt;Get the free Lite bookkeeping spreadsheet&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;A freelancer bookkeeping spreadsheet doesn't have to be complicated: a transaction log, categories, a few SUMIFS formulas, net = income − expenses, and a chart. Build your own with the steps above, or start from the free template. Either way, the best system is the one you'll actually update every week.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Not tax advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>googlesheets</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to track unpaid invoices in Google Sheets (with a 'days overdue' formula)</title>
      <dc:creator>Ponte Sheets</dc:creator>
      <pubDate>Wed, 21 Oct 2026 08:51:23 +0000</pubDate>
      <link>https://dev.to/pontesheets/how-to-track-unpaid-invoices-in-google-sheets-with-a-days-overdue-formula-eco</link>
      <guid>https://dev.to/pontesheets/how-to-track-unpaid-invoices-in-google-sheets-with-a-days-overdue-formula-eco</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I'm the maker of Ponte Sheets. Not tax advice.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you freelance, you've probably had the "wait, did they ever pay that?" moment. A simple Google Sheet can answer that question in seconds, and it only takes a handful of formulas. This tutorial walks through a small invoice tracker you can build from scratch in about fifteen minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; the layout below is a generic example I made for this tutorial. It is not the layout used in the Ponte Sheets template. Feel free to rename or move columns. Just adjust the formulas to match.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Set up the columns
&lt;/h2&gt;

&lt;p&gt;Create a new sheet and put these headers in row 1:&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;Header&lt;/th&gt;
&lt;th&gt;What goes in it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;Client&lt;/td&gt;
&lt;td&gt;Client or company name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;Invoice #&lt;/td&gt;
&lt;td&gt;Your invoice number, e.g. INV-014&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;Amount&lt;/td&gt;
&lt;td&gt;Invoice total (number only)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;Issue date&lt;/td&gt;
&lt;td&gt;Date you sent the invoice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;Due date&lt;/td&gt;
&lt;td&gt;Date payment is due&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Paid&lt;/code&gt; or &lt;code&gt;Pending&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;Days overdue&lt;/td&gt;
&lt;td&gt;Calculated (we'll add the formula)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two quick setup tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Format columns D and E as dates (&lt;strong&gt;Format → Number → Date&lt;/strong&gt;) so the date math works.&lt;/li&gt;
&lt;li&gt;Make the Status column a dropdown so typos like "pendng" don't break your totals. Select F2:F, then go to &lt;strong&gt;Insert → Dropdown&lt;/strong&gt; and add two options: &lt;code&gt;Paid&lt;/code&gt; and &lt;code&gt;Pending&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Calculate days overdue
&lt;/h2&gt;

&lt;p&gt;In G2, enter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(AND(F2="Pending",TODAY()&amp;gt;E2),TODAY()-E2,0)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this does, in plain English:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If the invoice is still &lt;code&gt;Pending&lt;/code&gt; &lt;strong&gt;and&lt;/strong&gt; today is past the due date, show how many days late it is.&lt;/li&gt;
&lt;li&gt;Otherwise (paid, or not due yet), show 0.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Subtracting one date from another in Google Sheets gives you a number of days, so &lt;code&gt;TODAY()-E2&lt;/code&gt; is the days late. If the cell shows a date instead of a number, change G's format to &lt;strong&gt;Format → Number → Number&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Drag the formula down for every row. &lt;code&gt;TODAY()&lt;/code&gt; recalculates on its own, so the numbers update each day without you touching anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handling empty rows:&lt;/strong&gt; if you pre-fill the formula far down the sheet, blank rows could show odd results. A safer version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(E2="",,IF(AND(F2="Pending",TODAY()&amp;gt;E2),TODAY()-E2,0))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This leaves the cell empty when there's no due date yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Build a small summary area
&lt;/h2&gt;

&lt;p&gt;Pick a spot off to the side, say column I and J, and add a few labels with formulas next to them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total outstanding&lt;/strong&gt; (everything not yet paid):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIFS(C:C,F:F,"Pending")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Overdue total&lt;/strong&gt; (unpaid &lt;em&gt;and&lt;/em&gt; past due):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIFS(C:C,F:F,"Pending",E:E,"&amp;lt;"&amp;amp;TODAY())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;"&amp;lt;"&amp;amp;TODAY()&lt;/code&gt; part joins the less-than sign with today's date, so it only counts due dates that have already passed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Number of overdue invoices:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=COUNTIFS(F:F,"Pending",E:E,"&amp;lt;"&amp;amp;TODAY())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Oldest overdue invoice (in days):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=MAX(G2:G)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That last one is a nice quick gut check: if it says 45, someone needs a polite reminder email today.&lt;/p&gt;

&lt;p&gt;A note on whole-column references like &lt;code&gt;C:C&lt;/code&gt;: they're fine in a summary area that sits in different columns. Just don't put these formulas inside columns C, E, or F themselves, or you'll create a circular reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Highlight overdue rows with conditional formatting
&lt;/h2&gt;

&lt;p&gt;Numbers are great, but color is faster. Let's make overdue rows turn red.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select the range A2:G (the whole data area, not the header).&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Format → Conditional formatting&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under "Format cells if…", choose &lt;strong&gt;Custom formula is&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=AND($F2="Pending",$E2&amp;lt;&amp;gt;"",$E2&amp;lt;TODAY())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Pick a light red fill and click &lt;strong&gt;Done&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;code&gt;$&lt;/code&gt; before the column letters is the key detail. It locks the check to columns E and F while letting the row number change, so the whole row lights up, not just one cell.&lt;/p&gt;

&lt;p&gt;Optional extras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add a second rule with &lt;code&gt;=$F2="Paid"&lt;/code&gt; and a light green or gray fill so finished invoices fade into the background.&lt;/li&gt;
&lt;li&gt;Add a yellow rule for invoices due within the next 7 days: &lt;code&gt;=AND($F2="Pending",$E2&amp;gt;=TODAY(),$E2-TODAY()&amp;lt;=7)&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Make it a habit
&lt;/h2&gt;

&lt;p&gt;A tracker only helps if it stays current. A routine that works for many freelancers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;When you send an invoice:&lt;/strong&gt; add the row immediately, with status &lt;code&gt;Pending&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When money lands:&lt;/strong&gt; flip the status to &lt;code&gt;Paid&lt;/code&gt;. The row loses its red highlight and the totals update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Once a week:&lt;/strong&gt; glance at the summary. Anything overdue gets a follow-up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also sort by column G (largest first) to see who to chase first. Use &lt;strong&gt;Data → Create a filter&lt;/strong&gt; so sorting doesn't scramble your summary area.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick formula reference
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Formula&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Days overdue (row 2)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=IF(E2="",,IF(AND(F2="Pending",TODAY()&amp;gt;E2),TODAY()-E2,0))&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total outstanding&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=SUMIFS(C:C,F:F,"Pending")&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overdue total&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=SUMIFS(C:C,F:F,"Pending",E:E,"&amp;lt;"&amp;amp;TODAY())&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overdue count&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=COUNTIFS(F:F,"Pending",E:E,"&amp;lt;"&amp;amp;TODAY())&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oldest overdue&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=MAX(G2:G)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  If you'd rather not build it yourself
&lt;/h2&gt;

&lt;p&gt;I built a bookkeeping spreadsheet called &lt;strong&gt;Ponte Sheets&lt;/strong&gt; that works in both Excel and Google Sheets, with no macros.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lite (free):&lt;/strong&gt; 12 monthly tabs, an income / expense / net-profit dashboard, a monthly breakdown chart, and a categories tab you can hand to your accountant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro ($19, one-time):&lt;/strong&gt; adds a tax set-aside view, a "safe to spend" number, a steady monthly salary calculation, and pending invoices tracking. It also comes with a DEMO file and a PDF guide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can grab Ponte Sheets here: &lt;a href="https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet-lite?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article5" rel="noopener noreferrer"&gt;Ponte Sheets Lite (free)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Either way, building the simple version above is a solid first step. Knowing exactly who owes you what, and for how long, takes a lot of stress out of freelancing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Not tax advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googlesheets</category>
      <category>tutorial</category>
      <category>freelance</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to build a "safe to spend" formula for freelance income in Google Sheets</title>
      <dc:creator>Ponte Sheets</dc:creator>
      <pubDate>Wed, 21 Oct 2026 07:44:32 +0000</pubDate>
      <link>https://dev.to/pontesheets/how-to-build-a-safe-to-spend-formula-for-freelance-income-in-google-sheets-1cpe</link>
      <guid>https://dev.to/pontesheets/how-to-build-a-safe-to-spend-formula-for-freelance-income-in-google-sheets-1cpe</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I'm the maker of Ponte Sheets. Not tax advice; check your rate with an accountant.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Freelance money arrives at random times, so "how much is in my account" is the wrong number. Here's the formula chain I use. The cell references are the real ones from my template: one tab per month (Jan..Dec), with Date in B, Type (Income/Expense) in C, Category in D, Net amount in J and Status (Paid/Pending) in K. Your tax rate goes in a Settings cell named &lt;code&gt;TaxPct&lt;/code&gt;. Names like &lt;code&gt;Profit&lt;/code&gt;, &lt;code&gt;AfterTaxProfitYTD&lt;/code&gt;, &lt;code&gt;MonthlyIncome&lt;/code&gt; and &lt;code&gt;DueDates&lt;/code&gt; below are placeholders, not built-in names: either create them as named ranges (Data &amp;gt; Named ranges) or replace them with your own cell references.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Paid profit only (per month tab):&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;=SUMIFS(J:J,C:C,"Income",K:K,"Paid")-SUMIFS(J:J,C:C,"Expense",K:K,"Paid")&lt;/code&gt;&lt;br&gt;
Pending invoices stay out until they're paid.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Income tax set-aside (per month):&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;=MAX(0,Profit)*TaxPct&lt;/code&gt;&lt;br&gt;
If you charge VAT/sales tax, add what you collected minus what you paid on expenses. That money was never yours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Safe to spend:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;=Profit-TaxSetAside&lt;/code&gt;&lt;br&gt;
Paid profit minus the tax set-aside from step 2 (&lt;code&gt;TaxSetAside&lt;/code&gt; is the cell holding that result). Everything left after you set the tax aside.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Steady monthly salary:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;=IFERROR(AfterTaxProfitYTD/MAX(1,COUNTIF(MonthlyIncome,"&amp;gt;0")),0)&lt;/code&gt;&lt;br&gt;
Your after-tax profit averaged over the months with income. Optional tweak (not in the template): multiply by 0.9 to build a buffer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Next tax date&lt;/strong&gt; (generic version; the template uses Settings!C16:C19): put your due dates in four cells and use &lt;code&gt;=MINIFS(DueDates,DueDates,"&amp;gt;="&amp;amp;TODAY())&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That's the whole engine: no macros, no Apps Script.&lt;/p&gt;

&lt;p&gt;If you'd rather not build it yourself, Ponte Sheets Lite is free (12 monthly tabs, profit dashboard, accountant-ready categories tab). Tax set-aside, safe to spend, steady salary and pending invoices are in Pro ($19 one-time). Get the free Lite here:&lt;br&gt;
&lt;a href="https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet-lite?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article4" rel="noopener noreferrer"&gt;https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet-lite?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which other number would you want it to calculate?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Not tax advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googlesheets</category>
      <category>tutorial</category>
      <category>freelance</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How to Track Freelance Income in a Spreadsheet (Free Google Sheets &amp; Excel Template)</title>
      <dc:creator>Ponte Sheets</dc:creator>
      <pubDate>Tue, 20 Oct 2026 16:30:15 +0000</pubDate>
      <link>https://dev.to/pontesheets/how-to-track-freelance-income-in-a-spreadsheet-free-google-sheets-excel-template-2phd</link>
      <guid>https://dev.to/pontesheets/how-to-track-freelance-income-in-a-spreadsheet-free-google-sheets-excel-template-2phd</guid>
      <description>&lt;p&gt;Accounting apps are great, but many of them cost a monthly fee and do far more than a solo freelancer needs. If you're invoicing a handful of clients a month, a well-structured spreadsheet can answer the questions that matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much did I actually earn this month?&lt;/li&gt;
&lt;li&gt;Who still owes me money?&lt;/li&gt;
&lt;li&gt;Which clients are worth the most?&lt;/li&gt;
&lt;li&gt;How much of this is mine to spend after tax?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's how to build one in Google Sheets or Excel, step by step. Every formula below works in both.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not tax or accounting advice.&lt;/strong&gt; This is a practical tracking system. Your local tax rules decide what you have to record and for how long, so check with an accountant.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 1: Decide what counts as "income"
&lt;/h2&gt;

&lt;p&gt;Before touching a cell, decide on one rule and stick to it: &lt;strong&gt;you log income when the money arrives&lt;/strong&gt; (cash basis). Most freelancers and sole proprietors use this method because it's simpler: an invoice isn't income until it's paid.&lt;/p&gt;

&lt;p&gt;You'll still track invoices you've sent, just in a separate status, so you never confuse "billed" with "banked".&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Set up your income log
&lt;/h2&gt;

&lt;p&gt;Create a tab called &lt;code&gt;Income&lt;/code&gt;. One row per payment (or per invoice). Recommended columns:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Col&lt;/th&gt;
&lt;th&gt;Header&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;Invoice date&lt;/td&gt;
&lt;td&gt;2026-10-02&lt;/td&gt;
&lt;td&gt;When you billed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;Paid date&lt;/td&gt;
&lt;td&gt;2026-10-16&lt;/td&gt;
&lt;td&gt;When cash arrived (blank = unpaid)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;Client&lt;/td&gt;
&lt;td&gt;Acme Co&lt;/td&gt;
&lt;td&gt;For per-client totals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;Project / description&lt;/td&gt;
&lt;td&gt;Landing page&lt;/td&gt;
&lt;td&gt;Context for later&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;Invoice #&lt;/td&gt;
&lt;td&gt;2026-014&lt;/td&gt;
&lt;td&gt;Matches your invoice PDFs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;Amount&lt;/td&gt;
&lt;td&gt;1,500&lt;/td&gt;
&lt;td&gt;Gross amount&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;Fees&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;Stripe/PayPal/Upwork/platform fees&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;Net received&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=F2-G2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;What actually hit your account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;Currency&lt;/td&gt;
&lt;td&gt;USD / EUR&lt;/td&gt;
&lt;td&gt;Important for EU/cross-border clients&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=IF(B2="","Pending","Paid")&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Automatic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;Month&lt;/td&gt;
&lt;td&gt;&lt;code&gt;=IF(B2="","",TEXT(B2,"yyyy-mm"))&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;For monthly totals&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Freeze row 1&lt;/strong&gt; and turn the range into a table (Excel: Ctrl+T; Sheets: Format → Convert to table) so formulas fill down automatically.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;data validation&lt;/strong&gt; on the Client column (a dropdown from a &lt;code&gt;Clients&lt;/code&gt; tab) so "Acme", "ACME" and "Acme Co." don't become three different clients.&lt;/li&gt;
&lt;li&gt;Record &lt;strong&gt;platform fees separately&lt;/strong&gt; instead of logging only the net. Fees are usually a deductible business expense, and you'll want the gross figure when you reconcile against 1099-K/1099-NEC forms (US) or platform statements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3: Track unpaid invoices
&lt;/h2&gt;

&lt;p&gt;Because &lt;code&gt;Status&lt;/code&gt; is calculated from &lt;code&gt;Paid date&lt;/code&gt;, your pending invoices are just a filter away. Add a quick "money owed to me" cell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Outstanding: =SUMIF(J:J,"Pending",F:F)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And an "overdue" flag (assuming 30-day terms) in column L:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=IF(AND(J2="Pending",TODAY()-A2&amp;gt;30),"OVERDUE","")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add conditional formatting to turn overdue rows red. This one column has probably recovered more money for freelancers than any app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Build monthly totals
&lt;/h2&gt;

&lt;p&gt;Create a &lt;code&gt;Summary&lt;/code&gt; tab. In column A list months (&lt;code&gt;2026-01&lt;/code&gt; … &lt;code&gt;2026-12&lt;/code&gt;) as text. In column B:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIF(Income!K:K,A2,Income!H:H)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have net income per month. Add a column C for running year-to-date:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUM($B$2:B2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Insert a column chart over A:B and you have a visual income trend. Seasonality jumps out fast. Many freelancers discover a slow month they can plan around.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Per-client breakdown
&lt;/h2&gt;

&lt;p&gt;Two options:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option A: formula.&lt;/strong&gt; List clients in column G of the summary and use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIF(Income!C:C,G2,Income!H:H)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Option B: pivot table.&lt;/strong&gt; Select your income table → Insert → Pivot table. Rows: Client. Values: SUM of Net received. Sort descending.&lt;/p&gt;

&lt;p&gt;This answers an uncomfortable but useful question: if your top client left tomorrow, what share of income would disappear? If one client is most of your revenue, that's a risk worth knowing about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Add expenses (so you see profit, not just revenue)
&lt;/h2&gt;

&lt;p&gt;Income alone is a vanity number. Add an &lt;code&gt;Expenses&lt;/code&gt; tab with: Date, Vendor, Category, Amount, Receipt link. Then in the summary:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Column D, expenses per month: =SUMIF(Expenses!F:F,A2,Expenses!D:D)
Column E, profit per month: =B2-D2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Use the same &lt;code&gt;TEXT(date,"yyyy-mm")&lt;/code&gt; helper column in Expenses.)&lt;/p&gt;

&lt;p&gt;Keep categories short and consistent, e.g. Software, Equipment, Contractors, Travel, Office, Fees, Education. If you're in the US, aligning them loosely with Schedule C lines makes tax time easier. In the EU, check what your local return asks for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Add a tax set-aside column
&lt;/h2&gt;

&lt;p&gt;Put your set-aside rate in a single cell on the summary tab (name it &lt;code&gt;TaxRate&lt;/code&gt;) and add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Set aside per month: =E2*TaxRate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where column E is the profit from Step 6. Picking the rate is a topic on its own. If you're in the US, I wrote a full breakdown here: &lt;em&gt;How Much Should a US Freelancer Set Aside for Taxes?&lt;/em&gt; &lt;a href="https://dev.to/pontesheets/how-much-should-a-us-freelancer-set-aside-for-taxes-self-employment-tax-quarterly-payments-1mfe"&gt;https://dev.to/pontesheets/how-much-should-a-us-freelancer-set-aside-for-taxes-self-employment-tax-quarterly-payments-1mfe&lt;/a&gt;. In the EU, VAT and income-tax rules vary widely by country, so ask a local accountant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Handle multiple currencies
&lt;/h2&gt;

&lt;p&gt;If you bill in USD and EUR, add a column &lt;code&gt;Rate to home currency&lt;/code&gt; and a &lt;code&gt;Net (home)&lt;/code&gt; column:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=H2*M2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Google Sheets you can pull an approximate rate with &lt;code&gt;=GOOGLEFINANCE("CURRENCY:EURUSD")&lt;/code&gt;, but for records, use the rate your bank actually applied (or whatever your tax authority accepts). Then base all summaries on the home-currency column.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9: A 10-minute weekly routine
&lt;/h2&gt;

&lt;p&gt;A tracker only works if it's current. Once a week:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your bank / Stripe / PayPal, log any new payments (fill &lt;code&gt;Paid date&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Log new invoices you sent (leave &lt;code&gt;Paid date&lt;/code&gt; blank).&lt;/li&gt;
&lt;li&gt;Check the overdue column and send polite reminders.&lt;/li&gt;
&lt;li&gt;Log expenses and drop receipts into a dated folder.&lt;/li&gt;
&lt;li&gt;Move the set-aside amount to your tax savings account.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Monthly: glance at the chart and per-client pivot. That's it.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mixing personal and business money.&lt;/strong&gt; Use a separate account if you can; it makes reconciling the sheet trivial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logging net only.&lt;/strong&gt; You lose track of fees and won't match platform tax forms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free-typing client names.&lt;/strong&gt; Use a dropdown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One giant tab per year with no summary.&lt;/strong&gt; Raw rows don't tell you anything until you summarize them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No backup.&lt;/strong&gt; Sheets has version history; for Excel, keep the file in a synced folder.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Skip the build: a free template
&lt;/h2&gt;

&lt;p&gt;If you'd rather start from a finished version, I built &lt;strong&gt;Ponte Sheets&lt;/strong&gt; for Google Sheets and Excel. The &lt;strong&gt;free Lite version&lt;/strong&gt; has 12 monthly tabs, dropdowns and an auto-updating income/expense/net-profit dashboard. &lt;strong&gt;Pro&lt;/strong&gt; ($19 one-time) adds pending invoices, tax set-aside, safe-to-spend and a steady monthly salary. &lt;a href="https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article3" rel="noopener noreferrer"&gt;Grab it on Gumroad&lt;/a&gt;. &lt;em&gt;(Disclosure: I'm the maker.)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Log income when it's paid; track invoices separately with an automatic status.&lt;/li&gt;
&lt;li&gt;Columns: invoice date, paid date, client, amount, fees, net, currency, status, month.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SUMIF&lt;/code&gt; by month and by client, or use a pivot table.&lt;/li&gt;
&lt;li&gt;Add expenses to see profit, and a tax set-aside cell.&lt;/li&gt;
&lt;li&gt;Spend 10 minutes a week keeping it current.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>freelance</category>
      <category>googlesheets</category>
      <category>excel</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How Much Should a US Freelancer Set Aside for Taxes? (Self-Employment Tax + Quarterly Payments Explained)</title>
      <dc:creator>Ponte Sheets</dc:creator>
      <pubDate>Tue, 20 Oct 2026 16:21:34 +0000</pubDate>
      <link>https://dev.to/pontesheets/how-much-should-a-us-freelancer-set-aside-for-taxes-self-employment-tax-quarterly-payments-1mfe</link>
      <guid>https://dev.to/pontesheets/how-much-should-a-us-freelancer-set-aside-for-taxes-self-employment-tax-quarterly-payments-1mfe</guid>
      <description>&lt;p&gt;If you just went from a W-2 job to freelancing (or picked up 1099 side gigs), the first client payment feels great. Then you realize nobody withheld anything. No employer paid half your Social Security. No payroll system sent money to the IRS. That's all on you now.&lt;/p&gt;

&lt;p&gt;This post walks through &lt;em&gt;what&lt;/em&gt; you actually owe as a US freelancer, &lt;em&gt;how&lt;/em&gt; to turn it into a set-aside percentage you can apply to every payment, and &lt;em&gt;when&lt;/em&gt; to send it to the IRS so you don't get hit with underpayment penalties.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not tax advice.&lt;/strong&gt; This is general information about how US federal taxes work for self-employed people, current as of 2026. Your situation (state, filing status, deductions, other income) changes the numbers. Check with a CPA or enrolled agent before relying on it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The three (sometimes four) taxes you're saving for
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Self-employment tax (Social Security + Medicare)
&lt;/h3&gt;

&lt;p&gt;As an employee, you paid 7.65% and your employer paid the other 7.65%. As a freelancer you pay both halves: &lt;strong&gt;15.3%&lt;/strong&gt; in total (12.4% Social Security + 2.9% Medicare).&lt;/p&gt;

&lt;p&gt;A few details people miss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It applies to &lt;strong&gt;92.35% of your net self-employment earnings&lt;/strong&gt;, not your gross invoices. Net = income minus business expenses.&lt;/li&gt;
&lt;li&gt;The 12.4% Social Security portion stops at the annual wage base (the SSA adjusts it every year; check ssa.gov for the current figure). Medicare's 2.9% has no cap, and an extra 0.9% Additional Medicare Tax applies above $200,000 (single) / $250,000 (married filing jointly).&lt;/li&gt;
&lt;li&gt;You can deduct &lt;strong&gt;half&lt;/strong&gt; of your SE tax when calculating your adjusted gross income.&lt;/li&gt;
&lt;li&gt;It kicks in once you have $400 or more of net self-employment earnings in a year.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, SE tax works out to roughly 14.1% of net profit (15.3% × 92.35%), for most freelancers below the wage base.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Federal income tax
&lt;/h3&gt;

&lt;p&gt;This is the progressive bracket tax everyone pays (10%, 12%, 22%, 24%, 32%, 35%, 37%). Your freelance profit stacks on top of any other income, so if you also have a day job, your side income is taxed at your &lt;em&gt;top&lt;/em&gt; bracket.&lt;/p&gt;

&lt;p&gt;Many sole proprietors may also qualify for the Qualified Business Income (QBI) deduction, which can reduce taxable business income by up to 20%, subject to limits. Don't count on it until you've confirmed you qualify.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. State (and maybe city) income tax
&lt;/h3&gt;

&lt;p&gt;This ranges from zero (states like Texas, Florida, Washington, Nevada, Tennessee have no broad wage income tax) to high single digits or more in states like California or New York. Some cities, like New York City, add their own.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Optional: retirement contributions
&lt;/h3&gt;

&lt;p&gt;Not a tax, but worth saving for in the same bucket: SEP-IRA or Solo 401(k) contributions reduce your taxable income, so deciding on them early changes how much tax you owe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning that into a set-aside percentage
&lt;/h2&gt;

&lt;p&gt;You don't need precision on day one. You need a number you can apply every time money lands. Here's a simple way to build one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Find your marginal federal bracket
&lt;/h3&gt;

&lt;p&gt;Estimate your total taxable income for the year (freelance profit + any salary − standard deduction). Look up which IRS bracket that lands in for your filing status. That's your marginal rate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Add the pieces
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set_aside % ≈ SE tax (~14%) + federal marginal rate + state rate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example for illustration only (not a recommendation): a single freelancer in the 22% bracket, in a state with a ~5% income tax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;14% + 22% + 5% = ~41% of each marginal dollar of profit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That sounds scary, and it's an &lt;em&gt;upper-ish&lt;/em&gt; bound, because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the standard deduction and lower brackets mean your &lt;em&gt;average&lt;/em&gt; rate is lower than your marginal rate,&lt;/li&gt;
&lt;li&gt;half of SE tax and possibly QBI reduce your taxable income,&lt;/li&gt;
&lt;li&gt;expenses reduce profit before any of this applies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So many freelancers round to a flat percentage somewhere between their average and marginal rates and adjust after the first year's return. The key is to &lt;strong&gt;pick one, write it down, and apply it to every payment.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Apply it to profit, not gross
&lt;/h3&gt;

&lt;p&gt;If a client pays $2,000 and you spent $300 on software and equipment for that work, you're setting aside a percentage of $1,700, not $2,000. That's why tracking expenses matters. Every legit business expense lowers what you owe.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Move the money immediately
&lt;/h3&gt;

&lt;p&gt;Open a separate savings account labeled "TAXES". When a payment lands, transfer the percentage that same day. Money you can't see is money you don't spend.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to actually pay: quarterly estimated taxes
&lt;/h2&gt;

&lt;p&gt;The IRS expects you to pay as you earn. If you expect to owe &lt;strong&gt;$1,000 or more&lt;/strong&gt; when you file, you generally need to make estimated payments (Form 1040-ES). The usual due dates:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Income earned&lt;/th&gt;
&lt;th&gt;Payment due&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jan 1 – Mar 31&lt;/td&gt;
&lt;td&gt;April 15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apr 1 – May 31&lt;/td&gt;
&lt;td&gt;June 15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jun 1 – Aug 31&lt;/td&gt;
&lt;td&gt;September 15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sep 1 – Dec 31&lt;/td&gt;
&lt;td&gt;January 15 (next year)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If a date falls on a weekend or holiday, it moves to the next business day. Notice the "quarters" aren't equal. Q2 is only two months long. You can pay online through IRS Direct Pay or your IRS online account. Your state probably has its own estimated payment schedule too.&lt;/p&gt;

&lt;h3&gt;
  
  
  The safe harbor rule (your penalty shield)
&lt;/h3&gt;

&lt;p&gt;You generally avoid the underpayment penalty if your estimated payments plus any withholding cover at least:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;90%&lt;/strong&gt; of this year's tax, &lt;strong&gt;or&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100%&lt;/strong&gt; of last year's total tax (&lt;strong&gt;110%&lt;/strong&gt; if last year's AGI was over $150,000, or $75,000 if married filing separately).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a first-year freelancer with unpredictable income, the "100% of last year" option is the easiest: take last year's total tax from your return, divide by four, and pay that each quarter. You'll still owe the remainder in April, which is exactly why you keep setting aside your percentage on every payment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Have a day job too?
&lt;/h3&gt;

&lt;p&gt;If you also get a W-2 paycheck, you can raise your withholding on Form W-4 instead of (or as well as) making quarterly payments. Withholding is treated as paid evenly through the year, which can be handy if you're catching up late.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple spreadsheet setup that does this for you
&lt;/h2&gt;

&lt;p&gt;You can build all of this in Google Sheets or Excel in about 20 minutes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Columns for your income log
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Client&lt;/th&gt;
&lt;th&gt;Amount&lt;/th&gt;
&lt;th&gt;Expenses linked&lt;/th&gt;
&lt;th&gt;Net&lt;/th&gt;
&lt;th&gt;Set-aside&lt;/th&gt;
&lt;th&gt;Quarter&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Formulas (assuming your set-aside rate lives in a cell named &lt;code&gt;TaxRate&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Net:        =C2-D2
Set-aside:  =E2*TaxRate
Quarter:    =IF(MONTH(A2)&amp;lt;=3,"Q1",IF(MONTH(A2)&amp;lt;=5,"Q2",IF(MONTH(A2)&amp;lt;=8,"Q3","Q4")))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That &lt;code&gt;Quarter&lt;/code&gt; formula follows the IRS payment periods above, not calendar quarters, so your totals match what's due on each date.&lt;/p&gt;

&lt;h3&gt;
  
  
  A quarterly summary
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=SUMIF(G:G,"Q1",F:F)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repeat for Q2–Q4 and you have the amount set aside for each payment period, next to the amount you actually paid. If "paid" is lower than "set aside", you're fine. If it's the other way round, raise your rate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Safe-to-spend number
&lt;/h3&gt;

&lt;p&gt;The single most useful cell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Safe to spend = checking balance − (total set-aside − tax already paid)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In other words: what's in your account minus the tax you've earmarked but not yet sent. Seeing that number stops you from spending the IRS's money.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setting aside from gross, then forgetting expenses&lt;/strong&gt;: you'll over-save (fine) but under-deduct (not fine). Log expenses as they happen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting SE tax entirely&lt;/strong&gt;: the most common first-year surprise. Income tax alone isn't the whole bill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paying all at once in April&lt;/strong&gt;: you'll likely owe an underpayment penalty on top.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring state estimates&lt;/strong&gt;: many states have their own quarterly schedule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never revisiting the rate&lt;/strong&gt;: after your first return, compare what you saved vs. what you owed and adjust.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Want a ready-made version?
&lt;/h2&gt;

&lt;p&gt;If you'd rather not build the sheet yourself, I made &lt;strong&gt;Ponte Sheets&lt;/strong&gt;, a bookkeeping spreadsheet for Excel and Google Sheets. The &lt;strong&gt;free Lite version&lt;/strong&gt; gives you 12 monthly tabs, an income/expense/net-profit dashboard and accountant-ready categories. &lt;strong&gt;Pro&lt;/strong&gt; ($19 one-time, no subscription) adds the automatic tax set-aside (income tax + VAT), safe-to-spend, a steady monthly salary and pending invoices: &lt;a href="https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article2" rel="noopener noreferrer"&gt;get it on Gumroad&lt;/a&gt;. &lt;em&gt;(Disclosure: I'm the maker.)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;You owe SE tax (~14% of net profit) + federal income tax + state tax.&lt;/li&gt;
&lt;li&gt;Add your rates to get a set-aside percentage; apply it to &lt;strong&gt;net&lt;/strong&gt; income on every payment.&lt;/li&gt;
&lt;li&gt;Move it to a separate account the same day.&lt;/li&gt;
&lt;li&gt;Pay quarterly (Apr 15, Jun 15, Sep 15, Jan 15) and use the safe harbor rule to avoid penalties.&lt;/li&gt;
&lt;li&gt;Revisit your rate after you file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Again: general info, not tax advice. Rates and thresholds change yearly. Confirm on irs.gov or with a tax pro.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I built a free bookkeeping spreadsheet for freelancers (no macros, 17 tabs)</title>
      <dc:creator>Ponte Sheets</dc:creator>
      <pubDate>Tue, 20 Oct 2026 06:05:08 +0000</pubDate>
      <link>https://dev.to/pontesheets/i-built-a-free-bookkeeping-spreadsheet-for-freelancers-no-macros-17-tabs-5bia</link>
      <guid>https://dev.to/pontesheets/i-built-a-free-bookkeeping-spreadsheet-for-freelancers-no-macros-17-tabs-5bia</guid>
      <description>&lt;p&gt;As a freelancer, money comes in from PayPal, Stripe and bank transfers at random times, and every tax season I was digging through receipts. Accounting software felt like overkill. So I built a spreadsheet system instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt; you add each transaction once on a monthly tab (200 rows, with dropdowns for type, category, Paid/Pending and payment method). The Dashboard then calculates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;income, expenses and net profit, by year and by month&lt;/li&gt;
&lt;li&gt;how much to set aside for tax, including VAT/GST/sales tax&lt;/li&gt;
&lt;li&gt;"safe to spend" and a steady monthly salary&lt;/li&gt;
&lt;li&gt;pending invoices, quarterly totals and the next tax date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Design choices:&lt;/strong&gt; no macros or Apps Script, only regular formulas. Input cells are cream, so it's hard to break. A date entered in the wrong month's tab turns red. It works in both Excel and Google Sheets.&lt;/p&gt;

&lt;p&gt;It's free (pay what you want, $0 is fine): &lt;a href="https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article1" rel="noopener noreferrer"&gt;https://ofekpoint.gumroad.com/l/bookkeeping-spreadsheet?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=article1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback is welcome, especially if you've built something like this yourself.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>freelance</category>
      <category>spreadsheets</category>
    </item>
  </channel>
</rss>
