Rebates, leaderboard GP, and write-up fixes
Rebates now have their own stock workbench, promotion support is separated from dealer net cost, leaderboard reporting is clearer, and write-up pricing is more faithful after promotions.
Changes & improvements
This second release for June 9 bundles the follow-up fixes and feature polish from the latest dealership feedback cycle. The biggest theme is making rebate and promotion money easier to track without letting catalogue defaults distort deal gross profit.
Rebates now have a stock workbench
Stock now includes a dedicated Rebates workspace. It gathers deals with either a manual deal rebate or promotion support, then lets the team work through claim status from one place instead of hunting through individual deals.
The register includes Active, All, Pending, Claimed, Complete, and DMS views, plus grouping by rebate status, salesperson, sales channel, or no grouping. Managers can review the whole dealership, while salesperson views stay scoped to their own visible deals.
The workbench has month navigation, a month picker, and date-basis controls for deal date, delivered date, or any rebate-related activity. Each row shows the manual deal rebate, promotion support, total rebate, current status, and DMS claim tick.
Rebate status and claimed-in-DMS can be updated inline. That means rebate admin can move a deal from pending to claimed or complete without opening every deal detail page.
Promotions now separate customer value, dealer cost, and support
Promotion templates now carry a separate rebate amount alongside customer value and dealer cost. Customer value is the amount taken off the customer price, dealer cost is the gross dealer-side cost, and rebate amount is the support claimed separately from the manual deal rebate.
Promotion settings now show customer value, dealer cost, rebate amount, and net cost in a denser editable table. Finance-required and trade-in-required requirements have clearer controls, and the active promotion summary includes total promotion rebate support.
Applied promotions now snapshot their rebate amount on the deal. Deal create, edit, apply-promotion, and remove-promotion flows all preserve that support amount, and rebate audit details now include it.
Gross profit now uses the promotion net dealer cost instead of the full dealer cost. The customer-facing promotion value is added back into the margin calculation, while only the remaining dealer net cost is deducted.
When a deal has manual rebate money or promotion support, Autopilot now automatically keeps the rebate status in a sensible pending/not-applicable state unless the team has already moved it further through the claim workflow.
Catalogue rebates have been retired
Catalogue variants no longer seed rebate dollars or rebate percentages into new deals. Rebates now live at the deal or promotion level, where the claim status and DMS workflow can be tracked properly.
The variant add form and expanded variant row no longer show catalogue rebate inputs. Vehicle model search, catalogue matching, import commit, and catalogue backfill no longer pull rebate defaults from a matched variant.
Existing catalogue rebate columns are kept for compatibility, but a migration clears their values and marks them as deprecated so catalogue rows cannot silently push rebates into future deals.
Demo data and developer seed paths were updated to follow the new rule: catalogue can still carry cost, RRP, write-back, vehicle specs, warranty, colours, and lead time, but not rebate defaults.
Deal pricing and write-ups are more faithful after promotions
Reopening a promoted deal now rehydrates the editable selling price as the pre-promotion selling price. That prevents a previously applied promotion from looking like it was typed as an ordinary manual discount.
The deal form now shows promotion customer value, dealer cost, rebate support, and net cost more explicitly. It also shows the final selling price after promotions so the quote and the internal GP calculation stay understandable.
Dealer details are now folded into the pricing area instead of sitting as a separate detail navigation section. Stock price, reco cost, margin, manual rebate amount, rebate percent, rebate status, and DMS claim controls stay close to the pricing inputs that use them.
The finance panel has the same promotion breakdown: customer value, dealer cost, rebate, and net. Removing an applied promotion still recalculates the deal, but the visible math now matches the accounting model.
The printed write-up sheet now lists real selected promotions in the pricing block, shows selling price before promotion and final selling price when needed, and avoids printing empty customer add-on rows that were only useful on blank paper forms.
Vehicle and trade-in details on the print sheet were tightened too, including clearer make/model, colour, variant, finance company, and VIN placement.
Save and print submissions now lock while the first request is in flight, which reduces double-save or double-print accidents from repeated clicks.
Leaderboard reporting has been redesigned
The leaderboard now has a clearer top-leader presentation, compact rank cards, a tighter table, and responsive controls that hold up better in fullscreen and shorter browser windows.
A new Basis control lets users choose whether the leaderboard period is based on deals logged or estimated delivery date. The help article was updated to document the new basis and remove the old quarter option.
Leaderboard financials now focus on gross profit instead of total revenue when the user has financial visibility. Users without financial visibility still get the unit ranking view without the GP numbers.
Monthly targets now narrow to the selected sales channel when the leaderboard is filtered by channel. Gross-profit targets are tracked alongside unit targets, and the table can show per-channel breakdown chips for each salesperson.
Sorting now uses deal count first and gross profit second, so tie-breakers follow the same reporting basis managers actually care about.
Dashboard and alert workflows are easier to work through
Dashboard edit controls now live in the top header. Edit dashboard, add widget, reset, cancel, and done actions stay available without adding another button row inside the dashboard body.
The alerts workspace can now expose the actual field values behind an alert group. Editable alert rows can be fixed inline from the alert list, with context-menu actions to edit the target field or open the full deal.
Alert groups were split into their own client component so inline editing can stay local to the alert section while the page still loads the report server-side.
Sales Log controls are less crowded
Sales Log table controls have been consolidated into a single Table controls menu. Alerts, filters, density, grid lines, text wrap, column settings, fullscreen, and export options still exist, but the main toolbar is no longer overloaded.
Search stays directly available outside that controls menu so quick filtering remains one click away.
Popover placement was tightened for alerts, filters, columns, grid lines, and export so nested menus open in the right direction from the overflow surface.
The text-wrap toggle now explains that it changes the table default while column-level overrides stay separate. The sales-channel cell alignment was also cleaned up so inline edit affordances respect the current column alignment.
Smaller workflow fixes
Board counts now use an exact done/wont-do count instead of only counting the limited set of done cards loaded into the page.
Deal cards on the pipeline now open the full deal detail page directly, while the context menu still remains available.
Deal popouts now choose the membership that belongs to the deal's dealership when possible, which helps cross-dealership popouts load with the right context.
The floating quick-edit window now opens larger by default and keeps a wider minimum size, making the finance/detail layout easier to use when undocked.
Address autocomplete now prefers New Zealand suburb-level address components when available, and address composition avoids repeating the same city/region text. Inline address cells now keep the displayed address selectable and use a small pencil button for editing.
Duplicate-deal creation now locks while copies are being created, reducing accidental duplicate duplicate runs from repeated clicks or Enter presses.
The Companion intro copy now says "Autopilot companion" and uses the normal background treatment so the popup reads less like a separate AI product.
Permissions and migrations are safer
Bulk permission resolution now picks up the new Admin system-role defaults and scopes, fixing pages that resolve many permission keys at once, such as the Sales Log, dashboard, and app shell.
Supabase migration filenames were aligned to their applied timestamps for the projection, shipping, and OEM Allocated migrations. New migrations add promotion rebate amounts, deprecate catalogue variant rebates, and repair Admin bulk permission resolution.
The repository agent instructions now include a Supabase migration-safety checklist: compare linked local/remote migration history before new migration work, stop on missing remote versions, and dry-run linked pushes before applying migrations.