Return to supplier

Getting stock and money back out of a rejected receipt · raise, approve, ship, supplier receipt, then a credit note or a Finance-approved write-off · the whole point of this page is to make the write-off the expensive path

3 write-offs are waiting on Finance worth AED 14,680 · a write-off cannot post without an approval row whose approver holds the finance_writeoff feature, so these units stay in RTS_PENDING at SUPPLIER_HOLD and stay on the balance sheet until someone signs Approvals queue →
AED 12,420 of credit is past its 14-day SLA across 4 suppliers · average wait 9.4 days, worst 22 · one case, RTS-2026-0176, is in arbitration with a third-party inspection booked for 05-08

RTS_PENDING units splits by location, not by state. Stock staged at HQ_319 is still on our shelf and still ours to lose; stock at SUPPLIER_HOLD is in the supplier's custody. Same stock type, two very different answers to "where is it and who eats the loss".

Lifecycle

Eleven states, two approval gates · nothing ships from draft, and nothing is written off without Finance

24 cases this quarter
3
Draft
raised from QC reject
approval to leave
1
Approved
ops manager signed
2
Ready
packed, debit note drafted
3
Shipped
2N move to SUPPLIER_HOLD
3
Received
POD signed
6
Credit issued
stock leaves the ledger
1
Rejected
supplier denies liability
2
Escalated
arbitration booked
1
Returned
repair loop, child GRN
2
Resolved
terminal
0
Written off
3 pending Finance
finance only
ops2's RTS machine reaches writeoff from every non-terminal state with no approver column, no value threshold and no role check anywhere in its 711 lines, while both the i2 PRD and the master plan say financial write-off is Finance's. i3 makes that an unreachable transition rather than a policy: state = 'written_off' requires an rts_approvals row of kind writeoff whose approver holds the finance feature.

Credit recovery by supplier

Claimed against credited, this quarter · the percentage is the only supplier metric that measures whether a claim was worth raising

AED 87K claimed · 62K recovered
SupplierClaimed (top) vs credited (bottom)Rec %
CIC 59
ORO Leather 90
VJ Jewels 68
LC Straps 84
Ceramica MEA 77
Shenzhen Fittings 50
Yiwu Home 25

No incumbent system can produce this chart. ops2 stores a credited quantity as free text appended to a notes column ("re-QC credited:14") and has no credit amount, no credit-note number and no currency anywhere in iwms_rts or its twelve ALTERs. i2 has a single credit_fils integer and nothing ever wrote to it.

RTS aging by state

Where the days actually go · the 14-day credit SLA is drawn

6 cases past SLA
8 5 3 0 14d credit SLA 0 to 3 days · draft · 2 cases 0 to 3 days · approved or ready · 1 case 4 to 7 days · draft · 1 case 4 to 7 days · ready · 2 cases 4 to 7 days · shipped · 1 case 8 to 14 days · shipped · 2 cases 8 to 14 days · received by supplier · 2 cases 8 to 14 days · escalated · 1 case · CIC, arbitration requested 15 to 21 days · received by supplier, awaiting credit · 2 cases · past SLA 15 to 21 days · rejected by supplier · 1 case 22 to 30 days · awaiting credit · 1 case 22 to 30 days · escalated · 2 cases · Yiwu Home, third-party inspection booked 05-08 over 30 days · pending write-off approval · 2 cases · AED 9,400 over 30 days · escalated · 1 case closed this quarter · 6 credit issued, 2 resolved, 2 written off
0 to 3d4 to 7d8 to 14d15 to 21d22 to 30d30d+closed
Draft, unapproved Approved or ready Shipped With supplier, awaiting credit Escalated, rejected or pending write-off Closed
Open 11
Draft 3
Awaiting approval 3
Shipped 3
With supplier 3
Awaiting credit 6
Escalated 2
Pending write-off 3
Closed 13
Reject
Repair loop
Over-ship return
Sample reject
Recall

RTS cases

24 this quarter · staged location is where the units physically are, which is not the same as the case state

R-06.23
RTSSupplierSKUQtyKindReasonState Staged atValue AEDCredit expCredit rec AgeApproval
RTS-2026-0184CICMST-CRM-42-BLK40 rejectSTITCH_FAILshipped SUPPLIER_HOLD3,2003,20001dops signed
RTS-2026-0183VJ JewelsMIN-215914 rejectCLASP_BROKENshipped SUPPLIER_HOLD1,1201,12003dops signed
RTS-2026-0181ORO LeatherMSR31-0712 repairEDGE_PAINTreceived by supplier SUPPLIER_HOLD4,800-09dops signed
RTS-2026-0178Ceramica MEAMIN-220412 rejectGLAZE_CRACKreceived by supplier SUPPLIER_HOLD1,4401,440011dops signed
RTS-2026-0176CICMST-CRM-42-TAN40 rejectCOLOR_MISMATCHescalated SUPPLIER_HOLD3,200disputed08darbitration
RTS-2026-0174Shenzhen FittingsLDF0124 rejectHARDWARE_TARNISHrejected by supplier SUPPLIER_HOLD1,920disputed018dwrite-off pending
RTS-2026-0172Yiwu HomeMIN-PKG-014180 rejectPACKAGING_CRUSHescalated SUPPLIER_HOLD5,400disputed022dwrite-off pending
RTS-2026-0171LC StrapsLBA1524 repairSTITCH_FAILreturned HQ_3191,920--14dGRN-2026-0406
RTS-2026-0169ORO LeatherMSR31-0918 rejectEDGE_PAINTready HQ_3197,2007,20005dops signed
RTS-2026-0168Bursa TextilesMIN-TXT-08844 rejectCOLOR_MISMATCHready HQ_3192,6402,64006dops signed
RTS-2026-0167Sharq MetalworksMIN-HW-0428 rejectWRONG_LABELdraft HQ_31964064002dawaiting ops
RTS-2026-0166CICMST-CRM-42-TAN14 rejectCOLOR_MISMATCHcredit issued left ledger1,1201,12056028dCN-CIC-2588
RTS-2026-0164Ceramica MEAMIN-SMP-0216 sample rejectGLAZE_CRACKdraft HQ_319-no invoice-4dawaiting ops
RTS-2026-0162VJ JewelsMIN-215958 over-ship returnOVER_SHIPMENTdraft HQ_3194,6404,64007dkeep or return
RTS-2026-0151CICMIN-215910 rejectSTITCH_FAILresolved left ledger80080080044dCN-CIC-2504
RTS-2026-0108CICMST-CRM-42-TAN24 rejectHARDWARE_TARNISHwritten off SUPPLIER_HOLD1,920rejected066dfinance · muhammad.f
24 cases this quarter · 11 open A sample reject shows no invoice for credit expected, not a zero. Nothing was ever paid for it, so nothing can be credited, and a zero would drag the recovery percentage down for free. Sorted by age within state

Write-offs awaiting Finance

AED 14,680
RTS-2026-0172 · Yiwu Home · 180 units · AED 5,400
Supplier denies liability on PACKAGING_CRUSH, claiming the crush happened after receipt. Incoterm on the terms row effective on the PO date is FOB, so transit damage is the carrier's, and the carrier claim was already declined at 22 days. Requested by ebrahim@minimalist.ae on 27-07.
22d
RTS-2026-0174 · Shenzhen Fittings · 24 units · AED 1,920
Third rejected claim from this supplier on the same grounds this quarter. Below the AED 2,500 threshold where arbitration is economic, which is exactly the pattern that has held their credit recovery at 50%.
18d
RTS-2026-0139 · Bursa Textiles · 96 units · AED 7,360
Case sat at received_by_supplier for 38 days with no response to four chases. Above the arbitration threshold, so Finance should decide between arbitration and write-off rather than defaulting to the cheaper one.
38d

A write-off needs an approval row whose approver holds finance_writeoff. Until then these units stay in RTS_PENDING at SUPPLIER_HOLD, which means they are still counted, still valued and still visible. An unapproved write-off is not a quiet zero, it is an aging number that someone has to look at.

-- what approving RTS-2026-0172 will post -180 RTS_PENDING @ SUPPLIER_HOLD source_type=rts_writeoff +180 WRITTEN_OFF @ SUPPLIER_HOLD source_type=rts_writeoff idempotency_key = rts:writeoff:RTS-2026-0172 requires = rts_approvals(kind='writeoff', feature='finance_writeoff') WRITTEN_OFF is is_physical=no, is_owned=no, so the loss stays valued and visible instead of vanishing from the ledger.
Approvals queue Corrections

Credit note register

The supplier's document number, its currency and the FX rate that produced the AED figure, always together

AED 62.4K this quarter
Credit noteSupplierRTSCcyOriginalFXRate dateAEDIssuedApplied
CN-CIC-2611CICRTS-2026-0151USD2,6163.6718-069,60018-0621-06
CN-ORO-1188ORO LeatherRTS-2026-0158EUR4,2404.0102-0717,00202-0705-07
CN-CIC-2588CICRTS-2026-0166USD1533.6712-0756012-0715-07
CN-VJ-0914VJ JewelsRTS-2026-0148USD2,1803.6724-068,00124-0628-06
CN-LC-0442LC StrapsRTS-2026-0142AED6,2401.0011-066,24011-0612-06
CN-CER-0208Ceramica MEARTS-2026-0134AED4,3201.0028-054,32028-0530-05
Every foreign-currency amount stores amount_original, currency, fx_rate and fx_rate_on together. An AED figure without the rate and the date that produced it cannot be reconciled to a bank statement three months later, which is when anyone actually checks.

Batch pickup, Thursday 31 July

ORO Leather
2 RTS · 30 units
AED 12,000 · DHL pickup
Bursa Textiles
1 RTS · 44 units
AED 2,640 · Aramex
Sharq Metalworks
1 RTS · 8 units
AED 640 · self-drop, Al Quoz

The RTS custody rule

Where rejected stock lives, and what each move posts

ruling L1 · module 04 section 4.3

Staged is a state, at the supplier is a place. A rejected unit sitting on a pallet in the RTS_STAGING zone at HQ_319 is still on our shelf, still ours to lose in a fire, and still our warehouse's problem to count. It is RTS_PENDING at HQ_319: a stock type at a real location.

The moment it ships, a party outside i3 becomes accountable for it, it may be credited and never come back, and no warehouse of ours will ever count it again. That is the deciding test for a virtual location, so it becomes RTS_PENDING at SUPPLIER_HOLD.

Shipping therefore posts a compensating pair that nets to zero, never a single row. There is no moment at which the same units are both staged and at the supplier, and no moment at which they are neither.

Credit and write-off both remove the units, and they are not the same event. A credit means the supplier owns them now and the money came back. A write-off means we still lost them. Both post out of RTS_PENDING; only the write-off posts into WRITTEN_OFF, so a loss stays valued rather than disappearing.

-- ship (RTS-2026-0184, 40 units) -40 RTS_PENDING @ HQ_319 rts_ship +40 RTS_PENDING @ SUPPLIER_HOLD rts_ship idem = ops2:rts_ship:RTS-2026-0184:AX-88421 nets to zero, always -- credit issued (RTS-2026-0166, 14 units) -14 RTS_PENDING @ SUPPLIER_HOLD rts_credit idem = rts:credit:RTS-2026-0166:CN-CIC-2588 units leave; AED 560 arrives as a credit note -- write-off (needs Finance) -180 RTS_PENDING @ SUPPLIER_HOLD rts_writeoff +180 WRITTEN_OFF @ SUPPLIER_HOLD rts_writeoff idem = rts:writeoff:RTS-2026-0172 -- repair return (RTS-2026-0171, 24 units) child GRN kind='rts_return', parent_rts_id set re-QC like any other receipt: 22 pass, 2 reject repaired stock never re-enters without QC twice

States

Loading
Reading the cases.

The stepper and both charts hold their heights so the page does not jump when 24 cases land.

Empty
Nothing to send back.

No open RTS at any location. Cases are raised automatically when QC records a reject disposition, so an empty queue means QC accepted everything it inspected.

QC queue
Error
The ship posting failed.

The compensating pair could not be written, so neither row posted. The units are still staged at HQ_319 and the case is still ready. A half-posted move would put stock in two places at once.

rts-ship-4e21 · 29-07-2026 14:48 GST

Permission
You can raise, not approve.

Raising needs role >= manager. Approving a ship needs ops_manager. Approving a write-off needs the finance_writeoff feature, which three people hold.

apps.i3.role = manager · no finance feature

Zero-filter
No matches.

3 filters hide all 24 cases.

state: credit issuedsupplier: Yiwu Homekind: recall
Maintenance
Ship and write-off are held for 25 minutes.

The ledger is in its nightly verify window, so no compensating pair can be written. Raising, approving and recording correspondence all still work.

21:00 to 21:25 GST

Gate-blocked
Credit recovery is shadow until GATE 3 closes.

The percentage needs a full settled cohort behind it, and only 4 days of receipts have posted through i3. The number is computed and is marked not yet authoritative, so nobody re-tiers a supplier on it.

GATE 3 day 4 of 7

The invariant
No case closes without money or a signature.

Zero cases may reach a terminal state with neither a credit note nor a Finance-approved write-off. That assertion runs nightly, and it is the only thing standing between a claim register and a wish list.

Verification report
Keyboard J K move Enter open case N new RTS A approve S ship D record credit W request write-off E escalate / filter ⌘K palette All shortcuts ↗
Connected to GRN and QC GRN events Suppliers Supplier detail Damages Incidents Repairs POs and PI Approvals Corrections Locations RFID Samples Drift Reports Cash and valuation Audit log