get_misclassification_risk
Assess misclassification risk for independent contractors in a selected country. Returns risk level, legal tests, penalties, and compliance guidance.
Instructions
Country-specific misclassification (false self-employment) risk analysis. Returns risk level, legal test, enforcement authority, typical penalty, retroactive liability period, recent enforcement examples, red flags, safer path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes |
Implementation Reference
- src/main.ts:376-511 (schema)The MISCLASSIFICATION_RISK data dictionary — a typed Record mapping country codes to objects with risk_level, legal_test, enforcement_authority, typical_penalty, retroactive_liability, recent_enforcement_examples, red_flags, and safer_path. This is the data schema/backing store for the tool.
const MISCLASSIFICATION_RISK: Record<string, { risk_level: string, legal_test: string, enforcement_authority: string, typical_penalty: string, retroactive_liability: string, recent_enforcement_examples: string[], red_flags: string[], safer_path: string }> = { uk: { risk_level: "High", legal_test: "IR35 status determination — Mutuality of Obligation, Personal Service, Control. Plus CEST tool from HMRC.", enforcement_authority: "HMRC + Employment Tribunal", typical_penalty: "Backpay of taxes + NI + interest + 0-100% penalty", retroactive_liability: "Up to 4 years (6 if deliberate)", recent_enforcement_examples: [ "Multiple BBC presenters reclassified as employees post-IR35", "Pimlico Plumbers Supreme Court case re: worker status" ], red_flags: [ "Same contractor working >2 yrs full-time exclusively", "Set hours, embedded in team, uses company equipment", "No right of substitution" ], safer_path: "EOR for true employee relationships. Genuine B2B contractor only with Statement of Work + multiple clients + own tools" }, germany: { risk_level: "Critical", legal_test: "Scheinselbständigkeit / Statusfeststellungsverfahren — multi-factor test by Deutsche Rentenversicherung. Personal dependence, no entrepreneurial risk, integration into client.", enforcement_authority: "Deutsche Rentenversicherung Bund + tax office + Hauptzollamt", typical_penalty: "Up to 4 yrs back social security (employer + employee shares) + interest + criminal liability for principal", retroactive_liability: "Up to 4 years (30 yrs in fraud cases)", recent_enforcement_examples: [ "Many crowd-working / gig platforms (Helpling, Foodora) reclassified", "Engineering consultants commonly caught" ], red_flags: [ "Single client representing >5/6ths of contractor revenue", "Working from client premises with client equipment", "Fixed working hours imposed by client", "Reporting to a manager" ], safer_path: "EOR is the safe bet. Real Selbständigkeit requires multiple clients, own tools, own risk." }, france: { risk_level: "Critical", legal_test: "Travail dissimulé (concealed employment). Lien de subordination (subordination link) test.", enforcement_authority: "URSSAF + Inspection du Travail + criminal courts", typical_penalty: "Up to 5 yrs back social security + 45,000€ fine + 3 yrs prison for principal", retroactive_liability: "Up to 5 years", recent_enforcement_examples: [ "Uber drivers reclassified by Cour de Cassation 2020", "Deliveroo France criminal conviction" ], red_flags: [ "Subordination — fixed hours, set tasks, no autonomy", "Long-term single-client relationship", "Use of client tools, branding, email" ], safer_path: "EOR for any worker integrated into the team. Portage salarial as alternative for senior independents." }, spain: { risk_level: "Critical", legal_test: "Falso autónomo test. Inspección de Trabajo applies indices: dependence, exclusivity, integration.", enforcement_authority: "Inspección de Trabajo y Seguridad Social", typical_penalty: "Backpay social security + fine 626-187,515€ per worker + criminal liability for serious cases", retroactive_liability: "Up to 4 years", recent_enforcement_examples: [ "Glovo riders nationally reclassified (Riders Law 2021)", "Major fines on consultancies misclassifying programmers" ], red_flags: [ "TRADE (Trabajador Autónomo Económicamente Dependiente) territory: 75%+ revenue from one client", "Schedule, location, deliverables dictated by client", "Worker doesn't bear business risk" ], safer_path: "EOR or proper TRADE contract with explicit acknowledgment + protections" }, netherlands: { risk_level: "High", legal_test: "Wet DBA (Deregulation Assessment of Working Relationships Act). Authority, embedded work, personal performance.", enforcement_authority: "Belastingdienst (tax authority)", typical_penalty: "Backpay payroll tax + social security + ~25-100% surcharge", retroactive_liability: "Up to 5 years", recent_enforcement_examples: [ "Deliveroo couriers reclassified (Supreme Court 2023)", "Many platform workers under scrutiny" ], red_flags: [ "ZZP working for one client long-term", "No real entrepreneurial risk", "Client controls how work is done" ], safer_path: "Modelovereenkomst (model agreement) approved by tax authority + multi-client reality, OR EOR" }, mexico: { risk_level: "Critical (post 2021 reform)", legal_test: "LFT defines vínculo laboral: subordination, salary, personal service. 2021 reform criminalized non-REPSE outsourcing.", enforcement_authority: "STPS (Labor Ministry) + IMSS + SAT", typical_penalty: "Backpay employee benefits (PTU, vacation, aguinaldo, IMSS, INFONAVIT) + fines + criminal for non-REPSE", retroactive_liability: "5 years", recent_enforcement_examples: [ "Massive 2021 reclassifications post-outsourcing reform", "Many tech companies fined" ], red_flags: [ "Independent contractor with single client + subordination", "Use of client tools, branding", "Specialized services without REPSE registration of provider" ], safer_path: "EOR through REPSE-registered provider OR direct hire" }, brazil: { risk_level: "Critical", legal_test: "CLT vínculo empregatício recognition: pessoalidade, habitualidade, onerosidade, subordinação.", enforcement_authority: "Justiça do Trabalho (Labor Courts) + Ministério do Trabalho", typical_penalty: "Backpay all CLT rights (FGTS, 13th, vacation, PIS, INSS) + 40% FGTS penalty + 50% sometimes punitive", retroactive_liability: "5 years (rolling)", recent_enforcement_examples: [ "Numerous PJ-to-CLT reclassifications in IT/tech", "Many platform delivery workers cases ongoing" ], red_flags: [ "PJ contractor working full-time exclusively for years", "Use of company email, equipment", "Reporting structure same as employees" ], safer_path: "EOR (CLT) or strict PJ with multiple clients + entrepreneurial reality" }, ireland: { risk_level: "Medium", legal_test: "WRC Code of Practice + 2021 Code on Determining Employment Status", enforcement_authority: "Revenue + WRC + DSP", typical_penalty: "Backpay PAYE + PRSI + USC + interest + penalties", retroactive_liability: "4 years", recent_enforcement_examples: ["Domino's Pizza drivers reclassified 2023"], red_flags: ["Long-term single client engagement", "Fixed hours, premises"], safer_path: "EOR or genuine contractor with multiple clients" }, india: { risk_level: "Medium", legal_test: "Industrial Disputes Act 'workman' definition + control & integration tests", enforcement_authority: "Labor Department + EPFO + GST", typical_penalty: "Backpay EPF + ESI + gratuity + interest", retroactive_liability: "3-5 years", recent_enforcement_examples: ["Multiple IT consultancy reclassifications under EPFO"], red_flags: ["Long-term consultant on payroll-like arrangement"], safer_path: "EOR or true freelancer with multiple clients" }, japan: { risk_level: "Medium-High", legal_test: "Disguised employment (gisō ukeoi) test by Labor Standards Inspection Office", enforcement_authority: "Ministry of Health, Labor, and Welfare", typical_penalty: "Backpay social insurance + reputational damage", retroactive_liability: "5 years", recent_enforcement_examples: ["Several gyōmu itaku contracts reclassified"], red_flags: ["Long-term contractor in subordinate relationship"], safer_path: "EOR or true independent" }, singapore: { risk_level: "Low-Medium", legal_test: "MOM/IRAS examines control, financial dependence, personal service", enforcement_authority: "MOM + IRAS + CPF Board", typical_penalty: "Backpay CPF + tax + fines", retroactive_liability: "5 years", recent_enforcement_examples: ["Several tech contractor reclassifications 2023-25"], red_flags: ["Single-client long-term arrangement"], safer_path: "EOR or properly structured contractor" }, nordics: { risk_level: "High", legal_test: "Each country has own test — generally personal subordination, exclusivity, integration. Strong union involvement.", enforcement_authority: "Skatteverket (SE), Skatteetaten (NO), etc.", typical_penalty: "Backpay social fees + tax + arbetsgivaravgift + penalties", retroactive_liability: "Up to 6 years (varies)", recent_enforcement_examples: ["Foodora couriers Sweden/Norway reclassifications"], red_flags: ["Long-term single client", "No real entrepreneurial risk"], safer_path: "EOR with kollektivavtal compliance" } }; - src/main.ts:682-686 (registration)Tool registration in the ListToolsRequestSchema handler — declares get_misclassification_risk with a description and inputSchema requiring a country parameter validated against MISCLASSIFICATION_RISK keys.
{ name: "get_misclassification_risk", description: "Country-specific misclassification (false self-employment) risk analysis. Returns risk level, legal test, enforcement authority, typical penalty, retroactive liability period, recent enforcement examples, red flags, safer path.", inputSchema: { type: "object", properties: { country: { type: "string", enum: Object.keys(MISCLASSIFICATION_RISK) } }, required: ["country"] } }, - src/main.ts:739-744 (handler)The handler (within CallToolRequestSchema switch) — extracts country from args, looks it up in MISCLASSIFICATION_RISK, throws if unknown, and returns the risk data wrapped in a JSON response with module label.
case "get_misclassification_risk": { const country = args?.country as string; const risk = MISCLASSIFICATION_RISK[country]; if (!risk) throw new Error(`Unknown country: ${country}`); return { content: [{ type: "text", text: JSON.stringify({ module: "Misclassification Risk", country, ...risk }, null, 2) }] }; }