Changelog

What's new in NEXOS

Product updates, shipped features, and technical improvements — dated, honest, and versioned.

v2.5.0

minor

Live recipe costing + schedules that reach every employee

Two operational wins: recipe food-costing that updates as your invoice prices change, and published schedules that actually land in your team's hands — by app push, text, and email.

Live recipe costing

  • Build a recipe, add ingredients, and watch total cost, cost per serving, and food-cost % update live as you type.
  • Set a target food-cost % per recipe and instantly see which recipes are running over.
  • Ingredient prices stay current on their own — when a new invoice arrives, matching recipe ingredients reprice themselves, so your food cost reflects what you actually paid this week, not last quarter.
  • Recipe management is restricted to Area Directors and above, so menu costing stays with the people who own the P&L.

Schedules that reach the whole team

  • Publishing a schedule now notifies every employee with shifts by app push, text message, and email — the email includes the full week as a clean, printable image.
  • A one-click 'Resend to staff' re-sends to everyone after a late change or a missed notification.
  • Print, download, or email any published schedule as a crisp image — and labor cost stays on the manager's dashboard, never on the copy employees receive.

v2.4.0

minor

Partner Adapter — extraction API that matches your existing schema

Enterprise prospects routinely tell us their downstream pipeline is built around an existing extraction schema and they can't refactor it to match a new vendor's shape. Today that stops being a blocker. The new partner extraction endpoint runs the NexosIQ pipeline against a document and returns the result in whatever JSON shape the partner already expects — not just renamed fields, but fully nested objects, computed values, per-section confidence rescaling, all defined per partner in a small declarative profile.

Partner extraction endpoint

  • POST /api/v1/partner/extract — authenticated by partner API key + invoices:read scope.
  • Pulls the source document directly from your S3 bucket via signed access — you keep your own object storage as the source of truth, we never re-host the file.
  • Runs the same multi-pass NexosIQ extraction pipeline that powers in-product invoice scans, with the same accuracy guarantees.
  • Returns the result in the JSON shape your existing system already expects — vendor / totals / invoice_meta / per-section confidence — not ours.

Per-partner shape profiles

  • Every enterprise partner gets a profile describing how Nexos's canonical extraction output is transformed into the partner's preferred response shape.
  • Supports field renames, dotted-path nesting (vendor.name, totals.tax, etc.), computed values (confidence 0-100 rescaled to 0-1, currency conversion, fallback chains), synthetic constants, and field whitelists / blacklists.
  • Profile changes take effect on the next API call — no deploy required.
  • Documented spec for the DSL so your engineering team can review or author profiles directly.

Idempotency + retry safety

  • Pass a correlation_id with every call. Re-sending the same id within 24 hours returns the original result with a cache_hit: true flag — your queue workers can retry safely without paying for re-extraction or creating duplicate downstream records.
  • Best-effort cache: when the cache is unavailable, we re-extract instead of erroring. Reliability over efficiency on the integration path.
  • Magic-byte file validation upfront. Invalid payloads (corrupted, unsupported format, attacker-supplied) are rejected before they reach the AI pipeline — saves time and cost.

Bespoke-fit service

  • Adapter Service: send your existing API spec, get a profile back in 48 hours. One-time fit fee covers profile authoring + integration test against your real payload.
  • Once the profile is live, monthly billing is per-extraction at standard partner rates. No engineering involvement on either side after day one.
  • Future Nexos partner endpoints (receipt extraction, schedule export, inventory feed) inherit your profile automatically — fit once, integrate across the catalog.

v2.3.11

minor

Smarter Ava — store-aware answers, category-aware spending, and SMS for employee onboarding

Two weeks of incremental work focused on making the in-app assistant trustworthy and bringing SMS into more of the employee workflow. The chat now actually filters by store, category, and date range — and three signup flows pick up an SMS option.

Store-aware chat answers

  • Ask Ava about a specific location — "what did Babylon spend on fuel last month" — and she filters to that store, not the whole company.
  • Fuzzy name match means partial names work too ("Babylon" → "Store #425 - Babylon, NY").
  • When a name is ambiguous, Ava asks you to pick which one you meant.
  • Same store filter now available on invoice counts, recent invoices, top vendors, and spending breakdowns.

Category-aware spending

  • Ask "how much on gas last 6 months", "payroll year to date", "utilities this quarter" and get a real total summed across receipts, invoices, and manual expenses.
  • Fuzzy category match: "gas" → fuel, "ads" → marketing_advertising, "labor" → payroll, etc.
  • Returns a clean breakdown by source so you can see where the spend is coming from.

SMS for employee flows

  • Invite a team member with a phone number and the setup link gets texted in addition to the email.
  • Mobile app setup link can now be requested by SMS — useful when your team manager doesn't check email often.
  • Forgot-password supports an SMS channel for users who have a phone on file.
  • Per-store dedicated SMS numbers are now an Enterprise feature — outbound texts come from the store's own number, not a shared pool.

Chat output cleanup

  • Markdown formatting (asterisks, em-dashes) no longer leaks into mobile chat — every reply is clean plain text.
  • Specialists (Elena, Marcus, Sam, etc.) now keep the full conversation context when Ava routes to them — no more "which quarter?" out of thin air.
  • Intelligent automation data queries fixed under the hood so the morning brief, variance reports, and forecast actually pull real data.

v2.4.0

major

NexosIQ Scheduling — Sam, the schedule builder, and two-way SMS

Major expansion: NEXOS is now a back-office operating system, not just a document scanner. Employee scheduling with Sam's Recommended Schedule, drag-and-drop builder, open shifts, two-way SMS confirmation, and the employee invite flow.

Sam's Recommended Schedule

  • Sam analyzes the last 4 weeks of POS sales (and same-week last year, averaged by day-of-week) and drafts a weekly schedule that hits your labor target.
  • Constraint-satisfaction pass: respects employee availability, approved time-off, no double-booking, 40-hour weekly cap, 3-hour minimum shift, and a 30-minute unpaid break for shifts over 5h.
  • Manager always reviews before publish — Sam never publishes for you.
  • Trigger from Scheduling → Generate Schedule. Pick store, week-start, frequency (weekly or biweekly), and an optional labor target.

Schedule Builder & Publishing

  • Drag-and-drop schedule grid with right-edge resize, copy-last-week in one click, and an Open Shifts row that lets employees claim shifts from mobile.
  • Publish generates a printable schedule image and dispatches push + SMS notifications to every employee on the schedule.
  • Open shifts (employee_id NULL) — managers create shifts without an assignee; employees claim them from the mobile Open Shifts tab with a one-tap Claim button.
  • Employee invite flow: invite any employee on the roster to the mobile app with a 7-day token. Email collisions resolve to existing users automatically.

Two-Way SMS Confirmation

  • Every published schedule SMS asks employees to reply YES to confirm or NO if they have a conflict.
  • Inbound replies route through smsIngestService, resolve sender phone to active employee, and update schedule_notifications status (confirmed / declined).
  • Schedule builder shows live confirmation pills next to each name — confirmed (✓), declined (✗), awaiting reply (…), failed (!), queued (·).
  • Declined replies generate a manager bell notification with title 'Schedule conflict' so the publisher sees it in the bell.

v2.3.5

minor

Time Clock, Shift Swaps, and Labor Reporting

Closes the loop on the scheduling stack. Mobile clock-in/out with GPS geofence, employee-to-employee shift swaps with manager approval, and the Labor Reporting dashboard pairing scheduled vs actual hours against POS revenue.

Time Clock

  • Mobile GPS clock in / clock out from the parking lot with geofence warning when employees punch outside the store radius.
  • Auto-links each punch to the right scheduled shift for (employee, store, today). Split shifts pick the closest start time.
  • Manager dashboard at /time-clock with scheduled vs actual variance, flag and edit per row, Excel export.
  • Per-tenant time_punches table with status (open / completed / flagged), auto-computed total_minutes, lat/lon on punch in/out.

Shift Swaps

  • Employees request a swap from the mobile schedule view. State machine: pending → accepted → manager_approved | manager_denied (trade) or pending → manager_approved (drop).
  • Atomic shift-employee swap inside one transaction — failure leaves both shifts at their original owners.
  • State-drift guard at approval time: re-verifies both shifts still match the swap's stored expectation; returns 400 if state changed.
  • Web Swap Requests tab on the schedule builder lets managers approve or deny accepted trade requests and pending drop requests.

Labor Reporting

  • New /scheduling/labor-report dashboard. Manager-only, store-scoped via the same role hierarchy as the rest of scheduling.
  • Pairs scheduled hours from schedule_shifts with actual punched hours from time_punches and revenue from pos_sales_daily.
  • Six summary tiles: Scheduled hrs / Actual hrs / Variance / Scheduled cost / Actual cost / Labor % of sales.
  • Weekly Sun-Sat breakdown table with OT flag pill (any employee over 40h that week), per-employee table with OT hours and estimated pay.
  • Excel export with three sheets (Summary / Weekly / Per-Employee), currency-formatted cells, no charts.

v2.3.4

minor

GDPR user deletion, retention dashboard, and AEO foundations

Compliance polish, marketing-site overhaul for Answer Engine Optimization, and a broad mobile feature expansion.

Compliance & Security

  • GDPR Article 17 — self-service account deletion with 30-day grace period and PII anonymization.
  • Data retention admin dashboard (/admin/retention) — last-run stats, pending user deletes, manual dry-run and live-run buttons.
  • Soft-delete TTL — items with deletedAt older than 90 days hard-purged (including S3 files) regardless of retention add-on.
  • Pre-purge warning emails 30 days before any data is deleted, deduped to once per 14 days.
  • Retention runs now write audit logs per tenant + platform summary; seven new audit action types.
  • SSO users can now use delete-my-account without a password (session is stronger auth).

POS + True P&L

  • Unified POS auto-sync cron across Square, Clover, and Revel — every 6 hours at 0/6/12/18 UTC.
  • New per-tenant pos_location_mappings table replaces auto-pair-by-creation-order. Manual store mapping UI on every connected POS card.
  • Auto token refresh for Square + Clover (refreshes within 48h of expiry).
  • New True P&L sheet in Professional tier reports — POS Revenue − COGS − Labor per store, with gross margin, prime cost, operating margin.

Mobile (build 225)

  • NexosIQ Search native on iOS and Android — semantic search across invoices, receipts, and vendors via More menu.
  • Mixed-receipt per-line-item business/personal tagging with optimistic UI.
  • Admin inbox keyboard handling fixed on iOS (presentationStyle=fullScreen + KeyboardAvoidingView).
  • Device integrity check on startup wired into mobile crash reporting.
  • Refresh token rotation for biometric unlock — no more storing plaintext password.

Enterprise Bulk Import

  • New NexosIQ Batch pipeline — platform admin bulk-imports thousands of historical invoices at 50% of normal extraction cost.
  • Admin /admin/tenants/[id]/ Bulk Import tab with drag-drop upload, direct-to-S3 via presigned URLs, and progress list auto-refresh every 30s.
  • Capped at 2,000 documents per batch, typical turnaround under 1 hour.

Marketing & AEO

  • 11 new marketing pages: /faq, /about (expanded), /hospitality, /construction, /nonprofit, /compare + /compare/r365 + /compare/marginedge, /whitepaper + /whitepaper/extraction-accuracy, /glossary, /security, /api (human-readable reference).
  • Organization + SoftwareApplication + FAQPage + TechArticle + DefinedTermSet + BreadcrumbList + ComparisonPage JSON-LD across every relevant route.
  • Public OpenAPI 3.1 spec at /openapi.yaml — 7 endpoint groups documented.
  • Homepage: NexosIQ Search visual demo, Developer-first JSON API snippet section, About block with NexosIQ/CostIQ/NexosIQ Search cards.
  • Sitewide Security & Compliance badge row in footer covering encryption, Single Sign-On, MFA, audit trail, and data deletion.
  • Top-nav Solutions dropdown (Hospitality / Construction / Non-Profit) + Compare flat link.
  • Rule 9 audit — all AI-vendor branding scrubbed from user-facing copy including Ava's knowledge base.

v2.3.0

major

First real client, Regions + Districts, and the RAG system

Onboarded our first live paying client — a multi-location operator. Role-based permissions overhaul, region/district hierarchy for multi-location access, and the full NexosIQ Learn retrieval-augmented generation system.

Platform

  • Regions and districts hierarchy — stores belong to a district, districts belong to a region. Regional/area directors have cascading store access.
  • ROLE_HIERARCHY enforced across all write endpoints (invite, update, deactivate, store create/delete, billing).
  • Schema migration service auto-adds missing columns on every API startup — prevents column drift permanently.
  • Multi-vendor PDF split — NexosIQ detects when a single PDF contains multiple vendors' invoices and creates separate records.

NexosIQ Learn (RAG)

  • Per-tenant vector index enabled with high-dimension embeddings, auto-backfill on startup.
  • Few-shot context — past invoices from a vendor injected into extraction prompt for that vendor's next invoice.
  • Chatbot (Ava) answers from real tenant data via vector search.
  • NexosIQ Search across all documents.

v2.2.0

minor

Reports overhaul — 8 new sheets + region/district filter

Major expansion of the Excel report generator: R1 sheets (Reimbursements, Mileage, Expense Reports), R2 compliance sheets (Card Reconciliation, Per Diem, Department Allocation, Policy Violations), R3 Regional Comparison rollup.

Reports

  • Reports R1: Reimbursements, Mileage (per-user), Expense Reports sheets.
  • Reports R2: Card Reconciliation, Per Diem, Department Allocation, Policy Violations.
  • Reports R3: Regional Comparison rollup (Professional tier) — multi-region spend with ranking insights.
  • Scope picker on report page: filter by store, region, or district.
  • Scheduled reports now fire for canceling/past_due tenants, not just active.

v2.1.0

minor

Partner API, white-label, and Platform Embed

Complete Partner API with three tiers (Extraction API, Extraction + Storage, Platform Embed), HMAC-signed webhooks, and deep-link SSO embedding.

Partner API

  • Three commercial tiers with usage-based billing.
  • 200+ REST endpoints with public OpenAPI spec.
  • Webhooks signed with HMAC-SHA256.
  • Sub-tenant provisioning for Platform Embed partners.
  • SAML 2.0 / OIDC SSO with JIT user provisioning.
Want to know when something new ships? Subscribe to the changelog.