nozle
    nozle

    Margin intelligence | Nozle

    Revenue is loud. Cost is quiet.

    Every cost rated as the event that caused it lands — OpenAI and Anthropic auto-captured, everything else priced from your own Cost Sheet. Per-customer gross margin live in the dashboard — not in a spreadsheet next quarter.

    Five moves to a real margin number. Ours runs them on every event.

    From cost rate to negative-margin alert — every step is one row, one join, one number you can defend.

    Pipelinerate → attribute → join → score → alert
    1. 01
      Rate every cost
      OpenAI and Anthropic usage auto-captured. AWS, GCP, Pinecone or anything else priced from the rates you enter on a Cost Sheet.
    2. 02
      Attribute to a request
      Each cost event maps back to a customer and the feature event that caused it. Usage with no matching rate lands in an Uncosted queue — not silently dropped.
    3. 03
      Join to your events
      Cost meets revenue on the event. Same id, same customer, same minute. The join is the product.
    4. 04
      Score per slice
      Per-customer, per-plan, per-model and per-metric gross margin — recomputed as costs land. Trend and forecast out of the box.
    5. 05
      Alert before close
      Negative-margin customers, runaway features, COGS drift — flagged in-month, in Slack, with the offending requests.

    A month-end report is an autopsy. A live margin is a heartbeat.

    By the time the BI dashboard says 'Acme is unprofitable,' you've already shipped them another 28 days of free compute.

    Quarterly margin reviewBI stitches CSVs · 6 weeks late
    Mar
    shipped
    Apr
    spent
    Jun
    discovered
    Q1 → Q2
    Acme: −38% margin · 11 weeks of negative gross
    AUTOPSY
    What you can't tell
    which customer, which feature, which call.
    BI-LATER
    Live marginjoins on the event · scores on the event
    T+0
    breach
    T+1m
    alert
    T+2h28m
    fixed
    ACME · MARGIN
    −12% gross · 1 feature · cap shipped same hour
    OK
    What you ship
    which customer, which feature, which call.
    MARGIN-Q3-114

    Four features doing the work. One live margin number out the other side.

    What runs on every event to keep margin honest — the feed, the attribution, the entitlements, the guardrails.

    Prefer the schema?Read the margin docs
    MARGIN · acme · feature: rag_search
    breach · gross margin < 0
    Gross margin · rag_search · live
    +18%−12%−30pts
    Customer
    acme · enterprise
    Feature
    rag_search · 4,210 calls
    Revenue
    $1,840
    COGS
    $2,062 (openai · pinecone)

    Margin by model shows where it went: GPT-4o cost per query rose after a prompt change.

    Step 01 of 04

    Costs land. Events stay where they are. The join is the product.

    Enter your cost rates. Leave your event stream alone. Read live margin from the dashboard, Slack, or the API.

    01 · Cost feeds where the dollars come from

    Any cost you pay, rated from usage.

    OpenAI, Anthropic, AWS, GCP, Snowflake, Cloudflare — priced from the rates you enter on a Cost Sheet.

    OpenAI
    Anthropic
    AWS
    GCP
    Snowflake
    Cloudflare
    • OpenAI and Anthropic usage auto-captured by the SDK or LLM proxy.
    • Shared costs allocated across customers from a Shared Cost Pool.
    02 · The join cost meets event

    One key: transaction id and customer.

    Cost meets revenue on the event — not nightly in your warehouse. The join recomputes on every event, per slice.

    join.live
    key: parent_transaction_id · external_customer_id
    cost_side: cost events · rated as they land
    rev_side: metered events · live
    score: (rev − cogs) / rev · per slice
    • Usage without a rate gets queued — with the reason it wasn't costed.
    • The same row your CFO closes the quarter on.
    03 · Surfaces everywhere margin is read

    Dashboard, Slack, API — one row.

    CFO's pivot, founder's tab, on-call Slack thread, your prod app — all reading the same margin row.

    fanout.margin
    dashboard: per-customer · per-plan · per-model
    slack: breach + drift + cohort flips
    api: GET /api/v1/margin/customers
    • Signed webhook on every breach, drift, or recovery.
    • Audit trail per cost line and per join — exportable.
    Every change ·slicerevenuecogsgross_margintrendattributionuncostedalert_state

    Stop finding negative margin at quarter-close. See it the moment it happens.

    Costs in. Events joined. Margin per customer, plan, model and metric — live.

    Cost rating
    as events land
    Margin by
    customer · plan · model
    Negative margin
    flagged in-month
    Missing rates
    queued, not dropped