Engineering
Architecture Decision Records
The load-bearing engineering decisions behind Pikt's reward router, documented in the open. Each record states the context, the decision, and its consequences — the same structured inputs our team reviews. See the methodology overview for the routing math in narrative form.
- ADR-0001Accepted
Normalize all reward currencies to cash-equivalent dollars
Cards earn in incompatible units — cash back, transferable points, and airline miles. Ranking them head-to-head at checkout requires a single comparable unit.
- ADR-0002Accepted
Deterministic, layered routing priority
Multiple signals can apply to one purchase — a user's pinned card, a live targeted offer, an open sign-up-bonus requirement, and category multipliers. Their conflicts must resolve the same way every time.
- ADR-0003Accepted
Hard latency budget for just-in-time authorization routing
Real-time card routing runs inside the card-network authorization window. A routing decision that arrives late is useless — the transaction has already authorized on the default card.
- ADR-0004Accepted
Never collect or store card CVV / security codes
A '1-click autofill' style feature is tempting, but storing CVV/CVV2 after authorization is a direct PCI-DSS violation (Requirement 3.2) regardless of encryption.
- ADR-0005Accepted
Bank connections are read-only and credential-isolated
Pikt needs account and liability data to track cards, balances, and utilization, but must minimize the trust users extend to it.