Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.gocrisp.com/llms.txt

Use this file to discover all available pages before exploring further.

This article explains the two data feeds available in UNFI Insights, why their sales figures differ, and which table to use for each workflow.
Quick takeaway: Use portal tables for general sales reporting and dashboard validation. Use non-portal tables only for category-level workflows, such as Distribution Expansion and Category Performance.

The two UNFI data sources

UNFI provides Crisp with two separate data feeds. Each feed powers different tables in UNFI Insights, and the feeds are not interchangeable. Mixing them is the most common source of confusion when sending UNFI data to a destination.
Portal tablesNon-portal / category tables
Example tablenormalized_unfi_insights_natural_portal_fact_salesnormalized_unfi_insights_natural_fact_sales
Data sourceUNFI Natural Supplier Portal — the same source UNFI Sales Relationship Managers referenceA secondary data feed sent directly from UNFI to Crisp
Best forGeneral sales dashboards and legacy UNFI sales reportingCategory-level data for Distribution Expansion and Category Performance dashboards only

Which table should I use?

It depends on the use case:
  • Recreating or validating Sales dashboards? Use the portal tables. These align with what customers have historically seen in UNFI reporting.
  • Working with category-level data? Use the non-portal / category tables for Distribution Expansion or Category Performance reporting.
Most customers prefer the portal tables because they match legacy UNFI reporting.

Best practices when joining tables

The key rule is simple: portal fact tables must be joined to portal dimension tables, and non-portal fact tables must be joined to non-portal dimension tables. Normalized tables between the two data sets have differing IDs that are not designed to join.
Do not mix portal and non-portal tables. If you join normalized_unfi_insights_natural_portal_fact_sales to normalized_unfi_insights_natural_dim_product, you will encounter mismatches. Always make sure the fact and dimension tables come from the same feed.

Correct portal join example

✓ Use this✗ Not this
normalized_unfi_insights_natural_portal_fact_salesnormalized_unfi_insights_natural_portal_fact_sales
joined tojoined to
normalized_unfi_insights_natural_portal_dim_productnormalized_unfi_insights_natural_dim_product

You may also see these called “P1” and “P2”

Some internal documentation and support conversations use P1 and P2 as shorthand for the two feeds.
TermSame asDashboards poweredRecommendation
P1Non-portal / category tablesDistribution Expansion, Category Performance, Spoilage RiskUse for category-level analysis only
P2Portal tablesSales dashboard and everything elseUse as the default for sales analysis
Why P1 and P2 cannot be cross-joined: P1 and P2 have different sales dollar computations and different schemas. For example, P1 has product_code and product_case_quantity fields, while P2 uses a separate pack_size dimension with no product_code field. The two feeds were not built to reconcile with each other, so joining them produces mismatches in both sales figures and UPC data.

Quick reference

I want to…Use these tablesNotes
Validate or recreate Sales dashboardsPortal tables (P2)Matches legacy UNFI reporting
Analyze Distribution Expansion or Category PerformanceNon-portal tables (P1)Used in category-level dashboards
Join fact tables to dimension tablesMatch P1 ↔ P1 and P2 ↔ P2Never mix tables when joining