{"id":35478,"date":"2026-11-09T22:44:18","date_gmt":"2026-11-09T14:44:18","guid":{"rendered":"http:\/\/employhelpers.com\/?page_id=35478"},"modified":"2026-11-09T22:44:18","modified_gmt":"2026-11-09T14:44:18","slug":"singapore-maid-fdw-payslip-generator","status":"publish","type":"page","link":"https:\/\/employhelpers.com\/my\/singapore-maid-fdw-payslip-generator\/","title":{"rendered":"\u1005\u1004\u103a\u1000\u102c\u1015\u1030 \u1021\u102d\u1019\u103a\u1016\u1031\u102c\u103a\/ FDW \u101c\u1005\u102c\u1011\u102f\u1010\u103a\u1015\u1031\u1038\u101e\u100a\u1037\u103a\u1005\u1014\u1005\u103a"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"35478\" class=\"elementor elementor-35478\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2751b4c5 e-flex e-con-boxed e-con e-parent\" data-id=\"2751b4c5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6e0d00f elementor-widget elementor-widget-heading\" data-id=\"6e0d00f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Free Salary Schedule (Payslip) Generator for Your Singapore Maid (Instant PDF)<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-78f8ca9 elementor-widget elementor-widget-text-editor\" data-id=\"78f8ca9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Agencies give employers a <b>Schedule of Salary Payment<\/b>: one page listing every salary month of the contract, what your Migrant Domestic Worker (MDW) is paid, any placement fee being recovered, and a box for her to sign each month. Hiring yourself? Make the same schedule here for free: enter her salary, rest days and any placement fee, and we work out every month for you, with off-day pay calculated the MOM way. Download it as a PDF in English or Bahasa Indonesia, and we email a copy to your inbox.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0cf220a elementor-widget elementor-widget-shortcode\" data-id=\"0cf220a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n.eh-ps{background:#fff;padding:28px;border-radius:14px;box-shadow:0 4px 20px rgba(0,0,0,.07);border:1px solid #eee;font-family:inherit}\n.eh-ps h2{color:#2c3e50;margin:0 0 4px}\n.eh-ps .sub{font-size:14px;color:#7f8c8d;margin:0 0 18px}\n.eh-ps-grid{display:grid;grid-template-columns:1fr;gap:16px}\n@media(min-width:600px){.eh-ps-grid{grid-template-columns:1fr 1fr}.eh-ps-full{grid-column:span 2}}\n.eh-ps-sec{grid-column:1\/-1;margin:10px 0 -4px;font-size:15px;font-weight:700;color:#2c3e50;border-bottom:1px solid #eee;padding-bottom:6px}\n.eh-ps label{font-weight:600;display:block;margin-bottom:5px;font-size:13px;color:#2c3e50}\n.eh-ps label small{font-weight:400;color:#999}\n.eh-ps input,.eh-ps select{width:100%;border:1px solid #d5d5d5;padding:11px 13px;border-radius:8px;box-sizing:border-box;font:inherit;font-size:14px;color:#333}\n.eh-ps input:focus,.eh-ps select:focus{outline:none;border-color:#FF7AAC;box-shadow:0 0 0 3px rgba(255,122,172,.15)}\n.eh-ps .hint{font-size:12px;color:#888;margin-top:5px}\n.eh-ps .warn{font-size:12px;color:#c0392b;margin-top:5px}\n.eh-ps-lang{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}\n.eh-ps-lang button{padding:7px 16px;border:1px solid #d5d5d5;border-radius:20px;background:#fff;font-size:13px;cursor:pointer;color:#555}\n.eh-ps-lang button.on{border-color:#FF7AAC;background:#fff8fb;color:#c0446e;font-weight:700}\n.eh-ps-prev{margin-top:20px;border:1.5px solid #FF7AAC;border-radius:10px;padding:12px;background:#fff8fb;overflow-x:auto}\n.eh-ps-prev table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:460px}\n.eh-ps-prev th,.eh-ps-prev td{padding:5px 6px;border-bottom:1px solid #f3c2d6;text-align:right;white-space:nowrap}\n.eh-ps-prev th{color:#2c3e50;font-size:11.5px}\n.eh-ps-prev th:nth-child(-n+2),.eh-ps-prev td:nth-child(-n+2){text-align:left}\n.eh-ps-prev tr.tot td{font-weight:700;border-bottom:none;color:#2c3e50}\n.eh-ps-banner{display:flex;gap:12px;align-items:center;background:#fff8fb;border:1.5px solid #FF7AAC;border-radius:10px;padding:14px 18px;margin-bottom:20px;font-size:14px;color:#555}\n.eh-ps-banner a{color:#FF7AAC;font-weight:700;text-decoration:none}\n.eh-ps-guest .eh-ps-grid,.eh-ps-guest .eh-ps-lang{opacity:.55;pointer-events:none;user-select:none}\n.eh-ps-btn{display:block;width:100%;margin-top:22px;padding:15px;border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:16px;text-align:center;text-decoration:none;box-sizing:border-box}\n.eh-ps-btn.pri{background:#FF7AAC;color:#fff}\n.eh-ps-btn.login{background:#2c3e50;color:#fff}\n.eh-ps-btn[disabled]{opacity:.6;cursor:wait}\n#ehPsMsg{text-align:center;font-size:14px;margin-top:14px;font-weight:600;min-height:20px}\n<\/style>\n\n<div class=\"eh-ps eh-ps-guest\" id=\"ehPs\">\n\t<h2>MDW Salary Schedule Generator<\/h2>\n\t\t\t<div class=\"eh-ps-banner\"><span>\ud83d\udd12<\/span><span>Preview the form below. <a href=\"https:\/\/employhelpers.com\/my\/auth\/?redirect_to=https%3A%2F%2Femployhelpers.com%2Fmy%2Fsingapore-maid-fdw-payslip-generator%2F\">Log in<\/a> or <a href=\"https:\/\/employhelpers.com\/my\/sign-up-employer\/?register&#038;redirect_to=https%3A%2F%2Femployhelpers.com%2Fmy%2Fsingapore-maid-fdw-payslip-generator%2F\">create a free account<\/a> to generate and download the salary schedule.<\/span><\/div>\n\t\n\t<div class=\"eh-ps-lang\" id=\"ehPsLang\">\n\t\t<button type=\"button\" class=\"on\" data-lang=\"en\">English<\/button>\n\t\t<button type=\"button\" data-lang=\"id\">Bahasa Indonesia<\/button>\n\t<\/div>\n\n\t<div class=\"eh-ps-grid\">\n\t\t<div class=\"eh-ps-sec\">Details<\/div>\n\t\t<div><label for=\"psEmp\">Name of employer<\/label><input id=\"psEmp\" placeholder=\"e.g. Jane Tan\"><\/div>\n\t\t<div><label for=\"psHelper\">Name of helper <small>(as in passport)<\/small><\/label><input id=\"psHelper\" placeholder=\"e.g. Maria Santos\"><\/div>\n\t\t<div><label for=\"psStart\">Date of commencement<\/label><input type=\"date\" id=\"psStart\">\n\t\t\t<div class=\"hint\">Each salary month runs from this day to the day before it next month, and is paid on that last day.<\/div><\/div>\n\t\t<div><label for=\"psMonths\">Contract length<\/label>\n\t\t\t<select id=\"psMonths\"><option value=\"12\">12 months<\/option><option value=\"24\" selected>24 months<\/option><\/select><\/div>\n\n\t\t<div class=\"eh-ps-sec\">Salary and rest days<\/div>\n\t\t<div><label for=\"psBasic\">Basic salary per month (S$)<\/label><input type=\"number\" id=\"psBasic\" value=\"750\" min=\"0\" step=\"1\">\n\t\t\t<div class=\"hint\" id=\"psDayRate\"><\/div><\/div>\n\t\t<div><label for=\"psRestDay\">Her weekly rest day<\/label>\n\t\t\t<select id=\"psRestDay\"><option value=\"0\" selected>Sunday<\/option><option value=\"1\">Monday<\/option><option value=\"2\">Tuesday<\/option><option value=\"3\">Wednesday<\/option><option value=\"4\">Thursday<\/option><option value=\"5\">Friday<\/option><option value=\"6\">Saturday<\/option><\/select><\/div>\n\t\t<div class=\"eh-ps-full\"><label for=\"psOff\">Days off she takes per month<\/label>\n\t\t\t<select id=\"psOff\"><option>1<\/option><option>2<\/option><option>3<\/option><option selected>4<\/option><\/select>\n\t\t\t<div class=\"hint\">Rest days she works instead are paid as off-day compensation at one day's salary each. MOM: at least 1 rest day a month must be taken, not paid out. Choose 4 if she takes every rest day off.<\/div><\/div>\n\n\t\t<div class=\"eh-ps-sec\">Placement fee <small style=\"font-weight:400;color:#999\">(optional)<\/small><\/div>\n\t\t<div><label for=\"psFee\">Total placement fee to recover (S$)<\/label><input type=\"number\" id=\"psFee\" value=\"0\" min=\"0\" step=\"1\"><\/div>\n\t\t<div><label for=\"psLoanMonths\">Recovered over (months)<\/label><input type=\"number\" id=\"psLoanMonths\" value=\"0\" min=\"0\" max=\"24\" step=\"1\"><\/div>\n\t\t<div class=\"eh-ps-full\"><div class=\"hint\">Only if the amount, duration and method are written in her employment contract. MOM allows no other deductions: not for medical costs, flights, damage or performance.<\/div><div class=\"warn\" id=\"psFeeWarn\"><\/div><\/div>\n\t<\/div>\n\n\t<div class=\"eh-ps-prev\"><table id=\"psTable\"><\/table><\/div>\n\n\t\t\t<a class=\"eh-ps-btn login\" href=\"https:\/\/employhelpers.com\/my\/auth\/?redirect_to=https%3A%2F%2Femployhelpers.com%2Fmy%2Fsingapore-maid-fdw-payslip-generator%2F\">\ud83d\udd12 Log in to Generate Your Salary Schedule<\/a>\n\t\t<p style=\"text-align:center;font-size:13px;color:#999;margin-top:10px\">Don't have an account? <a href=\"https:\/\/employhelpers.com\/my\/sign-up-employer\/?register&#038;redirect_to=https%3A%2F%2Femployhelpers.com%2Fmy%2Fsingapore-maid-fdw-payslip-generator%2F\" style=\"color:#FF7AAC;font-weight:700\">Register free<\/a><\/p>\n\t\t<p id=\"ehPsMsg\"><\/p>\n<\/div>\n\n<script>\n(function () {\n\t\/\/ Run once per page: an admin draft preview prints the page twice, which made one click generate two PDFs.\n\tif (window.__ehSalarySchedule) return; window.__ehSalarySchedule = true;\n\tvar $ = function (id) { return document.getElementById(id); };\n\tvar lang = 'en';\n\tvar T = {\n\t\ten: {\n\t\t\ttitle: 'Schedule of Salary Payment', by: 'by employhelpers.com', emp: 'Name of Employer', basic: 'Basic Salary', fee: 'Total Placement fees', start: 'Date of commencement',\n\t\t\thelper: 'Name of FDW', perDay: 'Salary Per Day', off: 'Number of day off per month', loan: 'Loan Months',\n\t\t\tcols: ['#', 'Date', 'Basic Salary', 'Off Day Comp.', 'Placement Fee', 'Amount by FDW', 'FDW Signature', 'Remarks'], total: 'Total',\n\t\t\tdeclare: 'I HEREBY DECLARE THAT I UNDERSTAND AND AGREE WITH THE MONTHLY SALARY AND TOTAL AMOUNT OF LOAN INDICATED ABOVE.',\n\t\t\tsigEmp: 'SIGNATURE OF EMPLOYER', sigHelper: 'SIGNATURE OF FDW',\n\t\t\tnote: 'Off Day Comp. = rest days in the salary month that she works instead of taking them off, at the salary per day (basic salary \/ 26). Amount by FDW = Basic Salary + Off Day Comp. - Placement Fee.',\n\t\t\tfooter: 'Generated by EmployHelpers.com. A convenience template, not legal advice.'\n\t\t},\n\t\tid: {\n\t\t\ttitle: 'Jadwal Pembayaran Gaji', by: 'oleh employhelpers.com', emp: 'Nama Majikan', basic: 'Gaji Pokok', fee: 'Total Biaya Penempatan', start: 'Tanggal mulai kerja',\n\t\t\thelper: 'Nama Pekerja', perDay: 'Gaji Per Hari', off: 'Jumlah hari libur per bulan', loan: 'Bulan Cicilan',\n\t\t\tcols: ['#', 'Tanggal', 'Gaji Pokok', 'Kompensasi Libur', 'Biaya Penempatan', 'Diterima Pekerja', 'Tanda Tangan', 'Catatan'], total: 'Total',\n\t\t\tdeclare: 'SAYA MENYATAKAN BAHWA SAYA MENGERTI DAN MENYETUJUI GAJI BULANAN DAN TOTAL PINJAMAN YANG TERCANTUM DI ATAS.',\n\t\t\tsigEmp: 'TANDA TANGAN MAJIKAN', sigHelper: 'TANDA TANGAN PEKERJA',\n\t\t\tnote: 'Kompensasi Libur = hari libur dalam bulan gaji yang dipakai bekerja, dibayar sebesar gaji per hari (gaji pokok \/ 26). Diterima Pekerja = Gaji Pokok + Kompensasi Libur - Biaya Penempatan.',\n\t\t\tfooter: 'Dibuat dengan EmployHelpers.com. Hanya templat, bukan nasihat hukum.'\n\t\t}\n\t};\n\tvar r2 = function (v) { return Math.round((v + 1e-9) * 100) \/ 100; };\n\tvar f2 = function (v) { return v.toFixed(2); };\n\tvar num = function (id) { var v = parseFloat($(id).value); return isFinite(v) && v > 0 ? v : 0; };\n\tvar ymd = function (d) { return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0'); };\n\t\/\/ Same day n months later; if that month is shorter, its last day.\n\tvar addMonths = function (d, n) {\n\t\tvar t = new Date(d.getFullYear(), d.getMonth() + n, 1), last = new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate();\n\t\tt.setDate(Math.min(d.getDate(), last)); return t;\n\t};\n\n\tvar now = new Date();\n\t$('psStart').value = ymd(new Date(now.getFullYear(), now.getMonth(), now.getDate()));\n\tvar KEEP = ['psEmp', 'psHelper', 'psStart', 'psMonths', 'psBasic', 'psRestDay', 'psOff', 'psFee', 'psLoanMonths'];\n\ttry { var saved = JSON.parse(localStorage.getItem('eh_salary_schedule') || '{}'); KEEP.forEach(function (k) { if (saved[k] !== undefined && saved[k] !== '') $(k).value = saved[k]; }); } catch (e) {}\n\n\tfunction build() {\n\t\tvar basic = num('psBasic'), rate = r2(basic \/ 26), months = parseInt($('psMonths').value, 10) || 24;\n\t\tvar restDay = parseInt($('psRestDay').value, 10), off = parseInt($('psOff').value, 10) || 1;\n\t\tvar fee = num('psFee'), loanMonths = Math.min(months, Math.floor(num('psLoanMonths')));\n\t\tvar per = loanMonths ? r2(fee \/ loanMonths) : 0;\n\t\tvar start = $('psStart').value ? new Date($('psStart').value + 'T00:00:00') : null;\n\t\t$('psDayRate').textContent = 'Salary per day: S$' + f2(rate) + ' (basic salary \u00f7 26).';\n\t\tvar rows = [], tot = { basic: 0, comp: 0, fee: 0, net: 0 }, negative = false;\n\t\tif (start && !isNaN(start)) {\n\t\t\tfor (var i = 0; i < months; i++) {\n\t\t\t\tvar pStart = addMonths(start, i), pEnd = new Date(addMonths(start, i + 1).getTime() - 864e5);\n\t\t\t\tvar restDays = 0;\n\t\t\t\tfor (var d = new Date(pStart); d <= pEnd; d.setDate(d.getDate() + 1)) { if (d.getDay() === restDay) restDays++; }\n\t\t\t\tvar comp = r2(Math.max(0, restDays - off) * rate);\n\t\t\t\tvar f = 0;\n\t\t\t\tif (i < loanMonths) { f = i === loanMonths - 1 ? r2(fee - per * (loanMonths - 1)) : per; }\n\t\t\t\tvar net = r2(basic + comp - f);\n\t\t\t\tif (net < 0) negative = true;\n\t\t\t\trows.push({ n: i + 1, date: ymd(pEnd), basic: basic, comp: comp, fee: f, net: net });\n\t\t\t\ttot.basic += basic; tot.comp += comp; tot.fee += f; tot.net += net;\n\t\t\t}\n\t\t}\n\t\t$('psFeeWarn').textContent = (fee && !loanMonths) ? 'Enter how many months the placement fee is recovered over.' : (negative ? 'The placement fee per month is more than her pay in some months. Spread it over more months.' : '');\n\t\tvar t = T.en, h = '<tr>' + t.cols.slice(0, 6).map(function (c) { return '<th>' + c + '<\/th>'; }).join('') + '<\/tr>';\n\t\th += rows.map(function (r) { return '<tr><td>' + r.n + '<\/td><td>' + r.date + '<\/td><td>' + f2(r.basic) + '<\/td><td>' + f2(r.comp) + '<\/td><td>' + f2(r.fee) + '<\/td><td>' + f2(r.net) + '<\/td><\/tr>'; }).join('');\n\t\tif (rows.length) h += '<tr class=\"tot\"><td>' + t.total + '<\/td><td><\/td><td>' + f2(r2(tot.basic)) + '<\/td><td>' + f2(r2(tot.comp)) + '<\/td><td>' + f2(r2(tot.fee)) + '<\/td><td>' + f2(r2(tot.net)) + '<\/td><\/tr>';\n\t\t$('psTable').innerHTML = h;\n\t\treturn { basic: basic, rate: rate, off: off, fee: fee, loanMonths: loanMonths, start: $('psStart').value, rows: rows, tot: tot, negative: negative };\n\t}\n\tdocument.querySelectorAll('#ehPs input, #ehPs select').forEach(function (el) { el.addEventListener('input', build); el.addEventListener('change', build); });\n\tdocument.querySelectorAll('#ehPsLang button').forEach(function (b) {\n\t\tb.addEventListener('click', function () { lang = b.dataset.lang; document.querySelectorAll('#ehPsLang button').forEach(function (x) { x.classList.toggle('on', x === b); }); });\n\t});\n\tbuild();\n\n\tvar gen = $('psGen');\n\tif (!gen) return;\n\tgen.addEventListener('click', function () {\n\t\tvar s = build(), t = T[lang], msg = $('ehPsMsg');\n\t\tvar emp = $('psEmp').value.trim(), helper = $('psHelper').value.trim();\n\t\tvar err = !s.basic ? 'Enter her basic salary.' : !helper ? 'Enter the helper\\'s name.' : !emp ? 'Enter the employer\\'s name.' : !s.rows.length ? 'Enter the date of commencement.' : (s.fee && !s.loanMonths) ? 'Enter how many months the placement fee is recovered over.' : s.negative ? 'The placement fee per month is more than her pay in some months.' : '';\n\t\tif (err) { msg.textContent = err; msg.style.color = '#e74c3c'; return; }\n\t\ttry { var keep = {}; KEEP.forEach(function (k) { keep[k] = $(k).value; }); localStorage.setItem('eh_salary_schedule', JSON.stringify(keep)); } catch (e) {}\n\t\tgen.disabled = true; gen.textContent = 'Generating PDF\u2026'; msg.textContent = '';\n\n\t\tvar doc = new window.jspdf.jsPDF({ unit: 'mm', format: 'a4' }), L = 14, R = 196, y = 20;\n\t\tdoc.setTextColor(30, 30, 30);\n\t\tdoc.setFont('helvetica', 'bold'); doc.setFontSize(16); doc.text(t.title, L, y);\n\t\tvar tw = doc.getTextWidth(t.title);\n\t\tdoc.setFont('helvetica', 'normal'); doc.setFontSize(9); doc.setTextColor(130, 130, 130); doc.text(t.by, L + tw + 3, y);\n\t\tdoc.setTextColor(30, 30, 30); y += 12;\n\t\tdoc.setFont('helvetica', 'normal'); doc.setFontSize(10.5);\n\t\tvar leftCol = [[t.emp, emp], [t.basic, f2(s.basic)], [t.fee, f2(s.fee)], [t.start, s.start]];\n\t\tvar rightCol = [[t.helper, helper], [t.perDay, f2(s.rate)], [t.off, String(s.off)], [t.loan, f2(s.loanMonths)]];\n\t\tfor (var i = 0; i < 4; i++) { doc.text(leftCol[i][0] + ': ' + leftCol[i][1], L, y + i * 5.5); doc.text(rightCol[i][0] + ': ' + rightCol[i][1], 112, y + i * 5.5); }\n\t\ty += 26;\n\n\t\t\/\/ Table: # | Date | Basic | Off Day Comp. | Placement Fee | Amount by FDW | Signature | Remarks\n\t\tvar W = [9, 24, 22, 22, 23, 24, 30, 28], X = [L], rowH = s.rows.length > 12 ? 6.2 : 8.5;\n\t\tfor (var w = 0; w < W.length; w++) X.push(X[w] + W[w]);\n\t\tvar cell = function (row, text, col, bold, align) {\n\t\t\tdoc.setFont('helvetica', bold ? 'bold' : 'normal');\n\t\t\tvar xx = align === 'right' ? X[col + 1] - 1.8 : (align === 'center' ? (X[col] + X[col + 1]) \/ 2 : X[col] + 1.8);\n\t\t\tdoc.text(text, xx, row, { align: align || 'left' });\n\t\t};\n\t\tdoc.setDrawColor(60, 60, 60); doc.setLineWidth(0.25);\n\t\tvar headH = 10;\n\t\tdoc.rect(L, y, X[8] - L, headH);\n\t\tfor (var c = 1; c < 8; c++) doc.line(X[c], y, X[c], y + headH);\n\t\tdoc.setFontSize(8.5);\n\t\tt.cols.forEach(function (label, c) {\n\t\t\tvar lines = doc.splitTextToSize(label, W[c] - 2);\n\t\t\tdoc.setFont('helvetica', 'bold'); doc.text(lines, (X[c] + X[c + 1]) \/ 2, y + (lines.length > 1 ? 4 : 6.2), { align: 'center' });\n\t\t});\n\t\ty += headH; doc.setFontSize(9);\n\t\ts.rows.concat([{ total: true }]).forEach(function (r) {\n\t\t\tdoc.rect(L, y, X[8] - L, rowH);\n\t\t\tfor (var c = 1; c < 8; c++) doc.line(X[c], y, X[c], y + rowH);\n\t\t\tvar ty = y + rowH \/ 2 + 1.3;\n\t\t\tif (r.total) {\n\t\t\t\tcell(ty, t.total, 1, true); cell(ty, f2(r2(s.tot.basic)), 2, true, 'right'); cell(ty, f2(r2(s.tot.comp)), 3, true, 'right');\n\t\t\t\tcell(ty, f2(r2(s.tot.fee)), 4, true, 'right'); cell(ty, f2(r2(s.tot.net)), 5, true, 'right');\n\t\t\t} else {\n\t\t\t\tcell(ty, String(r.n), 0, false, 'center'); cell(ty, r.date, 1, false, 'right'); cell(ty, f2(r.basic), 2, false, 'right');\n\t\t\t\tcell(ty, f2(r.comp), 3, false, 'right'); cell(ty, f2(r.fee), 4, false, 'right'); cell(ty, f2(r.net), 5, false, 'right');\n\t\t\t}\n\t\t\ty += rowH;\n\t\t});\n\t\ty += 6; doc.setFontSize(8); doc.setTextColor(100, 100, 100);\n\t\tvar nl = doc.splitTextToSize(t.note, R - L); doc.text(nl, L, y); y += nl.length * 3.8 + 5;\n\t\tdoc.setTextColor(30, 30, 30); doc.setFontSize(9);\n\t\tvar dl = doc.splitTextToSize(t.declare, R - L); doc.text(dl, L, y); y += dl.length * 4.5 + 16;\n\t\tif (y + 14 > 284) { doc.addPage(); y = 40; } \/\/ keep the signature block on one page\n\t\tdoc.line(L + 4, y, L + 78, y); doc.line(112, y, R - 4, y);\n\t\tdoc.setFontSize(10); doc.text(t.sigEmp, L + 4, y + 6); doc.text(emp, L + 4, y + 11.5); doc.text(t.sigHelper, 112, y + 6); doc.text(helper, 112, y + 11.5);\n\t\tdoc.setFontSize(7.5); doc.setTextColor(130, 130, 130); doc.text(t.footer, 105, 290, { align: 'center' });\n\n\t\tvar file = 'Salary_Schedule_' + helper.replace(\/[^A-Za-z0-9]+\/g, '_') + '.pdf';\n\t\tdoc.save(file);\n\t\ttry { if (window.gtag) window.gtag('event', 'salary_schedule_generated', { lang: lang, months: s.rows.length }); } catch (e) {}\n\n\t\tgen.textContent = 'Emailing a copy to you\u2026';\n\t\tvar fd = new FormData();\n\t\tfd.append('action', 'eh_payslip_email'); fd.append('security', \"\");\n\t\tfd.append('pdf_data', doc.output('datauristring').split(',')[1]); fd.append('file', file); fd.append('helper', helper);\n\t\tfetch(\"https:\\\/\\\/employhelpers.com\\\/wp-admin\\\/admin-ajax.php\", { method: 'POST', body: fd, credentials: 'same-origin' })\n\t\t\t.then(function (r) { return r.text(); })\n\t\t\t.then(function (r) {\n\t\t\t\tr = r.trim();\n\t\t\t\tmsg.textContent = r === 'Sent' ? '\u2705 Salary schedule downloaded and emailed to you.' : r === 'Daily limit reached' ? 'Downloaded. You\\'ve reached today\\'s limit of 10 emails.' : r === 'Throttled' ? 'Downloaded. Please wait 15 seconds before emailing another one.' : 'Downloaded, but the email could not be sent.';\n\t\t\t\tmsg.style.color = r === 'Sent' ? '#27ae60' : '#e67e22';\n\t\t\t})\n\t\t\t.catch(function () { msg.textContent = 'Downloaded, but the email could not be sent.'; msg.style.color = '#e67e22'; })\n\t\t\t.finally(function () { gen.disabled = false; gen.textContent = 'Generate & Email Salary Schedule'; });\n\t});\n})();\n<\/script>\n\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cde0d8 elementor-widget elementor-widget-heading\" data-id=\"1cde0d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How to Use This Salary Schedule Generator<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aad87ba elementor-widget elementor-widget-text-editor\" data-id=\"aad87ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol><li><b>Fill in the details:<\/b> your name, your helper\u2019s name, the date she starts work and the contract length.<\/li><li><b>Set her salary and rest days:<\/b> her basic monthly salary, her weekly rest day and how many days off she takes each month. Rest days she works instead are paid at one day\u2019s salary each, worked out for you.<\/li><li><b>Add the placement fee (if any):<\/b> the total and the number of months it is recovered over, only if it is written in her contract.<\/li><li><b>Generate, print and sign:<\/b> you both sign the schedule, then she signs her row each month when she receives her salary.<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2a2c0d6 elementor-widget elementor-widget-heading\" data-id=\"2a2c0d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Why Keep a Salary Schedule for Your Helper?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b063d3a elementor-widget elementor-widget-text-editor\" data-id=\"b063d3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>As her employer you are responsible for paying her correctly and on time. A salary schedule that she signs every month protects both of you if there is ever a question about her pay:<\/p><ol><li><p><b>Proof of payment:<\/b> MOM asks employers to keep a record of every monthly salary payment, and to consider having the helper acknowledge each one. Her signature on each row does both, which matters most if you pay in cash.<\/p><\/li><li><p><b>Correct off-day pay:<\/b> if she works on a rest day instead of taking it off, she gets at least one day\u2019s salary on top of her basic pay. The generator counts her rest days in every salary month and works it out (basic salary \u00f7 26).<\/p><\/li><li><p><b>Clear placement fee recovery:<\/b> MOM allows no deductions from her salary except a placement loan written into her contract. The schedule shows exactly how much is recovered each month and when it ends.<\/p><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5d385d0 elementor-widget elementor-widget-heading\" data-id=\"5d385d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Frequently Asked Questions (FAQ)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0b099c4 elementor-widget elementor-widget-n-accordion\" data-id=\"0b099c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;expanded&quot;,&quot;max_items_expended&quot;:&quot;one&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1150\" class=\"e-n-accordion-item\" open>\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" role=\"button\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"e-n-accordion-item-1150\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Do I have to keep a salary record for my helper? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1150\" class=\"elementor-element elementor-element-5796c76 e-con-full e-flex e-con e-child\" data-id=\"5796c76\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-48f651f elementor-widget elementor-widget-text-editor\" data-id=\"48f651f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>MOM asks you to keep a written record of each monthly salary you pay her, and to consider having her acknowledge each payment to avoid disputes. If you pay by bank transfer, the transfer is also a record. A salary schedule she signs each month covers both, and is the simplest proof if you pay in cash.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1151\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" role=\"button\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1151\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> When must I pay my helper\u2019s salary? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1151\" class=\"elementor-element elementor-element-bb36332 e-con-full e-flex e-con e-child\" data-id=\"bb36332\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ed77402 elementor-widget elementor-widget-text-editor\" data-id=\"ed77402\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Within 7 days after the end of her salary period. The schedule dates each salary month from her start date: if she starts on 22 July, each salary month ends on the 21st, and that is the date shown for each row.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1152\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" role=\"button\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1152\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How is the off-day compensation calculated? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1152\" class=\"elementor-element elementor-element-dbe36cf e-con-full e-flex e-con e-child\" data-id=\"dbe36cf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b36b2ec elementor-widget elementor-widget-text-editor\" data-id=\"b36b2ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>If she works on a rest day instead of taking it off, you must pay her at least one day\u2019s salary for it, on top of her basic salary. One day\u2019s salary is her monthly salary divided by 26 (S$550 \u00f7 26 = S$21.15). The generator counts how many of her weekly rest days fall in each salary month, takes away the days off she takes, and pays the rest. At least one rest day a month must be taken off, not paid out.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1153\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" role=\"button\" data-accordion-index=\"4\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1153\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Can I deduct anything from her salary? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1153\" class=\"elementor-element elementor-element-2f7540d e-con-full e-flex e-con e-child\" data-id=\"2f7540d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32800f2 elementor-widget elementor-widget-text-editor\" data-id=\"32800f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>No, except the recovery of a placement loan, and only if the amount, duration and method of repayment are written in her employment contract. You cannot deduct medical costs, flight tickets, damage to household items or penalties for her work.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1154\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" role=\"button\" data-accordion-index=\"5\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1154\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Is my information stored? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><i aria-hidden=\"true\" class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t<span class='e-closed'><i aria-hidden=\"true\" class=\"fas fa-plus\"><\/i><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1154\" class=\"elementor-element elementor-element-15c3ed5 e-con-full e-flex e-con e-child\" data-id=\"15c3ed5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-20ea6bc elementor-widget elementor-widget-text-editor\" data-id=\"20ea6bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The salary schedule is created on your own device. We email one copy to your account address, and your entries are remembered only in your browser.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Do I have to keep a salary record for my helper?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"MOM asks you to keep a written record of each monthly salary you pay her, and to consider having her acknowledge each payment to avoid disputes. If you pay by bank transfer, the transfer is also a record. A salary schedule she signs each month covers both, and is the simplest proof if you pay in cash.\"}},{\"@type\":\"Question\",\"name\":\"When must I pay my helper\\u2019s salary?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Within 7 days after the end of her salary period. The schedule dates each salary month from her start date: if she starts on 22 July, each salary month ends on the 21st, and that is the date shown for each row.\"}},{\"@type\":\"Question\",\"name\":\"How is the off-day compensation calculated?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"If she works on a rest day instead of taking it off, you must pay her at least one day\\u2019s salary for it, on top of her basic salary. One day\\u2019s salary is her monthly salary divided by 26 (S$550 \\u00f7 26 = S$21.15). The generator counts how many of her weekly rest days fall in each salary month, takes away the days off she takes, and pays the rest. At least one rest day a month must be taken off, not paid out.\"}},{\"@type\":\"Question\",\"name\":\"Can I deduct anything from her salary?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No, except the recovery of a placement loan, and only if the amount, duration and method of repayment are written in her employment contract. You cannot deduct medical costs, flight tickets, damage to household items or penalties for her work.\"}},{\"@type\":\"Question\",\"name\":\"Is my information stored?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The salary schedule is created on your own device. We email one copy to your account address, and your entries are remembered only in your browser.\"}}]}<\/script>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":220,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-35478","page","type-page","status-publish","hentry"],"permalink_manager":null,"_links":{"self":[{"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/pages\/35478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/users\/220"}],"replies":[{"embeddable":true,"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/comments?post=35478"}],"version-history":[{"count":1,"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/pages\/35478\/revisions"}],"predecessor-version":[{"id":35544,"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/pages\/35478\/revisions\/35544"}],"wp:attachment":[{"href":"https:\/\/employhelpers.com\/my\/wp-json\/wp\/v2\/media?parent=35478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}