Screen 03

Why a top up happens

The agent types the rent into the form from memory. Staff then open the actual signed agreement and find a different number. The duty was calculated on the wrong figure, so the wrong amount was charged. Somebody has to cover the difference.

You are here Submission Intake Processing Filing Release Step P3 · correct the duty

The short version. Danial typed RM2,200 a month over one year. The signed agreement says RM2,500 a month over two years. He paid RM131. The correct total was RM385. The client is RM254 short on a job whose entire profit was RM15.

ops.tenancy.example.my/application/TS-2609-0141/duty

TS-2609-0141 · duty check

Danial Rahim, Metro Property · The Veo, Melawati

What the agent typed1

Monthly rent
RM2,200
Tenure
1 year or less
Copies
1 duplicate
Agreement date
18 Aug 2026
versus

What the agreement says2

Monthly rent
RM2,500
Tenure
2 years
Copies
1 duplicate
Agreement date
18 Aug 2026

Charged at submission based on RM2,200, 1 year

Stamp dutyRM106
ceil(26,400 / 250) = 106 blocks × RM1
Duplicate copyRM10
Late penaltyRM0
Service feeRM15
Paid by agentRM131

Correct duty based on RM2,500, 2 years

Stamp duty3RM360
ceil(30,000 / 250) = 120 blocks × RM3
Duplicate copyRM10
Late penaltyRM0
Service feeRM15
Should have beenRM385
Shortfall4RM254
Someone has to pay this
RM254
The client's profit on this job was the RM15 service fee. Absorbing the shortfall wipes out the margin on this job and the next seventeen.

How staff resolve it5

Request top up Sends the agent a payment link for the difference. Job stays on hold until it clears. Client recovers RM254
Absorb the difference File anyway and eat it. Only sane for a shortfall of a few ringgit. Client loses RM254
Reject and refund Return the RM131 and close the job. Note the reference site's policy says discrepancy is explicitly non-refundable. Client loses the job
SLA clock pauses while awaiting the agent7

Audit trail8

  • Duty recalculated from agreement, RM106 to RM360 Faridah (staff) · today 10:41am
  • Agreement opened and verified against declared data Faridah (staff) · today 10:38am
  • Payment confirmed, RM131 via FPX System · 30 Aug 2026, 4:02pm
  • Application submitted Danial Rahim · 30 Aug 2026, 3:58pm

What each function does

  1. 1Declared values, kept immutable Exactly what the agent typed, stored and never overwritten. Why: when the agent disputes the top up, this is the evidence. If staff edit the original submission in place, that argument becomes unwinnable.
  2. 2Verified values, entered by staff What the signed agreement actually says, typed in while reading the PDF. Differences are highlighted automatically. Why: this is the only moment a human compares the claim against the document, and it is where every top up originates.
  3. 3Recalculated duty, with the working shown Re-runs the sum on the verified figures and prints the blocks and the rate underneath. Why: staff have to explain the number to an unhappy agent. A total with no working is an argument. A total with 120 blocks × RM3 under it is a fact.
  4. 4Shortfall The gap between what was charged and what is owed. Why it is the whole reason this screen exists: at RM15 profit per job, one unnoticed RM254 shortfall erases the margin on seventeen jobs. Without this screen, the business leaks money quietly and never finds out why.
  5. 5Three named resolutions Top up, absorb, or reject, each showing its cash consequence. Why: forces the client to decide the policy once, at spec time, instead of every staff member improvising differently. This is a question for the middleman, not a decision for you.
  6. 6Send top up request Generates a second payment for the difference only, linked to the same reference, and emails the agent a link. Why a second payment and not a new application: the job keeps one reference number end to end, so the tracking page, the audit trail and the LHDN filing all still line up.
  7. 7SLA clock pauses While waiting on the agent, the turnaround clock stops. Why: otherwise the client breaches its own 5 day promise, and owes a refund, because the agent took a week to pay a top up caused by the agent's own mistake.
  8. 8Audit trail Every status change, duty override and document access, with who and when. Why: money is being changed after the fact on records containing MyKad scans. Under self assessment, being able to show who altered a duty figure and when is not a nice to have.

Why it happens at all. The agent fills the form in thirty seconds, often before the agreement is in front of them, sometimes guessing the rent from the booking form. Nobody compares the claim to the document until staff open it. You can reduce it (make the agent tick a confirmation, or read the rent off the uploaded PDF automatically) but you cannot design it away, because the form is completed by a human in a hurry.

Ask the middleman: when the duty comes out higher than what the agent paid, do you chase the difference, absorb it, or reject the job? There is no safe default, and the answer changes what gets built.