<?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: Freelancer Ops</title>
    <description>The latest articles on DEV Community by Freelancer Ops (@freelancerops).</description>
    <link>https://dev.to/freelancerops</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%2F4199116%2Fca3c6b8f-7df5-42a1-a3eb-ab84fb79e781.png</url>
      <title>DEV Community: Freelancer Ops</title>
      <link>https://dev.to/freelancerops</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/freelancerops"/>
    <language>en</language>
    <item>
      <title>4 Notion formulas I use to run a freelance business (overdue projects, late invoices, tax set-aside)</title>
      <dc:creator>Freelancer Ops</dc:creator>
      <pubDate>Wed, 21 Oct 2026 20:32:48 +0000</pubDate>
      <link>https://dev.to/freelancerops/4-notion-formulas-i-use-to-run-a-freelance-business-overdue-projects-late-invoices-tax-set-aside-3lja</link>
      <guid>https://dev.to/freelancerops/4-notion-formulas-i-use-to-run-a-freelance-business-overdue-projects-late-invoices-tax-set-aside-3lja</guid>
      <description>&lt;p&gt;If you freelance, you probably have clients in one place, projects in another, invoices in a spreadsheet, and a vague feeling about how much to keep back for taxes. Notion can tie those together for free, with a few relation properties and four small formulas.&lt;/p&gt;

&lt;p&gt;Here's the setup we use, with the formulas you can copy.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Projects: an "Overdue" checkbox
&lt;/h2&gt;

&lt;p&gt;Projects database: &lt;code&gt;Due date&lt;/code&gt; (date) and &lt;code&gt;Status&lt;/code&gt; (status: Not started / In progress / Done). Add a formula property &lt;code&gt;Overdue&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;and(
  not empty(prop("Due date")),
  prop("Due date") &amp;lt; now(),
  prop("Status") != "Done"
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make a view filtered on &lt;code&gt;Overdue&lt;/code&gt; is checked and you have a "what's late" list. Add a Timeline view (Start date to Due date) and a Board view grouped by Status for the big picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Invoices: "Days outstanding" and "Late"
&lt;/h2&gt;

&lt;p&gt;Invoices database: &lt;code&gt;Issue date&lt;/code&gt;, &lt;code&gt;Due date&lt;/code&gt;, &lt;code&gt;Paid date&lt;/code&gt;, &lt;code&gt;Amount&lt;/code&gt;, &lt;code&gt;Status&lt;/code&gt; (Draft / Sent / Paid / Overdue / Void).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Days outstanding:
if(prop("Status") == "Paid",
  dateBetween(prop("Paid date"), prop("Issue date"), "days"),
  dateBetween(now(), prop("Issue date"), "days"))

Late:
and(prop("Status") == "Sent", now() &amp;gt; prop("Due date"))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two views do most of the work: &lt;strong&gt;Unpaid&lt;/strong&gt; (Status is Sent or Overdue, sorted by due date) and &lt;strong&gt;Late&lt;/strong&gt; (Late is checked). That's your chase list on Monday morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Clients: "Outstanding" (who owes you)
&lt;/h2&gt;

&lt;p&gt;Link Clients to Invoices with a two-way relation. Add a &lt;code&gt;Paid amount&lt;/code&gt; formula on invoices: &lt;code&gt;if(prop("Status") == "Paid", prop("Amount"), 0)&lt;/code&gt;. Then on Clients:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Total billed&lt;/code&gt; = rollup Invoices -&amp;gt; Amount -&amp;gt; Sum&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Total paid&lt;/code&gt; = rollup Invoices -&amp;gt; Paid amount -&amp;gt; Sum&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Outstanding&lt;/code&gt; = &lt;code&gt;prop("Total billed") - prop("Total paid")&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An &lt;strong&gt;Owes me&lt;/strong&gt; view (Outstanding &amp;gt; 0, sorted descending) shows the biggest balances first. A &lt;strong&gt;Pipeline&lt;/strong&gt; board grouped by Status (Lead / Active / Paused / Past) works as a lightweight CRM.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. A monthly tax set-aside ledger
&lt;/h2&gt;

&lt;p&gt;One row per month (e.g. &lt;code&gt;2026-10&lt;/code&gt;), related to that month's paid invoices and expenses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Income&lt;/code&gt; = rollup Invoices paid -&amp;gt; Paid amount -&amp;gt; Sum&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Deductible expenses&lt;/code&gt; = rollup Expenses -&amp;gt; Amount -&amp;gt; Sum (expenses have a Category, a Deductible checkbox and a Receipt)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Net profit&lt;/code&gt; = &lt;code&gt;prop("Income") - prop("Deductible expenses")&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Set aside&lt;/code&gt; = &lt;code&gt;round(max(prop("Net profit"), 0) * prop("Set-aside rate") * 100) / 100&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add a "Moved to tax account" checkbox and group by quarter. (It's a budgeting estimate, not tax advice. Check your local rules.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Put it on one page
&lt;/h2&gt;

&lt;p&gt;Put three linked views on a home page (active projects board, unpaid invoices, tax set-aside), plus Notion Button blocks for "New client", "New project", "New invoice" and "Log expense". Then you open one page and see what's due, who owes you and what to set aside.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want it pre-built?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free:&lt;/strong&gt; &lt;a href="https://2rds.github.io/freelancer-ops/lite.html?ref=devto" rel="noopener noreferrer"&gt;Freelancer Ops Lite&lt;/a&gt; has the clients + projects part (linked databases, due dates, Overdue flag). Duplicate it into Notion in one click; it works on the free plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$12 one-time:&lt;/strong&gt; &lt;a href="https://2rds.github.io/freelancer-ops/?ref=devto" rel="noopener noreferrer"&gt;Freelancer Ops OS&lt;/a&gt; is everything above: invoices with Unpaid/Late views, Owes me, expenses, the tax ledger, the dashboard with 3 live views and the 4 quick-action buttons. 14-day refund.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy to answer formula questions in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: we make Freelancer Ops; this post was drafted with AI assistance and checked against the template.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>freelancing</category>
      <category>notion</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
