diff --git a/src/components/form/fields/ForcedValueField.tsx b/src/components/form/fields/ForcedValueField.tsx index 9fe906e5a..0a5c4c0e9 100644 --- a/src/components/form/fields/ForcedValueField.tsx +++ b/src/components/form/fields/ForcedValueField.tsx @@ -72,6 +72,7 @@ export function ForcedValueField({ const titleSanitized = statement?.title ? sanitizeHtml(statement?.title) : sanitizeHtml(label); + return (
Portuguese law allows 3 types of employees to work outside legally defined regular work hours:
Employers must pay every employee who works outside regular work hours a monthly allowance. The value of this allowance depends on which days and what time an employee works outside work hour.
If you have an employee in Portugal who will work outside regular work hours, we\'ll calculate their allowance for you and you\'ll pay it on top of their salary.
', - title: 'Working hours exemption', - }, - }, - }, - }, - working_hours_exemption_allowance: { - description: '', - title: 'Extended work hours allowance', - type: 'integer', - 'x-jsf-errorMessage': { - type: 'Please, use US standard currency format. Ex: 1024.12', - }, - 'x-jsf-presentation': { - currency: 'EUR', - inputType: 'money', - statement: { - severity: 'info', - title: 'You’ll need to pay an extended work hours allowance', - }, - }, - }, - }, - required: [ - 'annual_gross_salary', - 'contract_duration_type', - 'work_schedule', - 'work_from_home_allowance_ack', - 'annual_training_hours_ack', - 'salary_installments_confirmation', - 'has_signing_bonus', - 'has_bonus', - 'has_commissions', - 'equity_compensation', - 'available_pto', - 'available_pto_type', - 'role_description', - 'experience_level', - 'work_address', - 'working_hours_exemption', - ], - type: 'object', - 'x-jsf-fieldsets': { - annual_gross_salary_fieldset: { - propertiesByName: [ - 'annual_gross_salary', - 'salary_installments_confirmation', - ], - title: 'Annual gross salary', - }, - extended_work_hours: { - propertiesByName: [ - 'working_hours_exemption', - 'maximum_working_hours_regime', - 'working_hours_exemption_allowance', - ], - title: 'Extended work hours', - }, - }, - 'x-jsf-logic': { - computedValues: { - working_hours_exemption_allowance_no_max_hours_value: { - rule: { - if: [ - { - and: [ - { - var: 'annual_gross_salary', - }, - { - var: 'work_hours_per_week', - }, - ], - }, - { - '/': [ - { - '-': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 2, - 4, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - { - '%': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 2, - 4, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - 1, - ], - }, - ], - }, - 100, - ], - }, - 0, - ], - }, - }, - working_hours_exemption_allowance_no_max_hours_value_in_cents: { - rule: { - if: [ - { - and: [ - { - var: 'annual_gross_salary', - }, - { - var: 'work_hours_per_week', - }, - ], - }, - { - '-': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 2, - 4, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - { - '%': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 2, - 4, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - 1, - ], - }, - ], - }, - 0, - ], - }, - }, - working_hours_exemption_allowance_with_max_hours_value: { - rule: { - if: [ - { - and: [ - { - var: 'annual_gross_salary', - }, - { - var: 'work_hours_per_week', - }, - ], - }, - { - '/': [ - { - '-': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 22, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - { - '%': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 22, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - 1, - ], - }, - ], - }, - 100, - ], - }, - 0, - ], - }, - }, - working_hours_exemption_allowance_with_max_hours_value_in_cents: { - rule: { - if: [ - { - and: [ - { - var: 'annual_gross_salary', - }, - { - var: 'work_hours_per_week', - }, - ], - }, - { - '-': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 22, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - { - '%': [ - { - '/': [ - { - '*': [ - { - var: 'annual_gross_salary', - }, - 12, - 1.25, - 22, - ], - }, - { - '*': [ - { - var: 'work_hours_per_week', - }, - 52, - 14, - ], - }, - ], - }, - 1, - ], - }, - ], - }, - 0, - ], - }, - }, - }, - }, - 'x-jsf-order': [ - 'contract_duration', - 'contract_duration_type', - 'contract_end_date', - 'work_schedule', - 'work_hours_per_week', - 'probation_length', - 'probation_length_days', - 'available_pto_type', - 'available_pto', - 'role_description', - 'experience_level', - 'work_address', - 'annual_gross_salary', - 'part_time_salary_confirmation', - 'salary_installments_confirmation', - 'work_from_home_allowance_ack', - 'annual_training_hours_ack', - 'work_from_home_allowance', - 'working_hours_exemption', - 'maximum_working_hours_regime', - 'working_hours_exemption_allowance', - 'has_signing_bonus', - 'signing_bonus_amount', - 'signing_bonus_clawback', - 'has_bonus', - 'bonus_amount', - 'bonus_details', - 'has_commissions', - 'commissions_details', - 'commissions_ack', - 'equity_compensation', - ], - }, -}; - -export const benefitOffersSchema = { - data: { - version: 7, - schema: { - additionalProperties: false, - properties: { - '072e0edb-bfca-46e8-a449-9eed5cbaba33': { - allOf: [ - { - if: { - properties: { - filter: { - const: '73a134db-4743-4d81-a1ec-1887f2240c5c', - }, - }, - }, - then: { - properties: { - value: { - oneOf: [ - { - const: '0b097ff7-8b59-49dc-9cba-16543bd6a44c', - title: 'Life Insurance 50K', - 'x-jsf-presentation': { - description: - "Covers Life Insurance only. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary. However, this compensation is capped at a maximum of $50,000. This means that regardless of an employee's salary, the payout will not exceed $50,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-basic-plan-50k', - display_cost: '5.64 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '425df8c9-7832-412a-afbb-afae3ef32db6', - title: 'Life Insurance - $100K', - 'x-jsf-presentation': { - description: - "Covers Life Insurance only. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary. However, this compensation is capped at a maximum of $100,000. This means that regardless of an employee's salary, the payout will not exceed $100,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-basic-100k', - display_cost: '11.28 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '0b925f7a-8e3d-4936-a3d9-8003b2636937', - title: 'Life Insurance - $200K', - 'x-jsf-presentation': { - description: - "Covers Life Insurance only. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary. However, this compensation is capped at a maximum of $200,000. This means that regardless of an employee's salary, the payout will not exceed $200,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-basic-200k', - display_cost: '22.56 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: 'e6e05143-4e81-4981-9e86-288ef4eb1a4c', - title: 'Life Insurance - $400K', - 'x-jsf-presentation': { - description: - "Covers Life Insurance only. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary. However, this compensation is capped at a maximum of $400,000. This means that regardless of an employee's salary, the payout will not exceed $400,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-basic-400k', - display_cost: '45.12 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '6fb56cc8-f6be-4525-a467-2fa6698e78c4', - title: 'Life Insurance - $500K', - 'x-jsf-presentation': { - description: - "Covers Life Insurance only. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary. However, this compensation is capped at a maximum of $500,000. This means that regardless of an employee's salary, the payout will not exceed $500,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-basic-500k', - display_cost: '56.40 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '5d190d1e-3627-480b-9c8c-b9767b2100a0', - title: 'Life Insurance - $600K', - 'x-jsf-presentation': { - description: - "Covers Life Insurance only. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary. However, this compensation is capped at a maximum of $600,000. This means that regardless of an employee's salary, the payout will not exceed $600,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-basic-600k', - display_cost: '67.68 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: 'no', - title: "I don't want to offer this benefit.", - }, - ], - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - }, - }, - required: ['value'], - }, - }, - { - if: { - properties: { - filter: { - const: '3a038ee7-5eda-42d5-8113-35336c0a4b52', - }, - }, - }, - then: { - properties: { - value: { - oneOf: [ - { - const: '50d0d279-00eb-42be-94a3-d533c512f6a2', - title: - 'Life, Accidental Death & Permanent Disability - $50k', - 'x-jsf-presentation': { - description: - "Covers Life Insurance, Accidental Death & Dismemberment, and Permanent Disability. \nIn the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary, capped at a maximum of $50,000. In cases of accidental death, dismemberment, or permanent disability, the compensation is equivalent to up to 5 times the employee's annual salary, also with a $50,000 limit. Regardless of the specifics of an incident or an employee's salary, payouts will never exceed $50,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-comprehensive-50k', - display_cost: '12.04 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '9dfaf128-fecb-4022-8436-7db2620c65f0', - title: - 'Life, Accidental Death & Permanent Disability - $100k', - 'x-jsf-presentation': { - description: - "Covers Life Insurance, Accidental Death & Dismemberment, and Permanent Disability. In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary, capped at a maximum of $100,000. In cases of accidental death, dismemberment, or permanent disability, the compensation is equivalent to up to 5 times the employee's annual salary, also with a $100,000 limit. Regardless of the specifics of an incident or an employee's salary, payouts will never exceed $100,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-comprehensive-100k', - display_cost: '24.08 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '48dedc51-a717-437e-88ac-8e76e9e684fb', - title: - 'Life, Accidental Death & Permanent Disability - $200k', - 'x-jsf-presentation': { - description: - "Covers Life Insurance, Accidental Death & Dismemberment, and Permanent Disability. \n In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary, capped at a maximum of $200,000. In cases of accidental death, dismemberment, or permanent disability, the compensation is equivalent to up to 5 times the employee's annual salary, also with a $200,000 limit. Regardless of the specifics of an incident or an employee's salary, payouts will never exceed $200,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-comprehensive-200k', - display_cost: '48.14 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: 'ca518425-2a77-4ef1-aaad-37d21504d5e0', - title: - 'Life, Accidental Death & Permanent Disability - $400k', - 'x-jsf-presentation': { - description: - "Covers Life Insurance, Accidental Death & Dismemberment, and Permanent Disability. \n In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary, capped at a maximum of $400,000. In cases of accidental death, dismemberment, or permanent disability, the compensation is equivalent to up to 5 times the employee's annual salary, also with a $400,000 limit. Regardless of the specifics of an incident or an employee's salary, payouts will never exceed $400,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-comprehensive-400k', - display_cost: '96.28 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: 'ff367cab-d9cb-4aa9-adea-13562a151d7f', - title: - 'Life, Accidental Death & Permanent Disability - $500k', - 'x-jsf-presentation': { - description: - "Covers Life Insurance, Accidental Death & Dismemberment, and Permanent Disability. \n In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary, capped at a maximum of $500,000. In cases of accidental death, dismemberment, or permanent disability, the compensation is equivalent to up to 5 times the employee's annual salary, also with a $500,000 limit. Regardless of the specifics of an incident or an employee's salary, payouts will never exceed $500,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-comprehensive-500k', - display_cost: '120.36 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '8ede3bc9-83ec-439d-b141-f75005781976', - title: - 'Life, Accidental Death & Permanent Disability - $600k', - 'x-jsf-presentation': { - description: - "Covers Life Insurance, Accidental Death & Dismemberment, and Permanent Disability. \n In the unfortunate event of an employee's demise, their beneficiary will receive a payout equivalent to up to 6 times the employee's annual salary, capped at a maximum of $600,000. In cases of accidental death, dismemberment, or permanent disability, the compensation is equivalent to up to 5 times the employee's annual salary, also with a $600,000 limit. Regardless of the specifics of an incident or an employee's salary, payouts will never exceed $600,000.", - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-global-life-comprehensive-600k', - display_cost: '144.43 USD/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: 'no', - title: "I don't want to offer this benefit.", - }, - ], - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - }, - }, - required: ['value'], - }, - }, - ], - properties: { - filter: { - default: '73a134db-4743-4d81-a1ec-1887f2240c5c', - oneOf: [ - { - const: '73a134db-4743-4d81-a1ec-1887f2240c5c', - title: 'Basic', - }, - { - const: '3a038ee7-5eda-42d5-8113-35336c0a4b52', - title: 'Comprehensive', - }, - ], - type: 'string', - 'x-jsf-presentation': { - inputType: 'radio', - }, - }, - value: { - type: 'string', - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - 'x-jsf-presentation': { - inputType: 'radio', - }, - }, - }, - required: ['value'], - title: 'Life Insurance 2.0', - type: 'object', - 'x-jsf-order': ['filter', 'value'], - 'x-jsf-presentation': { - inputType: 'fieldset', - meta: { - family: 'life', - }, - }, - }, - '0e0293ae-eec6-4d0e-9176-51c46eed435e': { - properties: { - value: { - oneOf: [ - { - const: '2ad419c1-7f65-4be0-bcb8-94468d01fe6d', - title: 'Meal Allowance Standard 2025', - 'x-jsf-presentation': { - description: - '100% Employer paid Meal Allowance (4,77 EUR per working day)\nPaid on the payslip together with the salary', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-meal-allowance', - display_cost: '~100 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '4b4514ad-689a-4600-94f1-1ca7be871d2b', - title: 'Meal Allowance Premium 2025', - 'x-jsf-presentation': { - description: - '100% Employer-Paid Meal Allowance with Maximum Exempt Amount: Currently costing €6.00 EUR per worked day.\n\nPaid on the payslip together with the salary', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-meal-allowance-premium', - display_cost: '~126 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '601d28b6-efde-4b8f-b9e2-e394792fc594', - title: 'Meal Card Standard 2025', - 'x-jsf-presentation': { - description: - '100% Employer paid – Meal Card (7,63 EUR per working day)\nPaid through Coverflex', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-meal-card', - display_cost: '~160 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '9d053f8b-e2c2-4aa3-878d-8af9f3e4e842', - title: 'Meal Card Premium 2025', - 'x-jsf-presentation': { - description: - '100% Employer-Paid Meal Card with Maximum Exempt Amount: Currently costing €10.20 EUR per worked day.\n\nPaid through Coverflex', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-meal-card-premium', - display_cost: '~212 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - ], - type: 'string', - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - 'x-jsf-presentation': { - inputType: 'radio', - }, - }, - }, - required: ['value'], - title: 'Meal Benefit', - type: 'object', - 'x-jsf-order': ['value'], - 'x-jsf-presentation': { - inputType: 'fieldset', - meta: { - family: 'meal', - }, - }, - }, - 'baa1ce1d-39ea-4eec-acf0-88fc8a357f54': { - allOf: [ - { - if: { - properties: { - filter: { - const: '866c0615-a810-429b-b480-3a4f6ca6157d', - }, - }, - }, - then: { - properties: { - value: { - oneOf: [ - { - const: '45e47ffd-e1d9-4c5f-b367-ad717c30801b', - title: 'Basic Health Plan 2025', - 'x-jsf-presentation': { - description: - 'Covers the employee only for hospitalization, childbirth, outpatient services, and dental care. Employee covers 20% for dental; 10% for all other services, with insurer covering the rest.', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-basic', - display_cost: '45.40 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '5c0c0abf-ab5c-44dd-b462-183bd306a1ed', - title: 'Standard Health Plan 2025 (Single)', - 'x-jsf-presentation': { - description: - 'Covers the employee only for hospitalization, childbirth, outpatient services, dental care, and vision. Employee covers 20% for dental and vision; 10% for all other services, with insurer covering the rest.', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-standard', - display_cost: '51.81 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '09a2a692-c12c-4b42-8f73-6af44e5573e3', - title: 'Premium Health Plan 2025 (Single)', - 'x-jsf-presentation': { - description: - 'Covers the employee only for hospitalization, childbirth, outpatient services, dental, vision, medications and serious illness. Employee covers 20% for dental, vision, and medications; 10% for all other services, with insurer covering the rest.', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-health-premium', - display_cost: '76.33 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - ], - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - }, - }, - required: ['value'], - }, - }, - { - if: { - properties: { - filter: { - const: '5fd6b1a5-e453-4d9d-bdcc-ccf7fcb19b2d', - }, - }, - }, - then: { - properties: { - value: { - oneOf: [ - { - const: 'b31a505f-22cc-4bcc-8f18-101490934495', - title: 'Basic Health Plan 2025 (Family)', - 'x-jsf-presentation': { - description: - 'Covers the employee and dependents for hospitalization, childbirth, outpatient services, and dental care. Employee covers 20% for dental; 10% for all other services, with insurer covering the rest.', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-basic-family', - display_cost: '~162.74 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: 'bccffede-49fc-47cf-a2b9-ad0defddbc79', - title: 'Standard Health Plan 2025 (Family)', - 'x-jsf-presentation': { - description: - 'Covers the employee and dependents for hospitalization, childbirth, outpatient services, dental care, and vision. Employee covers 20% for dental and vision; 10% for all other services, with insurer covering the rest.', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-standard-family', - display_cost: '~187.14 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - { - const: '37ef429d-05cc-47b9-993d-280d3dd30bef', - title: 'Premium Health Plan 2025 (Family)', - 'x-jsf-presentation': { - description: - 'Covers the employee and dependents for hospitalization, childbirth, outpatient services, dental, vision, medications and serious illness. Employee covers 20% for dental, vision, and medications; 10% for all other services, with insurer covering the rest.', - meta: { - details_url: - 'https://remote.com/benefits-guide/employee-benefits-portugal-premium-family', - display_cost: '~276.82 EUR/mo', - display_cost_disclaimer: null, - }, - }, - }, - ], - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - }, - }, - required: ['value'], - }, - }, - ], - properties: { - filter: { - default: '866c0615-a810-429b-b480-3a4f6ca6157d', - oneOf: [ - { - const: '866c0615-a810-429b-b480-3a4f6ca6157d', - title: 'Single', - }, - { - const: '5fd6b1a5-e453-4d9d-bdcc-ccf7fcb19b2d', - title: 'Family', - }, - ], - type: 'string', - 'x-jsf-presentation': { - inputType: 'radio', - }, - }, - value: { - type: 'string', - 'x-jsf-errorMessage': { - required: 'Please select at least one option.', - }, - 'x-jsf-presentation': { - inputType: 'radio', - }, - }, - }, - required: ['value'], - title: 'Health Insurance 2025', - type: 'object', - 'x-jsf-order': ['filter', 'value'], - 'x-jsf-presentation': { - inputType: 'fieldset', - meta: { - family: 'health', - }, - }, - }, - }, - required: [ - '0e0293ae-eec6-4d0e-9176-51c46eed435e', - 'baa1ce1d-39ea-4eec-acf0-88fc8a357f54', - '072e0edb-bfca-46e8-a449-9eed5cbaba33', - ], - type: 'object', - 'x-jsf-order': [ - '0e0293ae-eec6-4d0e-9176-51c46eed435e', - 'baa1ce1d-39ea-4eec-acf0-88fc8a357f54', - '072e0edb-bfca-46e8-a449-9eed5cbaba33', - ], - 'x-jsf-presentation': { - benefits_service_fee: { - amount: 15.0, - currency: 'USD', - }, - description: - 'We offer our employees supplemental benefits - Meal and Health Insurance (In partnership with Advance Care/Tranquilidade and Coverflex)', - fine_print: - 'New: Health Insurance is now optional for new hires in Portugal.\r\nPlease note that all local payroll deductions for required coverages are included in the TCE.\r\nAny pricing changes will be communicated in advance of updated billing.', - url: 'https://remote.com/benefits-guide/portugal', - }, - }, - }, -}; - -export const employmentCreatedResponse = { - data: { - employment: { - id: 'f3b9ee0a-b50c-4a20-8c5e-9303781479a1', - type: 'employee', - country_code: 'PRT', - updated_at: '2025-05-20T08:20:04', - external_id: null, - created_at: '2025-05-20T08:20:02', - full_name: 'John Doe', - company_id: 'c3c22940-e118-425c-9e31-f2fd4d43c6d8', - provisional_start_date: '2025-05-29', - job_title: 'Software Engineer', - manager_id: null, - department_id: null, - user_status: 'created', - basic_information: { - name: 'John Doe', - email: 'john.doe@gmail.com', - provisional_start_date: '2025-05-29', - job_title: 'Software Engineer', - tax_servicing_countries: [], - work_email: 'john.doe@remote.com', - has_seniority_date: 'no', - tax_job_category: 'operations', - }, - seniority_date: null, - personal_email: 'john.doe@gmail.com', - employment_lifecycle_stage: 'employment_creation', - short_id: 'D02YZR', - eligible_for_onboarding_cancellation: true, - probation_period_end_date: null, - active_contract_id: '126758da-5e2a-4032-b05e-6ff62832b08c', - }, - }, -}; - -export const employmentUpdatedResponse = { - data: { - employment: { - files: [], - manager_id: null, - termination_date: null, - administrative_details: null, - job_title: 'pm', - user_status: 'created', - employment_lifecycle_stage: 'employment_creation', - billing_address_details: null, - eligible_for_onboarding_cancellation: true, - user_id: '26bc68f3-c767-4e1f-84a9-e871fb736d96', - emergency_contact_details: null, - company_id: 'c3c22940-e118-425c-9e31-f2fd4d43c6d8', - status: 'created', - manager: null, - contract_details: { - annual_gross_salary: 2000000, - annual_training_hours_ack: 'acknowledged', - available_pto: 22, - available_pto_type: 'unlimited', - bonus_amount: null, - bonus_details: null, - commissions_ack: null, - commissions_details: null, - contract_duration_type: 'indefinite', - contract_end_date: null, - equity_compensation: { - offer_equity_compensation: 'no', - }, - experience_level: - 'Level 2 - Entry Level - Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', - has_bonus: 'no', - has_commissions: 'no', - has_signing_bonus: 'no', - maximum_working_hours_regime: null, - part_time_salary_confirmation: null, - probation_length: null, - probation_length_days: 30, - role_description: - 'dskdsffalljkfdssfdjkajdfsajkdflkfdlajksfddafdasdfsfdafdfdfddsafdkfdlkfdkjakldfjfkdlkdfjlkfdljfdljkajldfkajldfkjkafdjkla', - salary_installments_confirmation: 'acknowledged', - signing_bonus_amount: null, - signing_bonus_clawback: null, - work_address: { - is_home_address: 'yes', - }, - work_from_home_allowance: null, - work_from_home_allowance_ack: 'acknowledged', - work_hours_per_week: 40, - work_schedule: 'full_time', - working_hours_exemption: 'no', - working_hours_exemption_allowance: null, - }, - seniority_date: null, - basic_information: { - name: 'gabriel', - email: 'john.doe@example.com', - job_title: 'pm', - provisional_start_date: '2025-05-30', - tax_servicing_countries: [], - work_email: 'john.doe@remote.com', - has_seniority_date: 'no', - tax_job_category: 'operations', - }, - full_name: 'gabriel', - manager_email: null, - probation_period_end_date: '2025-06-28', - updated_at: '2025-05-20T14:26:58', - provisional_start_date: '2025-05-30', - address_details: null, - pricing_plan_details: null, - work_email: 'john.doe@remote.com', - bank_account_details: [], - short_id: 'R1XTJD', - external_id: null, - id: '4e9ee7a3-5f54-480b-a390-49a0a2d31dcb', - country: { - code: 'PRT', - name: 'Portugal', - alpha_2_code: 'PT', - supported_json_schemas: [ - 'additional_documents', - 'administrative_details', - 'contract_details', - 'employment_basic_information', - 'emergency_contact', - 'address_details', - ], - }, - manager_employment_id: null, - department_id: null, - type: 'employee', - onboarding_tasks: { - bank_account_details: { - status: 'pending', - description: 'Bank account used for receiving salary payments.', - }, - administrative_details: { - status: 'pending', - description: 'Information we need for tax purposes.', - }, - address_details: { - status: 'pending', - description: 'Primary residence.', - }, - contract_details: { - status: 'completed', - description: - 'Employee-specific details for their employment agreement.', - }, - personal_details: { - status: 'pending', - description: 'Personal details, such as name and date of birth.', - }, - emergency_contact_details: { - status: 'pending', - description: 'Who should be called in an emergency.', - }, - pricing_plan_details: { - status: 'pending', - description: - 'How often Remote will bill employers for management fees.', - }, - billing_address_details: { - status: 'pending', - description: "Address associated with the employee's bank account.", - }, - employment_document_details: { - status: 'pending', - description: 'We need some additional documents.', - }, - employment_eligibility: { - status: 'pending', - description: - 'We’ll make sure you can work in the country where you live.', - }, - }, - personal_details: null, - created_at: '2025-05-20T14:17:29', - personal_email: 'john.doe@example.com', - active_contract_id: '54e4e0e0-6c73-405f-8a91-f4b98065b65b', - department: null, - }, - }, -}; - -export const benefitOffersUpdatedResponse = { data: { status: 'ok' } }; - -export const inviteResponse = { data: { status: 'ok' } }; - -export const benefitOffersResponse = { - data: [ - { - benefit_group: { - name: 'Meal Benefit', - filter: null, - slug: '0e0293ae-eec6-4d0e-9176-51c46eed435e', - }, - benefit_tier: { - name: 'Meal Card Standard 2025', - slug: '601d28b6-efde-4b8f-b9e2-e394792fc594', - display_cost: '~160 EUR/mo', - }, - }, - { - benefit_group: { - name: 'Health Insurance 2025', - filter: { - name: 'Single', - slug: '866c0615-a810-429b-b480-3a4f6ca6157d', - }, - slug: 'baa1ce1d-39ea-4eec-acf0-88fc8a357f54', - }, - benefit_tier: { - name: 'Basic Health Plan 2025 (Single)', - slug: '45e47ffd-e1d9-4c5f-b367-ad717c30801b', - display_cost: '45.40 EUR/mo', - }, - }, - { - benefit_group: { - name: 'Life Insurance 2.0', - filter: { - name: 'Basic', - slug: '73a134db-4743-4d81-a1ec-1887f2240c5c', - }, - slug: '072e0edb-bfca-46e8-a449-9eed5cbaba33', - }, - benefit_tier: { - name: 'Life Insurance - $50K', - slug: '0b097ff7-8b59-49dc-9cba-16543bd6a44c', - display_cost: '5.64 USD/mo', - }, - }, - ], -}; - -export const employmentDefaultResponse = { - data: { - employment: { - company_id: 'c3c22940-e118-425c-9e31-f2fd4d43c6d8', - personal_details: null, - contract_details: { - annual_gross_salary: 2000000, - annual_training_hours_ack: 'acknowledged', - available_pto: 22, - available_pto_type: 'unlimited', - benefits: { - health_insurance_2025: - 'Basic Health Plan 2025 (Single) (Advance Care/ Tranquilidade - Basic Health Plan 2025 (Single))', - life_insurance_2_0: - 'Life Insurance - $100K (Allianz Life - Global Life - Life 100k)', - meal_benefit: - 'Meal Card Standard 2025 (Coverflex - Meal Card Standard 2025)', - }, - bonus_amount: null, - bonus_details: null, - commissions_ack: null, - commissions_details: null, - contract_duration_type: 'indefinite', - contract_end_date: null, - equity_compensation: { - offer_equity_compensation: 'no', - }, - experience_level: - 'Level 2 - Entry Level - Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', - has_bonus: 'no', - has_commissions: 'no', - has_signing_bonus: 'no', - maximum_working_hours_regime: null, - part_time_salary_confirmation: null, - probation_length: null, - probation_length_days: 40, - role_description: - 'A Product Manager is responsible for guiding the development and success of a product from concept to launch. They act as the bridge between business, design, and engineering teams, ensuring alignment with user needs and company goals. Product Managers conduct market research, define product requirements, prioritize features, and manage the product roadmap. They communicate clearly with stakeholders, analyze performance data, and make decisions to optimize user experience and business outcomes. Strategic thinking, problem-solving, and leadership are key traits. A Product Manager must balance customer desires, technical feasibility, and business viability to deliver valuable, innovative products in a competitive market.', - salary_installments_confirmation: 'acknowledged', - signing_bonus_amount: null, - signing_bonus_clawback: null, - work_address: { - is_home_address: 'yes', - }, - work_from_home_allowance: null, - work_from_home_allowance_ack: 'acknowledged', - work_hours_per_week: 40, - work_schedule: 'full_time', - working_hours_exemption: 'no', - working_hours_exemption_allowance: null, - }, - external_id: null, - onboarding_tasks: { - bank_account_details: { - status: 'pending', - description: 'Bank account used for receiving salary payments.', - }, - administrative_details: { - status: 'pending', - description: 'Information we need for tax purposes.', - }, - address_details: { - status: 'pending', - description: 'Primary residence.', - }, - contract_details: { - status: 'completed', - description: - 'Employee-specific details for their employment agreement.', - }, - personal_details: { - status: 'pending', - description: 'Personal details, such as name and date of birth.', - }, - emergency_contact_details: { - status: 'pending', - description: 'Who should be called in an emergency.', - }, - pricing_plan_details: { - status: 'pending', - description: - 'How often Remote will bill employers for management fees.', - }, - billing_address_details: { - status: 'pending', - description: "Address associated with the employee's bank account.", - }, - employment_document_details: { - status: 'pending', - description: 'We need some additional documents.', - }, - employment_eligibility: { - status: 'pending', - description: - 'We’ll make sure you can work in the country where you live.', - }, - }, - job_title: 'pm', - manager_employment_id: null, - manager_id: null, - work_email: 'john.doe@remote.com', - pricing_plan_details: null, - personal_email: 'john.doe@example.com', - billing_address_details: null, - full_name: 'Gabriel', - basic_information: { - name: 'Gabriel', - email: 'john.doe@example.com', - provisional_start_date: '2025-05-29', - job_title: 'pm', - tax_servicing_countries: ['Belarus'], - work_email: 'john.doe@remote.com', - has_seniority_date: 'no', - tax_job_category: 'engineering_it', - }, - status: 'created', - manager: null, - provisional_start_date: '2025-05-29', - probation_period_end_date: '2025-07-07', - created_at: '2025-05-19T08:12:18', - manager_email: null, - user_status: 'created', - country: { - code: 'PRT', - name: 'Portugal', - alpha_2_code: 'PT', - supported_json_schemas: [ - 'additional_documents', - 'administrative_details', - 'contract_details', - 'employment_basic_information', - 'emergency_contact', - 'address_details', - ], - }, - seniority_date: null, - user_id: '36081a5d-4e4a-492b-afcd-6d859a98ea9e', - short_id: 'DWS1T3', - department_id: null, - active_contract_id: 'a52001cb-05fa-4b63-b80a-7830c0c664e3', - bank_account_details: [], - department: null, - employment_lifecycle_stage: 'employment_creation', - files: [], - emergency_contact_details: null, - eligible_for_onboarding_cancellation: true, - id: '38d8bb00-3d78-4dd7-98f8-bd735e68d9a9', - administrative_details: null, - updated_at: '2025-05-20T15:44:02', - type: 'employee', - termination_date: null, - address_details: null, - }, - }, -}; - -export const companyResponse = { - data: { - company: { - id: 'c3c22940-e118-425c-9e31-f2fd4d43c6d8', - name: 'vadance', - status: 'active', - country_code: 'GBR', - updated_at: '2025-05-30T11:34:39', - external_id: null, - created_at: '2024-08-27T22:45:26', - phone_number: '+12403606587', - bank_account_details: null, - tax_number: '7984469', - registration_number: null, - terms_of_service_accepted_at: '2024-08-27T22:45:26Z', - desired_currency: 'USD', - company_owner_email: 'mohit.mahindroo+vadance@remote.com', - company_owner_name: 'Michelll sdassPustomer', - address_details: { - address: '1509 Broderick St', - address_line_2: 'Flat number 123', - city: 'London', - postal_code: 'SW79 8SY', - }, - default_legal_entity_credit_risk_status: 'not_started', - company_owner_user_id: 'a8a99466-a159-4bef-a9e1-0cb6939542e1', - }, - }, -}; - -export const conversionFromUSDToEUR = { - data: { - conversion_data: { - exchange_rate: '0.85', - target_currency: { code: 'EUR', name: 'Euro', symbol: '€' }, - source_currency: { code: 'USD', name: 'US Dollar', symbol: '$' }, - source_amount: 100000, - target_amount: 85000, - }, - }, -}; - -export const conversionFromEURToUSD = { - data: { - conversion_data: { - exchange_rate: '1.17647', - target_currency: { - code: 'USD', - name: 'US Dollar', - symbol: '$', - }, - source_currency: { - code: 'EUR', - name: 'Euro', - symbol: '€', - }, - source_amount: 100000, - target_amount: 117647, - }, - }, -}; - -export const contractDetailsSouthKoreaSchema = { - data: { - additionalProperties: false, - allOf: [ - { - if: { - properties: { - work_schedule: { - const: 'full_time', - }, - }, - required: ['work_schedule'], - }, - then: { - properties: { - annual_gross_salary: { - description: - "The minimum annual salary is calculated based on the country's applicable laws.", - minimum: 2503848000, - 'x-jsf-errorMessage': { - minimum: - 'In South Korea, full-time employees are entitled to a minimum annual salary of ₩25,038,480', - }, - }, - }, - }, - }, - { - else: { - properties: { - hobong_salary_details: false, - overtime_hours: false, - saturday_unpaid_paid: false, - }, - required: ['work_days_for_part_time_worker'], - }, - if: { - properties: { - work_schedule: { - const: 'full_time', - }, - }, - required: ['work_schedule'], - }, - then: { - else: { - properties: { - hobong_salary_details: false, - holiday_days_for_part_time_worker: false, - overtime_hours: false, - }, - }, - if: { - properties: { - experience_level: { - enum: [ - 'Level 2 - Entry Level - Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', - 'Level 3 - Associate - Employees who perform independently tasks and/or with coordination and control functions', - ], - }, - }, - required: ['experience_level'], - }, - required: ['saturday_unpaid_paid'], - then: { - required: ['hobong_salary_details'], - }, - }, - }, - { - else: { - properties: { - holiday_days_for_part_time_worker: false, - work_days_for_part_time_worker: false, - }, - }, - if: { - properties: { - work_schedule: { - const: 'part_time', - }, - }, - required: ['work_schedule'], - }, - then: { - else: { - properties: { - holiday_days_for_part_time_worker: false, - }, - }, - if: { - properties: { - work_hours_per_week: { - minimum: 15, - }, - }, - }, - required: ['work_days_for_part_time_worker'], - then: { - required: ['holiday_days_for_part_time_worker'], - }, - }, - }, - { - else: { - properties: { - contract_end_date: false, - }, - }, - if: { - properties: { - contract_duration_type: { - const: 'fixed_term', - }, - }, - required: ['contract_duration_type'], - }, - then: { - properties: { - contract_end_date: { - type: ['string'], - }, - }, - required: ['contract_end_date'], - }, - }, - { - else: { - properties: { - bonus_amount: false, - bonus_details: false, - }, - }, - if: { - properties: { - has_bonus: { - const: 'yes', - }, - }, - required: ['has_bonus'], - }, - then: { - properties: { - bonus_details: { - type: ['string'], - }, - }, - required: ['bonus_details'], - }, - }, - { - else: { - properties: { - commissions_ack: false, - commissions_details: false, - }, - }, - if: { - properties: { - has_commissions: { - const: 'yes', - }, - }, - required: ['has_commissions'], - }, - then: { - properties: { - commissions_ack: { - type: ['string'], - }, - commissions_details: { - type: ['string'], - }, - }, - required: ['commissions_details', 'commissions_ack'], - }, - }, - { - else: { - properties: { - signing_bonus_amount: false, - }, - }, - if: { - properties: { - has_signing_bonus: { - const: 'yes', - }, - }, - required: ['has_signing_bonus'], - }, - then: { - properties: { - signing_bonus_amount: { - type: ['integer'], - }, - }, - required: ['signing_bonus_amount'], - }, - }, - { - else: { - properties: { - part_time_salary_confirmation: false, - }, - }, - if: { - properties: { - work_schedule: { - const: 'part_time', - }, - }, - required: ['work_schedule'], - }, - then: { - properties: { - part_time_salary_confirmation: { - type: 'string', - }, - }, - required: ['part_time_salary_confirmation'], - }, - }, - { - if: { - properties: { - probation_length: { - const: 0, - }, - }, - required: ['probation_length'], - }, - then: { - properties: { - probation_length: { - 'x-jsf-presentation': { - statement: { - description: - 'Waiving the probation period is possible but discouraged', - severity: 'warning', - }, - }, - }, - }, - }, - }, - { - else: { - properties: { - notice_period_during_probation_days: { - minimum: 30, - }, - }, - }, - if: { - properties: { - probation_length: { - enum: [0, 1, 2, 3], - }, - }, - required: ['probation_length'], - }, - then: { - properties: { - notice_period_during_probation_days: { - const: 0, - default: 0, - 'x-jsf-presentation': { - statement: { - title: 'Notice period in days during probation', - }, - }, - }, - }, - }, - }, - { - if: { - properties: { - contract_duration_type: { - const: 'indefinite', - }, - }, - required: ['contract_duration_type'], - }, - then: { - properties: { - contract_duration_type: { - 'x-jsf-presentation': { - statement: { - description: - 'Please note that due to labor laws in South Korea, it is very difficult to terminate indefinite agreements without just cause. We recommend a fixed-term contract. Fixed-term contracts must be limited to two years in total, and employees will be considered as permanent employees after two years.', - severity: 'warning', - }, - }, - }, - }, - }, - }, - { - else: { - properties: { - work_hours_per_week: { - maximum: 52, - minimum: 40, - }, - }, - }, - if: { - properties: { - work_schedule: { - const: 'part_time', - }, - }, - }, - then: { - properties: { - work_hours_per_week: { - maximum: 39, - minimum: 15, - }, - }, - }, - }, - ], - properties: { - allowances: { - description: - 'Let us know what each allowance covers and its monthly amount. If you’re not offering allowances, you can skip this field.', - maxLength: 1000, - title: 'Allowances', - type: ['string', 'null'], - 'x-jsf-presentation': { - inputType: 'textarea', - }, - }, - annual_gross_salary: { - description: - 'The Employee’s salary will be based on the number of days worked and weekly paid holiday (including fractions thereof) in a month. Salary for the part-time worker must be computed to account for (i) the salary for the working hours during the week plus (ii) one day of paid holiday during the week.', - title: 'Annual gross salary', - type: 'integer', - 'x-jsf-errorMessage': { - type: 'Please, use US standard currency format. Ex: 1024.12', - }, - 'x-jsf-logic-computedAttrs': { - minimum: 'minimum_annual_gross_salary_in_cents', - 'x-jsf-errorMessage': { - minimum: - 'In South Korea, part-time employees are entitled to a minimum annual salary of ₩{{ minimum_annual_gross_salary }}', - }, - }, - 'x-jsf-presentation': { - currency: 'KRW', - inputType: 'money', - }, - }, - available_pto: { - description: - 'In South Korea, employees are entitled to between 15 to 25 per year. If this is a new employee, we recommend 15.', - title: 'Number of paid time off days', - type: 'number', - 'x-jsf-presentation': { - inputType: 'number', - }, - }, - bonus_amount: { - deprecated: true, - readOnly: true, - title: 'Bonus amount (deprecated)', - type: ['integer', 'null'], - 'x-jsf-errorMessage': { - type: 'Please, use US standard currency format. Ex: 1024.12', - }, - 'x-jsf-presentation': { - currency: 'KRW', - deprecated: { - description: - "Deprecated in favor of 'Bonus Details'. Please, try to leave this field empty.", - }, - inputType: 'money', - }, - }, - bonus_details: { - description: 'Bonus type, payment frequency, and more.', - maxLength: 1000, - title: 'Other bonus details', - type: ['string', 'null'], - 'x-jsf-presentation': { - inputType: 'textarea', - }, - }, - commissions_ack: { - const: 'acknowledged', - description: - 'I understand that I am required to provide written details of the commission plan to this employee, and upload this document on the platform for record keeping purposes. I acknowledge that Remote will not liable for any claims or losses associated with the commission or bonus plan.', - title: 'Confirm commission plan details', - type: 'string', - 'x-jsf-presentation': { - inputType: 'checkbox', - meta: { - helpCenter: { - callToAction: '(i) Guidance on drafting a commission plan here', - content: - 'It is important to understand that commission plans are individual agreements between you, and each team member. Consequently, it is important that these plans are communicated directly between you and the respective team members. This direct communication ensures clarity, transparency, and a clear understanding of the agreed-upon terms for the commission plan.
\nPerformance-linked bonuses and commissions are payments that are contingent on various factors, including individual and team performance, business outcomes, and other metrics agreed upon by you and the employees providing you services. As these are rewards that are subject to your evaluation and adjustment based on the agreed-upon criteria, we strongly recommend that you document these plans as compliantly as possible, and their specifics separately in writing, with the employee providing you services, following the below guidelines:
\nPlease be aware that this guideline does not constitute legal advice. It is advisable to consult with your legal counsel for expert advice while formulating such plans. We will not assume liability for any claims that may arise due to a non-compliant and/or ambiguous commission plan provided to employees.
', - error: false, - id: 17932049668109, - title: 'Guidelines for bonus and commission plans', - }, - }, - }, - }, - commissions_details: { - description: 'Payment amount, frequency, and more.', - maxLength: 1000, - title: 'Commission details', - type: ['string', 'null'], - 'x-jsf-presentation': { - inputType: 'textarea', - }, - }, - contract_duration: { - deprecated: true, - description: - "Indefinite or fixed-term contract. If the latter, please state duration and if there's possibility for renewal.", - maxLength: 255, - readOnly: true, - title: 'Contract duration (deprecated)', - type: ['string', 'null'], - 'x-jsf-presentation': { - deprecated: { - description: - "Deprecated field in favor of 'contract_duration_type'.", - }, - inputType: 'text', - }, - }, - contract_duration_type: { - oneOf: [ - { - const: 'indefinite', - title: 'Indefinite', - }, - { - const: 'fixed_term', - title: 'Fixed Term', - }, - ], - title: 'Contract duration', - type: 'string', - 'x-jsf-presentation': { - direction: 'row', - inputType: 'radio', - meta: { - helpCenter: { - callToAction: 'Learn about contract duration', - content: - 'There are two types of contracts available:
\nIndefinite and fixed-term contracts can be:
\nPart-time: This is a form of employment that carries fewer hours per week than a full-time job. Depending on the country, workers are considered to be part-time if they commonly work fewer than 30 or 35 hours per week.
\nFull-time.
\nRemote Equity Essentials is a lightweight compliance tool designed to help you manage equity grants across borders for team members hired through Remote\'s Employer of Record (EOR).
Whether you’re managing vesting, reporting exercises, or navigating local tax laws, Remote Equity Essentials gives you the structure to stay compliant, avoid risk, and support your team across borders.
As your EOR, Remote is legally responsible for equity-related tax and reporting in the countries where your team members are employed. That means we don’t just track equity, we:
Most equity platforms can’t do that because they’re not the legal employer. Remote Equity Essentials ensures we have the data we need, when we need it, to keep your company compliant and your team fairly rewarded.
Behind the scenes, our tax team:
See also: What types of equity grants should I declare in Remote Equity Essentials?
Remote Equity Essentials provides:
Looking for more automation or Carta integration? Learn about Remote Equity Advanced.
Setup takes less than five minutes. Just log in to your Remote account, and launch the Equity App to follow the setup steps.
Helpful guides to get started:
Who needs to use Remote Equity Essentials?
Any Remote customer granting equity to a team member hired through Remote’s EOR must use Remote Equity Essentials to meet local compliance requirements.
Why can’t we just use our own equity tool?
Traditional equity tools track grants and vesting, but they don\'t file taxes, withhold contributions, or report income to local authorities. Remote, as the legal employer, is responsible for these actions. Remote Equity Essentials ensures those obligations are covered.
What happens if we don’t use it?
If Remote doesn’t receive timely and accurate equity data, required filings may be missed. This can result in compliance risks, unexpected tax liabilities, and issues for both your company and your team members.
How much does Remote Equity Essentials cost?
Remote Equity Essentials costs 39 USD per month for each EOR team member with equity. Learn more.
For comprehensive information, visit the Remote Equity Essentials hub.
', - error: false, - id: 38303424407821, - title: - 'Welcome to Remote Equity Essentials: Global equity, without the compliance headaches', - }, - }, - }, - }, - experience_level: { - description: - 'Please select the experience level that aligns with this role based on the job description (not the employees overall experience).', - oneOf: [ - { - const: - 'Level 2 - Entry Level - Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', - description: - 'Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', - title: 'Level 2 - Entry Level', - }, - { - const: - 'Level 3 - Associate - Employees who perform independently tasks and/or with coordination and control functions', - description: - 'Employees who perform independently tasks and/or with coordination and control functions', - title: 'Level 3 - Associate', - }, - ], - title: 'Experience level', - type: 'string', - 'x-jsf-presentation': { - inputType: 'radio', - }, - }, - has_bonus: { - description: - 'These can include things like performance-related bonuses.', - oneOf: [ - { - const: 'yes', - title: 'Yes', - }, - { - const: 'no', - title: 'No', - }, - ], - title: 'Offer other bonuses?', - type: 'string', - 'x-jsf-presentation': { - direction: 'row', - inputType: 'radio', - meta: { - helpCenter: { - callToAction: 'Learn more', - content: - 'We do not include bonus specifics in the employment agreement. However, you can create a bonus directly on the platform.
\nPlease note that if you decide to offer other bonuses, it will be difficult or impossible to withdraw these bonuses if you change your mind later.
', - error: false, - id: 18019142406029, - title: 'Other bonuses', - }, - }, - }, - }, - has_commissions: { - description: - 'You can outline your policy and pay commission to the employee on the platform. However, commission will not appear in the employment agreement. Please send full policy details directly to the employee.', - oneOf: [ - { - const: 'yes', - title: 'Yes', - }, - { - const: 'no', - title: 'No', - }, - ], - title: 'Offer commission?', - type: 'string', - 'x-jsf-presentation': { - direction: 'row', - inputType: 'radio', - }, - }, - has_signing_bonus: { - description: - 'This is a one-time payment the employee receives when they join your team.', - oneOf: [ - { - const: 'yes', - title: 'Yes', - }, - { - const: 'no', - title: 'No', - }, - ], - title: 'Offer a signing bonus?', - type: 'string', - 'x-jsf-presentation': { - direction: 'row', - inputType: 'radio', - }, - }, - hobong_salary_details: { - properties: { - meal_allowance: { - description: 'In KRW.', - minimum: 0, - title: 'Meal allowance per month', - type: 'integer', - 'x-jsf-errorMessage': { - type: 'Please, use US standard currency format. Ex: 1024.12', - }, - 'x-jsf-presentation': { - currency: 'KRW', - inputType: 'money', - }, - }, - other_allowances: { - description: 'Any other allowances your company offers employees.', - minimum: 0, - title: 'Other allowances', - type: ['integer', 'null'], - 'x-jsf-errorMessage': { - type: 'Please, use US standard currency format. Ex: 1024.12', - }, - 'x-jsf-presentation': { - currency: 'KRW', - inputType: 'money', - }, - }, - overtime_allowance: { - description: - 'This is a fixed monthly amount to compensate for extra work.', - minimum: 0, - title: 'Overtime allowance', - type: ['integer', 'null'], - 'x-jsf-errorMessage': { - type: 'Please, use US standard currency format. Ex: 1024.12', - }, - 'x-jsf-presentation': { - currency: 'KRW', - inputType: 'money', - }, - }, - }, - required: ['meal_allowance'], - title: 'Fixed allowances', - type: 'object', - 'x-jsf-order': [ - 'meal_allowance', - 'overtime_allowance', - 'other_allowances', - ], - 'x-jsf-presentation': { - inputType: 'fieldset', - }, - }, - holiday_days_for_part_time_worker: { - description: - 'Part-time employees who work more than 15 hours per week are entitled to weekly paid days off.', - items: { - anyOf: [ - { - const: 'monday', - title: 'Monday', - }, - { - const: 'tuesday', - title: 'Tuesday', - }, - { - const: 'wednesday', - title: 'Wednesday', - }, - { - const: 'thursday', - title: 'Thursday', - }, - { - const: 'friday', - title: 'Friday', - }, - { - const: 'saturday', - title: 'Saturday', - }, - { - const: 'sunday', - title: 'Sunday', - }, - ], - }, - title: 'Holiday days', - type: 'array', - uniqueItems: true, - 'x-jsf-presentation': { - inputType: 'select', - placeholder: 'Select...', - }, - }, - non_compete_and_non_solicitation_period_months: { - description: - 'How many months should the non-compete clause last after termination of the employment agreement?\n\nNon-compete clauses may be enforceable under Korean law. There is no legally provided maximum for non-compete/non-solicitation obligations.', - minimum: 0, - title: 'Non-compete and non-solicitation period (months)', - type: 'number', - 'x-jsf-presentation': { - description: - 'How many months should the non-compete clause last after termination of the employment agreement?The purpose of a probationary period is to allow a specific time period for the employee and company to assess suitability for the role after having first-hand experience. On the one hand, it gives the company the opportunity to assess objectively whether the new employee is suitable for the job, considering their capability, skills, performance, attendance and general conduct.
\nDuring the probation period, it is typically simpler to terminate an employee that is underperforming. Often, standard notice periods do not apply or may be shortened. Depending on the employee’s country of residence, it may be more difficult and costly to terminate an employee after their probation period is over.
\nPlease be aware that if you do not elect to implement a probationary period and later conduct a background check during the onboarding process, Remote cannot unilaterally terminate employment following the receipt of unsatisfactory background check results.
\nSee also: How do I include a probationary period in the employee\'s contract?
', - error: false, - id: 19858883586445, - title: - "Why is it important to include a probationary period in an employee's contract?", - }, - }, - }, - }, - role_description: { - description: - 'Please add at least 3 responsibilities, at least 100 characters in total.', - maxLength: 5000, - minLength: 100, - title: 'Role description', - type: 'string', - 'x-jsf-presentation': { - inputType: 'textarea', - meta: { - helpCenter: { - callToAction: 'Learn more', - content: - 'Portuguese law allows 3 types of employees to work outside legally defined regular work hours:
Employers must pay every employee who works outside regular work hours a monthly allowance. The value of this allowance depends on which days and what time an employee works outside work hour.
If you have an employee in Portugal who will work outside regular work hours, we\'ll calculate their allowance for you and you\'ll pay it on top of their salary.
', + title: 'Working hours exemption', + }, + }, + }, + }, + working_hours_exemption_allowance: { + description: '', + title: 'Extended work hours allowance', + type: 'integer', + 'x-jsf-errorMessage': { + type: 'Please, use US standard currency format. Ex: 1024.12', + }, + 'x-jsf-presentation': { + currency: 'EUR', + inputType: 'money', + statement: { + severity: 'info', + title: 'You’ll need to pay an extended work hours allowance', + }, + }, + }, + }, + required: [ + 'annual_gross_salary', + 'contract_duration_type', + 'work_schedule', + 'work_from_home_allowance_ack', + 'annual_training_hours_ack', + 'salary_installments_confirmation', + 'has_signing_bonus', + 'has_bonus', + 'has_commissions', + 'equity_compensation', + 'available_pto', + 'available_pto_type', + 'role_description', + 'experience_level', + 'work_address', + 'working_hours_exemption', + ], + type: 'object', + 'x-jsf-fieldsets': { + annual_gross_salary_fieldset: { + propertiesByName: [ + 'annual_gross_salary', + 'salary_installments_confirmation', + ], + title: 'Annual gross salary', + }, + extended_work_hours: { + propertiesByName: [ + 'working_hours_exemption', + 'maximum_working_hours_regime', + 'working_hours_exemption_allowance', + ], + title: 'Extended work hours', + }, + }, + 'x-jsf-logic': { + computedValues: { + working_hours_exemption_allowance_no_max_hours_value: { + rule: { + if: [ + { + and: [ + { + var: 'annual_gross_salary', + }, + { + var: 'work_hours_per_week', + }, + ], + }, + { + '/': [ + { + '-': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 2, + 4, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + { + '%': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 2, + 4, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + 1, + ], + }, + ], + }, + 100, + ], + }, + 0, + ], + }, + }, + working_hours_exemption_allowance_no_max_hours_value_in_cents: { + rule: { + if: [ + { + and: [ + { + var: 'annual_gross_salary', + }, + { + var: 'work_hours_per_week', + }, + ], + }, + { + '-': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 2, + 4, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + { + '%': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 2, + 4, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + 1, + ], + }, + ], + }, + 0, + ], + }, + }, + working_hours_exemption_allowance_with_max_hours_value: { + rule: { + if: [ + { + and: [ + { + var: 'annual_gross_salary', + }, + { + var: 'work_hours_per_week', + }, + ], + }, + { + '/': [ + { + '-': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 22, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + { + '%': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 22, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + 1, + ], + }, + ], + }, + 100, + ], + }, + 0, + ], + }, + }, + working_hours_exemption_allowance_with_max_hours_value_in_cents: { + rule: { + if: [ + { + and: [ + { + var: 'annual_gross_salary', + }, + { + var: 'work_hours_per_week', + }, + ], + }, + { + '-': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 22, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + { + '%': [ + { + '/': [ + { + '*': [ + { + var: 'annual_gross_salary', + }, + 12, + 1.25, + 22, + ], + }, + { + '*': [ + { + var: 'work_hours_per_week', + }, + 52, + 14, + ], + }, + ], + }, + 1, + ], + }, + ], + }, + 0, + ], + }, + }, + }, + }, + 'x-jsf-order': [ + 'contract_duration', + 'contract_duration_type', + 'contract_end_date', + 'work_schedule', + 'work_hours_per_week', + 'probation_length', + 'probation_length_days', + 'available_pto_type', + 'available_pto', + 'role_description', + 'experience_level', + 'work_address', + 'annual_gross_salary', + 'part_time_salary_confirmation', + 'salary_installments_confirmation', + 'work_from_home_allowance_ack', + 'annual_training_hours_ack', + 'work_from_home_allowance', + 'working_hours_exemption', + 'maximum_working_hours_regime', + 'working_hours_exemption_allowance', + 'has_signing_bonus', + 'signing_bonus_amount', + 'signing_bonus_clawback', + 'has_bonus', + 'bonus_amount', + 'bonus_details', + 'has_commissions', + 'commissions_details', + 'commissions_ack', + 'equity_compensation', + ], + }, +}; + diff --git a/src/flows/Onboarding/tests/fixtures/contractDetails/v1-southKorea.ts b/src/flows/Onboarding/tests/fixtures/contractDetails/v1-southKorea.ts new file mode 100644 index 000000000..57b6d147a --- /dev/null +++ b/src/flows/Onboarding/tests/fixtures/contractDetails/v1-southKorea.ts @@ -0,0 +1,1283 @@ +export const contractDetailsSchemaV1SouthKorea = { + data: { + additionalProperties: false, + allOf: [ + { + if: { + properties: { + work_schedule: { + const: 'full_time', + }, + }, + required: ['work_schedule'], + }, + then: { + properties: { + annual_gross_salary: { + description: + "The minimum annual salary is calculated based on the country's applicable laws.", + minimum: 2503848000, + 'x-jsf-errorMessage': { + minimum: + 'In South Korea, full-time employees are entitled to a minimum annual salary of ₩25,038,480', + }, + }, + }, + }, + }, + { + else: { + properties: { + hobong_salary_details: false, + overtime_hours: false, + saturday_unpaid_paid: false, + }, + required: ['work_days_for_part_time_worker'], + }, + if: { + properties: { + work_schedule: { + const: 'full_time', + }, + }, + required: ['work_schedule'], + }, + then: { + else: { + properties: { + hobong_salary_details: false, + holiday_days_for_part_time_worker: false, + overtime_hours: false, + }, + }, + if: { + properties: { + experience_level: { + enum: [ + 'Level 2 - Entry Level - Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', + 'Level 3 - Associate - Employees who perform independently tasks and/or with coordination and control functions', + ], + }, + }, + required: ['experience_level'], + }, + required: ['saturday_unpaid_paid'], + then: { + required: ['hobong_salary_details'], + }, + }, + }, + { + else: { + properties: { + holiday_days_for_part_time_worker: false, + work_days_for_part_time_worker: false, + }, + }, + if: { + properties: { + work_schedule: { + const: 'part_time', + }, + }, + required: ['work_schedule'], + }, + then: { + else: { + properties: { + holiday_days_for_part_time_worker: false, + }, + }, + if: { + properties: { + work_hours_per_week: { + minimum: 15, + }, + }, + }, + required: ['work_days_for_part_time_worker'], + then: { + required: ['holiday_days_for_part_time_worker'], + }, + }, + }, + { + else: { + properties: { + contract_end_date: false, + }, + }, + if: { + properties: { + contract_duration_type: { + const: 'fixed_term', + }, + }, + required: ['contract_duration_type'], + }, + then: { + properties: { + contract_end_date: { + type: ['string'], + }, + }, + required: ['contract_end_date'], + }, + }, + { + else: { + properties: { + bonus_amount: false, + bonus_details: false, + }, + }, + if: { + properties: { + has_bonus: { + const: 'yes', + }, + }, + required: ['has_bonus'], + }, + then: { + properties: { + bonus_details: { + type: ['string'], + }, + }, + required: ['bonus_details'], + }, + }, + { + else: { + properties: { + commissions_ack: false, + commissions_details: false, + }, + }, + if: { + properties: { + has_commissions: { + const: 'yes', + }, + }, + required: ['has_commissions'], + }, + then: { + properties: { + commissions_ack: { + type: ['string'], + }, + commissions_details: { + type: ['string'], + }, + }, + required: ['commissions_details', 'commissions_ack'], + }, + }, + { + else: { + properties: { + signing_bonus_amount: false, + }, + }, + if: { + properties: { + has_signing_bonus: { + const: 'yes', + }, + }, + required: ['has_signing_bonus'], + }, + then: { + properties: { + signing_bonus_amount: { + type: ['integer'], + }, + }, + required: ['signing_bonus_amount'], + }, + }, + { + else: { + properties: { + part_time_salary_confirmation: false, + }, + }, + if: { + properties: { + work_schedule: { + const: 'part_time', + }, + }, + required: ['work_schedule'], + }, + then: { + properties: { + part_time_salary_confirmation: { + type: 'string', + }, + }, + required: ['part_time_salary_confirmation'], + }, + }, + { + if: { + properties: { + probation_length: { + const: 0, + }, + }, + required: ['probation_length'], + }, + then: { + properties: { + probation_length: { + 'x-jsf-presentation': { + statement: { + description: + 'Waiving the probation period is possible but discouraged', + severity: 'warning', + }, + }, + }, + }, + }, + }, + { + else: { + properties: { + notice_period_during_probation_days: { + minimum: 30, + }, + }, + }, + if: { + properties: { + probation_length: { + enum: [0, 1, 2, 3], + }, + }, + required: ['probation_length'], + }, + then: { + properties: { + notice_period_during_probation_days: { + const: 0, + default: 0, + 'x-jsf-presentation': { + statement: { + title: 'Notice period in days during probation', + }, + }, + }, + }, + }, + }, + { + if: { + properties: { + contract_duration_type: { + const: 'indefinite', + }, + }, + required: ['contract_duration_type'], + }, + then: { + properties: { + contract_duration_type: { + 'x-jsf-presentation': { + statement: { + description: + 'Please note that due to labor laws in South Korea, it is very difficult to terminate indefinite agreements without just cause. We recommend a fixed-term contract. Fixed-term contracts must be limited to two years in total, and employees will be considered as permanent employees after two years.', + severity: 'warning', + }, + }, + }, + }, + }, + }, + { + else: { + properties: { + work_hours_per_week: { + maximum: 52, + minimum: 40, + }, + }, + }, + if: { + properties: { + work_schedule: { + const: 'part_time', + }, + }, + }, + then: { + properties: { + work_hours_per_week: { + maximum: 39, + minimum: 15, + }, + }, + }, + }, + ], + properties: { + allowances: { + description: + 'Let us know what each allowance covers and its monthly amount. If you’re not offering allowances, you can skip this field.', + maxLength: 1000, + title: 'Allowances', + type: ['string', 'null'], + 'x-jsf-presentation': { + inputType: 'textarea', + }, + }, + annual_gross_salary: { + description: + 'The Employee’s salary will be based on the number of days worked and weekly paid holiday (including fractions thereof) in a month. Salary for the part-time worker must be computed to account for (i) the salary for the working hours during the week plus (ii) one day of paid holiday during the week.', + title: 'Annual gross salary', + type: 'integer', + 'x-jsf-errorMessage': { + type: 'Please, use US standard currency format. Ex: 1024.12', + }, + 'x-jsf-logic-computedAttrs': { + minimum: 'minimum_annual_gross_salary_in_cents', + 'x-jsf-errorMessage': { + minimum: + 'In South Korea, part-time employees are entitled to a minimum annual salary of ₩{{ minimum_annual_gross_salary }}', + }, + }, + 'x-jsf-presentation': { + currency: 'KRW', + inputType: 'money', + }, + }, + available_pto: { + description: + 'In South Korea, employees are entitled to between 15 to 25 per year. If this is a new employee, we recommend 15.', + title: 'Number of paid time off days', + type: 'number', + 'x-jsf-presentation': { + inputType: 'number', + }, + }, + bonus_amount: { + deprecated: true, + readOnly: true, + title: 'Bonus amount (deprecated)', + type: ['integer', 'null'], + 'x-jsf-errorMessage': { + type: 'Please, use US standard currency format. Ex: 1024.12', + }, + 'x-jsf-presentation': { + currency: 'KRW', + deprecated: { + description: + "Deprecated in favor of 'Bonus Details'. Please, try to leave this field empty.", + }, + inputType: 'money', + }, + }, + bonus_details: { + description: 'Bonus type, payment frequency, and more.', + maxLength: 1000, + title: 'Other bonus details', + type: ['string', 'null'], + 'x-jsf-presentation': { + inputType: 'textarea', + }, + }, + commissions_ack: { + const: 'acknowledged', + description: + 'I understand that I am required to provide written details of the commission plan to this employee, and upload this document on the platform for record keeping purposes. I acknowledge that Remote will not liable for any claims or losses associated with the commission or bonus plan.', + title: 'Confirm commission plan details', + type: 'string', + 'x-jsf-presentation': { + inputType: 'checkbox', + meta: { + helpCenter: { + callToAction: '(i) Guidance on drafting a commission plan here', + content: + 'It is important to understand that commission plans are individual agreements between you, and each team member. Consequently, it is important that these plans are communicated directly between you and the respective team members. This direct communication ensures clarity, transparency, and a clear understanding of the agreed-upon terms for the commission plan.
\nPerformance-linked bonuses and commissions are payments that are contingent on various factors, including individual and team performance, business outcomes, and other metrics agreed upon by you and the employees providing you services. As these are rewards that are subject to your evaluation and adjustment based on the agreed-upon criteria, we strongly recommend that you document these plans as compliantly as possible, and their specifics separately in writing, with the employee providing you services, following the below guidelines:
\nPlease be aware that this guideline does not constitute legal advice. It is advisable to consult with your legal counsel for expert advice while formulating such plans. We will not assume liability for any claims that may arise due to a non-compliant and/or ambiguous commission plan provided to employees.
', + error: false, + id: 17932049668109, + title: 'Guidelines for bonus and commission plans', + }, + }, + }, + }, + commissions_details: { + description: 'Payment amount, frequency, and more.', + maxLength: 1000, + title: 'Commission details', + type: ['string', 'null'], + 'x-jsf-presentation': { + inputType: 'textarea', + }, + }, + contract_duration: { + deprecated: true, + description: + "Indefinite or fixed-term contract. If the latter, please state duration and if there's possibility for renewal.", + maxLength: 255, + readOnly: true, + title: 'Contract duration (deprecated)', + type: ['string', 'null'], + 'x-jsf-presentation': { + deprecated: { + description: + "Deprecated field in favor of 'contract_duration_type'.", + }, + inputType: 'text', + }, + }, + contract_duration_type: { + oneOf: [ + { + const: 'indefinite', + title: 'Indefinite', + }, + { + const: 'fixed_term', + title: 'Fixed Term', + }, + ], + title: 'Contract duration', + type: 'string', + 'x-jsf-presentation': { + direction: 'row', + inputType: 'radio', + meta: { + helpCenter: { + callToAction: 'Learn about contract duration', + content: + 'There are two types of contracts available:
\nIndefinite and fixed-term contracts can be:
\nPart-time: This is a form of employment that carries fewer hours per week than a full-time job. Depending on the country, workers are considered to be part-time if they commonly work fewer than 30 or 35 hours per week.
\nFull-time.
\nRemote Equity Essentials is a lightweight compliance tool designed to help you manage equity grants across borders for team members hired through Remote\'s Employer of Record (EOR).
Whether you’re managing vesting, reporting exercises, or navigating local tax laws, Remote Equity Essentials gives you the structure to stay compliant, avoid risk, and support your team across borders.
As your EOR, Remote is legally responsible for equity-related tax and reporting in the countries where your team members are employed. That means we don’t just track equity, we:
Most equity platforms can’t do that because they’re not the legal employer. Remote Equity Essentials ensures we have the data we need, when we need it, to keep your company compliant and your team fairly rewarded.
Behind the scenes, our tax team:
See also: What types of equity grants should I declare in Remote Equity Essentials?
Remote Equity Essentials provides:
Looking for more automation or Carta integration? Learn about Remote Equity Advanced.
Setup takes less than five minutes. Just log in to your Remote account, and launch the Equity App to follow the setup steps.
Helpful guides to get started:
Who needs to use Remote Equity Essentials?
Any Remote customer granting equity to a team member hired through Remote’s EOR must use Remote Equity Essentials to meet local compliance requirements.
Why can’t we just use our own equity tool?
Traditional equity tools track grants and vesting, but they don\'t file taxes, withhold contributions, or report income to local authorities. Remote, as the legal employer, is responsible for these actions. Remote Equity Essentials ensures those obligations are covered.
What happens if we don’t use it?
If Remote doesn’t receive timely and accurate equity data, required filings may be missed. This can result in compliance risks, unexpected tax liabilities, and issues for both your company and your team members.
How much does Remote Equity Essentials cost?
Remote Equity Essentials costs 39 USD per month for each EOR team member with equity. Learn more.
For comprehensive information, visit the Remote Equity Essentials hub.
', + error: false, + id: 38303424407821, + title: + 'Welcome to Remote Equity Essentials: Global equity, without the compliance headaches', + }, + }, + }, + }, + experience_level: { + description: + 'Please select the experience level that aligns with this role based on the job description (not the employees overall experience).', + oneOf: [ + { + const: + 'Level 2 - Entry Level - Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', + description: + 'Employees who perform operational tasks with an average level of complexity. They perform their functions with limited autonomy', + title: 'Level 2 - Entry Level', + }, + { + const: + 'Level 3 - Associate - Employees who perform independently tasks and/or with coordination and control functions', + description: + 'Employees who perform independently tasks and/or with coordination and control functions', + title: 'Level 3 - Associate', + }, + ], + title: 'Experience level', + type: 'string', + 'x-jsf-presentation': { + inputType: 'radio', + }, + }, + has_bonus: { + description: + 'These can include things like performance-related bonuses.', + oneOf: [ + { + const: 'yes', + title: 'Yes', + }, + { + const: 'no', + title: 'No', + }, + ], + title: 'Offer other bonuses?', + type: 'string', + 'x-jsf-presentation': { + direction: 'row', + inputType: 'radio', + meta: { + helpCenter: { + callToAction: 'Learn more', + content: + 'We do not include bonus specifics in the employment agreement. However, you can create a bonus directly on the platform.
\nPlease note that if you decide to offer other bonuses, it will be difficult or impossible to withdraw these bonuses if you change your mind later.
', + error: false, + id: 18019142406029, + title: 'Other bonuses', + }, + }, + }, + }, + has_commissions: { + description: + 'You can outline your policy and pay commission to the employee on the platform. However, commission will not appear in the employment agreement. Please send full policy details directly to the employee.', + oneOf: [ + { + const: 'yes', + title: 'Yes', + }, + { + const: 'no', + title: 'No', + }, + ], + title: 'Offer commission?', + type: 'string', + 'x-jsf-presentation': { + direction: 'row', + inputType: 'radio', + }, + }, + has_signing_bonus: { + description: + 'This is a one-time payment the employee receives when they join your team.', + oneOf: [ + { + const: 'yes', + title: 'Yes', + }, + { + const: 'no', + title: 'No', + }, + ], + title: 'Offer a signing bonus?', + type: 'string', + 'x-jsf-presentation': { + direction: 'row', + inputType: 'radio', + }, + }, + hobong_salary_details: { + properties: { + meal_allowance: { + description: 'In KRW.', + minimum: 0, + title: 'Meal allowance per month', + type: 'integer', + 'x-jsf-errorMessage': { + type: 'Please, use US standard currency format. Ex: 1024.12', + }, + 'x-jsf-presentation': { + currency: 'KRW', + inputType: 'money', + }, + }, + other_allowances: { + description: 'Any other allowances your company offers employees.', + minimum: 0, + title: 'Other allowances', + type: ['integer', 'null'], + 'x-jsf-errorMessage': { + type: 'Please, use US standard currency format. Ex: 1024.12', + }, + 'x-jsf-presentation': { + currency: 'KRW', + inputType: 'money', + }, + }, + overtime_allowance: { + description: + 'This is a fixed monthly amount to compensate for extra work.', + minimum: 0, + title: 'Overtime allowance', + type: ['integer', 'null'], + 'x-jsf-errorMessage': { + type: 'Please, use US standard currency format. Ex: 1024.12', + }, + 'x-jsf-presentation': { + currency: 'KRW', + inputType: 'money', + }, + }, + }, + required: ['meal_allowance'], + title: 'Fixed allowances', + type: 'object', + 'x-jsf-order': [ + 'meal_allowance', + 'overtime_allowance', + 'other_allowances', + ], + 'x-jsf-presentation': { + inputType: 'fieldset', + }, + }, + holiday_days_for_part_time_worker: { + description: + 'Part-time employees who work more than 15 hours per week are entitled to weekly paid days off.', + items: { + anyOf: [ + { + const: 'monday', + title: 'Monday', + }, + { + const: 'tuesday', + title: 'Tuesday', + }, + { + const: 'wednesday', + title: 'Wednesday', + }, + { + const: 'thursday', + title: 'Thursday', + }, + { + const: 'friday', + title: 'Friday', + }, + { + const: 'saturday', + title: 'Saturday', + }, + { + const: 'sunday', + title: 'Sunday', + }, + ], + }, + title: 'Holiday days', + type: 'array', + uniqueItems: true, + 'x-jsf-presentation': { + inputType: 'select', + placeholder: 'Select...', + }, + }, + non_compete_and_non_solicitation_period_months: { + description: + 'How many months should the non-compete clause last after termination of the employment agreement?\n\nNon-compete clauses may be enforceable under Korean law. There is no legally provided maximum for non-compete/non-solicitation obligations.', + minimum: 0, + title: 'Non-compete and non-solicitation period (months)', + type: 'number', + 'x-jsf-presentation': { + description: + 'How many months should the non-compete clause last after termination of the employment agreement?The purpose of a probationary period is to allow a specific time period for the employee and company to assess suitability for the role after having first-hand experience. On the one hand, it gives the company the opportunity to assess objectively whether the new employee is suitable for the job, considering their capability, skills, performance, attendance and general conduct.
\nDuring the probation period, it is typically simpler to terminate an employee that is underperforming. Often, standard notice periods do not apply or may be shortened. Depending on the employee’s country of residence, it may be more difficult and costly to terminate an employee after their probation period is over.
\nPlease be aware that if you do not elect to implement a probationary period and later conduct a background check during the onboarding process, Remote cannot unilaterally terminate employment following the receipt of unsatisfactory background check results.
\nSee also: How do I include a probationary period in the employee\'s contract?
', + error: false, + id: 19858883586445, + title: + "Why is it important to include a probationary period in an employee's contract?", + }, + }, + }, + }, + role_description: { + description: + 'Please add at least 3 responsibilities, at least 100 characters in total.', + maxLength: 5000, + minLength: 100, + title: 'Role description', + type: 'string', + 'x-jsf-presentation': { + inputType: 'textarea', + meta: { + helpCenter: { + callToAction: 'Learn more', + content: + '