Skip to main content

Revenue Sharing Language, RevSha.re and CiviSplit

 |  funding, film, distribution, music, media business | Website, Software, Framework

An open way to structure, set and pay out royalties, deferrals and profit-shares.

Revenue Sharing Language (RSL) is a domain-specific Language (DSL) for describing multi-step revenue sharing agreements between multiple parties. It is proposed as a common vocabulary for such agreements that both humans and software can understand and is designed to support unlimited steps and payees, loops, caps and either pro rata or pari passu type payouts at each step.

RSL is not designed to implement or process payouts, but to provide the instructions for systems that do. It is also not designed to replace a recoupment contract, but to provide a machine-readable description of a payout structure, recoupment schedule or waterfall that could be appended to a contract, in a way that lawyer or judge could understand. RSL has been tested in implementations described at the bottom of this file.

Background: RSL is structured as a YAML subset, which was chosen over JSON for easier legibility. It is inspired by Ian Grigg's idea of a Ricardian Contract, a machine- and human- readable agreement. A benefit of a machine readable contract is that a cryptographic hash can be generated from it, which would change if the agreement later changes, acting as a check against changes that haven't been agreed to by a contract's parties. This is somewhat similar to a Smart Contract, which also describes a machine-parsable legal agreement and was also first discussed in 1996 – with the important difference a human should also be able to read a Ricardian contract.

Cascade is a Javascript drag-and-drop builder to generate accurate multi-step RSL agreements. Cascade output supports all global currency position and decimal variations.

Screengrab of revenue sharing agreement builder

CiviSplit is a beta suite of CiviCRM extensions using Cascade and ILP to draft & lock agreements, setup a wallet with a payment provider, check balances, calculate & make royalty/recoupment/ dividend payouts and report.

Revenue Share agreemenet report