Skip to Content
Commercial model

Commercial model

IndicaView is a hosted SaaS web application. There is nothing to install and nothing to self-host — the product is reached over the network.

Its future commercial model meters usage in credits. The model is decided. The economics are not: there is no plan, no price, no credit cost, no currency and no payment provider, and nothing in the product invents one.

What happens when metering is switched on

The seams are already in place, so turning metering on is a configuration change rather than a rewrite:

PieceWhereState
Commercial configurationapp/js/brand/product-config.jsThe canonical place: model, status, currency, plans, checkout, billing
Credit balanceprofiles.credits_balance on the account profileColumn reserved; nullable; nothing populates it
Credit accessorapp/js/commercial/credits.jsReports “unavailable” today; reads the balance once a server reports one
Billing page—Does not exist yet
Purchase history—Named in the configuration, disabled, no source

Two things are deliberately absent, and stay absent until they are decided:

  • A price. No plan, no tier, no credit cost, no currency. Publishing one before it is agreed would be publishing a commercial offer.
  • Client-side metering. A browser cannot be trusted to report its own consumption, so the balance has to be written server-side. That is why the accessor reads a balance and never computes one.

Accounts and credits

An account is optional today: the chart, the optimizer and the analysis workspace are all reachable as a guest with no session at all. See Authentication.

When metering is switched on, the account is where the credit balance and billing details will live. Until then it manages a profile and a security tab — nothing more, and nothing less.

For developers

The full detail — the configuration reference, the accessor’s contract, the database seam and the checklist a billing feature has to satisfy — is in docs/commercial-model.md in the repository. The build fails if a price-like value appears in the commercial configuration, so the “not decided yet” state cannot drift silently into a published offer.

Last updated on