On this page
DemosSnowflake Marketplace sample
Reference

Forgewell Analytics Demo

A synthetic subscription wellness company that joins Pendo product usage, Stripe billing, and GA4 acquisition in one account-level model. Use it to test product-to-revenue analysis, semantic views, and Cortex questions without customer data.

Free · Secure share · Cortex AI-ready · All regions

Last updated
Sample version
v1.0
Data window
Nov 2025 to Oct 2026
Rows
300 accounts / 1M events
Share
Secure share
Regions
All regions
Refresh
Static

The sample contains 300 accounts, 2,837 visitors, 999,846 Pendo events, and 1,591 Stripe invoices across 12 months. Every row is synthetic. No real people, customers, or Pendo customer data are included.

First run

The share exposes the SECURE schema only, using Snowflake Secure Data Sharing. Source schemas stay internal.

  1. Get the listing.Open the listing on Snowflake Marketplace and use the Get dialog. Choose the role that should read the sample and keep the default database name unless you have a reason to rename it.
  2. Create the database.The Get flow creates a database from the share. If your account requires it, grant imported privileges on that database to the role your team uses for analysis.
  3. Run the first query.Replace FORGEWELL_DEMO if you renamed the database during creation.
    First query
    SELECT *
    FROM FORGEWELL_DEMO.SECURE.ACCOUNT_360
    LIMIT 10;

  4. Verify the sample.The account view should return 300 rows. Check the build date and data window in the config view.
    Verify the sample
    SELECT COUNT(*) AS ACCOUNTS
    FROM FORGEWELL_DEMO.SECURE.ACCOUNT_360;
    
    SELECT COMPANY_NAME, IS_SYNTHETIC, START_DATE, END_DATE, GENERATED_AT
    FROM FORGEWELL_DEMO.SECURE.DEMO_CONFIG;

If the first query fails

  • Database not found: confirm the name you chose in the Get dialog, then update the query.
  • Insufficient privileges: grant imported privileges on the database to the role you are using.
  • Region mismatch: confirm the listing is available in your region under Region Availability.

Query cookbook

Six recipes for common product-to-revenue questions. Outputs are illustrative, tied to sample version v1.0, and show the shape of the answer rather than exact production values.

1. Revenue per acquisition channel

Which channel brings in the most revenue per paying account?

SQL
SELECT ACQUISITION_CHANNEL,
       SIGNUPS,
       PAYING_ACCOUNTS,
       SIGNUP_TO_PAID_RATE,
       REVENUE_PER_PAYING_ACCOUNT_USD
FROM FORGEWELL_DEMO.SECURE.ACQUISITION_TO_REVENUE
ORDER BY REVENUE_PER_PAYING_ACCOUNT_USD DESC;

Illustrative output
ChannelSignupsPayingPaid rateRevenue / payer
Partner52030057.7%$2,180
Organic77042054.5%$1,840
Paid search69036052.2%$1,720
Social43021048.8%$1,540

What it proves: Partner traffic converts at the highest rate and produces the highest revenue per payer in this sample.

2. Feature lift for active versus canceled accounts

Which product behaviors are associated with retention?

SQL
SELECT FEATURE,
       AVG_ACTIVE_USES,
       AVG_CANCELED_USES,
       ACTIVE_TO_CANCELED_LIFT
FROM FORGEWELL_DEMO.SECURE.FEATURE_LIFT
ORDER BY ACTIVE_TO_CANCELED_LIFT DESC;

Illustrative output
FeatureActive usesCanceled usesLift
Goals8.62.14.1x
Reports6.21.83.4x
Integrations5.41.92.8x
Export3.11.22.6x

What it proves: Goal setting has the widest usage gap between retained and canceled accounts.

3. Activation by channel

Where does the signup-to-paid funnel break?

SQL
SELECT CHANNEL,
       SIGNUPS,
       ACTIVATED,
       PAID,
       ACTIVATION_RATE,
       PAID_RATE
FROM FORGEWELL_DEMO.SECURE.ACTIVATION_FUNNEL
ORDER BY ACTIVATION_RATE DESC;

Illustrative output
ChannelSignupsActivatedPaidActivationPaid rate
Organic77062042080.5%54.5%
Paid search69054036078.3%52.2%
Partner52041030078.8%57.7%
Social43030021069.8%48.8%

What it proves: Social loses the most accounts before activation, while Partner converts the best after activation.

4. At-risk accounts

Which accounts need attention this week?

SQL
SELECT ACCOUNT_NAME,
       SUBSCRIPTION_STATUS,
       EVENTS_30D,
       OPEN_INVOICES,
       OPEN_AMOUNT_USD,
       RISK_SIGNALS
FROM FORGEWELL_DEMO.SECURE.CHURN_RISK
WHERE RISK_SIGNALS > 0
ORDER BY RISK_SIGNALS DESC, EVENTS_30D ASC;

Illustrative output
AccountStatusEvents 30dOpen invoicesOpen amountSignals
Northstar Labspast_due122$8402
Harbor Fitnessactive81$3202
Cedar Studiotrialing51$01

What it proves: The highest-risk accounts combine low usage with unpaid invoices.

5. Revenue by usage quartile

Do the heaviest product users generate more revenue and churn less?

SQL
WITH usage AS (
  SELECT u.ACCOUNT_ID,
         u.LIFETIME_REVENUE_USD,
         u.EVENTS_90D,
         a.SUBSCRIPTION_STATUS,
         NTILE(4) OVER (ORDER BY u.EVENTS_90D) AS QUARTILE
  FROM FORGEWELL_DEMO.SECURE.REVENUE_BY_USAGE u
  JOIN FORGEWELL_DEMO.SECURE.ACCOUNT_360 a
    ON a.ACCOUNT_ID = u.ACCOUNT_ID
)
SELECT QUARTILE,
       COUNT(*) AS ACCOUNTS,
       ROUND(AVG(LIFETIME_REVENUE_USD), 0) AS AVG_REVENUE_USD,
       ROUND(
         AVG(CASE WHEN SUBSCRIPTION_STATUS = 'canceled' THEN 1 ELSE 0 END),
         3
       ) AS CHURN_RATE
FROM usage
GROUP BY 1
ORDER BY 1;

Illustrative output
QuartileAccountsAvg revenueChurn rate
Q1 lowest usage75$64031%
Q275$1,12022%
Q375$1,76014%
Q4 highest usage75$2,3807%

What it proves: Revenue rises and churn falls as 90-day product usage increases.

6. Cortex Analyst question

Which channel has the highest revenue per paying account?

Cortex prompt
Which acquisition channel has the highest revenue per paying account, and how many paying accounts does it have?

Illustrative output
Expected answerValue
ChannelPartner
Revenue per paying accountAbout $2,180
Paying accounts300

What it proves: Cortex can answer the core channel question from FORGEWELL_SEMANTIC without writing SQL.

Schema reference

Every object in the share, with its grain and key columns. The six featured objects appear first. Search by object, description, or column name.

Showing 29 of 29 objects.

ACCOUNT_360Featured

One row per account

Plan, channel, region, industry, subscription status, lifetime revenue, and 90-day product usage.

Keys: ACCOUNT_ID

Data dictionary
MATCHEDPAGEEVENTSFeatured

One row per page-matched event

Visitor, account, page, feature, guide, timestamp, browser, geography, and event properties.

Keys: VISITORID, ACCOUNTID, MATCHABLEID

Data dictionary
EVENTFeatured

One row per GA4 event

Acquisition, session, device, geography, and event parameters. Signups are modeled from account creation.

Keys: USER_ID, USER_PSEUDO_ID, USER_PROPERTY_ACCOUNT_ID

Data dictionary
INVOICEFeatured

One row per invoice

Billing period, status, amount due, amount paid, and account metadata. Amounts are in cents.

Keys: CUSTOMER_ID, SUBSCRIPTION_ID

Data dictionary
CHURN_RISKFeatured

One row per subscription

Subscription status, 30-day usage, open invoices, and risk signals for active, trialing, and past-due accounts.

Keys: ACCOUNT_ID, SUBSCRIPTION_ID

Data dictionary
ACQUISITION_TO_REVENUEFeatured

One row per acquisition channel

Signups, paying accounts, signup-to-paid rate, revenue per paying account, and revenue per signup.

Keys: ACQUISITION_CHANNEL

Data dictionary
ALLEVENTSPendo

One row per Pendo event

All captured events with event type, URL, properties, visitor, and account identifiers.

Keys: VISITORID, ACCOUNTID, PERIODID

Data dictionary
VISITORSPendo

One row per visitor

Visitor identity, first visit, last visit, and account linkage.

Keys: ID, ACCOUNTID

Data dictionary
ACCOUNTSPendo

One row per account

Account identity and first-visit metadata.

Keys: ID

Data dictionary
PAGESPendo

One row per page definition

Page identifier, name, rules, and soft-delete state.

Keys: PAGEID

Data dictionary
FEATURESPendo

One row per feature definition

Feature identifier, name, rules, and soft-delete state.

Keys: FEATUREID

Data dictionary
GUIDESPendo

One row per guide definition

Guide steps, polls, targeting, and soft-delete state.

Keys: GUIDEID

Data dictionary
VISITORMETADATAPendo

One row per visitor and metadata field

Visitor metadata values such as role, department, and region.

Keys: VISITORID, NAME

Data dictionary
ACCOUNTMETADATAPendo

One row per account and metadata field

Account metadata values such as plan, channel, region, and industry.

Keys: ACCOUNTID, NAME

Data dictionary
CUSTOMERStripe

One row per Stripe customer

Customer record with metadata for account_id, plan, channel, region, and industry.

Keys: ID

Data dictionary
SUBSCRIPTIONStripe

One row per subscription

Subscription status, quantity, plan, and billing period.

Keys: ID, CUSTOMER_ID

Data dictionary
INVOICE_LINE_ITEMStripe

One row per invoice line

Line-level amount, quantity, and price for each invoice.

Keys: ID, INVOICE_ID

Data dictionary
CHARGEStripe

One row per charge

Payment attempt, status, amount, and customer.

Keys: ID, CUSTOMER_ID

Data dictionary
PRODUCTStripe

One row per product

Product name, description, and active state.

Keys: ID

Data dictionary
PRICEStripe

One row per price

Price amount, currency, interval, and product.

Keys: ID, PRODUCT_ID

Data dictionary
BALANCE_TRANSACTIONStripe

One row per balance transaction

Balance impact, type, amount, and source charge.

Keys: ID, SOURCE_ID

Data dictionary
ACTIVATION_FUNNELAnalytics

One row per acquisition channel

Signups, activated accounts, paid accounts, and conversion rates.

Keys: CHANNEL

Data dictionary
FEATURE_ADOPTIONAnalytics

One row per month and account

Monthly feature usage by account.

Keys: ACCOUNT_ID, FEATURE, MONTH

Data dictionary
FEATURE_LIFTAnalytics

One row per feature

Average feature usage for active versus canceled accounts and the lift ratio.

Keys: FEATURE

Data dictionary
REVENUE_BY_USAGEAnalytics

One row per account

Plan, 90-day events, 90-day users, and lifetime revenue for usage quartiles.

Keys: ACCOUNT_ID

Data dictionary
SESSIONSAnalytics

One row per GA4 session

Session engagement, acquisition source, device, and geography.

Keys: SESSION_ID, USER_ID

Data dictionary
DEMO_CONFIGAnalytics

One row per sample build

Sample version, generated timestamp, and data window metadata.

Keys: COMPANY_NAME

Data dictionary
DATA_DICTIONARYAnalytics

One row per documentation chunk

Table, view, metric, and join documentation used by Cortex Search.

Keys: CHUNK_ID

Data dictionary
FORGEWELL_SEMANTICCortex

Semantic view

Account-level semantic view over ACCOUNT_360 with dimensions and metrics for Cortex Analyst.

Keys: ACCOUNT_ID

Data dictionary

Join map

Pendo, Stripe, and GA4 meet on the account. Use the join keys below for exact mappings.

Pendovisitors, events, pagesStripecustomer, invoiceACCOUNT_360one row per accountGA4sessions, acquisitionCortexsemantic view, agentaccount_idaccount_iduser_idsemantic layer
Illustrative only. The table below is the exact mapping.
FromToNote
PENDO.ACCOUNTS.IDSTRIPE.CUSTOMER.METADATA:account_idPrimary account key across product and billing.
PENDO.VISITORS.IDGA4.EVENT.USER_IDVisitor-level product and web behavior.
PENDO.VISITORS.ACCOUNTIDPENDO.ACCOUNTS.IDRoll users up to accounts.
PENDO.MATCHEDPAGEEVENTS.MATCHABLEIDPENDO.PAGES.PAGEIDPage-matched events to page definitions.
GA4.EVENT.USER_PROPERTY_ACCOUNT_IDPENDO.ACCOUNTS.IDValues starting with acct_ are accounts. lead_ values are modeled leads.

Analytics views

Start with these views for common questions. They are secure views in the SECURE schema.

ViewUse it for
ACCOUNT_360Account-level usage, plan, channel, and lifetime revenue.
ACTIVATION_FUNNELSignup to activation to paid conversion by acquisition channel.
FEATURE_ADOPTIONMonthly feature usage by account.
FEATURE_LIFTFeature usage for active versus canceled accounts.
REVENUE_BY_USAGEAccount usage and lifetime revenue for usage quartiles.
ACQUISITION_TO_REVENUEChannel-level acquisition and revenue efficiency.
CHURN_RISKSubscription and invoice signals for at-risk accounts.
SESSIONSOne row per GA4 session with engagement and acquisition fields.

Cortex

FORGEWELL_SEMANTIC is a semantic view overACCOUNT_360 for Cortex Analyst questions about plans, channels, regions, revenue, and 90-day usage.

The provider-side agent also uses Cortex Search overDATA_DICTIONARY, which holds table, column, and metric documentation.

Cortex prompt
Which acquisition channel has the highest revenue per paying account, and how many paying accounts does it have?

Data dictionary

The dictionary is a queryable table inside the share. Use it to look up an object or confirm a field before writing a query.

Inspect the dictionary
SELECT TITLE, DOC_TYPE, CONTENT
FROM FORGEWELL_DEMO.SECURE.DATA_DICTIONARY
WHERE TITLE ILIKE '%ACCOUNT_360%';

Vendor documentation

Reference docs for the source systems and the sharing layer:

Caveats

  • Every row is synthetic. No real people, customers, or Pendo customer data are included.
  • GA4 signups are modeled from account creation. Use them for relative channel analysis, not exact counts.
  • The data covers 12 months and is static. It does not refresh.
  • Names and emails are fictional. Account IDs are synthetic keys for joins.

Talk to sales

Contact sales@brainforge.aifor access, a walkthrough, or a custom version of this sample. The listing is maintained by Brainforge, not Pendo, Stripe, or Google.

Was this page helpful?

Press Esc to close