What SAP already knows, and what the app could do with it
Lays Trade reads sales, stock, prices and open orders out of SAP every night. SAP holds a lot more that the app has never touched: the quotes the counter keys, today's delivery notes, every saved site and contact on an account, who owes what, what is promised to whom, and the profit on every line. This is the shortlist of what that data would let reps, the desk, Wyatt, purchasing and customers do, in the order worth building it. Every table was checked against Lays' own SAP on 10 September, so nothing here depends on data Lays does not keep.
17features, all from SAP data already there
10parts of SAP the app has never read
0new SAP licences or partner work needed
~13build days for the first two rounds
The one enabler
An export that runs itself
Today the SAP export is run by hand: open SAP, run the saved query, export, upload. It happens when someone has time, so the app is a day or more behind.
SAP itself cannot schedule a query, but the Boyum add-on Lays already licenses can: its scheduler runs a saved SQL export on a timer and saves or emails the file. The app then receives that email and loads it with no one touching a keyboard. The full export runs after the 7pm conversion; a second, much smaller one (open orders, open purchase orders, today's delivery notes, open quotes, stock and promised quantities, account balances and holds, this week's goods receipts) runs every hour through the working day. A few thousand rows, under a minute.
That turns four features below from "yesterday's picture" into "this hour's picture": the stock a rep quotes against, the backorder a customer is waiting on, the deliveries Wyatt is about to load, and an account that went on hold this morning. It needs the Boyum scheduler confirmed running on the hosted SAP server, which is a configuration job. If it is not available, the hosting partner can schedule the same export on their side. Either way, a live SAP connection is only ever needed for writing back, not for reading.
Theme 1
The money side of an account
SAP knowsWhat each customer owes right now, their credit limit, whether the account is on hold, their payment terms, which invoices are overdue and by how much, and when they actually paid.
Account status wherever the account appears
OCRD balancecredit limiton holdopen invoices
A chip on the client list and the client page: "Owes $4,120 · $1,850 overdue · 30 days EOM · limit $10k", and a red ON HOLD when SAP says so. The order desk sees it above the SAP number field, so nobody keys an order for a stopped account and rings back later. The customer shop shows the hold as a banner with the branch number, and an order placed while on hold lands on the desk flagged instead of sailing through. A rep gets a ping the morning an account in their book goes on hold or over its limit. Three accounts are on hold today, and 618 of the 836 sit on the $2,000 default limit, so the over-limit ping only fires for accounts whose limit was actually set.
Who it helps: the desk (no awkward callbacks), reps (they hear it from the app, not the customer), branch managers (credit control from the phone). Customers see only their own balance and due dates.
Days to pay, and who to visit before month end
ORCT payments
Each account's average days to pay over twelve months, and in the last week of the month a card for managers: "6 accounts over 60 days, $23k, ranked".
Who it helps: Matt, Montana, branch managers.
Find an invoice by the customer's PO number
OINV NumAtCard
The PO number and the desk's comment sit on every SAP invoice. Customers and reps can search by it. It is the thing customers ring the desk for most.
Who it helps: customers, the desk, reps. Half a day.
Theme 2
Orders, backorders and deliveries
SAP knowsThe date promised on every open order line, when the supplier is due to deliver each purchase order, what was received today and which PO it closed, and which delivery notes are open right now (at Lays, an open delivery note is on the truck today; they become invoices at 7pm).
Prove every portal order reached SAP, automatically
ORDR commentsODLNOINVPhase 1
The order file the desk imports already stamps "Lays Trade LT-n" on the SAP order. Reading that stamp back, the app can match each portal order to its SAP order exactly, then move it along on its own: keyed, out for delivery when the delivery note appears, delivered and invoiced when the invoice does. The customer's timeline shows each SAP number as it happens. Every pilot order ends up with its SAP order, delivery and invoice numbers on one screen.
Who it helps: Matt (proof the customer ordering works end to end), the desk (no manual status taps), customers (they see it is in the system).
Backorder dates a customer can be told
RDR1 ship datePOR1 due date
Match each open order line to the purchase order for the same item at the same branch. The client page and the customer's "On order with Lays" say "expected around Tue 16 Sep" per line, or, for staff only, "no purchase order raised yet" in red. Managers see "14 order lines past their promised date" on Today, so the branch rings the customer first.
Who it helps: reps (the most common question they cannot answer from the app today), customers, Josh (the "not even on order" list is his).
"It landed" pings
OPDN receipts
Goods received since the last sync, matched to waiting order lines, ping the rep ("Toitoi's 14G teks landed at Wanaka, 12 of 12") and the customer's login. Purchasing gets the short-shipped list.
Who it helps: reps, customers, Josh.
Delivery notes become the run
ODLNDLN1needs hourly sync
Open delivery notes for a branch appear in the run builder as suggested stops with SAP's address and the customer's PO, one tap to add. There were 54 open delivery notes in SAP at the time of checking, all from that day, so the 7pm run is closing them cleanly. Today most of Wyatt's stops are typed in by hand because the order never touched the app. After 7pm the stop matches the invoice it became, so delivery history is complete for phoned-in orders too.
Who it helps: the desk (no re-typing addresses), Wyatt (his day is built for him), customers.
SAP's delivery instructions on the stop
OCRD notes
"Ring before delivery", "leave at gate 2", "site closed Fridays" already live on the customer card in SAP. Show them on Wyatt's stop, the desk order and the phone order.
Who it helps: Wyatt, the desk. Half a day.
Theme 3
The quotes the counter already keys
SAP knowsEvery quotation keyed at the counter: who, how much, valid until, and which lines became orders.
One quote list per client, and a chase list that writes itself
OQUTQUT1
The client page lists open SAP quotes beside the app's own. Today shows each rep "quotes to chase": open quotes in their book from the last month or so, oldest first. Trends shows quote-to-order conversion per rep and branch, measured from what SAP actually converted.
One thing the check turned up: SAP has 1,733 quotations still open, and 1,603 of them are older than 90 days, so quotes are never closed off once they are won or lost. Of the 344 quotes raised in the last six months, 57 became orders, about one in six. The app can list the stale ones by rep and age for a one-off clean-up, keep the chase list to the 130 that are still live, and show conversion per rep from then on.
Who it helps: reps, Matt Welsh (conversion by person, with real numbers), the desk (no double quoting). Quote values follow the same three-month window reps already have.
Theme 4
Who the customer actually is
SAP knowsEvery contact person on the account with their mobile and email (959 of them, nearly every account has one), when the account was opened, the Hot Points balance, and a full Hot Points ledger behind it. It does not hold site addresses: there is no saved site list and only 78 invoices in the last year carry a delivery address.
Known sites at checkout and on phone orders
app history
Since SAP has no site addresses, the app builds each account's sites from its own record: every delivery stop Wyatt has signed off, every portal order, and the account's default address. Customers pick "Site A / Site B / new address" instead of typing, reps get the same picker on a phone order, and the list gets better with every delivery.
Who it helps: customers (three taps), the desk (no re-typing), Wyatt.
People on the account
OCPR contacts
Every active contact with Call, text and email buttons (roles are mostly blank in SAP, so the app lets reps tag them). When a customer login is approved, the app offers the account's other contacts as extra logins.
Who it helps: reps (the foreman's mobile without ringing the office), the customer invite process.
New accounts that have not ordered yet
OCRD created
"3 accounts opened this month, 1 has not ordered yet" on Today for the rep and the branch manager, and an automatic follow-up two weeks after the first order.
Who it helps: reps, branch managers.
Hot Points, with the history behind the balance
U_HotpointsHotpoints ledger
Reps already see the balance. Customers never do. SAP also holds the whole Hot Points ledger: 5,360 transactions, each earned when a payment comes in, and a point is a dollar. Against those 5,360 earns there have been 48 spends in total, so nearly every dollar earned is still sitting there. Customers can see their balance and history on their Account page with a plain "$42 of Hot Points to spend", and a rep sees which accounts are sitting on a big balance before a visit. That turns the scheme into a reason to come back. No prices involved.
Who it helps: customers (a reason to log in and to spend), reps (a closer on a visit).
Theme 5
The catalogue SAP describes better
SAP knowsHow much of each item is already promised to open orders, which items are retired, 370 supplier part numbers (Soudal, Sika, Spax), and every stock movement. It does not hold pack sizes, brands or minimum levels at Lays, so those stay with the app.
Available stock, not just on hand
OITW committedneeds hourly sync
Every stock chip shows what is actually free and, when different, "8 on hand, 5 promised", so a rep does not sell the same box twice. Reorder and transfer suggestions use the same number.
Who it helps: reps, the desk, Josh.
Retired items, pack sizes, supplier part numbers
OITM flagsOSCN
The 66 items SAP marks retired drop out of search and the shop. SAP's pack-size fields are blank at Lays, so the app reads "box of 100" off the item name, counts in boxes, and lists the names it cannot read for Josh to tidy. The 370 supplier part numbers already keyed in SAP go onto the purchase order file so suppliers see their own codes, and a Sika or Soudal code typed off a box finds the item.
Who it helps: customers and reps (no "three screws or three boxes"), the desk, Josh.
Real lead times and the stock ledger
OPDN receiptsOINM ledger
SAP has no minimum or maximum levels set at Lays, so the app's reorder page is the system. It gets better with real supplier lead times measured from PO to receipt, and the movement ledger explains dead and negative stock ("last sold 14 months ago, last received 3 months ago"). If Josh wants SAP's own alerts, the app can hand its minimums back to SAP.
Who it helps: Josh, and the stock-turn number on Purchasing.
Alternatives the app learns
OALT
SAP's alternative-items table has eight rows, so it is not the answer. The app can learn alternatives as staff teach them (the way the search already learns words), offer the substitute and where it is when an item is out, and hand the list back to SAP.
Who it helps: reps, customers, the counter.
Theme 6
Margin and pricing discipline
SAP knowsThe cost and the profit on every invoice line at the time it was sold, the list price before discount and the discount typed at the counter, and any quantity-break or period deals.
True margin
INV1 GrssProfitadmin only
SAP has the profit on every one of the 97,806 invoice lines, so branch margin on Trends and the MISC report can use the real posted cost instead of today's average cost, and margin by client, rep and product group becomes available. Never shown to reps, managers, office or customers.
Who it helps: Matt and Montana.
Discount discipline
INV1 discountmanagers
Only about two lines in a hundred carry a manual discount, which says pricing runs properly on tiers and special prices. A small view of where those discounts go (by rep, by customer, what they add up to) still earns its place, and the fix for a repeat customer is a proper special price, which the app can prepare for SAP.
Who it helps: Matt, Montana, branch managers (leakage nobody can see today).
Pilot price check
Phase 1
Before a customer is invited onto the ordering portal, compare what they were actually charged over six months with what the app would quote. Any line where the app comes out higher gets fixed in SAP first, so a rep quoting from the phone never contradicts the counter.
Who it helps: the pilot customers' trust, reps, the desk.
Theme 7
Closing the loop back into SAP
The order desk and the reorder page already produce files SAP imports in one go. The same pattern can carry six more things that are one-way today.
An "SAP outbox" in Admin
DTW files
Rep reassignments made in the app (so the next import stops undoing them), special prices a manager approves, minimum levels Josh sets, taught alternatives, visit notes so they show in SAP too, and stock transfers once received. One page, a download per file, and a check on the next import that it landed. On the day a live SAP connection exists, each of these becomes a direct write instead of a file.
Who it helps: Gert and Josh (no double keying), everyone who has ever had an assignment overwritten.
Ranking
Build order
Value is to Lays inside 60 days, out of 5. Days include testing. "Live" means the hourly sync makes the feature worthwhile.
#
Feature
Value
Days
Live
1
Export that runs itself, nightly and hourly (the enabler)
5
2
is it
2
Prove every portal order reached SAP, auto status
5
1.5
helps
3
Account status, hold banner, held checkout, hold ping
5
2
helps
4
Available stock (on hand minus promised)
4
1
yes
5
Delivery notes become the run
4
1.5
yes
6
Backorder dates and "it landed" pings
4
2
yes
7
Known sites, people on the account, delivery instructions
4
2
no
8
Pilot price check and true margin
4
1.5
no
9
SAP quotes: chase list, conversion, stale-quote clean-up
4
1.5
helps
10
Hot Points balance, history and "$X to spend"
3
1
no
11
SAP outbox with the write-backs
3
2
no
12
Retired items, pack sizes, supplier part numbers
3
1.5
no
13
Invoice search by PO number
3
0.5
no
14
Real lead times and the stock ledger
3
2
no
15
New accounts that have not ordered
2
0.5
no
16
Alternatives the app learns
2
1
no
17
Days to pay, PO price variance, SAP transfers
2
0.5 each
no
Dropped after the SAP check because Lays does not use them: quantity and period deals, SAP activities, saved ship-to sites, customer groups, brands, SAP minimum levels, customer part numbers. Camera barcode scanning, the quote share link, GPS and route planning stay parked as agreed. Nothing here needs a live SAP connection: it all comes through the same saved-query export the app loads today.
Round 1 Phase 1 first · about 7 days
The export that runs itself, nightly and hourly
Prove the round trip, orders advance from SAP documents
Account status, holds and the held checkout
Available stock on every chip
Round 2 about 7 days
Delivery notes become the run
Backorder dates and landed pings
Known sites, people, delivery instructions
Pilot price check and true margin
Round 3 as time allows
SAP quotes, the chase list and the stale-quote clean-up
Hot Points history
The SAP outbox
Retired items, pack sizes, supplier part numbers, PO search, lead times and the stock ledger
What it takes to start
The SAP check is done: every table above was counted on 10 September and the list only carries what Lays actually keeps. From here it is two saved queries and a schedule in the Boyum add-on Lays already pays for, or the same schedule set up by the hosting partner. No new licences, no change to how the desk works today.
The rules already agreed stay as they are: reps see their own book and a rolling three months, customers see no prices, and cost and margin stay with the directors.