Enterprise DNA

Instead of Opmetrix

Opmetrix charges by the rep to look at your own round. Keep the round.

Field Sales for Claude Code is an open-source field sales and merchandising system that is just Postgres and Claude Code. Call cycles, shelf and planogram checks, promotion compliance, orders written in store and credits, asked for in plain language. No seats, no tiers, no add-ons.

What you are paying for

Most of an Opmetrix bill is the front end

The outlets, the call cycles and the order history are yours. The app around them is what you rent, and the rent is set per person, per month, before the project fee to set it up.

paid

A seat for everyone in the field

Every rep, merchandiser, telesales person and manager is a monthly seat, whether they are in store five days a week or two.

hub

The connector to your ERP

The link into MYOB, Xero or NetSuite is the vendor's to build and maintain, and it is why a disabled product can take an hour or two to disappear from the app.

build

Implementation and configuration

The customer list, the product list, the price rules and the in-store forms are a project priced before the subscription starts.

dashboard

Reports you asked for and did not get

Reporting is the first thing users complain about. A distribution report by category is a support ticket, not a filter you can build.

layers

Pricing rules that only bend so far

Discount structures handle one customer and product category combination. The way you actually price ends up in a spreadsheet beside the app.

schedule

Admin instead of selling

Keeping the customer and product lists tidy by hand, rescheduling calls in the journey planner, chasing sync conflicts on import.

What you get instead

A field sales system you talk to

The round

Call cycles, coverage and a rep week

Every outlet carries its own cycle. One command shows who is due, who is late, and what each late call is worth, in the sequence you drive.

  • check Every outlet on its own cycle, with days late and ninety day value beside it
  • check Coverage as one number: the share of the estate not past its cycle
  • check Calls, strike rate, average order and minutes per call, per rep, against target
  • check Move four outlets between two reps and see what happens to both before you tell anyone

In store

Shelf, planogram and promotion compliance

Facings, shelf prices, empty shelves and promotion checks are rows you can question, not photos in a folder nobody opens.

  • check Facings, shelf price, empty shelf and off planogram, per outlet and per line
  • check Promotion compliance: display up, ticket up, price correct, and who has never been checked
  • check The shelf price of every line across the estate, so you can see who is pricing you out
  • check Which promotions lifted sales only in the stores that ticketed them correctly

Orders and credits

Written in store, handed to the ERP, credited properly

Orders come out at the price list the outlet is on. Credits cannot skip the authorisation step, and batch tracked lines cannot skip the batch code.

  • check Orders in cases at the outlet price list, with the live promotion picked up on the line
  • check One command writes the ERP CSV and marks the batch exported
  • check Credits with the authorisation step enforced and batch codes required on tracked lines
  • check Every batch you have credited, with outlets and dates, in one query the day a recall notice lands

Yours

Your Postgres, your rules, your name on the paperwork

Plain tables you own, a compliance rule book you can edit, and documents that come out with your logo on them.

  • check Import your Opmetrix, Perenso or Skynamo export in one command, matched on customer code
  • check /compliance checks the records against pricing law, the Grocery Supply Code and batch traceability, each rule citing its source
  • check npm run docs puts your brand on visit summaries, rep weekly reports and order confirmations
  • check Add a field, a rule or a whole command by describing it. MIT licence, no vendor to leave.

What it looks like

Real commands, real answers

Three runs on the demo data that ships with Field Sales for Claude Code. Type the command in Claude Code, or ask for it in your own words.

call-cycle
$ npm run field -- call-cycle
Call cycle (18 outlets, 5 past due)
===================================
  Code    Outlet                     Rep            Every  Day  Last call   Due          Late  Value 90d
  ------  -------------------------  -------------  -----  ---  ----------  ----------  -----  ---------
  KM-205  Bay Cafe Supply Co         Dev Patel        14d  Thu  2026-08-12  2026-08-26    19d         $0
  KM-303  Woolworths Johnsonville    Sarah Coombes     7d  Wed  2026-08-20  2026-08-27    18d    $13,926
  KM-105  Unichem Browns Bay         Mike Ellis       28d  Thu  2026-08-04  2026-09-01    13d     $2,961
  KM-202  Pak n Save Rotorua         Dev Patel         7d  Tue  2026-08-29  2026-09-05     9d    $13,639
  KM-102  Pak n Save Albany          Aroha Ngata       7d  Tue  2026-09-02  2026-09-09     5d    $12,941
  KM-207  Woolworths Greerton        Dev Patel         7d  Thu  2026-09-07  2026-09-14  today    $14,204
  KM-109  Woolworths Glenfield       Aroha Ngata       7d  Wed  2026-09-08  2026-09-15  in 1d    $15,366
  KM-103  Woolworths Takapuna        Aroha Ngata       7d  Wed  2026-09-09  2026-09-16  in 2d    $15,051
  KM-304  New World Karori           Sarah Coombes     7d  Thu  2026-09-09  2026-09-16  in 2d    $13,312
  KM-111  Fresh Choice Mairangi Bay  Mike Ellis       14d  Fri  2026-09-02  2026-09-16  in 2d     $7,450
  KM-201  New World Hamilton East    Dev Patel         7d  Mon  2026-09-10  2026-09-17  in 3d    $17,449
  KM-203  Night n Day Tauranga       Dev Patel        14d  Wed  2026-09-03  2026-09-17  in 3d     $3,556
  KM-101  New World Milford          Aroha Ngata       7d  Tue  2026-09-11  2026-09-18  in 4d    $14,112
  KM-305  Commonsense Wellington     Sarah Coombes    14d  Fri  2026-09-04  2026-09-18  in 4d     $7,735
  KM-301  New World Thorndon         Sarah Coombes     7d  Mon  2026-09-12  2026-09-19  in 5d    $16,911
  KM-104  Four Square Devonport      Mike Ellis       14d  Thu  2026-09-05  2026-09-19  in 5d     $7,780
  KM-302  Moore Wilsons Wellington   Sarah Coombes    14d  Tue  2026-09-06  2026-09-20  in 6d     $6,921
  KM-108  New World Long Bay         Aroha Ngata       7d  Mon  2026-09-13  2026-09-20  in 6d    $16,821
attention
$ npm run field -- attention
Needs attention (45)
====================
  Promotion wrong in store: 15  |  Credit waiting on authorisation: 2  |  Order not in the ERP: 1  |  Call overdue: 5  |  Outlet has gone quiet: 1  |  Out of stock on shelf: 21

  What                            Record                      Outlet                     Rep            Days   Value  Detail
  ------------------------------  --------------------------  -------------------------  -------------  ----  ------  ---------------------------------------
  Promotion wrong in store        Spring crackers 2 for $5    Woolworths Glenfield       Aroha Ngata      13          no display, ticket missing, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    Fresh Choice Mairangi Bay  Mike Ellis       12          display up, ticket missing, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    Woolworths Takapuna        Aroha Ngata      12          display up, ticket missing, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    New World Milford          Aroha Ngata      10          display up, ticket missing, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    New World Long Bay         Aroha Ngata       8          no display, ticket up, price right
  Promotion wrong in store        Spring crackers 2 for $5    Farro Fresh Orewa          Aroha Ngata       6          display up, ticket up, price wrong
  Promotion wrong in store        Southern Roast 1kg at $...  Farro Fresh Orewa          Aroha Ngata       6          display up, ticket up, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    New World Karori           Sarah Coombes     5          display up, ticket up, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    New World Te Awamutu       Dev Patel         5          display up, ticket up, price wrong
  Promotion wrong in store        Southern Roast 1kg at $...  New World Te Awamutu       Dev Patel         5          display up, ticket up, price wrong
  Promotion wrong in store        Southern Roast 1kg at $...  New World Karori           Sarah Coombes     5          display up, ticket up, price wrong
  Promotion wrong in store        Southern Roast 1kg at $...  New World Hamilton East    Dev Patel         4          display up, ticket missing, price wrong
  Promotion wrong in store        Spring crackers 2 for $5    New World Hamilton East    Dev Patel         4          display up, ticket missing, price wrong
  Promotion wrong in store        Southern Roast 1kg at $...  New World Milford          Aroha Ngata       3          no display, ticket up, price right
  Promotion wrong in store        Spring crackers 2 for $5    New World Milford          Aroha Ngata       3          no display, ticket up, price right
  Credit waiting on authorisa...  RET-1041                    Woolworths Takapuna        Aroha Ngata       9    $500  damaged, requested 2026-09-05
  Credit waiting on authorisa...  RET-1044                    Bay Cafe Supply Co         Dev Patel         4    $218  overstock, requested 2026-09-10
  Order not in the ERP            SO-260913-108               New World Long Bay         Aroha Ngata       1  $1,191  14 cases, submitted 2026-09-13
promo-compliance
$ npm run field -- promo-compliance
Promotion compliance
====================
  Code        Promotion                     Ends        Checks  Outlets  Display up  Price ok  Breaches
  ----------  ----------------------------  ----------  ------  -------  ----------  --------  --------  ----------
  ROAST-1KG   Southern Roast 1kg at $19.99  2026-10-05      11       11         91%       64%         4  ######....
  SPRING-CRK  Spring crackers 2 for $5      2026-09-28      24       16         88%       67%         8  #######...

What is wrong in store, last 28 days
====================================
  Date        Promo       Outlet                     Rep            Display  Ticket   Ticket  Should be  Note
  ----------  ----------  -------------------------  -------------  -------  -------  ------  ---------  ----------------------------------
  2026-09-11  ROAST-1KG   New World Milford          Aroha Ngata    MISSING  up       $19.99     $19.99
  2026-09-11  SPRING-CRK  New World Milford          Aroha Ngata    MISSING  up        $5.00      $5.00
  2026-09-10  SPRING-CRK  New World Hamilton East    Dev Patel      up       MISSING              $5.00  No promotion ticket on the shel...
  2026-09-10  ROAST-1KG   New World Hamilton East    Dev Patel      up       MISSING             $19.99  No promotion ticket on the shel...
  2026-09-09  SPRING-CRK  New World Te Awamutu       Dev Patel      up       up        $5.78      $5.00  Shelf ticket still shows the ev...
  2026-09-09  ROAST-1KG   New World Te Awamutu       Dev Patel      up       up       $24.50     $19.99  Shelf ticket still shows the ev...
  2026-09-09  ROAST-1KG   New World Karori           Sarah Coombes  up       up       $24.50     $19.99  Shelf ticket still shows the ev...
  2026-09-09  SPRING-CRK  New World Karori           Sarah Coombes  up       up        $5.78      $5.00  Shelf ticket still shows the ev...
  2026-09-08  ROAST-1KG   Farro Fresh Orewa          Aroha Ngata    up       up       $24.50     $19.99  Shelf ticket still shows the ev...
  2026-09-08  SPRING-CRK  Farro Fresh Orewa          Aroha Ngata    up       up        $5.78      $5.00  Shelf ticket still shows the ev...
  2026-09-06  SPRING-CRK  New World Long Bay         Aroha Ngata    MISSING  up        $5.00      $5.00
  2026-09-04  SPRING-CRK  New World Milford          Aroha Ngata    up       MISSING              $5.00  No promotion ticket on the shel...
  2026-09-02  SPRING-CRK  Woolworths Takapuna        Aroha Ngata    up       MISSING              $5.00  No promotion ticket on the shel...
  2026-09-02  SPRING-CRK  Fresh Choice Mairangi Bay  Mike Ellis     up       MISSING              $5.00  No promotion ticket on the shel...

Ask it anything

Questions Opmetrix cannot answer

Every one of these is a real question the demo answers today. Yours will be different, and that is the point.

chat_bubble Which outlets do not order a line that outlets like them do, and what is that gap worth a year?
chat_bubble Which promotions lifted sales only in the stores that ticketed them correctly?
chat_bubble What does each outlet cost in minutes in store, against what it buys in ninety days?
chat_bubble Which blank calls share a reason, and is that a range problem or a pricing problem?
chat_bubble Which outlets are visited on time every cycle and are still shrinking?
chat_bubble If four outlets move from one rep to another, what happens to each call load and ninety day value?
chat_bubble Which lines are out of stock most often in the stores that sell them fastest?
chat_bubble What have the four weekly outlets bought in a year, and what would moving them to eight weekly cost?
chat_bubble Which shelf prices are more than fifteen percent out of line across the estate?
chat_bubble Every batch of a product we have credited, with outlets and dates, the day the recall notice arrives.

Honest trade-offs

What you give up

  • remove_circle A phone app in the aisle. A rep works from a laptop between calls, or from the Claude app reading an export. If your team keys orders at the shelf with no signal, keep the app you have.
  • remove_circle Photos taken in store, and a map. There is no camera and no drag-and-drop route. The shelf check holds a file reference, and the images stay where your team already puts them.
  • remove_circle Live stock at the shelf, and a vendor help desk. Availability is an ERP feed and it stays an ERP job. The repo is open source, and Enterprise DNA supports the installed version.

Two ways to run it

Run it yourself, or have it run for you

Open source

Run it yourself

Free

  1. 1 Clone the repo
  2. 2 npm run demo, then open the folder in Claude Code
  3. 3 Type /call-cycle
  4. 4 Import your Opmetrix export and point it at your own Postgres
Get it on GitHub

Omni by Enterprise DNA

Have Enterprise DNA install it

One setup fee, then a monthly retainer

  • check We migrate your Opmetrix outlets, contacts, call cycles and order history
  • check We connect your ERP so orders go out and price lists come in
  • check We write the commands and the compliance rules for your category
  • check It runs inside Omni, our managed Command Center, with the rest of your business
Book a discovery call

Questions

Instead of Opmetrix, answered

My reps live on a phone in a chiller aisle. Does this work? expand_more

Not the way the app does, and we will not pretend otherwise. There is no offline phone app. Today a rep runs it from a laptop between calls, which is how a lot of teams already write the day up, or reads an export in the Claude app. If your team must key an order at the shelf with no signal, keep the app for the reps and use this for the reporting, the compliance and the management side. That alone takes seats off the bill.

What happens to five years of order history? expand_more

It comes with you. Export customers, contacts and the order history report from Opmetrix HQ as CSV, run one import command, and outlets, contacts, reps, territories, call cycles, orders and order lines land in your own Postgres. Run it with --dry-run first and it tells you what it would create before it writes anything.

How does an order get to our ERP? expand_more

One command writes every submitted order to a CSV and marks the batch exported. You feed that to MYOB, Xero, NetSuite or whatever sits behind you, the same way you do now. Nothing is sent from the repo on its own. If you want the connection automated, that is part of what the installed version does.

Who keeps the compliance rules up to date? expand_more

You do, and the file makes that easy. docs/compliance.md holds six rules with their sources: promotional pricing under the Fair Trading Act, was prices, promotion funding under the Grocery Supply Code, batch traceability under the Food Act, credit note authorisation, and record retention. Each one has the SQL that finds a breach. Change a rule and the check changes with it. It is not legal advice, it is your rule book pointed at your data.

What does the installed version add? expand_more

Installation, the migration off Opmetrix, the ERP connection, commands written for your category and your trading terms, the compliance rules checked against your own agreements, and someone to call. It runs alongside everything else Enterprise DNA runs for you.

Stop paying by the rep to look at your own call cycle

30 minutes with Sam. We look at what you pay Opmetrix for, what your field team actually uses, and what the installed version would look like for you. If it is a fit, we install it. If it is not, take the repo and run it yourself.

Field Sales for Claude Code is MIT licensed and published by Enterprise DNA at github.com/Enterprise-DNA-OS/field-sales-for-claude-code.