---
title: Policy Packs
description: How c15t resolves regional consent policies and what a policy pack controls.
---
<import src="../../../shared/concepts/policy-packs.mdx#overview" />

<import src="../../../shared/concepts/policy-packs.mdx#quickstart" />

<import src="../../../shared/concepts/policy-packs.mdx#what-users-see" />

<import src="../../../shared/concepts/policy-packs.mdx#resolution-flow" />

Inspect the resolved policy at runtime with `useConsentManager()`:

```tsx
import { useConsentManager } from '@c15t/react';

function PolicyDebug() {
  const { locationInfo, model, policy, policyDecision } = useConsentManager();

  return (
    <pre>
      {JSON.stringify(
        {
          country: locationInfo?.countryCode,
          region: locationInfo?.regionCode,
          model,
          policyId: policy?.id,
          matchedBy: policyDecision?.matchedBy,
          fingerprint: policyDecision?.fingerprint,
        },
        null,
        2
      )}
    </pre>
  );
}
```

<import src="../../../shared/concepts/policy-packs.mdx#common-patterns" />

<import src="../../../shared/concepts/policy-packs.mdx#re-prompting" />

<import src="../../../shared/concepts/policy-packs.mdx#design-guidelines" />

> ℹ️ **Info:**
> For provider setup, see the React policy pack guide. For backend configuration, see the self-host guide.
