Gilles Crofils

Gilles Crofils

Hands-On Chief Technology Officer

Tech leader who transforms ambitious ideas into sustainable businesses. Successfully led digital transformations for global companies while building ventures that prioritize human connection over pure tech.1974 Birth.
1984 Delved into coding.
1999 Failed my First Startup in Science Popularization.
2010 Co-founded an IT Services Company in Paris/Beijing.
2017 Led a Transformation Plan for SwitchUp in Berlin.
November 2025 Launched Nook.coach. Where conversations shape healthier habits

Retirement saving for freelancers without the liquidity cliff

Abstract:

The article argues that standard “save X every month” retirement advice fails for freelancers because it assumes a steady salary rhythm, while freelance cash arrives in late, lumpy bursts (“net 30” turning into “net… we’ll see”) that collide with fixed, non-negotiable deadlines for VAT, taxes, and social charges, creating predictable stress patterns: either you keep postponing saving until a “good month” that never feels safe, or you invest after a big invoice and then hit a “liquidity cliff” where you must unwind savings to meet a deadline. Drawing on a physics-style systems lens—build something robust to noisy input rather than demanding perfect tracking—and shaped by cross-border complexity from living in Berlin (2017–2023) and Lisbon (since 2023), the piece proposes a practical coordination layer instead of a tax tutorial or product pitch: use three separated “buckets” (tax hold, VAT hold, retirement hold) so the main balance stops “lying,” split money only when an invoice is actually paid (not when issued) to remove decision fatigue, and run a simple calendar with a few checkpoints (tax/VAT dates, quarterly one-hour reviews, a buffer month, and two planned retirement top-up windows mid-year and year-end) to avoid the classic Q4 panic—aiming for boring stability that preserves autonomy, reduces mental load, and still funds “future you” even when clients pay late.

Most retirement advice is built for a monthly salary. Money arrives on the same day, you automate the same transfer, and it all feels clean and adult. Freelance life doesn’t move like that. Invoices land in chunks. Clients pay late. “Net 30” becomes “net… we’ll see.” So when someone tells you to “just save X every month”, the problem isn’t discipline. It’s timing.

Once you name it as a rhythm mismatch, the stress patterns get very predictable.

That second failure pattern is the liquidity cliff. It’s not a willpower problem. It’s a calendar problem. Deadlines do not care that a client paid late.

This article is here to give you a calmer operating model for retirement saving with irregular income. Not a tax course. Not a product religion. Just a coordination layer that keeps you compliant, reduces surprises, and still lets long-term saving happen even when work is noisy.

Here’s what you’ll get, in practical terms.

  • A simple way to think about the real enemy: collision points between income timing and fixed obligations
  • A contribution calendar built around a few checkpoints, not daily tracking and not monthly guessing
  • A three-bucket setup that stops your bank balance from lying to you, separating tax, VAT, and retirement money
  • An invoice-trigger rule so saving happens when cash is real, not when you “feel ready”
  • Quarterly reviews and two top-up windows that avoid the classic Q4 panic

The goal is boring stability without losing your autonomy. A system that tolerates late payments, admin fatigue, and the mental load of always having to decide again. Not perfect. Just robust enough that future you still gets paid.

The timing mismatch freelancers actually feel

Why monthly retirement advice breaks with lumpy invoices

Most retirement advice assumes a salary rhythm. Money arrives on a fixed day, then you automate a fixed transfer, then you forget about it. Freelance cash is different. It lands in chunks, sometimes late, sometimes split across clients, sometimes with “net 30” that quietly becomes “net whenever”. So when someone says “just save X every month”, it’s not that the idea is hard. It’s that the rhythm is wrong.

Once you see it as a rhythm mismatch, two failure patterns become predictable.

  • Failure mode A is postponing retirement contributions until a “good month” that never really feels safe. The next invoice is uncertain, and the last one arrived late.
  • Failure mode B is saving aggressively after strong invoices, then getting hit by a VAT or advance tax deadline and having to unwind savings, sell investments at a bad moment, or borrow just to stay compliant.

That second one is the liquidity cliff problem. Not a spending issue. A deadline issue.

The collision points are the real enemy. A single obligation is manageable. But stacked in the same calendar square, even reasonable bills can trigger panic and bad decisions.

This stays on cash-flow mechanics and timing. It avoids turning into a tax tutorial or a product review. It also avoids the trap of trying to optimize monthly with dashboards. High-effort tracking usually creates fatigue and then nothing gets tracked.

Deadlines do not care about your client paying late

Here is the model in one sentence. Your income is negotiable in time, your obligations are not.

Clients can pay late. But VAT, social contributions, and tax prepayments come with fixed deadlines. Another twist is that a strong period can increase what you owe later through prepayment logic. So the better you do in spring, the more “future you” may be asked to send in autumn, even if autumn is quiet.

The exact dates vary by country, but the logic is consistent.

Example cadence (not legal advice): when I was in Berlin, the practical feeling was “regular VAT rhythm + periodic income tax payments,” where admin keeps coming even if a client disappears for six weeks. In Lisbon, the portals and labels change, but the experience is similar: VAT and social/security-style contributions can show up on their own cadence, and income-tax payments can lag behind a strong quarter. In both places, the trap is the same timeline: spring goes well → autumn gets more expensive, even if autumn work is slower.

The practical point is not to memorize everything like a tax lawyer. A calendar is a safety device, not an admin hobby, and it should reflect the cadence where you live right now.

Unpredictability also attacks attention. If every month is different, then every month you renegotiate your saving plan. If you renegotiate constantly, you either over-track to regain control, or you avoid looking because it feels like one more decision. This isn’t laziness. It’s admin load.

So the solution has to tolerate noise. Real life has noise.

A system design lens from physics and mobility

My physics training left me with a bias. When things are messy, you don’t demand perfect data or the perfect mood. You build something that still gives you a stable signal.

Freelance income is noisy input. The setup has to smooth it enough so the right actions still happen when life gets complicated. That’s why I’m cautious with systems that require constant detailed tracking. High effort tends to fade over time, even for smart people.

Noise also comes from geography. I lived in Berlin from 2017 to 2023, and I’m based in Lisbon since 2023. That move is a big reason I prefer a timing layer over a provider-specific plan: the provider may change, the portal may change, even the labels on the deadlines change… but “cash arrives when it wants, obligations arrive when they want” stayed annoyingly stable. Keeping the buckets and checkpoints meant I could keep saving while I was still figuring out the new wrapper, instead of pausing everything “until it’s clear” (which is how saving quietly dies).

One boundary before going further. This is not a replacement for an accountant, and it won’t cover country-specific thresholds, special regimes, or legal interpretations. The goal is a practical operating model that reduces surprises, supports compliance, and keeps long-term saving alive with irregular income.

The contribution calendar as the coordination layer

A few checkpoints and then quiet days

The calendar is a small coordination layer made of a few recurring checkpoints, not a daily tracking ritual. It works with boring tools you already have. A bank account, a calendar app, and one spreadsheet page.

The point is to reduce guessing, not to build another dashboard you have to feed every week until you hate it. Most days nothing happens. That’s the whole point.

It also needs boundaries so it does not become a new obsession. One useful boundary is to design it around what your bank can already do. Many banks support sub-accounts or simple separation. If your setup needs three apps and constant syncing, it’s fragile by design.

Not a tax course and not a product religion

This sits above local rules and stays useful if you change accountant, country, or provider, because it focuses on timing and coordination more than on the wrapper.

Now we can name the few events that make the calendar work.

Four events that replace monthly guessing

The calendar runs on four events that match how freelancers actually get squeezed.

  • Tax checkpoints
  • VAT checkpoints
  • An annual pension top-up window
  • One buffer month reserved for catching up

The buffer month isn’t a magic number. It’s calendar space that accepts reality. When a client pays late or an admin task slips, the system should have a forgiving slot instead of pushing you into panic mode.

How the year plays out in practice is simple: most months you only do one thing—split paid invoices into buckets. Then at each VAT/tax checkpoint you reconcile and fund what’s due. Mid-year, when you have more signal, you do the first planned retirement top-up. Near year-end, you do the second top-up (or you don’t) based on whether the next deadlines are already covered. The buffer month is where you catch up if something slipped, without turning it into a crisis.

Three buckets

A freelancer bank balance lies by default. It mixes money that is truly yours with money that is already promised to someone else.

So we split it into three buckets.

Bucket A the tax hold

The tax hold is money reserved for income tax and the tax-like social charges that behave like tax. It exists for one reason. Your main balance is not spendable just because it is visible.

If this bucket is empty, the system becomes a casino, and the tax deadline is the house.

How do you choose a starting reserve without pretending it’s universal. A common approach is to start conservative with a flat rate that feels slightly annoying, then adjust every quarter using real numbers.

Think of it like calibration. You don’t need a perfect model on day one. You need feedback loops that correct drift.

Controls matter more than spreadsheets. The simplest control is a separate account or sub-account labeled “tax”, with no card attached if possible. This reduces temptation and it reduces mental accounting errors when you look at your main account and feel richer than you are.

Bucket B the VAT hold

VAT needs even stricter separation because it isn’t yours at all. A clean mental model is simple. You collect it, then you pass it on, net of inputs.

Mixing VAT with operating cash creates a fake feeling of profitability. If you treat VAT as income, you’re quietly borrowing from the tax authority, and the bill arrives on a fixed date.

The painful part is timing. VAT does not always match payment timing. Depending on local rules, it can become due based on invoice dates rather than when cash hits your account. That’s how a “good quarter” can still create a cash squeeze.

So the safe operational assumption is this. VAT can be due before the client pays, and your profit can be a mirage.

Illustrative scenario (not a rule): you invoice on March 28, the client pays on May 10, but your VAT filing/payment for that period is due in April. On paper, you “earned” the VAT in March, but in cash you still haven’t seen it. If you didn’t move VAT into its hold at invoice time (or keep a buffer for that mismatch), April can hurt.

The workflow needs a tiny reconciliation step at each VAT checkpoint.

  • Check sales VAT collected
  • Subtract input VAT you can evidence
  • Move the net amount into the VAT hold

This is also where common mistakes show up. Missing invoices, wrong rates, mixing personal and business spends, forgetting a credit note. A small check beats a dramatic surprise.

Bucket C the retirement hold

The retirement hold is staging cash for later contributions. It separates the decision to save from the decision of where to save, which matters when you move countries or switch providers and the wrapper becomes messy.

In Europe, the “wrapper” can change a lot when you move: you might have a state pension track, some kind of occupational/employer-linked plan (if you later go back to payroll), and private pensions or investment accounts that are provider- and country-specific. The point here isn’t which one is best. It’s that changing countries can turn “just invest monthly” into paperwork and paralysis.

So the bucket keeps the habit alive while you sort the wrapper.

When I change country, my checklist is basically:

  • keep splitting into the retirement hold while paperwork is pending
  • set a decision date to pick/confirm the new wrapper (instead of “later”)
  • write down constraints (transfer rules, contribution limits, tax treatment) in one place so I don’t re-learn it every month

Now we attach all three buckets to a single trigger that removes decision fatigue.

Invoice trigger rule

Switching from dates to events

This isn’t only about accounting. It’s about removing a small procrastination trap that shows up when income is uncertain.

The rule is simple. When an invoice is paid and the cash hits your account, you split it immediately into your tax hold, VAT hold, and retirement hold. You stop guessing what “this month” should look like, and you react to what is real.

Invoice issued is not cash received. Full stop.

This is doable without heavy tools. If your bank offers extra accounts, “spaces”, or pots, the split can be a quick move instead of a new app project.

It also creates a weird feeling of fairness across good and bad months.

  • A dry month does not force a contribution you can’t afford, because you can’t split money you don’t have.
  • A strong month captures upside automatically, before lifestyle creep has time to catch up.

It’s also kind of playful. The money lands, and you do a tiny allocation ceremony that takes two minutes, not a whole budgeting evening.

Next question is split rates.

Choosing split rates without fake certainty

You’re not hunting for perfection here. You’re building safety.

A common approach is to start with conservative split rates for tax and VAT, and let retirement be the residual after the safety buckets are funded. Under-holding tends to hurt more than over-holding.

Trying to forecast everything month by month is the usual trap. It looks responsible, but it often becomes noise and then fatigue.

A calmer approach is to pick a starting rule, run it for a quarter, then adjust with real numbers.

At each quarterly checkpoint, compare what you held in the tax and VAT buckets versus what you actually owed or had to pay, then tweak the split rates up or down.

Here’s a simple metric that keeps it measurable (and keeps you out of vibes-based finance):

  • Drift = (amount held at checkpoint) − (amount you actually had to pay / owe for that period)
  • If drift is negative (you’re short), increase your split rate next quarter by a small step (for example +2 to +5 percentage points) until drift is back near zero.
  • If drift is positive (you’re over), keep the surplus in the bucket and reduce the split rate slightly next quarter. No hero moves.

Think of it as “nudge and re-check”, not “find the perfect percentage once and be done”. My career has always been grounded in data-driven decision-making, and this is the same mindset applied to personal cash flow. Small feedback loops beat big heroic plans.

And you still need a way to handle outliers, because freelance income loves outliers.

Quarterly checkpoints that keep it calm

A one hour quarterly review that ends with decisions

Quarterly is a good frequency when income is volatile. You get enough signal without drowning in small fluctuations.

A short menu that is decision-shaped.

  1. Reconcile the last quarter bank movements so buckets still match reality
  2. Check the VAT hold against what you will declare next and move any missing amount
  3. Update a rough tax estimate and adjust your tax split rate if you are drifting
  4. Look at upcoming deadlines and confirm you can pay them without touching retirement cash
  5. Decide if the retirement hold can be contributed now or if it should wait for the next checkpoint

This prevents quiet drift turning into a loud emergency.

And there’s a very specific kind of relief here: you open your bank app, see “tax” and “VAT” sitting in their own places, and your shoulders drop because you’re not doing mental arithmetic against a single lying balance.

Quarterly also beats the two classic extremes.

  • Monthly creates false precision when invoices come in lumps, so you optimize a spreadsheet, not your life.
  • Annual builds a single cliff, and cliffs are where people sell investments at the wrong moment or borrow for taxes.

Put it on the calendar like a real meeting. If it stays “someday admin”, it will always lose to client work.

What to ignore so the system stays boring

A system that survives has to stay a bit boring. Common traps.

  • Weekly re-forecasting as if you were a treasury desk
  • Micro-categories that create more arguments than insight
  • Dashboards that look smart but don’t change a single decision
  • Constant redesign of the setup instead of running it

Perfection becomes a liability fast. If it’s heavy, people stop doing it. Over-tracking is often just procrastination dressed as discipline.

A better rule is coarse categories but strong evidence. For tax and VAT, proof beats polish.

  • invoices stored and easy to find
  • receipts attached to transactions
  • clear separation between business and personal payments

With a stable quarterly cadence and clean evidence, you can also avoid the classic year-end retirement trap.

Mid-year and year-end top-ups without the Q4 trap

Why waiting for Q4 feels smart and still breaks

Many freelancers wait for Q4 because it feels rational to want full-year clarity before locking money away.

But Q4 is also where calendars get messy. Tax prepayments, VAT deadlines, slower client cycles, and the admin backlog that builds during busy delivery months. The result is collisions. When too many obligations land in the same weeks, retirement becomes the optional one, because everything else has a fixed date.

A very normal week looks like this: you finally get paid a big invoice, you feel a tiny hit of relief, and you think “ok, I’ll top up retirement on Friday.” Then a VAT reminder lands, your accountant pings for missing receipts, and you realize the tax prepayment is due before another client’s “net 30” turns into cash. Suddenly Friday becomes “not this week,” and retirement quietly moves to the bottom of the pile. Nothing dramatic happened. That’s why it keeps happening.

Waiting also has a gentle math cost. Putting money to work earlier tends to win on average, even if delaying feels emotionally safer, and even if nobody can promise what markets will do next. The hidden cost is time.

A two top-up rhythm that fits real calendars

A pragmatic rhythm is two planned top-ups tied to checkpoints.

  • One around mid-year when the signal is clearer
  • One near year-end for calibration

Monthly contributions can stay optional. Twelve decisions often become twelve negotiations with your own stress level.

The pattern.

  • Split invoices as they arrive
  • Do one mid-year release from the retirement hold
  • Do one year-end release if buffers are still solid

To size a top-up, it helps to use an if-then rule, not motivation.

  • If the retirement hold has built up and your tax hold and VAT hold already cover the next deadlines, then a top-up is probably safe.
  • If either tax or VAT looks tight for the next one or two payment dates, then the top-up waits.
  • If it’s late in the year, add one more guardrail and check early-year crunch points too.

This is exactly how deadline-driven liquidity cliffs happen. Not because the annual total is too high, but because the cash and the due dates don’t line up.

When they don’t line up, delaying without guilt is not failure. It’s good sequencing.

A one page setup that survives real life

The one page ledger that stays readable

To connect the calendar to money, the page needs live bucket balances. The simplest template is almost boring on purpose.

  • Put months as rows
  • Add columns for tax checkpoints and VAT checkpoints
  • Add small markers for mid-year and year-end retirement windows
  • Add a checkbox for income known when enough invoices have actually been paid

The goal is visibility over prediction. Ugly is fine.

Add a bucket snapshot area on the same page. Three lines are enough.

  • Tax hold current balance
  • VAT hold current balance
  • Retirement hold current balance

Add a small notes field for outliers so you don’t redesign the whole system each time life happens. Late payments are not rare edge cases. They are part of the landscape.

A tiny status language makes the page usable in ten seconds.

  • Green holds cover the next deadlines so the next step is keep splitting paid invoices
  • Yellow holds are drifting so adjust split rates at the next checkpoint
  • Red a deadline is close and not funded so pause retirement top-ups and protect cash until it is resolved

Setup steps without new apps

Step 1 is banking. Create the three buckets using what your bank already offers. Separate accounts, sub-accounts, or pots. If possible, remove cards from the tax and VAT holds, or make them harder to spend from.

Step 2 is calendar. Add recurring events for your tax checkpoints, VAT checkpoints, a mid-year retirement top-up window, a year-end top-up window, and one buffer month for catch-up and admin mess. The dates are local and must match your jurisdiction.

Step 3 is the spreadsheet page. Month table plus bucket snapshot.

Step 4 is the first real split. When the next payment lands, split it immediately into tax, VAT, and retirement, then log bucket balances and mark income known.

If something goes wrong, the fix is usually small. Forgetting to move VAT, using the wrong split rate for one invoice, missing a note about a delayed payment. You correct at the next checkpoint and move on, instead of turning it into a redesign project.

Debugging the system with small fixes

When split rates drift

The most common discovery at a quarterly checkpoint is boring. Your tax hold is too small or too big.

That is not a sign you failed. It’s the normal outcome of running a prototype in a world where invoices are lumpy and prepayment regimes can change what you owe later, even when your current month feels quiet.

Corrections should stay gradual, not dramatic. The safe method is sequencing.

Do
- Increase your tax split rate on the next paid invoices until the hold is back in range
- Pause retirement top-ups while you correct, because deadlines are not flexible
- If you over held, keep it in the tax bucket and reclassify at the next checkpoint

Don’t
- Spend “extra” tax money impulsively just because it looks free
- Try to fix a quarter of drift in one day and create a new liquidity cliff

When clients pay late or not at all

Late payment and long payment terms are common enough that it helps to treat it as weather, not personal drama.

This is where splitting on receipt protects you. Because you only split money that actually arrived, you don’t allocate cash you don’t have. Your holds reflect reality, not hope.

And yes, it can mess with your head: when you work alone, a late payment can steal sleep and focus in a way that feels disproportionate to the actual invoice. It’s not only money, it’s mental space.

A small protocol helps so stress does not push you into improvisation.

  • Mark that month as income unknown on your one-page ledger
  • Assume the next deadline still wins
  • Reduce or pause optional retirement top-ups until the gap is closed
  • Protect the tax and VAT holds first so you can reach the next fixed date without selling investments or borrowing

If VAT is involved, add a note early and keep documents tidy. If the amount is material, that’s the moment to ask a professional instead of guessing and creating a second problem on top of the late payment.

Freelance retirement saving gets hard when you treat irregular income like a salary. The real problem is timing. Cash arrives late or in bursts, while tax and VAT deadlines stay fixed, and that mismatch creates two classics. Either saving is postponed forever, or money is invested and then pulled back at the worst moment to stay compliant.

A calmer model is mostly coordination. Split paid invoices on arrival into three buckets for tax, VAT, and retirement so your bank balance stops lying. Then let a simple calendar do the heavy lifting with a few checkpoints, quarterly reviews, and two planned top-up windows so you avoid the Q4 panic.

This isn’t about perfection or heroic tracking. It’s about boring stability that protects your autonomy, reduces mental load, and still pays future you. Where do the collision points show up in your calendar right now?

You might be interested by these articles:


25 Years in IT: A Journey of Expertise

2025-

Nook
(Lisbon/Remote)

Product Lead
Building the future of health coaching. Leading product development and go-to-market strategy for a platform that makes personal wellness accessible through natural dialogue.
Making health coaching feel like talking to a friend who actually gets you.

2024-

My Own Adventures
(Lisbon/Remote)

AI Enthusiast & Explorer
As Head of My Own Adventures, I’ve delved into AI, not just as a hobby but as a full-blown quest. I’ve led ambitious personal projects, challenged the frontiers of my own curiosity, and explored the vast realms of machine learning. No deadlines or stress—just the occasional existential crisis about AI taking over the world.

2017 - 2023

SwitchUp
(Berlin/Remote)

Hands-On Chief Technology Officer
For this rapidly growing startup, established in 2014 and focused on developing a smart assistant for managing energy subscription plans, I led a transformative initiative to shift from a monolithic Rails application to a scalable, high-load architecture based on microservices.
More...

2010 - 2017

Second Bureau
(Beijing/Paris)

CTO / Managing Director Asia
I played a pivotal role as a CTO and Managing director of this IT Services company, where we specialized in assisting local, state-owned, and international companies in crafting and implementing their digital marketing strategies. I hired and managed a team of 17 engineers.
More...

SwitchUp Logo

SwitchUp
SwitchUp is dedicated to creating a smart assistant designed to oversee customer energy contracts, consistently searching the market for better offers.

In 2017, I joined the company to lead a transformation plan towards a scalable solution. Since then, the company has grown to manage 200,000 regular customers, with the capacity to optimize up to 30,000 plans each month.Role:
In my role as Hands-On CTO, I:
- Architected a future-proof microservices-based solution.
- Developed and championed a multi-year roadmap for tech development.
- Built and managed a high-performing engineering team.
- Contributed directly to maintaining and evolving the legacy system for optimal performance.
Challenges:
Balancing short-term needs with long-term vision was crucial for this rapidly scaling business. Resource constraints demanded strategic prioritization. Addressing urgent requirements like launching new collaborations quickly could compromise long-term architectural stability and scalability, potentially hindering future integration and codebase sustainability.
Technologies:
Proficient in Ruby (versions 2 and 3), Ruby on Rails (versions 4 to 7), AWS, Heroku, Redis, Tailwind CSS, JWT, and implementing microservices architectures.

Arik Meyer's Endorsement of Gilles Crofils
Second Bureau Logo

Second Bureau
Second Bureau was a French company that I founded with a partner experienced in the e-retail.
Rooted in agile methods, we assisted our clients in making or optimizing their internet presence - e-commerce, m-commerce and social marketing. Our multicultural teams located in Beijing and Paris supported French companies in their ventures into the Chinese market

Cancel

Thank you !

Disclaimer: AI-Generated Content for Experimental Purposes Only

Please be aware that the articles published on this blog are created using artificial intelligence technologies, specifically OpenAI, Gemini and MistralAI, and are meant purely for experimental purposes.These articles do not represent my personal opinions, beliefs, or viewpoints, nor do they reflect the perspectives of any individuals involved in the creation or management of this blog.

The content produced by the AI is a result of machine learning algorithms and is not based on personal experiences, human insights, or the latest real-world information. It is important for readers to understand that the AI-generated content may not accurately represent facts, current events, or realistic scenarios.The purpose of this AI-generated content is to explore the capabilities and limitations of machine learning in content creation. It should not be used as a source for factual information or as a basis for forming opinions on any subject matter. We encourage readers to seek information from reliable, human-authored sources for any important or decision-influencing purposes.Use of this AI-generated content is at your own risk, and the platform assumes no responsibility for any misconceptions, errors, or reliance on the information provided herein.

Alt Text

Body