← Back to Console Docs

Price Changes

Review, approve, and manage price changes with complete workflow control

Overview

The Price Changes page is the heart of Calibrate's pricing governance system. Every proposed price change goes through a controlled workflow with human-in-the-loop approval before being applied to your platforms.

Access: Navigate to Price Changes in the project sidebar, or visit /p/[your-project]/price-changes

Price Change Workflow

Every price change moves through a series of states in a controlled workflow:

PENDING

Price change has been proposed but not yet reviewed

Available actions:
  • Review details
  • Approve
  • Reject
APPROVED

Price change has been approved and is ready to apply

Available actions:
  • Apply to platforms
  • Reject
APPLIED

Price change has been synced to connected platforms

Available actions:
  • Rollback to previous price
REJECTED

Price change was rejected and will not be applied

Available actions:
  • View reason (read-only)
ROLLED_BACK

Applied price was reverted to its previous value

Available actions:
  • View history (read-only)
FAILED

Error occurred during sync to platform

Available actions:
  • View error details
  • Retry

Workflow Actions

Approve

Mark a pending price change as approved

  1. 1.Review the price change details
  2. 2.Check policy compliance and AI explanation
  3. 3.Click the 'Approve' button
  4. 4.Price change status changes to APPROVED

Note: Approved changes are NOT automatically applied. You must explicitly apply them.

🚀

Apply

Sync an approved price change to your platforms

  1. 1.Ensure price change is in APPROVED status
  2. 2.Click the 'Apply' button
  3. 3.Price change is queued for sync
  4. 4.Monitor connector status for sync progress
  5. 5.Status changes to APPLIED when complete

Note: Applied prices are immediately pushed to connected platforms (Shopify, etc.).

Reject

Reject a price change to prevent it from being applied

  1. 1.Open price change details
  2. 2.Click the 'Reject' button
  3. 3.Optionally provide a reason
  4. 4.Price change status changes to REJECTED

Note: Rejected changes cannot be approved later. You must create a new price change.

↩️

Rollback

Revert an applied price change to its previous value

  1. 1.Find an APPLIED price change
  2. 2.Click the 'Rollback' button
  3. 3.Confirm the rollback action
  4. 4.Previous price is restored in platforms
  5. 5.Status changes to ROLLED_BACK

Note: Rollback creates a new price change in reverse. The original change remains in history.

Price Change Details

Information Display

Click any price change to open the detail drawer, which shows:

  • SKU Code: The specific product variant being changed
  • Price Difference: Old price → New price (with currency symbol)
  • Percentage Change: How much the price increased or decreased
  • Source: Where the change came from (AI, manual, rule, etc.)
  • Created Date: When the price change was proposed
  • Policy Checks: Automated validation results
  • AI Explanation: Context and reasoning for the change
  • Connector Status: Sync progress with platforms

Policy Compliance

Each price change is automatically checked against your pricing policies:

  • Passed Checks: Policy rules that were satisfied
  • Failed Checks: Policy violations that need review

Note: Failed policy checks don't prevent approval - they're advisory warnings to help you make informed decisions.

Search & Filter

Status Filter

Filter price changes by status to focus on specific workflows:

  • Pending: Changes awaiting review (default view)
  • Approved: Changes ready to apply
  • Applied: Changes synced to platforms
  • Rejected: Changes that were declined
  • Failed: Changes with sync errors
  • Rolled Back: Reverted changes

Search

Search for specific price changes by:

  • SKU Code: Find changes for a specific product variant
  • Source: Filter by change source (ai, rule, manual)

Connector Sync Status

Understanding Sync States

When you apply a price change, it's queued for synchronization with your platforms. The connector status shows the sync progress:

  • QUEUED: Price change is waiting to sync
  • 🔄
    SYNCING: Currently syncing to platform
  • SYNCED: Successfully applied to platform
  • ERROR: Sync failed (see error message for details)

Troubleshooting Sync Errors

If a price change fails to sync:

  1. 1.Open the price change details drawer
  2. 2.Check the connector status section for error messages
  3. 3.Common issues: platform credentials, product not found, platform API down
  4. 4.Retry the sync after resolving the issue
  5. 5.Check platform integration status on Integrations page

Pagination

Price changes use cursor-based pagination for efficient loading:

  • Default: 25 price changes per page
  • Use "Next" and "Previous" buttons to navigate
  • Filters and search persist across pages
  • Most recent changes appear first

Bulk Actions

Working with Multiple Price Changes

For large-scale price updates, you can use bulk actions:

  • Select Multiple: Use checkboxes to select multiple price changes (coming soon)
  • Bulk Approve: Approve all selected pending changes at once
  • Bulk Apply: Apply all approved changes to platforms
  • Bulk Reject: Reject multiple unwanted changes

Tip: Use filters to narrow down to the specific changes you want to bulk-process, then select all on the current page.

Best Practices

Review Before Approving
Always check policy compliance, AI explanation, and price change magnitude before approval.
Apply in Batches
For large price updates, apply changes in smaller batches to monitor platform sync success.
Monitor Connector Status
After applying changes, check connector status to ensure successful sync before moving on.
Use Rollback Carefully
Rollbacks create new price changes. Consider if you want to restore the old price or set a different one.
Keep History
Don't delete rejected or rolled-back changes - they provide valuable pricing history and audit trail.

API Reference

The Price Changes API allows programmatic access to price change workflows. All endpoints require authentication via Bearer token.

GET /api/v1/price-changes

List price changes with filters and pagination

QUERY PARAMETERS:
  • • project: Project slug (required)
  • • status: Filter by status (PENDING, APPROVED, APPLIED, etc.)
  • • q: Search query (SKU or source)
  • • cursor: Pagination cursor
  • • limit: Results per page (default: 25)
POST /api/v1/price-changes/:id/approve

Approve a pending price change

POST /api/v1/price-changes/:id/apply

Apply an approved price change to platforms

POST /api/v1/price-changes/:id/reject

Reject a price change

POST /api/v1/price-changes/:id/rollback

Rollback an applied price change to its previous value

Response Example

{
  "id": "string",
  "status": "PENDING" | "APPROVED" | "APPLIED" | "REJECTED",
  "currency": "USD",
  "fromAmount": 2999,  // in cents
  "toAmount": 3499,    // in cents
  "createdAt": "2024-01-15T10:30:00Z",
  "source": "ai" | "rule" | "manual",
  "context": {
    "skuCode": "SKU-123"
  },
  "policyResult": {
    "ok": true,
    "checks": [...]
  },
  "connectorStatus": {
    "target": "shopify",
    "state": "QUEUED" | "SYNCING" | "SYNCED" | "ERROR"
  }
}

Related Documentation