From Milchbüchlein to Jahresabschluss
How to turn your simple revenue-and-expense tracking into proper double-entry books for your Swiss GmbH — and why it's more complicated than you think.

The Gap Between Tracking and Accounting
You run a small Swiss GmbH. You've been tracking income and expenses all year in a spreadsheet — the famous Milchbüchlein. Now the year is over and your Treuhänder needs your books. This guide walks through the entire process.
Double-Entry Required
A GmbH cannot use single-entry bookkeeping — it's a hard legal requirementBilanz is Mandatory
You need a full balance sheet, not just a list of income and expensesMwSt Must Be Clear
Your VAT status and invoices must be consistent and legally correctDisclaimer: This guide is educational. It does not replace professional advice from a licensed Swiss Treuhänder or Steuerberater. Swiss accounting and tax law (OR, DBG, StHG, MWSTG) are authoritative sources. When in doubt, ask a professional.
Who This Guide Is For
You run a small Swiss GmbH. Maybe it's a SaaS product, a consulting business, or a freelance operation you incorporated for liability or tax reasons. You've been tracking your income and expenses all year in a spreadsheet — the famous Milchbüchlein — and now the year is over. Your Treuhänder is asking for your books, or you're trying to figure out what you actually need to file.
This guide walks through the entire process of converting that simple cash-in / cash-out tracking into a proper Jahresabschluss (annual financial statements) that satisfies Swiss law. We'll use a realistic, anonymized example of a one-person software GmbH to show how things that look simple on the surface get complicated fast.
What Swiss Law Actually Requires
A Swiss GmbH — regardless of size — must prepare annual financial statements in accordance with the Obligationenrecht (OR), Articles 957–963.
Erfolgsrechnung
Income Statement (Gewinn- und Verlustrechnung) — showing all revenue and expenses for the financial year.
Bilanz
Balance Sheet as of the closing date (usually 31 December) — showing assets, liabilities, and equity.
Anhang
Notes to the financial statements — disclosing accounting principles, related parties, and contingent liabilities.
Doppelte Buchhaltung
Double-entry bookkeeping is mandatory for all GmbHs. Single-entry (Milchbüchlein) is only for Einzelunternehmen under CHF 500'000.
What "Double-Entry" Actually Means
In single-entry bookkeeping, you track money in and money out. Done. In double-entry bookkeeping, every transaction touches two accounts — a debit and a credit. This creates an inherent error-checking mechanism: if your Bilanz doesn't balance (Aktiven ≠ Passiven), something is wrong.
For example, when a client pays you CHF 1'000:
Debit: 1020 Bank (Flüssige Mittel) +1'000
Credit: 3200 Dienstleistungsertrag +1'000
The bank account goes up (asset increase = debit), and revenue goes up (income increase = credit). Both sides of the transaction are recorded.
This is what you need to get to from your Milchbüchlein. Let's look at what you're starting with.
The Milchbüchlein: Where You're Starting
A typical Milchbüchlein for a small GmbH looks something like this — a spreadsheet with three tabs:
Summary Tab:
| CHF | |
|---|---|
| Einnahmen | |
| App Store Revenue | 7'400 |
| Advertising Revenue | 890 |
| Consulting (Intercompany) | 20'700 |
| Direct Clients | 5'100 |
| Total Revenue | 34'090 |
| Ausgaben | |
| Marketing | (4'130) |
| Meals & Travel | (4'530) |
| Software & Licenses | (860) |
| Education | (1'880) |
| Freelancers | (620) |
| Hardware | (380) |
| Other | (3'100) |
| Total Expenses | (15'500) |
| Gewinn | 18'590 |
Plus an Invoice Tab (all outgoing invoices with number, client, amount, dates, payment method) and an Expense Tab (all expenses with description, amount, date, category, payment method).
This is perfectly fine for tracking your cash flow. The problem? It's not a Jahresabschluss. It's not even close.
What's Missing From Your Milchbüchlein
When you sit down to convert your Milchbüchlein into proper books, you'll discover a surprisingly large number of things that are either missing, ambiguous, or wrong.
No Balance Sheet
The Milchbüchlein tracks flows (money in/out), not stocks (what you own, what you owe). Without a Bilanz, you can't file a tax return.
MwSt Confusion
Were MwSt amounts shown on actual invoices? If you're not registered but showed VAT, you owe it to the ESTV regardless.
Cash vs. Accrual
Proper accounting requires the accrual principle: revenue when earned, expenses when incurred — not when cash moves.
Missing Stammkapital
Your CHF 20'000 Stammkapital needs a clean Eröffnungsbilanz showing exactly where it went.
Intercompany Issues
Revenue from related companies needs arm's-length pricing, actual settlement, and disclosure in the Anhang.
Uncategorized Expenses
Every 'other' bucket needs to be classified into proper accounts. 'Other' is not an accounting category.
Gap 3: Accrual vs. Cash Basis — A Closer Look
The Milchbüchlein records things when cash moves. But proper accounting uses the accrual principle (Periodenabgrenzung): revenue is recognized when earned, expenses when incurred — not when paid.
In our example, three invoices from November and December 2024 weren't paid until February and March 2025:
| Invoice | Client | Amount | Invoice Date | Payment Date |
|---|---|---|---|---|
| #1 | App Store | 882 | 31.12.2024 | 04.02.2025 |
| #6 | Ad Network | 124 | 18.11.2024 | 13.03.2025 |
| #6 | Payment Processor | 241 | 05.11.2024 | 13.03.2025 |
These are Debitoren (accounts receivable) — they belong in 2024's revenue and on the 31.12.2024 balance sheet as assets, even though the cash didn't arrive until 2025.
Gap 7: The Missing Anhang
The Anhang (notes) is the most overlooked part. Even for a small GmbH, you need to disclose:
- Accounting principles used
- Stammkapital and ownership
- Any related-party transactions
- Any contingent liabilities
- Events after the balance sheet date
Building the Erfolgsrechnung (Income Statement)
The Erfolgsrechnung maps your revenue and expenses into the structure required by OR Art. 959b. For a small company, a simplified structure is sufficient.
Revenue Side (Betriebsertrag)
Your Milchbüchlein lumps all income together. The Erfolgsrechnung breaks it into sources:
BETRIEBSERTRAG
3200 Dienstleistungsertrag Inland
- App Store Revenue (Apple) 7'423
- Payment Processor (Stripe) 3'234
- Ad Network Revenue (Google) 891
- Direct Client A 4'525
- Direct Client B 4'945
- Direct Client C 300
- Direct Client D 14
3210 Dienstleistungsertrag (Intercompany)
- Related Company Ltd 20'710
--------
Total Betriebsertrag 42'042
Key decisions:
- Revenue from a related company should ideally be shown separately or at least disclosed
- If you're not MwSt-registered, these are gross = net amounts
- Revenue is booked on the invoice date, not the payment date
Expense Side (Betriebsaufwand)
Map your Milchbüchlein categories to the Swiss Kontenrahmen KMU:
| Milchbüchlein Category | Kontenrahmen Account | Amount |
|---|---|---|
| Marketing | 3800 Werbeaufwand | (4'131) |
| Meals & Travel | 6700 Reise- und Repräsentationsaufwand | (4'532) |
| Education | 5820 Weiterbildungskosten | (1'882) |
| Software | 6500 Informatikaufwand | (863) |
| Freelancers | 4000 Aufwand für Drittleistungen | (616) |
| Hardware | 6510 Informatikaufwand | (378) |
| Transportation | 6200 Fahrzeugaufwand | (143) |
| Customer Gifts | 3890 Werbegeschenke | (62) |
| Legal | 6530 Rechts- und Beratungskosten | (60) |
| Uncategorized | ??? | (1'606) |
The uncategorized problem: Those 13 uncategorized expenses need to go somewhere. Looking at our example data, most were Meta advertising expenses, accommodation for a conference, cloud computing credits, or language lessons. Each needs proper classification.
Partial deductibility: Some expenses are only partially business-related. A Spotify subscription used 40% for business? Only 40% goes on the books. This is where the Milchbüchlein's simple "I spent CHF 100" gets complicated.
The Result
BETRIEBSERTRAG
Total Umsatz 42'042
BETRIEBSAUFWAND
Marketingaufwand (4'131)
Reise- und Verpflegungskosten (4'532)
Weiterbildung (1'882)
Übriger Aufwand (1'437)
Software & Lizenzen (863)
Fremdleistungen (616)
Hardware (378)
Transportkosten (143)
Kundengeschenke (62)
Rechts- und Beratungskosten (60)
Nicht kategorisiert (1'606)
--------
Total Aufwand (15'710)
========
JAHRESGEWINN 26'332
Gewinnmarge: 62.6%. This is a healthy software business with one employee.
Building the Bilanz (Balance Sheet)
This is where the Milchbüchlein truly falls apart. You've never tracked assets and liabilities — only flows. Now you need to reconstruct them.
The Opening Balance (Eröffnungsbilanz)
For a first-year GmbH, the opening balance is straightforward. On the day of incorporation:
AKTIVEN PASSIVEN
Flüssige Mittel (Bank) 20'000 Stammkapital 20'000
------- -------
Total Aktiven 20'000 Total Passiven 20'000
Important nuance: If there was already money in the bank account before the GmbH was founded (say, CHF 7'500 of personal funds), that money is not part of the GmbH. Either it was withdrawn, or it needs to be treated as a Gesellschafterdarlehen (shareholder loan) — which appears on the Passiven side as a liability.
The Closing Balance (Schlussbilanz)
At year-end, you need to figure out what the GmbH owns and owes.
Flüssige Mittel (Bank accounts):
Estimated closing bank balance:
Opening balance (Stammkapital) 20'000
+ Cash received from invoices 37'920
- Cash paid for expenses (15'710)
-------
= Estimated closing balance 42'210
Forderungen (Debitoren / Receivables):
Any invoice issued in 2024 but not paid until 2025 is a receivable:
App Store - Invoice #1 (31.12.2024) 882
Ad Network - Invoice #6 (18.11.2024) 124
Payment Proc. - Invoice #6 (05.11.2024) 241
Related Co. - Invoice #1 (19.02.2024) 2'860
Ad Network - Invoice #6 (16.01.2024) 16
-----
Total Debitoren 4'122
Why is a February invoice from the related company still unpaid at year-end? This is exactly the kind of thing that raises flags.
The Complete Closing Balance
AKTIVEN PASSIVEN
Umlaufvermögen Fremdkapital
Flüssige Mittel 42'210 Kreditoren 0
Debitoren 4'122 Übrige Verbindl. 0
Total Fremdkapital 0
Total Umlaufverm. 46'332
Anlagevermögen Eigenkapital
Sachanlagen 0 Stammkapital 20'000
Total Anlageverm. 0 Gewinnreserve 0
Jahresgewinn 26'332
Total Eigenkapital 46'332
------ ------
TOTAL AKTIVEN 46'332 TOTAL PASSIVEN 46'332
The magic check: Aktiven = Passiven. If this doesn't balance, something is wrong. In double-entry bookkeeping, it must balance by construction. If it doesn't, look for:
- Missing transactions
- Cash movements not recorded
- Expenses booked twice
- Revenue recognized in the wrong period
Sachanlagen (Fixed Assets)
If you bought a laptop or phone for business use, you have a choice:
- Expense directly (Sofortabschreibung): if the item is under ~CHF 1'000, common practice is to book it as an expense in the current year
- Capitalize and depreciate: if the item is expensive or has multi-year use, you add it to the Bilanz and write it down over its useful life (typically 3–5 years for IT equipment)
For a CHF 378 phone, direct expensing makes sense.
The MwSt Question
MwSt (Mehrwertsteuer / VAT) is the single biggest source of confusion for small GmbHs.
Are You Even Registered?
In Switzerland, you're required to register for MwSt if your annual revenue exceeds CHF 100'000. Below that threshold, registration is optional (freiwillige Unterstellung).
If you're NOT registered (revenue under CHF 100'000):
- You don't charge MwSt on invoices
- You can't reclaim Vorsteuer (input tax) on your expenses
- Your invoices must not show a MwSt line
- Your Erfolgsrechnung is just revenue and expenses, no tax layer
If you ARE registered:
- You charge MwSt (currently 8.1% standard rate) on invoices
- You reclaim Vorsteuer on business expenses
- You file quarterly MwSt returns with the ESTV
- The difference (collected minus reclaimed) is what you owe
The Dangerous Gray Zone
Here's where people get into trouble: your accounting software (or your Milchbüchlein template) might automatically calculate MwSt on every invoice. If you're not registered and those calculations are just internal, that's fine — ignore them.
But if those MwSt amounts actually appear on invoices you sent to clients, you have a legal problem. Under MWSTG Art. 27 Abs. 2:
Wer in einer Rechnung eine Steuer ausweist, ohne zu deren Erhebung berechtigt zu sein, schuldet den ausgewiesenen Betrag.
Translation: if you show tax on an invoice without being authorized to collect it, you owe the stated amount. The ESTV will want that money.
Action items if you discover this issue:
- Issue corrected invoices (Korrekturrechnungen) to clients without MwSt
- Consult a Treuhänder about potential ESTV exposure
- Fix your invoicing setup going forward
If You're Close to CHF 100'000
If your revenue is approaching the threshold, consider registering voluntarily. The Saldosteuersatz method lets you apply a simplified flat rate instead of tracking Vorsteuer on every expense. For IT services, the Saldosteuersatz is typically 6.1%, meaning you keep 2% of the 8.1% you charge clients. On CHF 100'000 of revenue, that's CHF 2'000 in additional cost — weigh this against the benefit of reclaiming Vorsteuer on expenses.
Debitoren and Kreditoren: Accrual vs. Cash
This is the conceptual leap from Milchbüchlein to proper accounting.
The Principle
- Cash basis (Milchbüchlein): I received CHF 5'000 in December → December revenue is CHF 5'000
- Accrual basis (double-entry): I issued CHF 8'000 in invoices in December, of which CHF 5'000 was paid → December revenue is CHF 8'000, and I have CHF 3'000 in Debitoren
For Swiss GmbHs, the accrual principle is required. Revenue belongs to the period in which the service was provided, not when the cash arrives.
How to Identify Debitoren
Go through your invoice list and check: was every 2024 invoice paid before 31 December 2024?
- Issued in 2024, paid in 2025 → Debitor
- Issued in 2024, never paid → might still be a Debitor, or might need a Wertberichtigung (write-down) if it's likely uncollectable
How to Identify Kreditoren
Go through your expenses and check: are there any December 2024 expenses you hadn't paid by 31 December?
Common examples: annual software subscriptions billed in January for the prior year, freelancer invoices from December paid in January, credit card bills from December settled in January.
The Impact on the Bilanz
Without accruals: With accruals:
Bank 38'000 Bank 38'000
Debitoren 4'000
------ ------
Aktiven 38'000 Aktiven 42'000
Stammkapital 20'000 Kreditoren 1'500
Gewinn 18'000 Stammkapital 20'000
------ Gewinn 20'500
Passiven 38'000 ------
Passiven 42'000
The accrual-based version shows a higher profit (CHF 20'500 vs 18'000) because it includes revenue earned but not yet collected, and expenses incurred but not yet paid.
Intercompany Transactions
If you own multiple companies and they invoice each other, welcome to the world of intercompany accounting. This is more common than you'd think — many Swiss entrepreneurs have a GmbH for their product and a Ltd (UK) or other vehicle for other activities.
Why It Matters
In our example, roughly half of all revenue came from a related UK company owned by the same person. This is fine, but it requires:
- Arm's-length pricing: The invoiced amounts should reflect what an unrelated third party would pay for the same services. If your GmbH charges your UK company CHF 20'000 for "consulting" but similar services cost CHF 5'000 on the market, the Swiss tax authorities (and HMRC) may have questions.
- Actual settlement: Money needs to actually change hands. If you invoice your own company and nobody ever pays, you're creating artificial revenue.
- Disclosure: Related-party transactions must be disclosed in the Anhang. The Treuhänder will want to know the nature of the relationship, volume of transactions, outstanding balances, and whether pricing is arm's length.
How to Handle It
The cleanest approach:
- Issue proper invoices between companies (just like for external clients)
- Pay them via bank transfer within normal payment terms (30–60 days)
- Keep the paper trail pristine
- Disclose everything in both companies' financial statements
Common Traps for Small GmbHs
Based on real-world examples, here are the most frequent issues that trip up small GmbH owners at year-end.
'I'll Sort It Later'
Every uncategorized expense is a problem at year-end. Categorize expenses as you go. Set up categories at the start of the year and stick to them.
Mixed Personal/Business
Spotify 40% for work? Phone used personally? Each needs a defensible split based on geschäftsmässig begründeter Aufwand.
Forgetting Gewinnverwendung
After accounts are finalized, the Gesellschafterversammlung must approve and decide: reserve allocation, dividends, or Gewinnvortrag.
Ignoring the Bilanz
The Bilanz is the basis for Kapitalsteuer and affects how tax authorities assess your company. An inflated bank balance looks very different from a leveraged one.
Not Reconciling the Bank
Your Milchbüchlein says one thing, your bank says another. Always reconcile to the centime — or at least document the difference.
No Tax Planning
Your GmbH owes Gewinnsteuer (Bund + Kanton) plus Kapitalsteuer. On CHF 26'000 profit, that's roughly CHF 3'000–5'000 depending on location.
Trap Detail: Gewinnverwendung and Reserves
After accounts are finalized, 5% of annual profit goes to the gesetzliche Gewinnreserve until the reserve reaches 20% of Stammkapital (= CHF 4'000 for a CHF 20'000 company).
In our example: 5% of CHF 26'332 = CHF 1'317 must go to the reserve. The remaining CHF 25'015 can be distributed as dividends or retained as Gewinnvortrag.
Remember: Dividends from a GmbH are taxable income for you personally, subject to the Teilbesteuerungsverfahren (partial taxation, typically 50–70% depending on the canton).
Trap Detail: Gründungskosten
Setting up a GmbH costs money — notary fees, Handelsregister registration, bank account setup. These Gründungskosten can be expensed immediately (most common for small amounts) or capitalized as intangible assets and amortized over up to 5 years (OR Art. 959a). For a small GmbH, just expense them in year one.
Trap Detail: Corporate Taxes
Your GmbH owes taxes on its profit:
- Gewinnsteuer (Bund): 8.5% of profit (effective ~7.8% after deducting the tax itself)
- Gewinnsteuer (Kanton/Gemeinde): varies massively, from ~5% in Zug to ~15%+ in some places
- Kapitalsteuer (Kanton): on equity, typically 0.01–0.5%
This should be accrued as a liability on the balance sheet (passive Rechnungsabgrenzung) — though many small companies don't bother and just pay it when the bill comes.
The Complete Checklist
Phase 1: Data Gathering
- Export or compile all invoices for the year
- Export or compile all expenses for the year
- Get bank statements for all accounts (31 December closing balances)
- Gather all contracts and agreements (especially intercompany)
- Locate the Gründungsprotokoll / Handelsregisterauszug (for Stammkapital)
- Collect any loan agreements (shareholder loans, bank loans)
Phase 2: Cleanup
- Categorize every single expense — zero uncategorized items
- Split mixed-use expenses (business vs. personal portion)
- Verify all amounts against bank statements
- Identify Debitoren (2024 invoices paid in 2025)
- Identify Kreditoren (2024 expenses paid in 2025)
- Flag intercompany transactions for separate disclosure
- Confirm MwSt status and ensure invoices match (MwSt shown or not)
Phase 3: Construct Financial Statements
- Build the Erfolgsrechnung (revenue by source, expenses by category)
- Build the opening Bilanz (Stammkapital = bank for year 1, or prior year closing balance)
- Build the closing Bilanz (bank + Debitoren = Aktiven, Stammkapital + reserves + profit = Passiven)
- Verify: Aktiven = Passiven (must balance exactly)
- Verify: Jahresgewinn on Bilanz = Jahresgewinn on Erfolgsrechnung
- Prepare the Anhang (notes on accounting principles, Stammkapital, related parties)
Phase 4: Tax and Compliance
- File MwSt returns if registered (quarterly with ESTV)
- Prepare Steuererklärung documentation (Kanton + Bund)
- Hold Gesellschafterversammlung to approve accounts
- Decide on Gewinnverwendung (reserve + dividend/retention)
- Keep all records for 10 years (OR Art. 958f)
Working With Your Treuhänder
Most small GmbH founders in Switzerland work with a Treuhänder (fiduciary / accountant) for at least the annual accounts. Here's how to make that relationship efficient.
What to Prepare Before the Meeting
- Your Milchbüchlein — cleaned up, with every transaction categorized
- Bank statements — PDF exports for all 12 months, highlighting the 31 December balance
- Invoice register — every outgoing invoice with date, amount, client, payment status
- Outstanding items — a list of anything unpaid at year-end (both receivables and payables)
- Intercompany documentation — contracts, invoices, and proof of payment between related entities
- Questions — everything you're unsure about
How Much Should It Cost?
For a simple one-person GmbH with ~50 invoices and ~150 expenses:
| Approach | Cost Range |
|---|---|
| Treuhänder doing everything from your Milchbüchlein | CHF 2'000–4'000 |
| You prepare proper books, Treuhänder reviews and files | CHF 800–1'500 |
| Using accounting software, Treuhänder does year-end only | CHF 500–1'200 |
The better your preparation, the less you pay.
What Accounting Software to Consider
If you want to move beyond the Milchbüchlein (and you should for a GmbH), the main options in Switzerland are:
- Magic Heidi — built specifically for Swiss freelancers and small businesses, with QR invoices, AI expense scanning, and MwSt management
- Bexio — most popular for small businesses, solid all-rounder
- AbaNinja — free tier available, modern interface
- Banana Accounting — Swiss-made, good for very small companies
Any of these will give you proper double-entry books, MwSt handling, and the ability to export a Jahresabschluss directly.
Appendix: Swiss Chart of Accounts (Kontenrahmen KMU)
For reference, here are the most relevant accounts for a small service GmbH.
Klasse 1: Aktiven (Assets)
| Konto | Name | Milchbüchlein Equivalent |
|---|---|---|
| 1000 | Kasse | Cash expenses |
| 1020 | Bank | Bank balance |
| 1100 | Forderungen aus Lieferungen (Debitoren) | Unpaid invoices |
| 1500 | Maschinen und Geräte | Hardware (if capitalized) |
Klasse 2: Passiven (Liabilities + Equity)
| Konto | Name | Milchbüchlein Equivalent |
|---|---|---|
| 2000 | Verbindlichkeiten (Kreditoren) | Unpaid bills |
| 2100 | Bankverbindlichkeiten | Bank loans |
| 2300 | Passive Rechnungsabgrenzung | Accrued expenses (tax provisions) |
| 2800 | Stammkapital | GmbH share capital |
| 2900 | Gesetzliche Gewinnreserve | Mandatory profit reserve |
| 2990 | Jahresgewinn / Gewinnvortrag | P&L result / retained earnings |
Klasse 3: Betriebsertrag (Revenue)
| Konto | Name | Milchbüchlein Equivalent |
|---|---|---|
| 3200 | Dienstleistungsertrag | All invoiced revenue |
| 3400 | Übrige Betriebserträge | Interest, misc. income |
Klasse 4–6: Aufwand (Expenses)
| Konto | Name | Milchbüchlein Equivalent |
|---|---|---|
| 4000 | Aufwand für Drittleistungen | Freelancers & Consulting |
| 5000 | Personalaufwand (Löhne) | Salary (if you pay yourself) |
| 5700 | Sozialversicherungsaufwand | AHV/IV/EO contributions |
| 5820 | Weiterbildung | Education & Training |
| 6000 | Mietaufwand | Office rent |
| 6200 | Fahrzeugaufwand | Transport costs |
| 6500 | Informatikaufwand | Software & Licenses |
| 6530 | Rechts- und Beratungsaufwand | Legal & consulting fees |
| 6570 | Treuhandkosten | Treuhänder costs |
| 6700 | Reise- und Repräsentationsaufwand | Meals & Travel |
| 6950 | Finanzaufwand | Bank fees, FX losses |
| 8900 | Direkte Steuern | Corporate income tax |
Frequently Asked Questions
Can my GmbH use single-entry bookkeeping (Milchbüchlein)?
No. A GmbH must use double-entry bookkeeping (doppelte Buchhaltung) regardless of size or revenue. Single-entry bookkeeping is only permitted for Einzelunternehmen (sole proprietorships) with less than CHF 500'000 in revenue. This is a hard legal requirement under OR Art. 957.
Do I need to register for MwSt if my GmbH revenue is under CHF 100'000?
No, registration is optional below CHF 100'000. However, if you've been showing MwSt on invoices without being registered, you legally owe the stated amounts to the ESTV (MWSTG Art. 27 Abs. 2). Ensure your invoices match your registration status.
What's the difference between Debitoren and Kreditoren?
Debitoren (accounts receivable) are invoices you issued but haven't been paid yet — they're assets on your Bilanz. Kreditoren (accounts payable) are bills you received but haven't paid yet — they're liabilities. Both are required for proper accrual accounting.
How much does a Treuhänder cost for a small GmbH?
For a one-person GmbH with ~50 invoices and ~150 expenses: CHF 2'000–4'000 if they do everything from your Milchbüchlein, CHF 800–1'500 if you prepare proper books first, or CHF 500–1'200 if you use accounting software and they only handle year-end.
What mandatory reserves does a GmbH need?
Under OR Art. 671, a GmbH must allocate 5% of annual profit to the gesetzliche Gewinnreserve until the reserve reaches 20% of the Stammkapital. For a standard CHF 20'000 GmbH, that means reserving until you reach CHF 4'000.
How are intercompany transactions handled?
Invoices between related companies you own must use arm's-length pricing (market rates), be actually settled via bank transfer within normal payment terms, and be fully disclosed in the Anhang. Unsettled intercompany invoices raise red flags with tax authorities.
What taxes does my GmbH owe on its profit?
Gewinnsteuer (Bund) at 8.5% effective (~7.8% after deduction), Gewinnsteuer (Kanton/Gemeinde) varying from ~5% to ~15%+, and Kapitalsteuer (Kanton) on equity at 0.01–0.5%. On CHF 26'000 profit, expect roughly CHF 3'000–5'000 total depending on your canton.
How long do I need to keep business records?
All business records (invoices, receipts, bank statements, contracts, accounting documents) must be kept for 10 years per OR Art. 958f. Digital storage is accepted and recommended — thermal paper receipts fade after 2–3 years.
Simplify Your GmbH Accounting
The gap between a Milchbüchlein and a proper Jahresabschluss is bigger than most people expect. Start with the right tools and make year-end a routine, not a crisis.
Key Takeaways
- A GmbH requires double-entry bookkeeping. There's no way around it.
- The Bilanz is not optional. You can't file taxes without it.
- MwSt status must be clear. Either you're registered or you're not — and your invoices must reflect that.
- Accrual accounting matters. Debitoren and Kreditoren change your numbers.
- Intercompany transactions need documentation. Related-party revenue is legitimate but scrutinized.
- Categorize everything. "Other" is not an accounting category.
- Reconcile with the bank. Your spreadsheet is only as good as its match to reality.
Related Guides
- Milchbüchleinrechnung & Milchbüechli Buchhaltung
- Buchhaltung für Einzelfirma
- Accounting Software Switzerland — Comparison 2026
- Bookkeeping and Record Keeping
- Swiss VAT / MwSt Management
- Maximizing Tax Deductions
This guide was written based on Swiss law as of 2024. Key references: OR Art. 957–963 (accounting obligations), MWSTG Art. 10 (registration threshold), Art. 27 (invoice requirements), OR Art. 671 (mandatory reserves). Always verify current rates and thresholds with official sources.