Privacy  ·  Features  ·  Deutsch  ·  Sign in  ·  Register

Setting Up a New Office

From empty system to a working knee clinic – in six steps.

One admin, two staff, three medical staff, one knee-treatment catalog.
This guide walks you through the exact order of operations: what to create first, what depends on what, and which CSV file belongs in which step. Follow it top to bottom and you will have a fully working office at the end.

Two ways to a working practice:

The steps below describe both paths. The CSV examples serve as templates – replace the sample values with your own.

What you will have at the end

Item Details
Office One new office, isolated from all other offices (multi-tenant safe)
Users 1 Admin, 2 Staff
Medical staff 1 female doctor, 1 male doctor, 1 MRT technician
Procedures Knee-treatment catalog (consultation, MRT, arthroscopy, meniscus surgery, follow-up)
Qualifications Each procedure mapped to who is allowed to perform it
Sample appointments A small week of knee patients to verify everything works

The order matters

RevenueForecast enforces dependencies: an appointment needs a procedure, a procedure needs a qualification, a qualification needs medical staff, and everything needs an office. If you try to import appointments first, the import will reject rows with unknown references. So we go bottom-up.

Golden rule: create the thing that is referenced before the thing that references it. Office → Users → Medical staff → Qualifications → Procedures → Appointments.

1Create the office

An office is the top-level container. Everything you create afterwards belongs to exactly one office. Users, medical staff, procedures and appointments are all scoped to it.

Where: Register → Create a new office (or Admin → Offices → New, if you already have an admin account).

What you enter: office name, address, time zone, default currency. Nothing else is required at this point.

CSV: offices.csv

office_id,name,address,city,country,timezone,currency
OFF-001,Sunrise Knee Clinic,12 Bahnhofstrasse,Berlin,DE,Europe/Berlin,EUR
Result: one office with ID OFF-001. You will use this ID in every following file.

2Create the users (1 Admin, 2 Staff)

Users are the people who log in. They are not the same as medical staff (step 3) – a user is an account, a medical staff member is a resource that can be booked into appointments. In small clinics the same person is often both; in this example they are kept separate.

Roles used here:

CSV: users.csv

user_id,office_id,email,first_name,last_name,role,password_temp
U-001,OFF-001,admin@sunrise-knee.example,Anna,Weber,Admin,ChangeMe!2026
U-002,OFF-001,frontdesk1@sunrise-knee.example,Lena,Hoffmann,Staff,ChangeMe!2026
U-003,OFF-001,frontdesk2@sunrise-knee.example,Jonas,Richter,Staff,ChangeMe!2026
Note: the password_temp column is only for the initial import. Users are forced to change it on first login. Never keep this file after import.

3Create the medical staff

Medical staff are the resources that appear in the calendar and in the coverage view. They have a role that determines which qualifications they can hold.

Gender is a plain field (f/m/x) so the calendar can show the correct salutation and, if you later add it, gender-specific scheduling rules.

CSV: medical_staff.csv

staff_id,office_id,first_name,last_name,role,gender,email,weekly_hours
MS-001,OFF-001,Sofia,Lindqvist,Doctor,f,s.lindqvist@sunrise-knee.example,40
MS-002,OFF-001,Marcus,Brandt,Doctor,m,m.brandt@sunrise-knee.example,40
MS-003,OFF-001,Tobias,Neumann,MRT Technician,m,t.neumann@sunrise-knee.example,38

4Define qualifications

A qualification is a capability. Procedures require qualifications; staff hold qualifications. RevenueForecast checks at booking time whether at least one person on shift holds every required qualification.

Qualification ID Name Held by
Q-ORTHOOrthopedic consultationDr. Lindqvist, Dr. Brandt
Q-SURGOrthopedic surgeryDr. Lindqvist, Dr. Brandt
Q-MRTMRT operationTobias Neumann
Q-FOLLOWPost-op follow-upDr. Lindqvist, Dr. Brandt

CSV: qualifications.csv

qualification_id,office_id,name,description
Q-ORTHO,OFF-001,Orthopedic consultation,Initial assessment and diagnosis
Q-SURG,OFF-001,Orthopedic surgery,Surgical procedures on the knee
Q-MRT,OFF-001,MRT operation,Operating the MRT scanner
Q-FOLLOW,OFF-001,Post-op follow-up,Post-operative check-ups

CSV: staff_qualifications.csv

staff_id,qualification_id
MS-001,Q-ORTHO
MS-001,Q-SURG
MS-001,Q-FOLLOW
MS-002,Q-ORTHO
MS-002,Q-SURG
MS-002,Q-FOLLOW
MS-003,Q-MRT
Why two files? Keeping qualifications and their assignment separate means you can add a new qualification later without touching staff records, and reassign staff without touching the qualification catalog.

5Build the knee-treatment catalog

Each procedure has a duration, a price, a color (for the calendar) and a list of required qualifications. The example below is a realistic knee pathway from first consultation to follow-up.

Procedure ID Name Duration Price (EUR) Required qualification
P-KNEE-CONSKnee consultation20 min60Q-ORTHO
P-KNEE-MRTKnee MRT30 min220Q-MRT
P-KNEE-ARTHKnee arthroscopy60 min850Q-SURG
P-KNEE-MENMeniscus surgery75 min1100Q-SURG
P-KNEE-FUPost-op follow-up15 min45Q-FOLLOW

CSV: procedures.csv

procedure_id,office_id,name,duration_min,price,points,color,required_qualification
P-KNEE-CONS,OFF-001,Knee consultation,20,60,2,#4a90d9,Q-ORTHO
P-KNEE-MRT,OFF-001,Knee MRT,30,220,44,#8e6ec8,Q-MRT
P-KNEE-ARTH,OFF-001,Knee arthroscopy,60,850,33,#d96a6a,Q-SURG
P-KNEE-MEN,OFF-001,Meniscus surgery,75,1100,99,#c94f4f,Q-SURG
P-KNEE-FU,OFF-001,Post-op follow-up,15,45,2,#4caf80,Q-FOLLOW
Check before importing: every value in required_qualification must exist in qualifications.csv (step 4). A typo here will cause the row to be rejected.
Points instead of amounts: the points column is only used when the practice is set to points in practice settings. In euro mode, the import ignores points and uses price instead. Both columns can be maintained independently.

6Import sample appointments

Now everything exists, so appointments can finally be imported. A realistic week for this office: consultations on Monday, MRT and surgery mid-week, follow-ups on Friday.

CSV: appointments.csv

appointment_id,office_id,patient_ref,procedure_id,staff_id,start,end,room
A-1001,OFF-001,PAT-0001,P-KNEE-CONS,MS-001,2026-10-19T09:00,2026-10-19T09:20,R1
A-1002,OFF-001,PAT-0002,P-KNEE-CONS,MS-002,2026-10-19T09:30,2026-10-19T09:50,R1
A-1003,OFF-001,PAT-0003,P-KNEE-MRT,MS-003,2026-10-20T10:00,2026-10-20T10:30,MRT1
A-1004,OFF-001,PAT-0001,P-KNEE-ARTH,MS-001,2026-10-21T08:00,2026-10-21T09:00,OP1
A-1005,OFF-001,PAT-0004,P-KNEE-MEN,MS-002,2026-10-21T10:00,2026-10-21T11:15,OP1
A-1006,OFF-001,PAT-0001,P-KNEE-FU,MS-001,2026-10-23T09:00,2026-10-23T09:15,R1
A-1007,OFF-001,PAT-0003,P-KNEE-FU,MS-002,2026-10-23T09:30,2026-10-23T09:45,R1
What to verify after import:

Full import order (cheat sheet)

# File Depends on
1offices.csv–
2users.csvoffices
3medical_staff.csvoffices
4qualifications.csvoffices
5staff_qualifications.csvmedical_staff, qualifications
6procedures.csvoffices, qualifications
7appointments.csvoffices, procedures, medical_staff

All eight example files are available for download: csv-examples/

Common mistakes

Datenschutz

RevenueForecast speichert nur, was für die Auslastungs- und Umsatzprognose nötig ist. Patientinnen und Patienten können über pseudonyme Kennungen (z. B. Patientennummern, Fallzeichen oder Initialen) referenziert werden – Klarnamen sind nicht erforderlich.

Datenschutz für Praxen  ·  Technische Details

Want to try this with your own data?

We can walk through this setup with you in a 30-minute online session – your office name, your staff, your procedures. You leave with a working environment.

[Get in touch] [Book a demo]