> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sourcemedium.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reporting Currency

> How SourceMedium reports commerce, subscription, and advertising metrics in one currency while preserving source values for reconciliation.

SourceMedium can report supported money metrics in one **reporting currency**, even when the underlying transactions or advertising accounts use different currencies.

When reporting-currency conversion is enabled for your workspace:

* Standard money fields contain values in your reporting currency.
* Source currency and original values remain available where supported.
* Each advertising account is handled separately before account totals are combined.
* Records already in the reporting currency pass through without changing value.

<Info>
  Reporting-currency conversion is configured with SourceMedium. If you are unsure which currency your workspace uses, ask your SourceMedium team before reconciling totals.
</Info>

## What is converted

| Data                         | Examples                                                                                                                        | Exchange-rate date                                          |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| Orders and order lines       | Revenue, discounts, refunds, shipping, taxes, and duties                                                                        | Order processed date, with order created date as a fallback |
| Advertising                  | Spend, platform-reported revenue, and available attribution-window revenue for Google Ads, Meta, TikTok, AppLovin, and Snapchat | Advertising report date                                     |
| Subscription records         | Subscription price and MRR                                                                                                      | Subscription start date                                     |
| Daily subscription reporting | New, cancelled, active, and dunning MRR                                                                                         | Date of the daily metric                                    |
| Subscription cohorts         | Starting and retained MRR                                                                                                       | Cohort activity month                                       |

For example, one Meta account may report in USD while another reports in a different currency. SourceMedium converts each supported account using its own source currency and report date, then combines the results in the workspace reporting currency. Other advertising sources stay in their native currency unless SourceMedium has enabled conversion for that surface.

Subscription currency conversion applies to subscription price and MRR. Collected charge revenue remains dependent on the data and currency supplied by the subscription platform.

## Which fields should I use?

Use the standard money fields for normal reporting:

* Orders: revenue, discount, refund, shipping, tax, and duty fields such as `order_total_revenue` and `order_net_revenue`
* Order lines: the matching revenue, discount, refund, shipping, tax, and duty fields such as `order_line_total_revenue` and `order_line_net_revenue`
* Advertising: `ad_spend`, `ad_platform_reported_revenue`, and available revenue-window fields on supported platforms
* Subscriptions: `subscription_price`, `subscription_mrr`, and report-level `mrr_*` fields

Use the original and converted fields when reconciling a value:

| Field pattern                        | Meaning                                                            |
| ------------------------------------ | ------------------------------------------------------------------ |
| `*_original_currency_code`           | Currency supplied by the source                                    |
| `*_converted_currency_code`          | Workspace reporting currency                                       |
| `*_original_<amount>`                | Amount before conversion                                           |
| `*_converted_<amount>`               | Amount after conversion                                            |
| `*_currency_conversion_rate_applied` | Exchange rate used for the record                                  |
| `is_*_currency_canonicalized`        | Whether the standard money fields use the reporting-currency value |

<Note>
  `order_currency_code` remains the currency in which the order was placed. It can therefore differ from `order_converted_currency_code`, even though standard revenue fields such as `order_total_revenue` use the reporting currency.
</Note>

## Verify order conversion

This query compares source and reporting currencies and totals:

```sql theme={null}
SELECT
  order_currency_code AS source_currency,
  order_converted_currency_code AS reporting_currency,
  COUNT(*) AS order_count,
  ROUND(SUM(order_original_total_revenue), 2) AS original_total_revenue,
  ROUND(SUM(order_total_revenue), 2) AS reporting_total_revenue
FROM `your_project.sm_transformed_v2.obt_orders`
WHERE is_order_sm_valid = TRUE
GROUP BY 1, 2
ORDER BY 1, 2;
```

For converted rows, `reporting_currency` should match your workspace reporting currency. Source currencies may vary.

## Reconcile advertising accounts

Advertising accounts may use different source currencies. Reconcile each account separately before comparing a platform total:

```sql theme={null}
SELECT
  source_system,
  ad_account_id,
  ad_account_name,
  COUNT(*) AS row_count,
  ROUND(SUM(ad_spend), 2) AS ad_spend,
  ROUND(SUM(ad_platform_reported_revenue), 2) AS platform_reported_revenue
FROM `your_project.sm_transformed_v2.rpt_ad_performance_daily`
WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY 1, 2, 3
ORDER BY 1, 2;
```

Use the same date range and attribution window in the advertising platform. If an account's source currency differs from your reporting currency, compare against the converted result rather than the unconverted platform total.

## Verify subscription conversion

```sql theme={null}
SELECT
  subscription_original_currency_code AS source_currency,
  subscription_currency_code AS reporting_currency,
  COUNT(*) AS subscription_count,
  ROUND(SUM(subscription_original_mrr), 2) AS original_mrr,
  ROUND(SUM(subscription_mrr), 2) AS reporting_mrr
FROM `your_project.sm_transformed_v2.dim_subscriptions`
GROUP BY 1, 2
ORDER BY 1, 2;
```

### Why subscription MRR can differ between tables

`dim_subscriptions` and `obt_subscriptions` convert each subscription using its start date. The daily subscription report converts MRR using each reporting date, so the value of an existing subscription can change when exchange rates move.

As a result:

* Summing active subscription records may not exactly match daily reported MRR.
* Daily MRR may change because of exchange-rate movement as well as subscription activity.
* Cohort MRR uses the relevant cohort activity month.

These differences reflect the date represented by each table.

<Warning>
  Medusa supplies subscription records but not subscription charge history. Medusa subscription MRR describes recurring subscription value; it should not be treated as collected charge revenue or realized subscriber LTV.
</Warning>

## Data that is not converted automatically

Values entered through configuration sheets, including product cost, shipping cost, fulfillment cost, and merchant processing fees, remain in the currency in which they were entered unless their documentation says otherwise. Profit fields that mix converted revenue with those costs are in reporting currency only if the configured costs were entered in that same currency.

## Related resources

* [Revenue Fields](/docs/help-center/core-concepts/data-definitions/revenue-fields)
* [`obt_orders`](/docs/data-activation/data-tables/sm_transformed_v2/obt_orders)
* [`rpt_ad_performance_daily`](/docs/data-activation/data-tables/sm_transformed_v2/rpt_ad_performance_daily)
* [Return on Ad Spend (ROAS)](/docs/help-center/common-analyses/roas)
* [Subscription Overview](/docs/data-activation/managed-bi-v1/modules/subscription-overview-module)
