Skip to content

The Price File Tracker

The Price File Tracker (Prices & Products → Price File Tracker, /pim/priceFileTracker) shows, for every live agreement, where each supplier price change currently sits: whether the Price Change Notice (PCN), the PIM price file (PIMR) and the supplier's own price list (MPL) have been uploaded, whether they arrived inside the contracted notice period, whether they have been approved, and whether the PIM file has been imported. Dates are coloured against their targets so late or stalled changes stand out, and the deal team can download the screen for supplier reviews.

It is available to buying-group (member) users only, and that is the whole access model: it is an admin tool, so it deliberately shows every live agreement and every price file on it, whatever the viewer's own file permissions. A file that looked "missing" only because the viewer could not see it would send someone chasing a supplier for nothing. Opening a file from the tracker still goes through the document detail page, which applies the file's own permissions.

How it behaves

One row per agreement and effective date. The effective date is the one the supplier entered on the upload wizard as the date of invoice price change to NBG; if a file has none, its valid-from date is used. A PCN and a PIMR with the same effective date share a row. An MPL sits on the row of the PIMR it was linked to at upload, or on its own effective date when it was uploaded with PCN/PIMR not provided. If a supplier gives the PCN one date and the PIMR the next day, the tracker shows two rows, each with a gap - that gap is the thing to go and fix with the supplier.

Only the latest file of each type is shown. When a type has been uploaded more than once for the same effective date the newest upload is shown and a small +n marker appears; clicking the supplier name opens the full history of every price file on that agreement. Rejected and under-review files are shown just like approved ones - a rejected file still means the supplier sent something and the right file has to be chased.

Columns.

Column Comes from Colour
Supplier / Agreement the agreement's supplier (click for the full file history) with the agreement name beneath it (click to open the deal; hover for its CMT)
Effective Date upload wizard date of invoice price change to NBG hover for deferment period, change-to-market date, negotiator and administrator
Uploaded the file's created date green inside the notice period, red after it; No File in red once the due date has passed, amber before
Due Date effective date minus the agreement's notice period (PCN: price period, default 90 days; PIMR: PIM price change notice, default 30 days) hover for the variance in days
% Change wizard average % price change to NBG (PCN first, else PIMR) hover for the per-range breakdown and justification
Approved approval date, or Pending / Rejected / Moderation green on time, red when approval took longer than 5 days from upload or is still pending past that; hover for who approved or rejected and why; click an approved date to open the file
Imported (PIM file only) first PIM import run for that document green within 4 days of approval, red after; n days from approval while waiting; click to open the supplier's products
Where it is computed from the above one line saying what is outstanding and who it is with
Notes (speech-bubble icon) tracker notes a filled bubble with a count when the row has notes - hover to read them, click to open them; superusers also see an empty bubble on rows without notes and can add or remove notes in the side panel

The target days (90 / 30 / 5 / 4) are defaults. The two notice periods are taken from the agreement when set there, and all four can be overridden per site in siteConfig.priceFileTracker.

Filters. Effective date after (defaults to the start of the month three months ago, so it covers recent history and everything still to come), CMT (matches a deal whose categories sit anywhere under that team, the same reading as the CMT overview), supplier (a searchable dropdown), and Show agreements with no files, which adds a row for every live agreement that has sent no PCN, PIMR or MPL at all. The filters are kept in the page URL so a view can be bookmarked or shared.

Summary badges. The counts in the filter bar (late / rejected, in progress, in PIM, nothing received) are buttons: click one to show only that group, click it again to clear. The counts always describe the whole filtered set, so you can move between groups without losing your place.

Paging, sorting and search are done by the server, 25 rows at a time by default. Every column except Notes sorts; blank cells always sort to the bottom. The grid's search box matches supplier, agreement, CMT, the Where it is line, file names, uploader and notes.

The data is a shared snapshot. Building the tracker means reading every live agreement and every price file on it, so it is built once for the whole site and kept as a file on the shared file store (fileStore/sites/<siteID>/cache/priceFileTracker.json), which every server reads. The panel header shows Data from HH:mm with how long ago that was; hover it for the exact build time and when the next automatic rebuild is due. The snapshot is rebuilt by a scheduled task every hour (five past the hour), automatically on the next request when it is more than 15 minutes old (siteConfig.priceFileTracker.cacheSeconds changes this), or at once when anyone presses Rebuild, which refreshes it for everyone. Notes are not part of the snapshot and always show the latest.

Download writes every row matching the current filters and search, in the grid's current sort order, with every date, status, variance and the latest note, to a spreadsheet.

Notes are written by superusers against a row (agreement + effective date), so they survive even when there is no file to attach them to. They are soft-deleted and audited.

Why does it change unexpectedly

  • A row split in two, or a file moved rows - the supplier gave the PCN and the PIMR different effective dates, or re-uploaded with a different date. The history view shows every file with its own effective date.
  • A due date changed - the agreement's price period or PIM price change notice was edited; due dates are recomputed from the agreement every time.
  • An "Uploaded" cell turned red - the due date is derived from the effective date, so a supplier moving the effective date earlier makes an on-time upload late.
  • An MPL appeared on a different row - the MPL's parent PIMR was chosen at upload; the tracker follows that link regardless of the MPL's own date.
  • A file vanished from the tracker - it was archived, or renamed so its name no longer starts with PCN, PIMR or MPL (the type is the filename prefix stamped by the upload wizard). Permissions are never the reason; the tracker does not apply them.
  • The tracker opens a file you then cannot see - the tracker lists files regardless of permission, but the detail page enforces the file's ACL.
  • A file uploaded a minute ago is not there yet - the tracker is a snapshot (hourly task, or 15 minutes on demand); press Rebuild in the panel header.
  • "Imported" filled in without anyone approving - the import was run directly from the document (admin action), which records an import run even when the file is still pending.

What it is not

  • Not the approval queue - approve and reject from the document search view; the tracker only reflects the result.
  • Not a version history - the DMS keeps none; upload new version overwrites a file in place and the tracker will show the overwritten file's dates (see the document library).
  • Not the price comparison - it says whether a price file arrived and was processed, not what the prices in it did (price comparison).
  • Not the PIM calendar - that lists price validity windows from the catalogue; the tracker follows the files before they get there (PIM calendar).