# PropertyLab Academy: deep content and learning-experience review

Date: 25 September 2026. Audience: beginner property investors. Scope: **How to Use PropertyLab**, **DMAIC 之路**, and **案例复盘**. Review and first corrections belong to draft PR #187; production has not been changed.

## Implementation follow-up

The follow-up implementation now adds **36 interactive learning labs**: all 20 ready tool tutorials, the seven main road stages plus Next Round, and all eight case screens. Each includes a branded architectural illustration, layered SVG explanation, an experiment matched to the lesson, an understanding check with feedback, and an action to take. Cash, entry budget, equity, supply timing, evidence and total holding period are distinct exercises. Illustrations are labeled as illustrations.

The available lesson copy, recaps, relevant diagrams and quizzes were revised together. The corrected entry example is RM49,985 down payment + RM10,000 fee allowance + RM15,000 setup allowance + RM17,400 household reserve = **RM92,385**. Against RM40,000 savings, the gap is RM52,385. These are explicit teaching allowances, not quotations. The Takeoff model now reaches the purchase in month 25, first rent in month 67 and its conditional observation badge in month 79; its horizon is 96 months. Construction interest and handover cash remain separately modeled. The rental experiment reserves vacancy, repairs and tax/insurance, and cannot spend money already allocated to additional principal.

Financing evidence is separated from employment status; changing jobs no longer automatically revokes the simulated grant or an already initiated property purchase. Monash's planned operational start and later capacity are distinguished, NAPIC's overhang definition is corrected, and case observations are attributed rather than presented as universal causal rules. Primary-source links appear in the relevant labs. The Next Round metric now subtracts management fees and names the further excluded costs.

Reader improvements include 16px text, sentence-based paragraphs, 44px point targets, preserved keyboard ownership inside controls, and vertical-scroll protection for swipe navigation. All new transitions respect reduced motion. Existing progress keys, deep links, preview anchors, application forms and server permissions remain intact.

The old file-mtime freshness check treated a fresh checkout as a content edit. It is replaced by recorded SHA-256 fingerprints of each reviewed component's local rendering dependencies; actual dependency edits still fail the guard. Review dates reflect this source-and-browser pass.

**Scope boundaries:** the seven existing Soon entries describe tools/guides not yet published, and stay honestly labeled. This change does not manufacture product capabilities (the landlord page itself still marks four areas as in development). The personal case's original records are still not independently available, and no moderated novice study or production deployment has occurred. The historical findings below record the initial audit; this follow-up supersedes their implementation status for the items described here.

Additional primary references checked for this pass: [Monash dated announcement](https://www.monash.edu/news/articles/monash-universitys-future-campus-in-malaysia4), [Cradle CIP SPARK](https://www.cradle.com.my/cip-spark/), [HASiL RPGT rates](https://www.hasil.gov.my/ckht/kadar-cukai-keuntungan-harta-tanah/), and NAPIC's published technical definition of overhang (completed/certified and unsold more than nine months from launch).

### Final validation

- **702 tests passed across 39 files**, covering Academy labs, guides, cases, road content, calculations and visual components.
- Production client and SSR builds passed.
- **432 browser checks** covered all 36 labs, three modes and four viewport widths, including image loading, answer feedback and reduced motion.
- **169 reader checks** covered 121 tutorial points, 41 case points and seven main road entry pages, without JavaScript errors.
- All seven main road pages also passed width checks at 320, 390, 768 and 1280 pixels. A positioned screen-reader label in the road navigation was fixed to prevent document overflow.
- All four content export checks and all 34 case-diagram fingerprint checks passed. Six affected case frames were regenerated.
- Browser checks used actual Vue reader components in a local harness; authenticated backend workflows and production deployment were not exercised.

Previews: [desktop learning lab](academy-learning-desktop.png) and [phone experiment](academy-learning-mobile.png).

## Initial audit — historical assessment

The Academy has a strong foundation: a recurring learner (Ryan), real tool previews, calculations that often share data with diagrams, and a case told from the owner's experience. Its principal weakness is **confidence exceeding evidence**. Several lessons turn model assumptions, heuristics or anecdotes into bank rules, legal guarantees or investment conclusions. A more polished interface would make those claims more persuasive, so these are more important than decorative 3D effects.

At the initial audit, the content was not ready to be described as fully verified or fully rewritten. The tables below preserve that initial assessment and first correction batch. See the implementation follow-up above for subsequent repairs and the remaining evidence limits.

## Coverage and limits

- How To: all **20 ready lessons / 121 teaching points**, their ordering, preview captions and tool handoffs. Seven “Soon” entries have no complete lesson to assess.
- DMAIC: all **8 stages**, including Mindset, Define, Measure, Analyze, Improve, Control, Takeoff and Next Round; active teaching points, legacy explanations, examples, quizzes, glossary references and cross-stage assumptions.
- Case debrief: the one published case, **8 screens / 41 points**, checklist, calculations and relevant diagrams.
- Engineering: regression tests, shared math and preview behavior; comparison with implementation where the text makes a specific claim. No change to access control or learner progress keys.
- External verification: primary sources for selected legal, banking and development claims. The owner's original recording, bank offer letters, historical valuation report and complete property cash ledger were not available. Personal case details remain attributed reports, not independently established facts.
- This is a source-based content audit, not a completed novice usability study, a review of every backend lending rule, or a manual inspection of every rendered frame. Visual checks cover the changed case diagrams and existing Academy entrance work.

## Highest-priority findings

| Priority | Finding / concrete example | Why a beginner could be misled | Status |
|---|---|---|---|
| P1 | Case: RM50,000 price gain − RM86,400 top-ups = −RM36,400 called a cash result; RM666,400 described as break-even sale price | Top-ups include mortgage principal; true profit needs initial cash, closing loan balance and all other cash flows | Corrected narrative, calculation notes and scoreboard; original amounts preserved |
| P1 | Case: a 35-year projection calculated from purchase is narrated as 35 more years from year six | Mixes a 35-year total period with 41 years since purchase | Corrected to total holding period from purchase, including first six years |
| P1 | Gross rental yield below loan rate used to prove rent cannot pay interest | Different denominators: property price versus outstanding loan | Corrected case copy, glossary, diagram and checklist; compare actual monthly amounts |
| P1 | “Booking is normal; pay before SPA”, “cancellation costs at least 10%”, “approval removes the risk” | Transaction type and actual contract matter; regulated developer collections before SPA are restricted | Corrected Define and Control, shared purchase-step label, conditional cancellation example; added KPKT source |
| P1 | LAD described as accruing from booking date | Confuses the start of the delivery deadline with the period of compensable delay | Corrected the distinction in Measure, Control and shared term; broader case-law refresh remains |
| P1 | DSR 70%, first two loans 90%, age 70, rental recognition 80% after 12 months presented as universal rules | Model defaults are mistaken for approval policy | Open: coordinated copy, diagram, quiz and calculator-label review |
| P1 | Measure promises near-zero cash, later Takeoff requires RM49,985 down payment plus reserves for the same learner | Learner cannot reproduce the plan or know the true entry cash | Open: one consistent Ryan cash ledger across all stages |
| P1 | Foreign/self-employed income or leaving employment described as closing the bank's door | A model's unsupported scenario is presented as real-world ineligibility | Open: qualify eligibility and documentation throughout the route |
| P1 | Positive screening cash flow treated as spendable passive income | Vacancy, repairs, taxes and insurance are omitted; some projection tools also omit maintenance | Partly corrected in How To; shared metrics and goals still need revision |
| P2 | RM3,200 claimed to be RM3,000–3,400 asking rent discounted 10% | Actual range is RM2,700–3,060 | Corrected both Improve explanations; RM3,200 explicitly a teaching assumption |
| P2 | Progressive interest said to reach RM1,992, the amortizing instalment | At RM449,865 and 4%, full-disbursement monthly interest is about RM1,500 | Corrected Measure; wider construction examples need consistency check |
| P2 | How To: simulated checks “send each property to the bank”; AI disagreement means user chose wrong | Misstates product behavior and discourages verification | Corrected simulation and AI-inference language |
| P2 | How To asks learner to hover within a read-only preview; pointer blocking does not stop keyboard controls | Interaction cannot be completed as taught; keyboard may activate sample controls | Corrected captions, native inert content, reduced-motion scroll and same-preview async request ordering |

## How To: lesson-by-lesson findings and teaching plan

“Fixed” below refers to the first correction batch. Remaining recommendations are open unless stated otherwise.

| Lesson | Content assessment and remaining work | Teaching visual / learner action |
|---|---|---|
| `wp-strategy` | Explain RRR/PPP on first use; separate citizenship, residency and income source. Qualify foreign-income borrowing claims and the timeline for multiple purchases. | Two routes with starting cash, income evidence, construction period and a “choose my route” example |
| `wp-you` | Route-specific fields differ: living expenses/savings are not equally visible in every profile. “Four numbers” and “two cards” do not adequately describe all states. Age limits are product assumptions. | Annotated personal profile; identify which numbers came from payslip, statements or estimates |
| `wp-goal` | Good distinction between goal and forecast; avoid assuming everyone filled living expenses in Step 1. Define goal income after expenses. | Goal line plus a monthly expense basket; learner converts current expenses into a target |
| `wp-properties` | Three years is a planning default, not the fastest realistic purchase interval. Explain progressive interest versus full instalment. Cover every shared setting introduced. | Purchase → construction → handover → first tenant timeline with cash needed at each point |
| `wp-projection` | Rent minus loan is an incomplete cash proxy. A smooth rising line is an assumption, and gross salary is not directly comparable to spendable rent. | Layered chart: gross rent, loan, operating costs, spendable surplus; lower-rent scenario |
| `wp-loan` | Advanced assumptions are adjustable planning inputs, not fixed bank rules. Count outstanding housing loans, not simply owned properties. Explain approximate ×200 shortcut. | Assumption card beside computed headroom; change rate/tenure and see the effect |
| `wp-reality` | Fixed language to say simulation, with no bank submission. Still qualify rent recognition/seasoning and label excluded costs. | Rejection-reason example plus “what evidence would change this result?” |
| `ppp-you` | Passport, residency and income location have distinct roles. Model route availability is not proof of loan eligibility; qualify 50%/30-year defaults. | Profile decision tree with “model supports this” distinct from “bank has approved” |
| `ppp-pair` | Fixed missing Goal explanation and claim that all cash-home rent can fund house two. Show operating costs and construction-interest timing. | Two-property flow diagram: rent → costs/reserve → available transfer → second loan |
| `ppp-four` | Fixed misleading four-page blurb. Define cash-on-cash, IRR and initial capital before presenting results; make scenario status prominent. | Four question cards with a worked calculation and one failure case each |
| `ppp-loan` | Standalone PPP readers should not need a prior RRR lesson. Distinguish cash-owned home from outstanding mortgage count; qualify seasoning rules. | Same person's before/after debt and documented income |
| `ap-listing` | Good warning that different layouts can pass different filters. Fixed ROI explanation to identify gross rental yield. Keep 7%/5% as method thresholds. | One project, three layouts, separate pass/fail matrix; select an actual unit |
| `ap-card` | Fixed read-only hover instruction; formulas remain in text. Replace obsolete “bottom lines” handoff; ensure actual tooltips work for touch/keyboard users on the real page. | Badge → source layout → formula → excluded costs, revealed together |
| `ap-overview` | Distances and travel times must match the fixture/source and identify walking/road/straight-line distance. Facilities do not automatically imply poor yield. | Map with route, measurement type and dated source; compare an actual walk |
| `ap-units` | Clarify “From” project price versus specific layout price. Explicitly explain why assumptions differ between listing and detail calculators. | Select one layout and carry the same unit through all later examples |
| `ap-invest` | Fixed Market Value's asking-price description and three-input cash-flow handoff. Asking evidence and completed transactions must remain visibly different. | Price evidence table with source/date/sample count; gross-to-net cash waterfall |
| `ap-projection` | Fixed false claim that upfront fees explain negative equity in the actual equity formula. Identify omitted operating costs and uncertain growth. Avoid spending rent already recycled into principal. | Three linked balances: property value, debt, available cash; annotate assumptions |
| `ap-developer` | A project list is not proof of delivery quality. Add what to check: dates, defects, progress, licensing and evidence limitations. | Developer track record with promised versus actual dates and evidence links |
| `ap-amenities` | Fixed AI infallibility and retail-brand “proof”. Travel-time examples and growth score still require source/date verification. | Three columns: observed fact, model inference, still unknown; verify one inference |
| `ap-supply` | Explain 3km project search versus 1–2km station catchment. Same year is not same month; later supply affects renewals; higher purchase price does not eliminate rental competition. | Completion timeline, overlapping catchments and comparable rental budgets |

The seven Soon entries (AI coach, Area Guide tutorial, Landlord Management, second income, concierge, rental estimate and account) are **content gaps**, not completed learning coverage. Prioritize Area Guide and landlord cash-flow operations because the ready lessons already direct beginners to them.

## DMAIC: stage-by-stage findings

| Stage | Findings still requiring work | Most useful visual / practice |
|---|---|---|
| Mindset | First-month positive cash must mean after occupancy, not signing. Appreciation is uncertain, not a safety buffer. Qualify “RM50k is enough”, mortgage/stock leverage comparisons and no-margin-call claims. Correct stage-count/time inconsistencies. Tool step mapping fixed. | House cutaway showing bank debt, owner's equity and monthly cash; classify three transactions |
| Define | Loan defaults versus policy; DSR is not the sole credit criterion. A cash ceiling spending all savings excludes fees/reserves. Clearing RM1,800/month debt requires an unknown settlement principal. “Twice as effective” is not supported by the DSR math. Joint borrowers, retirement and Flexi claims need qualification. Purchase guidance fixed. | Two independent gates: financing eligibility and household affordability; reserve included |
| Measure | Near-zero entry cash needs actual rebate timing, valuation, financed amount, fees and reserves. A 5% rebate cannot automatically erase a 10% deposit. Avoid “landed always lower rent”, “dual-key only pass”, “cheapest always best”. HDA protection, stalled-project termination and EOT need qualified current sources; verify overhang definition. Progressive interest corrected. | Like-for-like unit comparisons; same starting cash and complete entry-cost ledger |
| Analyze | Monash future capacity must not be read as current or 2032 occupancy. Announcement is not planning approval or guaranteed demand; half-weight is a heuristic. Overlapping circles are not identical tenant markets. A discount to asking is not a discount to transaction value. KL “lowest risk” needs evidence. | Demand map with existing / under construction / announced layers, dates and actual walking barriers |
| Improve | Corrected discounted-rent arithmetic. Gross yield, maintenance-only yield and complete net yield need distinct labels. 5% discount at rounded PSF is approximate. A price discount is not guaranteed loss protection. Preserve consistent four-filter versus 2+2+1 explanations. Verify personal deal anecdotes and GRR claims. | Four filters for the same unit, downside-rent toggle and cash-reserve test |
| Control | Booking, cancellation and LAD-period corrections applied. Ryan's handover cash left RM2,458 versus RM4,000 living expenses means RM1,542 monthly deficit (RM4,626 for three months before renovation/other costs). Teach this explicitly. Bank recognition, A2 income, RPGT chargeable gains and later EOT decisions remain open. | Month-by-month household cash runway plus actual dates and cost receipts |
| Takeoff | Separate hypothetical AI-income paths from evidence. Same Ryan needs a consistent down payment and reserve bridge from Measure. Recycled rental surplus cannot also be spent. Side-business income should be net of costs/tax. Grants are conditional programs, not automatic cash. Completing a 72-hour checklist does not itself create income/assets. | Three cash accounts (salary/business/property), one allocation per ringgit; first paid customer evidence |
| Next Round | Newly rented is not automatically seasoned rent. “Rent minus loan” is not complete passive income. Avoid generic near-zero capacity claims when user data says otherwise. Adapt construction language for resale; prediction errors should prompt investigation, not blame. | Side-by-side prior forecast versus actual, with reason and next assumption to update |

Keep the recurring character and detailed explanations. Repair contradictions before shortening copy. The next authoring pass should maintain **one Ryan ledger**: initial savings, income, living expenses, outstanding debt principal, instalments, purchase costs, rebate timing, construction interest, vacancy, renovation and rent. Every stage should reference the same dated state.

## Case debrief: all eight screens

| Screen | Assessment and correction status | Visual / exercise |
|---|---|---|
| 当时的判断 | Strong hook and relatable trade-off. Freehold definition corrected. Attribute historic station plans, affordability and reported prices; original recording not independently reviewed. | Map of considered locations with dated price evidence and reasons rejected |
| 我买到什么 | Drainage and neighbouring parcels help explain external risk. Scope “60 homes cannot support amenities” and flood/wall claims to the reported experience, not universal laws. | Annotated aerial/parcel and drainage diagram; factual photo captions |
| 每月的数字 | RM1,200/month, RM14,400/year and RM86,400/six years are consistent under a constant occupied-period assumption, not a complete ledger. Yield versus loan-rate inference fixed. | Rent → mortgage → top-up waterfall; vacancy and repairs as separate rows |
| 等的那件事 | Good prompt to test the promised catalyst. Qualify “only five drivers”, “data centres create no tenants” and causal claims about unchanged rent. | Promised / happened / unverified timeline with dated sources |
| 六年后的成绩单 | Corrected profit/break-even labels, historical valuation wording and CAGR (about 1.39%, not simple average 1.44%). Profit remains unknown without debt and full cash records. | Separate price growth, monthly cash, loan principal and unknown total return |
| 三条教训 | Keep personal lessons explicitly personal. BMS and own-stay are prompts, not proof. RM1m township preference is not a universal beginner recommendation; budget and tenant segment matter. | “My heuristic” beside “evidence I still need”; compare two plausible alternatives |
| 持有35年情境 | Corrected timeline and claim that zero top-ups make all sale proceeds profit. Growth rates are assumptions. Missing costs/loan data prevent total-return conclusion. | Three scenario bars with starting date, units and excluded items visible |
| 换成你 | Fixed either/or township question to match yes/unsure/no answers; replaced invalid yield-rate test with monthly cash assessment. Also corrected the checklist guarantee and routed the demand handoff to Analyze. | Answer + evidence attachment/source + unresolved question, rather than pass badge alone |

## Learning-experience direction

1. **Every lesson answers one practical question.** Start with the decision, show one complete example, ask the learner to make a prediction, then explain the answer and open the actual tool.
2. **Use pictures as evidence or explanations.** Use actual sourced project/area photographs for location context; label illustrative assets. Aerial views, floor plans and annotated screenshots are more useful than repeated aspirational building photos.
3. **Use depth sparingly.** Brand blue and navy, restrained card elevation, layered floor-plan cutaways and animated money movement can aid orientation. Keep numbers/text flat and readable. Motion should reveal cause and effect, respect reduced motion and never be required to understand the lesson.
4. **Keep facts and assumptions visibly distinct.** Each worked example needs a compact input card: value, units, source, date, observed/estimated/assumed status and what is excluded. Put that beside the result, not in a remote disclaimer.
5. **Teach uncertainty explicitly.** Show a lower-rent/longer-vacancy example. A green filter means this screening rule passed under these inputs, not that the investment is safe.
6. **Measure understanding, not only completion.** Ask learners to distinguish rent, gross yield, net cash and equity; calculate a household cash shortfall; choose evidence for a demand claim; and explain why a result changes. Reuse the same unit and people.
7. **Mobile and access:** visible formulas rather than hover-only explanations; text equivalents for diagrams; selectable units; no clipped chart labels; keyboard-accessible real actions; sample previews cannot submit or change data.

## Primary-source evidence and unresolved verification

- **Developer pre-SPA collections, cancellation and LAD periods:** [KPKT/JPN enforcement FAQ](https://ehome.kpkt.gov.my/index.php/pages/view/220), page updated 7 October 2023, accessed 25 September 2026. Supports the distinction used in this correction batch. It does not establish that all property transactions use one contract or penalty.
- **Delivery deadline versus compensable delay:** [PJD Regency Federal Court judgment, 19 January 2021](https://www.elaw.my/JE/01/JE_2021_06.pdf), particularly paragraphs 9–10, 45–50 and 93–95. Read the booking-date principle together with the contractual delivery period; do not teach that every construction day is a day of compensable delay.
- **Third housing loan LTV and first/second bank discretion:** [BNM's 3 November 2010 announcement](https://www.bnm.gov.my/-/measures-in-promoting-a-stable-and-sustainable-property-market-and-sound-financial-and-debt-management-of-households). The policy is not evidence that every first/second borrower gets 90% financing. Count and eligibility wording needs an outstanding-facilities review.
- **Self-employed borrowers:** [CIMB My First Home documentation](https://www.cimb.com.my/en/personal/day-to-day-banking/financing/other-information/cimb-my-first-home.html) includes business registration, bank statements and tax documents. This contradicts a blanket “only employees can borrow”; it does not establish universal eligibility.
- **Monash future campus:** [official 28 October 2025 announcement](https://www.monash.edu.my/pages/latest/articles/2025/monash-universitys-future-malaysia-campus) distinguishes planned operation from 2032 and 22,500-student capacity beyond 2040. Search-accessible official text was available; full-page retrieval failed during this review. Recheck the dated source before rewriting the detailed demand example.
- **Still needing source-specific verification:** current RPGT applicability/exemptions; later EOT case law; stalled-project termination conditions; NAPIC overhang definition; dated transit and project pipeline evidence; historical case transactions; grant eligibility; specific bank product terms. Do not replace these with confident unsourced numbers.

## Completion criteria for the remaining rewrite

- All P1 cross-stage claims corrected across prose, diagrams, cards, quizzes and glossary—not just one sentence.
- Same learner's cash reconciles from entry to construction to rental to next purchase; surplus allocated only once.
- Every financial result identifies its formula and exclusions; every factual market example has an appropriate dated source.
- The 20 ready tutorials work for a learner reading only their chosen route, on phone and keyboard.
- Changed source exports and diagram artifacts regenerated; review metadata reflects actual screen-by-screen checks, not checkout timestamps.
- Conduct a small moderated beginner study: can participants explain cash flow versus equity, identify an unsupported assumption, and complete one real tool task without coaching?

## Validation record

Baseline: 657 tests, 655 passed; the portal-guide anchor test exceeded its embedded 15-second limit and the existing file-mtime freshness check failed. These are not proof of content accuracy. A content review does not justify falsely advancing all `reviewedAt` dates.

Correction-batch checks:

- Across focused regression runs, **657 checks passed**; **one existing portal-guide freshness check remains failing**. The terminology check caught an acronym introduced too early; replacing it with the department's full name resolved that failure. The new preview regression verifies out-of-order data, inert sample controls and reduced-motion scrolling.
- Real-component tutorial anchor and mount checks pass. Their embedded timeout was increased from 15 to 60 seconds because they mount dozens of components on a shared runner; no assertions were removed. `reviewedAt` dates were not changed.
- Learning-content export and `--check` pass for all four bundles. The exporter was updated to match the redesigned road hub's actual labels.
- Ten changed diagram PNGs regenerated; all **34 diagram hashes** pass `render-case-diagrams.mjs --check`.
- Chrome responsive checks passed for all ten changed diagrams at **320, 390 and 768 px** (30 checks), including nonempty text equivalents. Representative cash, yield and long-horizon images were visually inspected. Evidence: `/home/ubuntu/propertylab-academy-review/content-diagram-responsive-checks.json` and `review-*-320.png`.
- Production client and SSR build results are confirmed in the PR validation notes. Existing chunk-size, unrelated dashboard-image and unused-import warnings remain.
- No live deployment performed. Remaining P1 content issues above are still open; these checks do not certify their accuracy.
