# Verification record — ls/rsl/trusts-and-estates-income-tax-return@1.0.0

GOV-4776 ("GovSchema Standard Research"). Per the GOV-4769 cycle's own disclosed finding ([[gov4769-ls-rsl-fbt-return-full-form-no-deferral]]), RSL's own "Forms & Instructions" page still lists the Income Tax Return for Trusts and Estates as the last open Taxes backlog item from that same forms library, with "two editions found, current edition not yet resolved." This cycle re-scanned the live page fresh and resolved that ambiguity before authoring.

## Reaching the live source and resolving the edition ambiguity

`https://www.rsl.org.ls/forms-and-instructions` (HTTP 200, re-fetched fresh) lists three PDFs under this form's row: `Income Tax Return for Trusts and Estates .pdf` (no date suffix), `Income Tax Return for Trusts and Estates - 17022020.pdf`, and `Income Tax Return for Trusts and Estates 2018 - Instructions.pdf`. All three carry the same `2024-07` upload-batch path and an identical `Last-Modified: Mon, 22 Jul 2024` (within minutes of each other) as every other RSL form migrated onto this CMS — upload date is not a signal of which return-year edition is current. Downloaded and text-extracted both return PDFs (`pdfjs-dist`, legacy CJS build) and diffed them with the years normalized out: they are structurally identical page-for-page (7 pages each), differing only in (a) the "Year Ended 31 March" year printed throughout (2019 vs. 2020) and (b) the personal tax credit base amount on Part I, item 5a (M7,260.00 for the 2019 edition vs. M8,430.00 for the 2020 edition). The `-17022020` file is therefore the **Year Ended 31 March 2020** edition — one year newer than the undated file's **Year Ended 31 March 2019** — and is the current edition modeled by this schema. The "2018 - Instructions" PDF is a separate, older instructions-only document (not a return form) and is out of scope.

Fetched live and unauthenticated: `https://www.rsl.org.ls/sites/default/files/2024-07/Income%20Tax%20Return%20for%20Trusts%20and%20Estates%20-%2017022020.pdf`, HTTP 200, `Content-Type: application/pdf`, `Content-Length: 781711` (byte-identical to the downloaded file), `Last-Modified: Mon, 22 Jul 2024 10:41:45 GMT`, sha256 `f4eecda355142b10e9a38691a622f6d9adcfffb260d2f2255a1f536247171c23`, no login/CAPTCHA/WAF gate.

## Extraction method

`pdfjs-dist` (`/tmp/node_modules/pdfjs-dist/legacy/build/pdf.js`). `getDocument().promise` reports 7 pages. This cycle's raw text-layer extraction was internally consistent page-to-page (no duplicated/ghost lines of the kind found in the Individual and FBT returns from the same library), but the dense multi-part tables in Parts A, B, and especially the conditional branching in Part I (rows 3a-3d, row 5a) were still cross-checked by rendering every page used in this schema (`node-canvas` at 2.5x scale) to confirm row ordering, which columns are pre-printed rates vs. fillable amounts, and the exact conditional-branch prose.

## Scoping decision

The source form parallels the already-published Individual Income Tax Return (Form S128-I) closely — same Part A (Employment) and Part B (Pension) structure, and the same six-income-category shape (employment, pension, business, commercial farming, property, other) plus two separate foreign-tax-credit schedules (one for tax paid on income taxed to the trust/estate itself, one for tax paid on income taxed to beneficiaries) and an allocation-to-beneficiaries schedule that the individual return has no equivalent of. Following this registry's established main-form-now/companion-schedules-later precedent, this v1.0.0 schema is scoped to the **core declaration**:

- **Details of Trust or Estate** (identification, final-return flag, deceased's details if an estate, nominated officer).
- **Part A — Employment Income & Expenses** (up to 3 employers, up to 3 unemployment periods, the 7-item unreimbursed-expense schedule, chargeable employment income) — structurally identical to the Individual return's own Part A.
- **Part B — Pension Income** (up to 2 pension payers, up to 3 periods not earning pension income, chargeable pension income). Unlike the Individual return's own Part B, this form's Part B does print a "Period during the Tax Year when the Taxpayer was not earning pension income" block (3 slots) — modeled here since it is genuinely present on this form's own rendered page, independent of whether a sibling schema modeled an equivalent field.
- **Part I — Tax Computation** (the chargeable-income summary grid, the farming-income flat-10%-rate row plus the death-year-dependent 20%/30% vs. flat-40% rows, credits, payments, and the resulting tax due/overpaid).
- **Part J — Information on Beneficiaries** (up to 5 beneficiary identification rows: name, TIN, postal address, resident Yes/No).
- **Declaration of Paid Preparer** and **Declaration of Nominated Officer** (including the change-of-nominated-officer-during-the-year fields).

**Parts C (Business Income & Expenses), D (Commercial Farming Income & Expenses), E (Property Income & Expenses), F (Other Income & Expenses), G (Credit for Foreign Tax Paid on Income Taxed to the Trust or Estate), the unlabeled-but-cross-referenced "Part H" (Foreign Tax Paid on Income Taxed to Beneficiaries), and Part K (Allocation to Beneficiaries of Shares of Income and Foreign Tax Paid)** are out of scope for this version. Each of Parts C-F is a structurally self-contained parallel schedule mirroring the Individual return's own deferred Parts C-F; Part I's own summary lines referencing them (1c-1f, 5b) are still modeled as pass-through optional numeric fields per this registry's established convention, each field's description disclosing which deferred part it corresponds to. Part K and the unlabeled foreign-tax-paid-to-beneficiaries table are entirely derived from Parts C-H's own detailed figures (every one of Part K's 12 rows cross-references a specific line in a deferred part) and so cannot be meaningfully modeled independent of them; deferring the whole allocation schedule alongside its source parts avoids fields with no computable inputs in this version.

## Disclosed findings and interpretation choices

1. **This form's Part I bracket structure differs materially from the Individual return's own Part H**: chargeable commercial farming income (line 1d) is always taxed at a flat 10% (row 3a) ahead of the rest of chargeable income, which is then taxed either progressively (20% then 30%, rows 3b/3c) if the return is for an estate in the year of a resident deceased's death or the following year, or at a flat 40% (row 3d) for any other estate or trust return. This is a genuine Lesotho tax-policy fact reconstructed from the rendered page images (the raw text layer's own linear item order does not reproduce the visual branching reliably), not an extraction ambiguity.
2. **`isEstateInYearOfDeathOrFollowingYear` is a synthetic discriminator, not a printed checkbox** — the source form repeats its own "If this return is for: ► An estate for the year of a resident deceased's death or the following year / ► Any other estate or a trust" branching prose at rows 3b, 3c, 3d, and 5a with no single dedicated tick-box tying all four together. Modeled following this registry's isLegalEntity/isBodyCorporate discriminator precedent (e.g. `tn/dgi/declaration-of-existence`, `zm/pacra/company-incorporation`) so that `requiredWhen` can correctly gate rows 3b/3c against row 3d.
3. **The current (2020) edition's personal tax credit base amount is M8,430.00**, one year newer than the 2019 edition's M7,260.00 — transcribed from the rendered image, not assumed to match the Individual return's own (different) personal-tax-credit amount for its own tax year.
4. **Part B's "not earning pension income" period block (3 slots) is modeled**, even though the sibling Individual return's own Part B schema has no equivalent field — confirmed present on this form's own rendered page 2, and modeled per this registry's source-fidelity principle of matching each schema to its own live document rather than a sibling form's prior scoping.
5. **Beneficiary rows (Part J) model identification only** (name, TIN, postal address, resident Yes/No); the "For company beneficiaries, the amount of business income must be stated separately on an attached schedule for manufacturing" footnote applies to deferred Part K and is disclosed here rather than modeled as a field, since Part K itself is out of scope.
6. **Signature fields are not modeled** (only the accompanying dates), consistent with this registry's standing convention that a physical/wet signature is not a machine-fillable data field.
7. **`previousNominatedOfficerName` is left unconditionally optional, not `requiredWhen`-gated on `changeOfOfficerDate`** — the source has no separate yes/no checkbox for "there has been a change of nominated officer," so gating one optional field's requiredness on another optional field being non-empty would reproduce this registry's own documented `notEquals`-empty-string-against-an-absent-field anti-pattern (`notequals-empty-string-absent-field-bug`); disclosed in the field's own description instead.
8. **Two `crossFieldValidation` rules assert Part I's own copied-forward totals equal their Part A/Part B source values** (`taxComputationChargeableEmploymentIncome` = `chargeableEmploymentIncome`; `taxComputationChargeablePensionIncome` = `chargeablePensionIncome`), reflecting the form's own internal consistency requirement — Part I's remaining summary lines referencing deferred Parts C/D/E/F/G (1c/1d/1e/1f/5b) have no such cross-check since this schema does not model those parts' own totals.

## Conformance

6 mock scenarios exercised against an ephemeral, from-scratch conformance checker (deriving required/`requiredWhen`/`crossFieldValidation` rules directly from this schema's own `fields[]` and `crossFieldValidation[]`, discarded after use, not committed): (1) an ongoing trust with a single employer and one pension payer, `isEstateInYearOfDeathOrFollowingYear` false and `tax40PercentChargeableIncome` supplied, 0 errors; (2) an estate in the year of the deceased's death with `isEstateInYearOfDeathOrFollowingYear` true and both `tax20PercentChargeableIncome`/`tax30PercentChargeableIncome` supplied, 0 errors; (3) the same estate scenario with `tax20PercentChargeableIncome` omitted, correctly raising exactly 1 `requiredWhen` error; (4) the ongoing-trust scenario with `tax40PercentChargeableIncome` omitted, correctly raising exactly 1 `requiredWhen` error; (5) an employer record with `employer1EmployedUntil` before `employer1EmployedFrom`, correctly raising exactly 1 `crossFieldValidation` error; (6) a Part I `taxComputationChargeablePensionIncome` value deliberately mismatched against Part B's own `chargeablePensionIncome`, correctly raising exactly 1 `crossFieldValidation` error.

Validated clean with `node tools/validate.mjs` and `node tools/validate-ajv.mjs` (ajv 2020-12, v0.3 meta-schema), individually and as part of the full registry run. `registry-index.json` regenerated via `npm run build-index` in `tools/govschema-client/`.
