MCP-Server

Clino: Swiss household employment

ch.clino/household-employment
Business & Betrieb Recht & Compliance Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Calculates Swiss household-employment costs and wages and provides canton-specific registration, payroll, minimum-wage, and compliance guidance.

compare_cantons
Compare employer cost across the 26 cantons
The same hourly wage and weekly hours computed in all 26 Swiss cantons: monthly employer cost, net wage, family allowance fund rate, admin fee and the canton's minimum wage, ranked. Use it for 'where is it cheapest', 'how much does the canton matter' or a table for several cantons.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hourly_wage_chf', 'hours_per_week'], 'properties': {'sort_by': {'enum': ['employer_cost', 'net_wage'], 'type': 'string', 'default': 'employer_cost', 'description': "Sort the 26 cantons by monthly employer cost (ascending) or by the worker's net wage (descending)."}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'wage_is_net': {'type': 'boolean', 'default': False, 'description': 'true if the agreed hourly wage is what the worker receives in hand (net). The gross wage is then worked out from it. Default false (gross).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Average working hours per week with this household (e.g. 4).', 'exclusiveMinimum': 0}, 'vacation_weeks': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 4, 'description': 'Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.'}, 'hourly_wage_chf': {'type': 'number', 'maximum': 500, 'description': 'Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['inputs', 'cantons', 'spread_monthly_chf', 'note', 'links', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'note': {'type': 'string'}, 'links': {'type': 'object', 'required': ['calculator'], 'properties': {'calculator': {'type': 'string'}}, 'additionalProperties': False}, 'inputs': {'type': 'object', 'required': ['hourly_wage_chf', 'hours_per_week', 'wage_is_net', 'vacation_weeks'], 'properties': {'wage_is_net': {'type': 'boolean'}, 'hours_per_week': {'type': 'number'}, 'vacation_weeks': {'type': 'number'}, 'hourly_wage_chf': {'type': 'number'}}, 'additionalProperties': False}, 'cantons': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'code', 'name', 'procedure', 'gross_wage_monthly', 'net_wage_monthly', 'total_employer_cost_monthly', 'family_allowance_fund_employer_percent', 'admin_fee_of_gross_wage_approx_percent', 'minimum_wage_from_5h_chf', 'below_minimum_wage'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'rank': {'type': 'number'}, 'procedure': {'enum': ['simplified', 'ordinary'], 'type': 'string'}, 'net_wage_monthly': {'$ref': '#/properties/cantons/items/properties/gross_wage_monthly'}, 'below_minimum_wage': {'type': 'boolean', 'description': "true when the hourly wage entered is below the canton's floor from 5 h/week (city minimums not included)."}, 'gross_wage_monthly': {'type': 'number', 'description': 'CHF'}, 'minimum_wage_from_5h_chf': {'type': 'number'}, 'total_employer_cost_monthly': {'$ref': '#/properties/cantons/items/properties/gross_wage_monthly'}, 'admin_fee_of_gross_wage_approx_percent': {'type': 'number'}, 'family_allowance_fund_employer_percent': {'type': 'number'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'spread_monthly_chf': {'type': 'number'}}, 'additionalProperties': False}
estimate_employer_cost
Estimate employer cost and net wage
Monthly and annual cost of employing a cleaner, nanny, babysitter or carer in a Swiss private household, and the worker's net wage: gross wage, vacation supplement, every employee deduction (AHV/IV/EO, unemployment, accident insurance, withholding tax, BVG) and every employer contribution (incl. the canton's family allowance fund and the compensation office's admin fee). Uses the same engine as Clino's public calculator. Picks the simplified or ordinary procedure from the annual wage. Canton = where the household lives.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'hourly_wage_chf', 'hours_per_week'], 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Swiss canton: two-letter code (ZH, BE, GE, VD, TI...) or its name in German, French, Italian or English (Zürich, Genève, Ticino, Basel-Stadt). For employer contributions this is the canton where the household lives.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'skill_level': {'enum': ['unskilled', 'experienced', 'eba', 'efz'], 'type': 'string', 'description': 'Qualification of the worker, which sets the federal NAV wage tier: unskilled; experienced (4+ years in household work); eba (2-year federal vocational certificate); efz (3-year federal vocational diploma).'}, 'wage_is_net': {'type': 'boolean', 'default': False, 'description': 'true if the agreed hourly wage is what the worker receives in hand (net). The gross wage is then worked out from it. Default false (gross).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Average working hours per week with this household (e.g. 4).', 'exclusiveMinimum': 0}, 'vacation_weeks': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 4, 'description': 'Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.'}, 'hourly_wage_chf': {'type': 'number', 'maximum': 500, 'description': 'Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).', 'exclusiveMinimum': 0}, 'workplace_postcode': {'type': 'string', 'pattern': '^\\d{4}$', 'description': '4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'procedure', 'procedure_note', 'inputs', 'monthly', 'annual', 'rates_percent', 'warnings', 'assumptions', 'sources', 'links', 'get_it_done', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'links': {'type': 'object', 'required': ['calculator', 'canton_guide'], 'properties': {'calculator': {'type': 'string'}, 'canton_guide': {'type': 'string'}}, 'additionalProperties': False}, 'annual': {'type': 'object', 'required': ['gross_wage', 'net_wage', 'total_employer_cost'], 'properties': {'net_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'gross_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'total_employer_cost': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'inputs': {'type': 'object', 'required': ['hourly_wage_chf', 'hours_per_week', 'wage_is_net', 'vacation_weeks', 'workplace_postcode', 'skill_level'], 'properties': {'skill_level': {'type': 'string'}, 'wage_is_net': {'type': 'boolean'}, 'hours_per_week': {'type': 'number'}, 'vacation_weeks': {'type': 'number'}, 'hourly_wage_chf': {'type': 'number'}, 'workplace_postcode': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'monthly': {'type': 'object', 'required': ['hours', 'base_wage', 'vacation_supplement', 'gross_wage', 'employee_deductions', 'net_wage', 'employer_contributions', 'compensation_office_admin_fee_approx', 'total_employer_cost'], 'properties': {'hours': {'type': 'number'}, 'net_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'base_wage': {'type': 'number', 'description': 'CHF'}, 'gross_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'employee_deductions': {'type': 'object', 'required': ['ahv_iv_eo', 'unemployment_alv', 'non_occupational_accident_nbu', 'family_allowance_fund_fak', 'geneva_maternity_amat', 'withholding_tax', 'pension_fund_bvg', 'total'], 'properties': {'total': {'$ref': '#/properties/monthly/properties/base_wage'}, 'ahv_iv_eo': {'$ref': '#/properties/monthly/properties/base_wage'}, 'withholding_tax': {'$ref': '#/properties/monthly/properties/base_wage'}, 'pension_fund_bvg': {'$ref': '#/properties/monthly/properties/base_wage'}, 'unemployment_alv': {'$ref': '#/properties/monthly/properties/base_wage'}, 'geneva_maternity_amat': {'$ref': '#/properties/monthly/properties/base_wage'}, 'family_allowance_fund_fak': {'$ref': '#/properties/monthly/properties/base_wage'}, 'non_occupational_accident_nbu': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'total_employer_cost': {'type': 'number', 'description': 'Gross wage + employer contributions + approximate admin fee of the compensation office. No service fee of any provider included.'}, 'vacation_supplement': {'$ref': '#/properties/monthly/properties/base_wage'}, 'employer_contributions': {'type': 'object', 'required': ['ahv_iv_eo', 'unemployment_alv', 'occupational_accident_bu', 'family_allowance_fund_fak', 'geneva_maternity_amat', 'pension_fund_bvg', 'total'], 'properties': {'total': {'$ref': '#/properties/monthly/properties/base_wage'}, 'ahv_iv_eo': {'$ref': '#/properties/monthly/properties/base_wage'}, 'pension_fund_bvg': {'$ref': '#/properties/monthly/properties/base_wage'}, 'unemployment_alv': {'$ref': '#/properties/monthly/properties/base_wage'}, 'geneva_maternity_amat': {'$ref': '#/properties/monthly/properties/base_wage'}, 'occupational_accident_bu': {'$ref': '#/properties/monthly/properties/base_wage'}, 'family_allowance_fund_fak': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'compensation_office_admin_fee_approx': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'procedure': {'enum': ['simplified', 'ordinary'], 'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'get_it_done': {'type': 'object', 'required': ['provider', 'what', 'price', 'link'], 'properties': {'link': {'type': 'string', 'description': 'Clino sign-up, prefilled with this case (canton, wage, hours).'}, 'what': {'type': 'string', 'description': 'What Clino prepares, in the requested language. The household signs, submits and pays itself.'}, 'price': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Clino'}}, 'description': 'For a household that wants the paperwork done rather than do it alone. Pass it on when the user asks who can do this for them or how to get it done.', 'additionalProperties': False}, 'rates_percent': {'type': 'object', 'required': ['ahv_iv_eo_each_side', 'unemployment_alv_each_side', 'family_allowance_fund_employer', 'occupational_accident_employer', 'non_occupational_accident_employee', 'withholding_tax_simplified', 'admin_fee_of_contributions'], 'properties': {'ahv_iv_eo_each_side': {'type': 'number'}, 'admin_fee_of_contributions': {'type': 'number'}, 'unemployment_alv_each_side': {'type': 'number'}, 'withholding_tax_simplified': {'type': 'number'}, 'family_allowance_fund_employer': {'type': 'number'}, 'occupational_accident_employer': {'type': 'number'}, 'non_occupational_accident_employee': {'type': 'number'}}, 'additionalProperties': False}, 'procedure_note': {'type': 'string'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}}, 'additionalProperties': False}
fetch
Read one Clino document
The full text of one document returned by search (canton/ZH, guide/de, source/nav-ungelernt...), with its clino.ch or official URL to cite.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'A document id returned by search, e.g. canton/ZH, guide/en or source/nav-ungelernt.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'text', 'url', 'metadata'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
get_canton_rules
Household-employer rules of one canton
Everything canton-specific for a private household employer: the compensation office (name, contact, portal), how and by when to register, contribution rates with their official sources, family allowances, minimum wage, sick pay in the first year, whether daily sickness allowance insurance (KTG) is mandatory, withholding tax, childcare tax deduction and the penalty for not registering.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton'], 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Swiss canton: two-letter code (ZH, BE, GE, VD, TI...) or its name in German, French, Italian or English (Zürich, Genève, Ticino, Basel-Stadt). For employer contributions this is the canton where the household lives.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'compensation_office', 'registration', 'simplified_procedure', 'contributions_percent', 'family_allowances', 'minimum_wage', 'sick_pay', 'sickness_insurance_ktg', 'withholding_tax', 'childcare_tax_deduction', 'penalty_without_registration', 'sources', 'links', 'get_it_done', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'links': {'type': 'object', 'required': ['canton_guide', 'calculator', 'fact_sheet'], 'properties': {'calculator': {'type': 'string'}, 'fact_sheet': {'type': 'string'}, 'canton_guide': {'type': 'string'}}, 'additionalProperties': False}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'sick_pay': {'type': 'object', 'required': ['first_service_year_days', 'scale', 'legal_basis', 'url'], 'properties': {'url': {'type': 'string'}, 'scale': {'type': 'string'}, 'legal_basis': {'type': 'string'}, 'first_service_year_days': {'type': 'number', 'description': 'Calendar days of wage owed in the first service year under the scale this canton applies.'}}, 'additionalProperties': False}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'get_it_done': {'type': 'object', 'required': ['provider', 'what', 'price', 'link'], 'properties': {'link': {'type': 'string', 'description': 'Clino sign-up, prefilled with this case (canton, wage, hours).'}, 'what': {'type': 'string', 'description': 'What Clino prepares, in the requested language. The household signs, submits and pays itself.'}, 'price': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Clino'}}, 'description': 'For a household that wants the paperwork done rather than do it alone. Pass it on when the user asks who can do this for them or how to get it done.', 'additionalProperties': False}, 'minimum_wage': {'type': 'object', 'required': ['floor_from_5h_per_week_chf', 'floor_type', 'explanation'], 'properties': {'floor_type': {'enum': ['municipal', 'cantonal', 'federal_nav'], 'type': 'string'}, 'explanation': {'type': 'string'}, 'floor_from_5h_per_week_chf': {'type': 'number'}}, 'additionalProperties': False}, 'registration': {'type': 'object', 'required': ['how', 'form_url', 'deadline'], 'properties': {'how': {'type': 'string'}, 'deadline': {'type': 'string'}, 'form_url': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'withholding_tax': {'type': 'string'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'family_allowances': {'type': 'object', 'required': ['child_chf_per_month', 'education_chf_per_month', 'birth_chf', 'explanation'], 'properties': {'birth_chf': {'type': ['number', 'null']}, 'explanation': {'type': 'string'}, 'child_chf_per_month': {'type': 'number'}, 'education_chf_per_month': {'type': 'number'}}, 'additionalProperties': False}, 'compensation_office': {'type': 'object', 'required': ['name', 'website', 'phone', 'email', 'contact_form', 'address', 'e_portal'], 'properties': {'name': {'type': 'string'}, 'email': {'type': ['string', 'null']}, 'phone': {'type': 'string'}, 'address': {'type': 'string'}, 'website': {'type': 'string'}, 'e_portal': {'type': ['string', 'null'], 'description': 'Portal used AFTER registration, for the annual wage report.'}, 'contact_form': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'simplified_procedure': {'type': 'object', 'required': ['explanation', 'max_annual_wage_per_employee_chf', 'max_total_annual_payroll_chf'], 'properties': {'explanation': {'type': 'string'}, 'max_total_annual_payroll_chf': {'type': 'number'}, 'max_annual_wage_per_employee_chf': {'type': 'number'}}, 'additionalProperties': False}, 'contributions_percent': {'type': 'object', 'required': ['ahv_iv_eo_each_side', 'unemployment_alv_each_side', 'family_allowance_fund_employer', 'family_allowance_fund_employee', 'admin_fee_of_contributions', 'admin_fee_of_gross_wage_approx', 'geneva_maternity_amat_each_side', 'withholding_tax_simplified'], 'properties': {'ahv_iv_eo_each_side': {'type': 'number'}, 'admin_fee_of_contributions': {'type': 'number'}, 'unemployment_alv_each_side': {'type': 'number'}, 'withholding_tax_simplified': {'type': 'number'}, 'admin_fee_of_gross_wage_approx': {'type': 'number'}, 'family_allowance_fund_employee': {'type': 'number'}, 'family_allowance_fund_employer': {'type': 'number'}, 'geneva_maternity_amat_each_side': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'sickness_insurance_ktg': {'anyOf': [{'type': 'object', 'required': ['status', 'percent_of_wage', 'from_day_of_illness', 'max_benefit_days', 'employer_premium_share_min', 'exemptions', 'legal_basis'], 'properties': {'status': {'enum': ['required', 'optional', 'none'], 'type': 'string'}, 'exemptions': {'type': 'array', 'items': {'type': 'string'}}, 'legal_basis': {'type': 'string'}, 'percent_of_wage': {'type': ['number', 'null']}, 'max_benefit_days': {'type': ['number', 'null']}, 'from_day_of_illness': {'type': ['number', 'null']}, 'employer_premium_share_min': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'childcare_tax_deduction': {'type': 'string'}, 'penalty_without_registration': {'type': 'string'}}, 'additionalProperties': False}
get_employer_guide
Checklist: employing household help in Switzerland
Clino's one-page fact sheet for private households, as Markdown, in six languages: when the duties apply (from the first franc), which contributions are due and who pays them, the simplified procedure and its ceiling, minimum wage and working conditions, what happens without registration, and the six steps. Optionally adds one canton's registration route. Free to reuse under CC BY 4.0.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': "Optional canton: adds the canton's compensation office and registration route to the checklist."}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'as_of', 'markdown', 'canton_registration', 'license', 'url', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'url': {'type': 'string'}, 'as_of': {'type': 'string'}, 'title': {'type': 'string'}, 'license': {'type': 'string'}, 'markdown': {'type': 'string', 'description': 'The full fact sheet, Markdown. Free to reuse under CC BY 4.0 with attribution to Clino (clino.ch).'}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'canton_registration': {'anyOf': [{'type': 'object', 'required': ['canton', 'compensation_office', 'how', 'form_url'], 'properties': {'how': {'type': 'string'}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'form_url': {'type': ['string', 'null']}, 'compensation_office': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
get_hiring_checklist
Hiring checklist for a private household
Everything a Swiss household has to do to employ a cleaner, nanny or carer legally, for its own case, in one call: the six steps of Clino's fact sheet in the user's language with real due dates when a start date is given (contract, registration with the compensation office within 30 days, accident insurance from day one, monthly payslip, annual declaration by 30 January, pension fund above the BVG threshold), the canton's sickness-insurance duty with its carve-outs, a minimum-wage check at the workplace, the monthly employer cost and net wage, and prefilled links to a contract template and the calculator. Use it first for 'I want to hire...' questions.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'hourly_wage_chf', 'hours_per_week'], 'properties': {'role': {'enum': ['cleaner', 'nanny', 'carer', 'other'], 'type': 'string', 'default': 'cleaner', 'description': 'What the worker does: cleaner (household help), nanny (childcare, babysitter), carer (care of an elderly or disabled person) or other. Sets which contract template and guide the links open.'}, 'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Swiss canton: two-letter code (ZH, BE, GE, VD, TI...) or its name in German, French, Italian or English (Zürich, Genève, Ticino, Basel-Stadt). For employer contributions this is the canton where the household lives.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'First working day, YYYY-MM-DD. With it the checklist gives real dates: registration deadline, first payslip, annual declaration.'}, 'skill_level': {'enum': ['unskilled', 'experienced', 'eba', 'efz'], 'type': 'string', 'description': 'Qualification of the worker for the minimum-wage check. Default unskilled, the lowest tier.'}, 'wage_is_net': {'type': 'boolean', 'default': False, 'description': 'true if the agreed hourly wage is what the worker receives in hand (net). The gross wage is then worked out from it. Default false (gross).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Average working hours per week with this household (e.g. 4).', 'exclusiveMinimum': 0}, 'vacation_weeks': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 4, 'description': 'Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.'}, 'contract_months': {'type': 'integer', 'maximum': 120, 'description': 'Agreed length of a fixed-term contract in months. Omit for an open-ended contract. Some cantons only require sickness insurance for longer contracts.', 'exclusiveMinimum': 0}, 'hourly_wage_chf': {'type': 'number', 'maximum': 500, 'description': 'Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).', 'exclusiveMinimum': 0}, 'workplace_postcode': {'type': 'string', 'pattern': '^\\d{4}$', 'description': '4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'role', 'summary', 'checks', 'steps', 'cost', 'compensation_office', 'links', 'get_it_done', 'sources', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'cost': {'type': 'object', 'required': ['monthly_gross_wage', 'monthly_net_wage', 'monthly_total_employer_cost', 'annual_total_employer_cost'], 'properties': {'monthly_net_wage': {'$ref': '#/properties/cost/properties/monthly_gross_wage'}, 'monthly_gross_wage': {'type': 'number', 'description': 'CHF'}, 'annual_total_employer_cost': {'$ref': '#/properties/cost/properties/monthly_gross_wage'}, 'monthly_total_employer_cost': {'$ref': '#/properties/cost/properties/monthly_gross_wage'}}, 'additionalProperties': False}, 'role': {'enum': ['cleaner', 'nanny', 'carer', 'other'], 'type': 'string'}, 'links': {'type': 'object', 'required': ['contract_template', 'calculator', 'canton_guide'], 'properties': {'calculator': {'type': 'string'}, 'canton_guide': {'type': 'string'}, 'contract_template': {'type': 'string'}}, 'additionalProperties': False}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['step', 'title', 'detail', 'applies', 'why', 'due_date', 'link'], 'properties': {'why': {'type': ['string', 'null']}, 'link': {'type': ['string', 'null']}, 'step': {'type': 'number'}, 'title': {'type': 'string'}, 'detail': {'type': 'string', 'description': "What to do, in the requested language (Clino's fact sheet wording)."}, 'applies': {'type': 'boolean', 'description': 'false when this step does not apply to this household, with the reason in why.'}, 'due_date': {'type': ['string', 'null'], 'description': 'ISO date the step is due, when a start date was given and the step has a deadline.'}}, 'additionalProperties': False}}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'checks': {'type': 'object', 'required': ['minimum_wage', 'procedure', 'non_occupational_accident_insurance', 'sickness_insurance_ktg', 'pension_fund_bvg', 'registration_window'], 'properties': {'procedure': {'enum': ['simplified', 'ordinary'], 'type': 'string'}, 'minimum_wage': {'type': 'object', 'required': ['gross_hourly_wage_chf', 'binding_floor_chf_per_hour', 'floor_type', 'status', 'city_minimum_uncertain'], 'properties': {'status': {'enum': ['ok', 'below_minimum', 'no_binding_floor'], 'type': 'string'}, 'floor_type': {'enum': ['municipal', 'cantonal', 'federal_nav'], 'type': 'string'}, 'gross_hourly_wage_chf': {'type': 'number'}, 'city_minimum_uncertain': {'type': 'boolean'}, 'binding_floor_chf_per_hour': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'pension_fund_bvg': {'type': 'boolean', 'description': 'true when the annual wage passes the BVG entry threshold, so the worker must be insured in a pension fund.'}, 'registration_window': {'anyOf': [{'type': 'object', 'required': ['deadline', 'status', 'days_left'], 'properties': {'status': {'enum': ['not_started', 'open', 'closing', 'elapsed'], 'type': 'string'}, 'deadline': {'type': 'string'}, 'days_left': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': "Only with a start date. 'elapsed' is a fact to raise with the compensation office, which can still accept a late registration."}, 'sickness_insurance_ktg': {'type': 'object', 'required': ['outcome', 'exempt_because', 'legal_basis'], 'properties': {'outcome': {'enum': ['required', 'optional', 'exempt', 'none', 'not_audited'], 'type': 'string'}, 'legal_basis': {'type': ['string', 'null']}, 'exempt_because': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'non_occupational_accident_insurance': {'type': 'boolean', 'description': 'true from 8 hours a week: the worker is also insured for accidents outside work (premium deducted from her wage).'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'summary': {'type': 'string', 'description': 'Two or three sentences a person can read first.'}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'get_it_done': {'type': 'object', 'required': ['provider', 'what', 'price', 'link', 'covers_steps'], 'properties': {'link': {'type': 'string', 'description': 'Clino sign-up, prefilled with this case (canton, wage, hours).'}, 'what': {'type': 'string', 'description': 'What Clino prepares, in the requested language. The household signs, submits and pays itself.'}, 'price': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Clino'}, 'covers_steps': {'type': 'array', 'items': {'type': 'number'}, 'description': 'The step numbers above that Clino prepares.'}}, 'description': 'For a household that wants the paperwork done rather than do it alone. Pass it on when the user asks who can do this for them or how to get it done.', 'additionalProperties': False}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'compensation_office': {'type': 'object', 'required': ['name', 'website', 'phone'], 'properties': {'name': {'type': 'string'}, 'phone': {'type': 'string'}, 'website': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_minimum_wage
Minimum wage for household work
The legal gross hourly minimum wage for household work (cleaning, childcare, care) at a Swiss workplace: federal NAV tiers by qualification, cantonal minimum wages (GE, NE, JU, TI, BS), city minimum wages (Stadt Luzern in force; Zürich and Winterthur voted, not yet in force) and the rule below 5 hours a week. Give the workplace postcode for the exact answer, or a canton.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Canton, if no postcode is known. A postcode is better: some cities have their own minimum wage.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'postcode': {'type': 'string', 'pattern': '^\\d{4}$', 'description': '4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.'}, 'skill_level': {'enum': ['unskilled', 'experienced', 'eba', 'efz'], 'type': 'string', 'default': 'unskilled', 'description': 'Qualification of the worker, which sets the federal NAV wage tier: unskilled; experienced (4+ years in household work); eba (2-year federal vocational certificate); efz (3-year federal vocational diploma).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Weekly hours with this household. The federal NAV floor binds from 5 hours a week; below that only some cantonal or city minimums apply.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['place', 'skill_level', 'binding_floor_chf_per_hour', 'floor_from_5h_per_week_chf', 'floor_under_5h_per_week_chf', 'floor_type', 'federal_nav_chf', 'cantonal_minimum_wage_chf', 'city_minimum_in_force', 'city_minimum_uncertain', 'city_minimum_voted_not_in_force', 'explanation', 'notes', 'sources', 'links', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'links': {'type': 'object', 'required': ['canton_guide', 'wage_floor_widget', 'for_workers'], 'properties': {'for_workers': {'type': 'string', 'description': "Clino's free guide for domestic workers: rights, pay by canton, a wage check and free training."}, 'canton_guide': {'type': 'string'}, 'wage_floor_widget': {'type': 'string'}}, 'additionalProperties': False}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'place': {'type': 'object', 'required': ['postcode', 'city', 'canton'], 'properties': {'city': {'type': ['string', 'null']}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'postcode': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'floor_type': {'enum': ['municipal', 'cantonal', 'federal_nav'], 'type': 'string'}, 'rates_year': {'type': 'number'}, 'explanation': {'type': 'string'}, 'skill_level': {'type': 'string'}, 'federal_nav_chf': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'city_minimum_in_force': {'anyOf': [{'type': 'object', 'required': ['name', 'chf'], 'properties': {'chf': {'type': 'number'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'city_minimum_uncertain': {'type': 'boolean', 'description': 'true when the canton has a city minimum but the workplace postcode was not given or straddles a boundary: the floor may be higher.'}, 'cantonal_minimum_wage_chf': {'type': ['number', 'null']}, 'binding_floor_chf_per_hour': {'type': ['number', 'null'], 'description': 'The gross hourly minimum that binds for the given hours (from 5 h/week if no hours were given). null = no statutory floor binds at these hours.'}, 'floor_from_5h_per_week_chf': {'type': 'number'}, 'floor_under_5h_per_week_chf': {'type': ['number', 'null']}, 'city_minimum_voted_not_in_force': {'anyOf': [{'type': 'object', 'required': ['name', 'chf', 'court_refs'], 'properties': {'chf': {'type': 'number'}, 'name': {'type': 'string'}, 'court_refs': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
get_official_sources
Official sources behind the figures
The federal and cantonal figures Clino uses, each with the official document, its URL, the verbatim sentence that states the value and the date it was checked: contribution rates, thresholds, minimum wages, BVG, board and lodging, sick-pay scales, Geneva au pair contract, IV assistance contribution. Use it to cite or verify a number.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'topic': {'enum': ['contributions', 'thresholds', 'minimum_wages', 'pension_bvg', 'in_kind_wage', 'sick_pay', 'au_pair_geneva', 'iv_assistance', 'all'], 'type': 'string', 'default': 'contributions', 'description': 'Which group of figures: contributions (AHV/ALV/UVG/withholding tax), thresholds, minimum_wages, pension_bvg, in_kind_wage (board and lodging), sick_pay, au_pair_geneva, iv_assistance (IV Assistenzbeitrag), or all.'}, 'search': {'type': 'string', 'maxLength': 60, 'description': "Optional word to filter the figures by label, e.g. 'NAV' or 'Geneva'."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic', 'count', 'figures', 'links', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'count': {'type': 'number'}, 'links': {'type': 'object', 'required': ['sources_page'], 'properties': {'sources_page': {'type': 'string'}}, 'additionalProperties': False}, 'topic': {'type': 'string'}, 'figures': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'value', 'unit', 'source_document', 'url', 'quote', 'verified_on', 'confidence'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'quote': {'type': 'string'}, 'value': {'type': ['number', 'string']}, 'confidence': {'type': 'string'}, 'verified_on': {'type': 'string'}, 'source_document': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}}, 'additionalProperties': False}
search
Search Clino's household-employment documents
Search Clino's documents on employing household help in Switzerland: one document per canton (compensation office, registration, contribution rates, minimum wage, family allowances, sick pay, sickness insurance), the employer fact sheet in six languages and every official figure with its source. Returns ids for fetch. Queries in any language; name the canton for canton rules.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'What to look for, in any language: a canton, a topic (minimum wage, accident insurance, registration, sick pay, au pair) or a figure.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Hinzugefügt
fetch
2. October 2026 02:40
Hinzugefügt
search
2. October 2026 02:40
Hinzugefügt
get_hiring_checklist
2. October 2026 02:40
Hinzugefügt
get_official_sources
2. October 2026 02:40
Hinzugefügt
get_employer_guide
2. October 2026 02:40
Hinzugefügt
get_canton_rules
2. October 2026 02:40
Hinzugefügt
get_minimum_wage
2. October 2026 02:40
Hinzugefügt
compare_cantons
2. October 2026 02:40
Hinzugefügt
estimate_employer_cost
2. October 2026 02:40