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.
- 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.
- 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.
- Run the first query.Replace
FORGEWELL_DEMOif you renamed the database during creation.First querySELECT * FROM FORGEWELL_DEMO.SECURE.ACCOUNT_360 LIMIT 10; - 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?
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;| Channel | Signups | Paying | Paid rate | Revenue / payer |
|---|---|---|---|---|
| Partner | 520 | 300 | 57.7% | $2,180 |
| Organic | 770 | 420 | 54.5% | $1,840 |
| Paid search | 690 | 360 | 52.2% | $1,720 |
| Social | 430 | 210 | 48.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?
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;| Feature | Active uses | Canceled uses | Lift |
|---|---|---|---|
| Goals | 8.6 | 2.1 | 4.1x |
| Reports | 6.2 | 1.8 | 3.4x |
| Integrations | 5.4 | 1.9 | 2.8x |
| Export | 3.1 | 1.2 | 2.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?
SELECT CHANNEL,
SIGNUPS,
ACTIVATED,
PAID,
ACTIVATION_RATE,
PAID_RATE
FROM FORGEWELL_DEMO.SECURE.ACTIVATION_FUNNEL
ORDER BY ACTIVATION_RATE DESC;| Channel | Signups | Activated | Paid | Activation | Paid rate |
|---|---|---|---|---|---|
| Organic | 770 | 620 | 420 | 80.5% | 54.5% |
| Paid search | 690 | 540 | 360 | 78.3% | 52.2% |
| Partner | 520 | 410 | 300 | 78.8% | 57.7% |
| Social | 430 | 300 | 210 | 69.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?
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;| Account | Status | Events 30d | Open invoices | Open amount | Signals |
|---|---|---|---|---|---|
| Northstar Labs | past_due | 12 | 2 | $840 | 2 |
| Harbor Fitness | active | 8 | 1 | $320 | 2 |
| Cedar Studio | trialing | 5 | 1 | $0 | 1 |
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?
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;| Quartile | Accounts | Avg revenue | Churn rate |
|---|---|---|---|
| Q1 lowest usage | 75 | $640 | 31% |
| Q2 | 75 | $1,120 | 22% |
| Q3 | 75 | $1,760 | 14% |
| Q4 highest usage | 75 | $2,380 | 7% |
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?
Which acquisition channel has the highest revenue per paying account, and how many paying accounts does it have?| Expected answer | Value |
|---|---|
| Channel | Partner |
| Revenue per paying account | About $2,180 |
| Paying accounts | 300 |
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_360FeaturedOne row per account
Plan, channel, region, industry, subscription status, lifetime revenue, and 90-day product usage.
Keys: ACCOUNT_ID
Data dictionaryMATCHEDPAGEEVENTSFeaturedOne row per page-matched event
Visitor, account, page, feature, guide, timestamp, browser, geography, and event properties.
Keys: VISITORID, ACCOUNTID, MATCHABLEID
Data dictionaryEVENTFeaturedOne 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 dictionaryINVOICEFeaturedOne row per invoice
Billing period, status, amount due, amount paid, and account metadata. Amounts are in cents.
Keys: CUSTOMER_ID, SUBSCRIPTION_ID
Data dictionaryCHURN_RISKFeaturedOne 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 dictionaryACQUISITION_TO_REVENUEFeaturedOne row per acquisition channel
Signups, paying accounts, signup-to-paid rate, revenue per paying account, and revenue per signup.
Keys: ACQUISITION_CHANNEL
Data dictionaryALLEVENTSPendoOne row per Pendo event
All captured events with event type, URL, properties, visitor, and account identifiers.
Keys: VISITORID, ACCOUNTID, PERIODID
Data dictionaryVISITORSPendoOne row per visitor
Visitor identity, first visit, last visit, and account linkage.
Keys: ID, ACCOUNTID
Data dictionaryACCOUNTSPendoOne row per account
Account identity and first-visit metadata.
Keys: ID
Data dictionaryPAGESPendoOne row per page definition
Page identifier, name, rules, and soft-delete state.
Keys: PAGEID
Data dictionaryFEATURESPendoOne row per feature definition
Feature identifier, name, rules, and soft-delete state.
Keys: FEATUREID
Data dictionaryGUIDESPendoOne row per guide definition
Guide steps, polls, targeting, and soft-delete state.
Keys: GUIDEID
Data dictionaryVISITORMETADATAPendoOne row per visitor and metadata field
Visitor metadata values such as role, department, and region.
Keys: VISITORID, NAME
Data dictionaryACCOUNTMETADATAPendoOne row per account and metadata field
Account metadata values such as plan, channel, region, and industry.
Keys: ACCOUNTID, NAME
Data dictionaryCUSTOMERStripeOne row per Stripe customer
Customer record with metadata for account_id, plan, channel, region, and industry.
Keys: ID
Data dictionarySUBSCRIPTIONStripeOne row per subscription
Subscription status, quantity, plan, and billing period.
Keys: ID, CUSTOMER_ID
Data dictionaryINVOICE_LINE_ITEMStripeOne row per invoice line
Line-level amount, quantity, and price for each invoice.
Keys: ID, INVOICE_ID
Data dictionaryCHARGEStripeOne row per charge
Payment attempt, status, amount, and customer.
Keys: ID, CUSTOMER_ID
Data dictionaryPRODUCTStripeOne row per product
Product name, description, and active state.
Keys: ID
Data dictionaryPRICEStripeOne row per price
Price amount, currency, interval, and product.
Keys: ID, PRODUCT_ID
Data dictionaryBALANCE_TRANSACTIONStripeOne row per balance transaction
Balance impact, type, amount, and source charge.
Keys: ID, SOURCE_ID
Data dictionaryACTIVATION_FUNNELAnalyticsOne row per acquisition channel
Signups, activated accounts, paid accounts, and conversion rates.
Keys: CHANNEL
Data dictionaryFEATURE_ADOPTIONAnalyticsOne row per month and account
Monthly feature usage by account.
Keys: ACCOUNT_ID, FEATURE, MONTH
Data dictionaryFEATURE_LIFTAnalyticsOne row per feature
Average feature usage for active versus canceled accounts and the lift ratio.
Keys: FEATURE
Data dictionaryREVENUE_BY_USAGEAnalyticsOne row per account
Plan, 90-day events, 90-day users, and lifetime revenue for usage quartiles.
Keys: ACCOUNT_ID
Data dictionarySESSIONSAnalyticsOne row per GA4 session
Session engagement, acquisition source, device, and geography.
Keys: SESSION_ID, USER_ID
Data dictionaryDEMO_CONFIGAnalyticsOne row per sample build
Sample version, generated timestamp, and data window metadata.
Keys: COMPANY_NAME
Data dictionaryDATA_DICTIONARYAnalyticsOne row per documentation chunk
Table, view, metric, and join documentation used by Cortex Search.
Keys: CHUNK_ID
Data dictionaryFORGEWELL_SEMANTICCortexSemantic view
Account-level semantic view over ACCOUNT_360 with dimensions and metrics for Cortex Analyst.
Keys: ACCOUNT_ID
Data dictionaryJoin map
Pendo, Stripe, and GA4 meet on the account. Use the join keys below for exact mappings.
| From | To | Note |
|---|---|---|
PENDO.ACCOUNTS.ID | STRIPE.CUSTOMER.METADATA:account_id | Primary account key across product and billing. |
PENDO.VISITORS.ID | GA4.EVENT.USER_ID | Visitor-level product and web behavior. |
PENDO.VISITORS.ACCOUNTID | PENDO.ACCOUNTS.ID | Roll users up to accounts. |
PENDO.MATCHEDPAGEEVENTS.MATCHABLEID | PENDO.PAGES.PAGEID | Page-matched events to page definitions. |
GA4.EVENT.USER_PROPERTY_ACCOUNT_ID | PENDO.ACCOUNTS.ID | Values 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.
| View | Use it for |
|---|---|
ACCOUNT_360 | Account-level usage, plan, channel, and lifetime revenue. |
ACTIVATION_FUNNEL | Signup to activation to paid conversion by acquisition channel. |
FEATURE_ADOPTION | Monthly feature usage by account. |
FEATURE_LIFT | Feature usage for active versus canceled accounts. |
REVENUE_BY_USAGE | Account usage and lifetime revenue for usage quartiles. |
ACQUISITION_TO_REVENUE | Channel-level acquisition and revenue efficiency. |
CHURN_RISK | Subscription and invoice signals for at-risk accounts. |
SESSIONS | One 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.
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.
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?