Goals & revenue/p/[project]/goals

Conversions, and what they were worth

Goals turn an event into a number the business recognises. Revenue attribution then answers the question that follows immediately: which channel should get the credit. Falorb ships three models rather than picking one and hiding the choice.

The goals page: conversion figures, a list of defined goals, revenue trend and revenue attributed by channel.The goals page: conversion figures, a list of defined goals, revenue trend and revenue attributed by channel.
Goals, conversions and attribution

Goals defined from what you already send

A goal is an event name or a page path. No separate instrumentation and no tag manager: if the tracker already reports it, it can be a goal, and the conversion rate is computed against the visitors actually in scope for the range and filters applied.

A goals panel listing defined goals with their type, matching rule and conversion counts.A goals panel listing defined goals with their type, matching rule and conversion counts.

Three attribution models, side by side

First-touch credits the referrer that originally found the person, last-touch the one that closed them, linear splits it across the chain. They are shown together deliberately: on real data they produce genuinely different answers, and a tool that reports only one is making a strategic decision on your behalf.

An attribution panel comparing revenue credited to each channel under first-touch, last-touch and linear models.An attribution panel comparing revenue credited to each channel under first-touch, last-touch and linear models.

Revenue over time and by channel

Revenue reported through the tracker's revenue() call, trended over the range and broken down by the acquisition channel credited under the model you selected.

A revenue-by-channel breakdown showing amounts attributed to each acquisition channel.A revenue-by-channel breakdown showing amounts attributed to each acquisition channel.

And a webhook when one converts

Goal conversions fire outbound webhooks, signed with an HMAC over the timestamp and body so the receiver can verify them. An endpoint that keeps failing is disabled automatically after twenty attempts, and a separate job re-enables endpoints that were only down transiently.

Specifics

How it works, precisely

Goal types
Event name match or page path match
Attribution
First-touch, last-touch, linear
Revenue input
falorb.revenue(amount, currency) from the tracker or the Node SDK
Webhook signing
HMAC over `timestamp.body`, auto-disable after 20 failures
Questions

Goals & revenue: the usual questions

Can revenue come from Stripe instead of the browser?

Not yet. The integrations layer, Stripe inbound first, is designed and documented but not built. Today revenue arrives through the tracker's revenue() call or the server-side Node SDK, which is the more reliable of the two.

Run it yourself this afternoon

Clone the repository, bring up the stack with Docker Compose, paste one script tag. The data never leaves your machines.