Closed bhaugen closed 4 years ago
Recapturing Tibi's comment from that other thread:
This is a hot and important topic. As we opened a dialog with the Canadian Federal Government, which will soon acknowledge the existance of open communities and networks, we need to feed them with these technical issues in order to inform policy making. They will want to know about the new tendencies but also about how these new tendencies can be reconciled with the traditional methods. The later is even more important, because it will be used first, to create an environment that allows a transition to a future system, whatever that will be.
@serapath this might be a good use case:
https://github.com/valueflows/valueflows/blob/master/use-cases/3d-printer.md is from Sensorica, and shows a very simple but real example of the value flows including both exchanges and processes.
Hello @fosterlynn, thx :-) I'd tried to start with your 3d printer example, because it feels more easy to start with.
The scenario feels very blurry, but in order to translate it to financial accounting, it needs more precision. I tried to make a rough summary of my current understanding below:
[Kim]
invests Xa
into [PrinterFund]
[Ali]
invests Xb
into [PrinterFund]
[Fatuma]
orders fullfilment of her [3D print wish]
[Daniel]
invests Xc
into [Photopolymer]
[Daniel]
invests Tc
into [Blueprint]
[Jim]
invests Td
into [3D print operation & wish delivery]
[Fatuma]
pays Xz
to settle [InvoiceDebt]
[Kim]
invests Ta
into [PrinterFundAccounting]
[Jim]
receives d*Xz
for [PrinterOperation]
[Daniel]
receives c1*Xz
for [Photopolymer]
[Daniel]
receives c2*Xz
for [Blueprint]
[Ali]
receives b*Xz
for [PrinterFund]
[Kim]
receives a1*Xz
for [PrinterFund]
[Kim]
receives a2*Xz
for [PrinterFundAccounting]
It's not yet journal entries
and a balance sheet structure
is missing.
Can we add more precision? I have several questions:
Tc
, Td
, Ta
take?X
is being paid in each of above steps that deal with money?Fatuma
faced?Kim
, Ali
and Sensorica
?I'd tried to start with your 3d printer example, because it feels more easy to start with.
Cool!
it needs more precision.
It does, let's make some things up :)
[Kim]
invests $1000
into [PrinterFund]
[Ali]
invests $1000
into [PrinterFund]
[Fatuma]
invests $1000
into [PrinterFund]
[Sensorica]
orders [3D printer]
[Sensorica]
is invoiced for [$3000
] [InvoiceDebt]
[Sensorica]
pays $3000
to settle [InvoiceDebt]
, money taken from [PrinterFund]
(the contributors are the owners until paid off + 20%, then it becomes part of the Sensorica commons)[Daniel]
invests $30
for [Photopolymer - 1000g]
(Daniel pays, photopolymer is received at lab)[Daniel]
invests 20 hours
into [Design for 3D printed part]
[Kim]
invests 3 hours
into [MonthlyAccounting]
Process:
[Jim]
invests 2 hours
into [3D print operation & wish delivery]
[Jim]
uses the [3D printer]
for 2 hours
for [process: 3D print operation & wish delivery]
[Jim]
consumes the [Photopolymer - 100g]
for [process: 3D print operation & wish delivery]
[Jim]
cites the [Design for 3D printed part - give 20% of payment]
for [process: 3D print operation & wish delivery]
[Jim]
creates the [3D printed part]
from [process: 3D print operation & wish delivery]
Sale:
[Sensorica]
gives (sells) [3D printed part]
to [Random Customer]
(Jim's initiative)[Sensorica]
receives $100
for [3D printed part]
from [Random Customer]
Distribution:
[Sensorica]
receives $5
(5%) for general network expenses.[Daniel]
receives $3
for [Photopolymer]
(based on the cost per gram)[Daniel]
receives $20
for [Design for 3D printed part]
(20% of selling price)[Ali]
receives $10
for [PrinterFund]
(printer gets paid at $15/hour, gets split among contributors)[Kim]
receives $10
for [PrinterFund]
[Fatuma]
receives $10
for [PrinterFund]
[Kim]
receives $1
for [MonthlyAccounting]
(based on some rule, let's say 1% of sale until reaching $20/hour)[Jim]
receives $41
for his work and initiative for the sale (the rest)It's not yet
journal entries
and abalance sheet structure
is missing. Can we add more precision? I have several questions:
- How much was the printer? Let's say $3000.
- How much time does
Tc
,Td
,Ta
take? Detailed above.- What are the agreed upon internal service rates? Let's say all work is valued at $20/hour.
- How much money
X
is being paid in each of above steps that deal with money? Detailed above.- What are the roles of people in which context? (manager?trainer?certifier?) Generally people play multiple roles in Sensorica, probably doesn't impact the above scenario.
- What's the process and price that
Fatuma
faced? Detailed above.- What's the relation between
Kim
,Ali
andSensorica
? All of these people in the scenario are members (called "affiliates") of Sensorica.
^ I updated the example to have Sensorica doing the selling. Trying to make it more clear and simple. (There are more complications within Sensorica, such as "exchange firms" which interface to the outside world to sell products; and CAKE, which is the non-profit custodial legal entity that handles all the assets and sales of R&D services to universities, etc. Would be interesting and possibly useful to put these in at some point, but let's keep to this in terms of accounting terms. Tibi can elaborate later.)
Wonderful :-)
I'll try to prepare a translation into normal accounting language today.
(There are more complications within Sensorica, such as "exchange firms" which interface to the outside world to sell products; and CAKE, which is the non-profit custodial legal entity that handles all the assets and sales of R&D services to universities, etc. Would be interesting and possibly useful to put these in at some point, but let's keep to this in terms of accounting terms. Tibi can elaborate later.)
I'd love to learn more about it. Maybe the best is i'll first post something and then I'd like to add whatever the above means to it :-)
One question:
employees
or shareholders
(co-owners) or creditors
or something else?I'll try to prepare a translation into normal accounting language today.
And I can do an REA treatment (not sure if today but soon).
Are members employees or shareholders (co-owners) or creditors or something else?
@TiberiusB can help with this explanation. In the meantime: Sensorica is not a formal organization (it has a legal standing in Canada, but it does not interface with the state directly), so in the above scenario, having Sensorica "sell" something is not accurate. Sensorica is a loose network, let's use a definition like members are people who contribute to Sensorica projects for potential income.
(Trying to focus on accounting as a useful "counting" rather than legal requirements. If we need to go legal, Tibi will need to help.)
Ok. for accounting as a general method - the legal status does not matter. It just tries to write down everything that happens in order to keep a history that can be used for many purposes.
When doing the accounting for the sensorica example, I was just wondering - because there are many ways how to book certain "business events" - how should those people be treated.
You say they invest into the printer fund, but that means, they might need to pay taxes - or if it's company internal -
It's just that in the context of accounting and law i would like to try to distinguish between fact and fiction. In context of certain business relationships and activity, there is the culture and how people treat each other and what values they live which is what actually counts - but then there is also the legal structure of who - if the worst comes to the worst - is actually the legal authority to make decisions about ownership, money, hire & fire, etc...
In order to protect people and make whatever values and culture people live in a business context a legal reality that people can rely on even if the worst comes to the worst - i'd like to check possible "alternative systems" for how they legally work :-)
If Sensorica is not a legal entity - can it even buy a 3d printer from a supplier?
That's why Sensorica uses legal entities to do business with outside agents. The custodian scenario I described in the original post in this issue is an example.
More to come in a couple of hours...
Just wondering what would be the ideal structure - because having a story about a "made up" Sensorica structure which covers the real structure from the eyes of participants can lead to a "rude awakening" if the worst comes to the worst - especially if certain people counted and invested into the Sensorica story but at a later point in their life lose a lot because they do not have any legal say in the matter...
I'm getting you as much of the actual data as I can. But Lynn and I are not part of the core of the network, so we will need to get some Sensoricans to participate here for the next stage. (Which we will try to get.)
@serapath I can try to do a version more like Sensorica would do it, although as @bhaugen points out, we may be too out of touch. Will try to do that later today, and ping Tibi to verify.
Just to note, that is not an "ideal" structure, it is just what they feel they have to do to balance their principles with the realities of the legal system. But I do understand your desire to deal with some semblance of reality in a use case. :)
Here is a version with an exchange firm (Exchange Inc.
) and the custodial non-profit (CAKE
) involved. The exchange firm is responsible for handling sales. I believe the exchange firm is a member of Sensorica of some kind. The custodial non-profit "owns" (has custody of?) the equipment that is part of the Sensorica commons, handles insurance, warranties, etc.
People who receive distributions are responsible for their own taxes and reporting. The exchange firm and custodial non-profit are responsible for their own taxes and reporting.
@TiberiusB please correct as needed!
Pre-process:
[Kim]
invests $1000
into [PrinterFund]
[Ali]
invests $1000
into [PrinterFund]
[Fatuma]
invests $1000
into [PrinterFund]
[CAKE]
orders [3D printer]
[3D printer]
is received at Sensorica lab, [CAKE]
is invoiced for [$3000
] [InvoiceDebt]
[CAKE]
pays $3000
to settle [InvoiceDebt]
, money taken from [PrinterFund]
[Daniel]
invests $30
for [Photopolymer - 1000g]
(Daniel pays, photopolymer is received at lab)[Kim]
invests 3 hours
into [MonthlyAccounting]
Process 1:
[Daniel]
invests 20 hours
into [process: Design for 3D printed part]
[Daniel]
creates [Design of 3D printed part]
from [process: Design for 3D printed part]
Process 2:
[Jim]
invests 2 hours
into [3D print operation & wish delivery]
[Jim]
uses the [3D printer]
for 2 hours
for [process: 3D print operation & wish delivery]
[Jim]
consumes the [Photopolymer - 100g]
for [process: 3D print operation & wish delivery]
[Jim]
cites the [Design of 3D printed part - give 20% of payment]
for [process: 3D print operation & wish delivery]
[Jim]
creates the [3D printed part]
from [process: 3D print operation & wish delivery]
Sale:
[Exchange Inc.]
gives (sells) [3D printed part]
to [Random Customer]
[Exchange Inc.]
receives $100
for [3D printed part]
from [Random Customer]
Distribution:
[Exchange Inc.]
receives $1
(1%) for handling the sale.[Sensorica]
receives $5
(5%) for general network expenses.[Daniel]
receives $3
for [Photopolymer]
(based on the cost per gram)[Daniel]
receives $20
for [Design for 3D printed part]
(20% of selling price)[Ali]
receives $10
for [PrinterFund]
(printer gets paid at $15/hour, gets split among contributors)[Kim]
receives $10
for [PrinterFund]
[Fatuma]
receives $10
for [PrinterFund]
[Kim]
receives $1
for [MonthlyAccounting]
(based on some rule, let's say 1% of sale until reaching $20/hour)[Jim]
receives $40
for his work^ updated the above scenario to break out the design process explicitly so the design is put into inventory
@serapath here's some of the actual data:
Thx - I'm still struggling to post the first draft. There are a lot of implicit relations that are not easy to write down.
If Jim
is a member
of Sensorica
(which is a virtual contstruct that legally is still CAKE
) and he creates a 3D printed part
, how can all of a sudden Exchange Inc.
sell it to a Random Customer
?
@bhaugen
500$ from Marisa
?What did Marisa
do? Is she a customer? Who prints and who buys and/or pays?
Otherwise - it's inspirational to read the content behind your links, but it's not easy to follow and feels like a generated wall of text ;-) ...which it is, but looking at it for the first time is not easy.
Who receives in case of for example 500$ from Marisa?
http://nrp.sensorica.co/accounting/exchange/0/391/
What did Marisa do?
In this case, she contributed $500 to the virtual account for buying a professional-scale 3d printer.
Is she a customer?
http://nrp.sensorica.co/accounting/agent/279/
Who prints and who buys and/or pays?
In Lynn's example above, Jim prints, Random Customer buys and pays Exchange Inc.
Here is the real exchange firm:
http://nrp.sensorica.co/accounting/agent/244/
As far as I can tell, very few of the actual uses of the 3d printer are logged in NRP, and those that are, are incomplete. I think they are mostly recorded in spreadsheets, which is a complication of Sensorica's actual "accounting", such as it is.
A lot of Sensorica's other business is recorded more completely in NRP, however. For example: http://nrp.sensorica.co/accounting/contributions/160/
P.S. you can probably by now get a feel for the problem Sensorica is facing as they try to make sense of themselves to government agencies etc.
Francois Bergeron used to know how to do that for them, but unfortunately he left in a split.
This is not an REA problem, by the way. REA wants you to record all of your economic events in the same "system of record". If that were the case, financial reports could be generated. But somebody would still need to design something like a chart of accounts to shoot for. Accounting is an interpretation of events. The last time we did this, for the timber project that was our first REA operational system, we generated the financial reports automatically, but they were a lot simpler than Sensorica. I am pretty sure Sensorica will need a designed chart of accounts.
@serapath yeah, it is a bit confusing. A lot of this relies on trust among the individuals. And open books accountability, although they have some work to do there as you can tell. But basically, people figure they are not going to get ripped off by each other. And they are trying to build something different and positive. It is experimental.
I think for the sake of this example, you can just consider the exchange firm to be another member of Sensorica, with a specific role. They do a job, they get a cut.
You could consider CAKE to be the "enterprise" in a standard accounting sense. The bank account that holds all the virtual accounts (like the one earmarked for the 3D printer purchase) is CAKE's account. So you could run everything through CAKE to get it all to work in a connected way. Like the payment from the sale could initially go into CAKE's account, and get distributed from there. They may not do it that way when using an exchange firm, but in my opinion they should.
While the Sensorica 3d printer maybe a working example to better understand REA applications to flows according to "process," "sale," "distribution," etc., the real value in this exercise comes in making those applications repeatable and learning where to tailor the flows to improve efficiency without compromising adaptability. I'm struck by the amount of TIME @bhaugen, @fosterlynn, and @serapath continue to INVEST to generate this value for the "Sensorica commons." Where is your investment recorded so the increase in value of the commons can be appropriately acknowledged? And if this value is applied by other Sensoricans for compensation, how do you investors receive a fair share? And maybe these questions are outside the scope of this particular exercise, but perhaps they can get a hearing in another thread or forum later on.
@stevebosserman those are excellent questions. Lynn and I are doing this for Value Flows, which is our main focus these days. If Sensorica is going to get anything out of it, they will need to participate. We have pinged them a few different ways and will see what happens. If they get engaged, I will mostly pull back and let them take it from here.
But if @serapath does some serious accounting work for Sensorica here, yeah, he should be entitled to some compensation from Sensorica, which I am sure they will handle according to value network rules. Likewise if we do any more software development for them, we will log our time.
But we are trying to work our way out of coding on NRP and working on getting other people to take it over. We do see some people stepping up to the challenge, especially in this fork.
@stevebosserman hey, thanks for thinking about it, really! :blush:
@bhaugen
I'm thinking of Exchange Inc.
now as some kind of ebay
, thus Sensorica can offer a 3D model and if a customer buys, the Exchange Inc.
gets an affiliation fee or something in this sense.
@fosterlynn
exactly, that's what i started with. It's all about CAKE and Sensorica is just a made up story which doesnt matter at all if the worst comes to the worst - because the lawyers and courts will only recognize CAKE. But Sensorica and all this matters in CAKE internally, thus how members share what comes from their activity within CAKE and "sub projects"
@stevebosserman
sry :-) in my eyes - our economic systems are simply not working and broken beyond repair. I and virtually everyone I know is investing their time regardless of any recordings or payments to build alternatives - because if you wait or spend time to think about how this is recorded, you wont move anywhere. The mechanisms where such a thing might become possible in the future simply do not exist in our present.
Otherwise - it probably goes under "entrepreneurial risk" :P Maybe in the future we can all have "donation" buttons attached to some kind of virtual profile where people can donate if they like the activity :P
The process of "pathfinding" or trying to be visionary and break that down into something tangible - is what entrepreneurs do, but it's also what crazy people do :-) ...for those who are not visionaries it's really hard to decide whether an activity is creating a vision or it's just crazy... ...so it's really hard to decide how to pay for this without attracting "bullshitters" who are just in the game to get money for blabla
No problem, @fosterlynn and @bhaugen! And thanks, too, @serapath for your timely comments. Several members of our local time bank are starting a couple of initiatives that would be well-suited for an NRP "work breakdown structure" to organize tasks and an REA accounting system to keep score. In the bigger picture, it is my opinion that the time bank could begin to function as a value network, of sorts, with these types of initiatives. Such "pathfinding" could lead to a change in the core organizing principles for the time bank. Since time, not money, constitutes the medium of exchange among time bank members, that may make them / us more entrepreneurial than crazy ;-) Let's see how it goes!
@stevebosserman interesting. Without getting too off topic, let's see where your time bank stuff leads as it gets going! ValueFlows definitely needs to support time bank and all types of mutual credit, although I am confident it will. Maybe we can hook you in to provide some VF use cases at some point. :smile:
The process of "pathfinding" or trying to be visionary and break that down into something tangible - is what entrepreneurs do, but it's also what crazy people do :-) ...for those who are not visionaries it's really hard to decide whether an activity is creating a vision or it's just crazy... ...so it's really hard to decide how to pay for this without attracting "bullshitters" who are just in the game to get money for blabla
That is our experience too..... :disappointed: .... maybe this process we are going thru now is to find out if each other is crazy..... so far I am encouraged..... :smile:
sure :-) no rest for the wicked ;-)
So here i have another version of the story, not perfectly formatted yet, but before i really put it into accounting terms, i'd like to make sure i get the story right and with all the possible details and persons involved, so here we go...
english
See: https://github.com/valueflows/valueflows/blob/master/use-cases/3d-printer.md
Kim
Ali
Fatuma
Daniel
Jim
Sensorica
CAKE
Exchange Inc.
Royal Bank of Canada
Random Customer
???
(photopolymer seller)Kim
has membership contract with CAKE
in the context of Sensorica
Ali
has membership contract with CAKE
in the context of Sensorica
Fatuma
has membership contract with CAKE
in the context of Sensorica
Daniel
has membership contract with CAKE
in the context of Sensorica
Jim
has membership contract with CAKE
in the context of Sensorica
Sensorica
is a business unit of CAKE
Kim
has a bank account at Royal Bank of Canada
Ali
has a bank account at Royal Bank of Canada
Fatuma
has a bank account at Royal Bank of Canada
Daniel
has a bank account at Royal Bank of Canada
Jim
has a bank account at Royal Bank of Canada
Exchange Inc.
has a bank account at Royal Bank of Canada
Random Customer
has a bank account at Royal Bank of Canada
???
has a bank account at Royal Bank of Canada
CAKE
has a bank account at Royal Bank of Canada
Kim
, Ali
& Fatuma
are members
of Sensorica
, thus CAKE
.invest
each 1000$
from their bank account
at Royal Bank of Canada
into a printer fund
offered by Sensorica
, thus CAKE
.CAKE/Sensorica
buys/orders
a 1x 3D printer
from [???]
for 3000$
CAKE/Sensorica
receives
a printer invoice
from [???]
for 3000$
CAKE/Sensorica
pays
the debt/invoice/3Dprinter/$
using the printer fund
.CAKE/Sensorica
receives
the 1x 3D printer
from [???]
Daniel
is member
of Sensorica
, thus CAKE
.Daniel
buys/invests
1000g photopolymer
from [???]
for 30$
and pays
the invoice
from his bank account
at Royal Bank of Canada
.Kim
works
3h
into Sensorica accounting
for Sensorica
, thus CAKE
.Daniel
works
20h
to design a 3D model/blueprint
for Sensorica
, thus CAKE
.Jim
is member
of Sensorica
, thus CAKE
.Jim
invests
2h
to create a 3D printed part
by using the 3D printer
, 1000g photopolymer
and Sensorica
s 3D model
CAKE/Sensorica
contracts
Exchange Inc.
to offer
the 3D printed part
for 100$
through Exchange Inc. marketplace
Random Customer
buys
3D printed part
for 100$
on Exchange Inc. marketplace
Random Customer
pays
100$
through his bank account
at Royal bank of Canada
to CAKE
's bank account
at Royal bank of Canada
Exchange Inc.
invoices
CAKE
0.01*100$
for Sale
of 3D printed part
CAKE
ships
...CAKE
pays
...[PrinterOperation]
his work and initiative for the sale (the rest)
- Is the following story correct? Anything missing or unclear?
I'm going to make some corrections in the next comment/post, see if they make sense.
- What triggered Process 1?
Daniel bought polymer because he wants a bunch of it onhand for Sensorica use, in particular his. He made the design either because it was fun or because he thought someone might use it to make and sell something.
- Does Daniel sell the 1000g photopolymer to Sensorica or does he buy it in the name of Sensorica and Sensorica pays for it through having access to one of Sensoricas, thus CAKE's bank accounts?
Daniel buys it in the name of Sensorica and pays out of his pocket because Sensorica doesn't have cash on hand. That makes it a financial contribution from him to Sensorica, for which he is eligible to get paid back, or often paid back plus some for the risk. Or he could do it as a loan, but usually not.
- What triggered Process 2?
Jim felt like making the part, or Jim figured if he made the part he could sell it. We could include an order for the part, but we didn't. If you would like to, we can include it. But in reality, lots of stuff gets made without an order in Sensorica, people are playing around, doing R&D, etc. If we include the order, then that would trigger a plan for both processes 1 and 2 (design and making).
- Does Jim really invest time or does he just work?
- In theory Jim could make a profit of 8h per day and invest those into stuff
- At the end of each day he could make a loss of all non-invested hours
- ...it's possible to do the accounting for that if it makes really sense to go into that level of detail...
I'm not sure the difference in Sensorica. He just works, but work is sort of an investment in that nobody is getting paid by the hour, they are just getting paid if money comes in for something they worked on. "Contributory accounting." So it feels more like an investment in some ways. Don't know if that helps. He does log his work hours. I don't think your bullets are worth accounting for because they don't account in that way.
I'm going to make some corrections in the next comment/post, see if they make sense.
Kim
Ali
Fatuma
Daniel
Jim
Sensorica
CAKE
Exchange Inc.
Royal Bank of Canada
Random Customer
PP Inc.
(photopolymer seller)(I don't know if these are contracts, but maybe. Again pinging @TiberiusB. But let's just account for the activity, not worrying about contracts. Sensorica has economic governance in the form of "value equations" that say how people get paid when income comes in.)
Kim
has membership contract with CAKE
in the context of Sensorica
Ali
has membership contract with CAKE
in the context of Sensorica
Fatuma
has membership contract with CAKE
in the context of Sensorica
Daniel
has membership contract with CAKE
in the context of Sensorica
Jim
has membership contract with CAKE
in the context of Sensorica
Sensorica
is a business unit of CAKE
Kim
has a bank account at Royal Bank of Canada
Ali
has a bank account at Royal Bank of Canada
Fatuma
has a bank account at Royal Bank of Canada
Daniel
has a bank account at Royal Bank of Canada
Jim
has a bank account at Royal Bank of Canada
Exchange Inc.
has a bank account at Royal Bank of Canada
Random Customer
has a bank account at Royal Bank of Canada
PP Inc.
has a bank account at Royal Bank of Canada
CAKE
has a bank account at Royal Bank of Canada
Kim
, Ali
& Fatuma
are members
of Sensorica
, thus CAKE
.invest
each 1000$
from their bank account
at Royal Bank of Canada
into a printer fund
offered by Sensorica
, thus CAKE
.CAKE/Sensorica
buys/orders
a 1x 3D printer
from [ORD]
for 3000$
CAKE/Sensorica
receives
a printer invoice
from [ORD]
for 3000$
CAKE/Sensorica
pays
the debt/invoice/3Dprinter/$
using the printer fund
.CAKE/Sensorica
receives
the 1x 3D printer
from [ORD]
Daniel
is member
of Sensorica
, thus CAKE
.Daniel
buys/invests
1000g photopolymer
from [PP Inc.]
for 30$
and pays
the invoice
from his bank account
at Royal Bank of Canada
.Kim
works
3h
into Sensorica accounting
for Sensorica
, thus CAKE
.(I moved several things back into pre-process, since they happened without any knowledge of Jim making the part usually.)
Daniel
works
20h
to design a 3D model/blueprint
for Sensorica
, thus CAKE
.Jim
is member
of Sensorica
, thus CAKE
.Jim
invests
2h
to create a 3D printed part
by using the 3D printer
, 100g photopolymer
and Sensorica
s 3D model
(Jim didn't use all of the photopolymer)CAKE/Sensorica
contracts
Exchange Inc.
to offer
the 3D printed part
for 100$
through Exchange Inc. marketplace
Random Customer
buys
3D printed part
for 100$
on Exchange Inc. marketplace
Random Customer
pays
100$
through his bank account
at Royal bank of Canada
to CAKE
's bank account
at Royal bank of Canada
Exchange Inc.
invoices
CAKE
0.01*100$
for Sale
of 3D printed part
CAKE
ships
...CAKE
pays
...
(The last three happen through a distribution process, not an invoicing process. Let's just consider Exchange Inc. as a member just like Jim or Daniel who will get a piece of the pie. I would put them back under Distribution.)[PrinterOperation]
his work and initiative for the sale (the rest)
(I bumped Jim's back down to $40 because Exchange Inc. got $1. - per corrected second version.)OK, here is an initial draft of an REA/VF treatment of this use case ( @serapath don't worry about the prefixes, that is a convention that the team is using so we know where the vocab term came from in our current state of agreement).
Note all of these economic events are recorded with the context of Sensorica (vf:contextAgent
= Sensorica
). When the custodial accounting is done for CAKE, some but not all of these are needed.
I am sure there will be some discussion of the fudging of who owns or accounts for something at any particular stage. :)
Kim
Ali
Fatuma
Daniel
Jim
Sensorica
CAKE
Exchange Inc.
Royal Bank of Canada
Random Customer
PP Inc.
(vf:subject
vf:relationship
vf:object
)
Kim
is affiliate of
Sensorica
Ali
is affiliate of
Sensorica
Fatuma
is affiliate of
Sensorica
Daniel
is affiliate of
Sensorica
Jim
is affiliate of
Sensorica
CAKE
is custodian for
Sensorica
Exchange Inc.
is exchange firm of
Sensorica
Random Customer
is customer of
Sensorica
PP Inc.
is supplier for
Sensorica
(I'm considering the individuals' bank accounts out of scope of the network for accounting purposes, this is the context of Sensorica
Exchange Inc. Account 1233
rea:ResourceType
: Bank Account
vf:Quantity
0 Canadian Dollars
nrp:Location
Royal Bank of Canada
CAKE Account 4545
rea:ResourceType
: Bank Account
nrp:AgentResourceRelationship
owner
CAKE
vf:Quantity
0 Canadian Dollars
nrp:Location
Royal Bank of Canada
(leaving out orders / commitments, considering this cash accounting method) (the first set if vf:Transfers, the last is nrp:NonProductionLogging)
(vf:Agent
(from) nrp:TransferType
nrp:EventType
vf:Quantity
vf:Agent
(to) rea:EconomicResource
(to increment or decrement) )
Kim
cash contribution
give
1000 Canadian Dollars
Sensorica
Earmark for 3D printer
Ali
cash contribution
give
1000 Canadian Dollars
Sensorica
Earmark for 3D printer
Kim
cash contribution
give
1000 Canadian Dollars
Sensorica
Earmark for 3D printer
ORD
shipment
receive
1 Each
Sensorica
FDM 3D printer
Sensorica
payment
give
3000 Canadian Dollars
ORD
Earmark for 3D printer
Daniel
payment
give
30 Canadian Dollars
PP Inc.
(none)
PP Inc.
shipment
receive
1000 Grams
Sensorica
Photopolymer
(vf:Agent(from)
nrp:EventType
vf:Quantity
vf:Agent(to)
nrp:Description
)
Kim
time contribution
3 Hours
Sensorica
monthly accounting
CAKE Account 4545
rea:ResourceType
: Bank Account
vf:Quantity
3000 Canadian Dollars
nrp:Location
Royal Bank of Canada
Earmark for 3D printer
rea:ResourceType
: Virtual Account
vf:Quantity
3000 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
CAKE Account 4545
rea:ResourceType
: Bank Account
vf:Quantity
0 Canadian Dollars
nrp:Location
Royal Bank of Canada
Earmark for 3D printer
rea:ResourceType
: Virtual Account
vf:Quantity
0 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Photopolymer
rea:ResourceType
: 3D printing photopolymer
vf:Quantity
1000 Grams
FDM 3D printer
rea:ResourceType
: 3D printer
vf:Quantity
1 Each
(vf:Agent
(from) nrp:EventType
vf:Quantity
rea:EconomicResource
(to increment or decrement) vf:Process
)
Daniel
time contribution
20 Hours
(rea:ResourceType - 3D design)
Design 3D part
Sensorica
produce
1 Each
Design for this 3D part
Design 3D part
Design for this 3D part
rea:ResourceType
: 3D Design
vf:Quantity
1 Each
(vf:Agent
(from) nrp:EventType
vf:Quantity
rea:EconomicResource
(to increment or decrement) vf:Process
)
Jim
time contribution
2 Hours
(rea:ResourceType - 3D printing)
3D print operation & wish delivery
Jim
use
2 Hours
FDM 3D Printer
3D print operation & wish delivery
Jim
consume
100 Grams
Photopolymer
3D print operation & wish delivery
Jim
cite
20 Percent
Design for this 3D part
for 3D print operation & wish delivery
Sensorica
produce
1 Each
3D printed part
3D print operation & wish delivery
3D printed part
rea:ResourceType
: 3D Part
vf:Quantity
1 Each
Photopolymer
rea:ResourceType
: 3D printing photopolymer
vf:Quantity
900 Grams
(vf:Agent
(from) nrp:TransferType
nrp:EventType
vf:Quantity
vf:Agent
(to) rea:EconomicResource
(to increment or decrement) )
Exchange Inc.
shipment
give
1 Each
Random Customer
3D printed part
Random Customer
payment
receive
100 Canadian Dollars
Exchange Inc.
Exchange Inc. Account 1233
(vf:Agent
(from) nrp:TransferType
nrp:EventType
vf:Quantity
rea:EconomicResource
(to increment or decrement) )
Exchange Inc.
disbursement
give
100 Canadian Dollars
Exchange Inc. Account 1233
Exchange Inc.
distribution
receive
1 Canadian Dollars
Exchange Inc. Account 1233
Sensorica
distribution
receive
99 Canadian Dollars
Earmark for distribution
(vf:Agent
(from) nrp:TransferType
nrp:EventType
vf:Quantity
rea:EconomicResource
(to increment or decrement) )
Sensorica.
disbursement
give
99 Canadian Dollars
Earmark for distribution
Sensorica.
distribution
receive
5 Canadian Dollars
Earmark for rent
Daniel
distribution
receive
23 Canadian Dollars
Virtual account Daniel
Ali
distribution
receive
10 Canadian Dollars
Virtual account Ali
Kim
distribution
receive
11 Canadian Dollars
Virtual account Kim
Fatuma
distribution
receive
10 Canadian Dollars
Virtual account Fatuma
Jim
distribution
receive
40 Canadian Dollars
Virtual account Jim
CAKE Account 4545
rea:ResourceType
: Bank Account
vf:Quantity
99 Canadian Dollars
nrp:Location
Royal Bank of Canada
Earmark for rent
rea:ResourceType
: Virtual Account
vf:Quantity
5 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Daniel
rea:ResourceType
: Virtual Account
vf:Quantity
23 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Ali
rea:ResourceType
: Virtual Account
vf:Quantity
10 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
*
Virtual Account Kim
rea:ResourceType
: Virtual Account
vf:Quantity
11 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Jim
rea:ResourceType
: Virtual Account
vf:Quantity
40 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Fatuma
rea:ResourceType
: Virtual Account
vf:Quantity
10 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Exchange Inc. Account 1233
rea:ResourceType
: Bank Account
vf:Quantity
1 Canadian Dollars
nrp:Location
Royal Bank of Canada
(vf:Agent
(to) nrp:TransferType
nrp:EventType
vf:Quantity
rea:EconomicResource
(to increment or decrement) )
Daniel
payout
give
23 Canadian Dollars
Virtual account Daniel
Ali
payout
give
10 Canadian Dollars
Virtual account Ali
Kim
payout
give
11 Canadian Dollars
Virtual account Kim
Fatuma
payout
give
10 Canadian Dollars
Virtual account Fatuma
Jim
payout
give
40 Canadian Dollars
Virtual account Jim
CAKE Account 4545
rea:ResourceType
: Bank Account
vf:Quantity
5 Canadian Dollars
nrp:Location
Royal Bank of Canada
Virtual Account Daniel
rea:ResourceType
: Virtual Account
vf:Quantity
0 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Ali
rea:ResourceType
: Virtual Account
vf:Quantity
0 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
*
Virtual Account Kim
rea:ResourceType
: Virtual Account
vf:Quantity
0 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Jim
rea:ResourceType
: Virtual Account
vf:Quantity
0 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
Virtual Account Fatuma
rea:ResourceType
: Virtual Account
vf:Quantity
0 Canadian Dollars
ex:UnderlyingResource
CAKE Account 4545
(Aargh, that was torturous, @serapath may your treatment go well! :smile: )
^ [edited to include the payouts, probably need them to complete the CAKE accounting]
@serapath I have some thoughts about this exercise. I think we are mixing two issues - one is the question of how a group like Sensorica can best do their accounting, when they want to maintain different legal entities to meet their legal requirements but also want their main group to be a much looser open network. The other is to look at how REA accounting works vs pre-REA standard accounting.
The legal complications of Sensorica make this example more painful in terms of just seeing how REA works, which was the initial objective (I think).
I propose we scale this example back to something where the main network is formally registered, let's say as a cooperative, and get rid of the CAKE / Exchange Firm baggage. We could call it '3D Coop' or something like that. And they could still use the contributory accounting scheme (although that is independent of the REA question too).
If we want to also look into Sensorica's situation to see if we can be of help there, maybe that could be a separate issue?
What do you think?
Hm, from a first glance, the REA accounting
looks interesting. I'll skip more in-depth reading for now.
Thx. for all the corrections. Regarding people's bank (i just made up they all have an account at royal bank of canada), i did that, because i wanted to really account for every change that happens based on activity in that business scenario from a macro economic perspective. A payment includes changes to the balance sheet of the buyers and sellers bank accounts.
I'm still a bit confused about a few bits and pieces :-) ... Some more clarifying questions
Jim
just print a part and temporary use it for his own benefit or for a fun experiment using up Daniels
investment - "depriving" him from the chance that revenue will come from it?Regarding people's bank (i just made up they all have an account at royal bank of canada), i did that, because i wanted to really account for every change that happens based on activity in that business scenario from a macro economic perspective. A payment includes changes to the balance sheet of the buyers and sellers bank accounts.
I can see that makes sense. Let's put that back into the scenario. (I'll do that once we decide where we are going with it.)
How do "members" get paid by Sensorica and/or CAKE? Is it dividends or is it salary or do they invoice Sensorica and/or CAKE? (in the latter case they would need some form of self employment status and a tax number, right?)
People are not employees, but I don't know how they handle it legally. And I don't know the Canadian laws, although I'm familiar in the US from having done a lot of contracting.
If there will be revenue directly or indirectly connected to that investment, they get paid back, but if not, will they face a loss?
Yes. Lots of people have put in lots of time and money over the years, and the chances of ever getting paid are extremely low for many of them.
Can Jim just print a part and temporary use it for his own benefit or for a fun experiment using up Daniels investment - "depriving" him from the chance that revenue will come from it?
Yes, all the hardware designs are open source, anyone can do that, in or out of Sensorica. Just like those of us who write open source software. :) On the other hand, there is a complicated governance doc about the printer, and something has to be paid there, even if just the maintenance fee of $1.50/hour (not included in the scenario) and the polymer.
I somehow got the feeling that CAKE and all this happens in Canada - if it's USA based, sure, why not :P Don't know why I imagined it to be in Canada. So i maybe should switch RBC
to Bank of America
or something :-)
I guess the "complicated governance doc" around the printer would be important, but for now it can maybe be skipped even though that creates a situation that is very inviting for everyone who wants to take advantage of people's investments.
It would be very nice to figure out the legal relation between "members" and "Sensorica/CAKE", because this is always what matters when the worst comes to the worst and it's also pretty difficult to do the accounting if things are not clear. (A description of how people imagine the relationship to be - regarding their rights and the rights of the organization - the legal relationship could be derived i guess)
So if people/members are not "self employed" they might not have the right to invoice Sensorica/CAKE to get out money. So maybe they cound as employees or they cound as shareholders receiving dividends (maybe the latter is the case)
Ha, guess I wasn't too clear. Yes, it is all in Canada!
@serapath
In my experience last year with the Sensorica team, the lack of clarity about what constitutes an investment in the Sensorica commons and what value that contribution has in monetary terms when applied to prospective projects in the portfolio can be very troublesome. This is especially the case when there is a cash flow problem in Montreal and an infusion of cash is needed to keep the doors open. At that point, contributions to the commons don't matter as much as how to extract (extort) payment from "members" for their use of what's in the commons. If this isn't addressed sooner than later, your admonishment about what could go wrong will, indeed, do just that...
On Wed, Jun 29, 2016 at 12:50 PM, Alexander Praetorius < notifications@github.com> wrote:
I guess the "complicated governance doc" around the printer would be important, but for now it can maybe be skipped even though that creates a situation that is very inviting for everyone who wants to take advantage of people's investments.
- It would be very nice to figure out the legal relation between "members" and "Sensorica/CAKE", because this is always what matters when the worst comes to the worst and it's also pretty difficult to do the accounting if things are not clear.
- A description of how people imagine the relationship to be - regarding their rights and the rights of the organization - the legal relationship could be derived i guess
@serapath You can dig around on the Sensorica website if you are curious about all those details. http://www.sensorica.co/
I am uncomfortable criticizing other organizations' motives in value flows issue discussions. I think we should tread lightly, or else we will get into arguments with those other organizations, and they will not want to participate in our discussions of their use cases.
So, for example, in the Sensorica use cases, I think we should try to figure out what things mean (like, what kind of claims arise from contributions, and how might those relate to commonly understood terms), but not question their motives or stated intentions.
I like criticism, but think it should be discussed between the parties involved, and value flows in this case is a bystander.
Ok?
Yes. Lots of people have put in lots of time and money over the years, and the chances of ever getting paid are extremely low for many of them.
Adding on to this, many if not all affiliates of Sensorica are in it for more than the money. They are conducting an experiment to try a new way of working together and supporting themselves as a network. All such experiments have value IMO. "Next economy" experiments if you will. I want to make sure ValueFlows to support all current economic activities, and it will; but mostly I'm personally interested in facilitating the "next economy".
@serapath buncha great questions upthread. I'll try this one.
How do "members" get paid by Sensorica and/or CAKE? Is it dividends or is it salary or do they invoice Sensorica and/or CAKE? (in the latter case they would need some form of self employment status and a tax number, right?)
This slide deck about value equations might help.
Each project can have its own value equation, defined by the project members, which determines how income (if any) gets allocated. You can see from slide 4 that contributions can give rise to claims defined by the value equation. They might be:
The closest analogy I can think of is a US LLC (limited liability company), in which members have capital accounts that can be increased by investments of money or sweat, and where income is distributed according to the ratios of the capital accounts.
@bhaugen First, I apologize if my previous comment came across as critical of SENSORICA's motives and certainly any member. That was not my intent. However, I don't want to lose sight of the issues that arise for members when trying to maintain localized brick and mortar facilities that incur traditional economy expenses yet contributing to a globally distributed virtual network that experiments with "next economy" principles and behaviors. I'm not suggesting there are irreconcilable differences between the two, but they do warrant careful attention about how to manage their interfaces so that members feel included, contributory, and valued while responding / adapting to ongoing changes in conditions and circumstances. I don't have answers, but I'm in it to find out ways that work as we move forward. Thanks in advance for your patience...
@all btw, thx for all this input and explanations, I'm really thankful for all of this :-) I will write the accounting in executable javascript code, but try to make it as readable as possible. I feel once it works as executable code, there is little room for misunderstandings.
I would then also be interested to translate the example written by @fosterlynn into javascript and then maybe there can be "converters" who convert one representation into the other, if possible... :-)
@fosterlynn
do you know how much money people have to invest into CAKE
or Sensorica
to become members (i assume it's a coop
). If members are not self-employed and are also not employed, so they do not have salary claims against CAKE or Sensorica, they would probably use their "shares" (thus membership deposit) to invest into a printer fund or maybe use their private money to buy more of CAKE
s or Sensorica
s "coop shares" which are then through a contract somehow connected to the "printer fund" in regard to any profit/loss that will happen?
@bhaugen thx, i'll check it.
So from what you write, i understand, that value equations
equals contract
, where contract is more general and value equations are probably a specific kind of contract. In addition value networks
means self employed people working together
using the rules of shareholding
and taking on the roles of entrepreneur
and investor
instead of doing traditional `employment.
Question
agent
(real or legal person) and network
and project
network
or project
some kind of "virtual agent"
?value flow
? ...or what is the difference between "contribution to project", "contribution to organization" and "contribution to an order or shipment"? (...and why does it matter)@bhaugen Below are further comments on the links you provided
slide2
i was expecting to see economic circles, but even though the words used are unusual, it seems to describe a very classical process. I don't see where anything comes "full circle" - maybe it's just me, but the lack of a "circular economy" is what creates "inequality" (being very general here)slide3
talks about "democracy" and "value network contributors" - which is the classic thing that happens between investors and entrepreneurs who go on a venture and are all shareholders. :-)What I really like is the emphasis on transparency and having everything open for everyone to see. That's a quality that is non-classical and I believe vital in order to "save the planet" :-)
slide4
- to put it into classical terms - means, that economic activity is rewarded based on existing contracts, which are open for everyone to see. Traditionally that is being done in cost accounting
, but again, having it transparent is new and awesome :-) ...and instead of delegating it to management, having everyone affected participating in the process of defining cost centers
is new.
coops
is, that "profit" can be distributed not necessarily to shareholders based on how many shares they have, but use some alternative distribution key.slide6+
feels complicated. A lot of new words get introduced, but in my head it all feels like splitting revenue
based on contracts
last slide - 2 slides
("...but but but why is this stuff so complicated?") :-)
self employment
> employment
:-) ...and transparency enables to network with others more easily.that value equations equals contract, where contract is more general and value equations are probably a specific kind of contract.
Yes. Exactly.
What is the difference between agent (real or legal person) and network and project is a network or project some kind of "virtual agent"?
Yes. Agents can be people or groups, if the group makes decisions as a group via some agreement mechanism.
What is a value flow?
It is the same as a resource flow, but not very precisely defined yet. Most simply, it might be a resource flowing between two agents, or between and agent and a process or an exchange. But value flows continue, from one process to another, from one agent to another, from one transfer to another agent to another transfer. And then other resources flow in reverse, in reciprocal relationships to the flows going forward.
...or what is the difference between "contribution to project", "contribution to organization" and "contribution to an order or shipment"? (...and why does it matter)
It only has to do with how the work is organized, and how the income arrived. If the income arrived as (for example) a payment for a shipment, then the contributions to that shipment, going back through the chains of inputs, are all eligible for a share of the income, according to the value equation. Which might also include shares for administrative work, etc. Or if the income came directly to an organization, as a grant or sponsorship, then it's contributions to the organization, however they want to organize it.
We tried to accommodate a lot of variations on value equations that different organizations we knew wanted. I'm sure other variations are possible. We do know some people in Michigan who are looking at value equations as a part of LLC agreements.
I think even in a world where everyone gets what they need... (based on their needs => who or what will be arrogant enough to play god and decide what that means anyway?) ...even in such a world - it's still worth doing the accounting for everything.
We've had several discussions about that. I don't know how much we need to account for. I am pretty sure that reciprocity will still be important, but it could work differently. My current example is a community bus service. If the riders don't feel some reciprocal responsibility for the bus service, the bus service will cease. Might not be paying for rides. Might be maintaining the bus, or getting fuel, or feeding the bus workers, or whatever. But it will be necessary or things will not work well.
slide6+ feels complicated. A lot of new words get introduced, but in my head it all feels like splitting revenue based on contracts
The slide about the buckets and rules? That's the minimum structure it took to handle all the variations people wanted.
ok :-)
P.S. if you want a lot more detail, some of it is in this set of notes. Might be more than you want to know.
Or if you are a glutton for punishment I can walk you through the code, or at least the regression tests. They were a bear.
I have to say it get's quite tricky to do the normal accounting once Jim gets entrepreneurial and creates a 3D printed part from Daniels blueprint, using some of the photopolymer and using the 3D printer financed by several others. This is the first time, that dependencies are introduced which get resolved in the future and until then the exact value cannot be known. It seems to call for contracts that specify dependencies. I'm not sure yet how to express this in an easy-to-read way :-) I hope in the end something useful will come from it.
I have to say, the exercise gives me an interesting perspective on what REA
or valueflows
might be good for :-) It's already now, that I feel the accounting should be generated from the contracts which are probably all value equations
.
I'll post the code soon - just wanted to give you guys an update
@fosterlynn I also took a first look at your initial draft for REA/VF
statement.
It seems it follows a similar pattern to what I'm doing, just that I'm updating a global economy balance sheet and that I'm currently struggeling with some bits and pieces that I see addressed in your draft, even though your draft still feels informal.
At least I can see that the traditional accounting is probably lacking and there needs to be some kind of "contract chaining" that can start updating accounts once a payment comes in.
Ok, here comes the first draft.
It probably contains a lot mistakes.
I am not happy with the manual setting up of journal entries and i think it made me understand why there is such a thing as value equations
which are contracts that ideally generate the accounting.
The contracts
idea probably needs some reworking, so that it's both: easily readable and automatically inserting certain sets of journal entries
once triggered. I'm also not yet sure how to set them up in a way, so that certain journal entries
will trigger them automatically :-)
I would then soon make the stuff below into a markdown
file in it's own repository and then work on it by doing "pull requests" and discussions of them :-)
I'd love to improve this. At least it's executable, so if you want to see it at work, check out:
Otherwise, here you go:
english
See: https://github.com/valueflows/valueflows/blob/master/use-cases/3d-printer.md
Financial Accounting
/******************************************************************************
HELPER
******************************************************************************/
var apply=J=>J.forEach(b=>b.forEach(e=>e[0][e[1]]?e[0][e[1]]+=e[2]:e[0][e[1]]=e[2]))
var log=E=>console.log(E)
/******************************************************************************
"VALUE EQUATIONS"
******************************************************************************/
CONTRACT = {
purchaseOrder: ({seller, buyer, receiver=buyer, price, amount=1, subject, dependencies=[]}={}) => ({
shippingRequest: `${seller} ships ${amount} ${subject} to ${buyer}`,
invoice: `${buyer} pays ${price}$ to ${seller}`
}),
membership: ({name, x}={}) => `
${name} is member of Sensorica starting with a "capital account of" ${x}.
${name} can work on authorized tasks and get paid at a task specific rate.
${name} can fill up a "capital account" through contributions by acting as independent micro investors (investing money into a Sensorica cause) and/or micro entrepreneurs (=investing time into a Sensorica cause).
${name} will receives dividends based on revenue directly or indirectly caused by such a cause. Contributions and the distribution of revenue is subject to Sensorica "contribution contracts" (=value equations) members can join by investing time/money into causes.
They can be of type: 'debt-like', 'equity-like', 'one-time'
`,
work: ({name, x, activity, rate = 20}={}) => `
${name} works for ${x} hours on ${activity} for ${x*rate} $ by CAKE.
`,
affiliate: ({name, service, x, rate = 0.01, dependencies = []}={}) => `
Exchange Inc. offers ${service} to ${name} to sell for ${x} taking 0.01 in case of success.
`,
// Investment Contract (= value equation)
// => defined "democratically" by Sensorica project members
// TYPE: debt-like
investment: ({name, x, subject, amount=1, rate = 1.2}={}) => `
${name} invested ${x}$ into a Sensorica project for ${subject} and will
receive dividends from it's commercial use until the ${subject} is used up or
the received income (=Return On Invest) reaches ${x*rate}, after which further usage will become part of the Sensorica commons.
// (printer gets paid at $15/hour, gets split among contributors)
`,
// Entrepreneursip Contract (= value equation)
// => defined "democratically" by Sensorica project members
// TYPE: debt-like
entrepreneurship: ({name, x, subject, rate = 20, dependencies = []}={}) => `
${name} invested ${x}h into a Sensorica project for ${subject} and will
receive dividends from it's commercial use until the ${subject} is used up or
the received income (=Return On Invest) reaches ${x*rate}, after which further usage will become part of the Sensorica commons.
${dependencies.length ?
`20% of Potential payment also needs to be distributed to:
* ${dependencies.join('\n * ')}}
` : ''
}
`
}
/******************************************************************************
BALANCE SHEETS
* assets: // contains a priced inventory
* capital: // contains liabilities, equity and other capital positions
* off: // Off balance sheet positions, such as contracts
// => might trigger/generate capital or asset changing events
******************************************************************************/
with (CONTRACT) {
ECONOMY = {
'RBC': { // Royal Bank of Canada
assets: { /* ... */ },
capital: {
// ...
'liability/Kim/$' : +1000,
'liability/Jim/$' : +1500,
'liability/Ali/$' : +2000,
'liability/Daniel/$' : +2500,
'liability/Fatuma/$' : +3000,
'liability/Random Customer/$' : +5000,
'liability/PP Inc./$' : +15000,
'liability/ORD/$' : +25000,
'liability/CAKE/$' : +27000,
'liability/UPS/$' : +500000
// ...
},
off: { /* ... */ }
},
'UPS': {
assets: {
'claim/RBC/account/$' : +500000,
},
capital: { /* ... */ },
off: { /* ... */ }
},
'PP': {
assets: {
'claim/RBC/account/$' : +15000,
},
capital: { /* ... */ },
off: { /* ... */ }
},
'ORD': {
assets: {
'claim/RBC/account/$' : +25000,
'inventory/3Dprinter/$' : +3000,
},
capital: { 'equity/$' : +28000 },
off: { /* ... */ }
},
'CAKE': {
assets: {
'claim/RBC/account/$' : +12000,
'claim/RBC/account/Sensorica/$' : +10000,
'claim/RBC/account/Exchange Inc./$' : +5000
},
capital: {
// ...
'equity/Sensorica/Ali/$' : +2000,
'equity/Sensorica/Fatuma/$' : +2000,
'equity/Sensorica/Kim/$' : +2000,
'equity/Sensorica/Daniel/$' : +2000,
'equity/Sensorica/Jim/$' : +2000
},
off: {
// ...
'contract/Sensorica/Ali/membership' : membership({name:'Ali',x:2000}),
'contract/Sensorica/Kim/membership' : membership({name:'Kim',x:2000}),
'contract/Sensorica/Fatuma/membership': membership({name:'Fatuma',x:2000}),
'contract/Sensorica/Daniel/membership': membership({name:'Daniel',x:2000}),
'contract/Sensorica/Jim/membership' : membership({name:'Jim',x:2000})
}
},
'Ali': {
assets: {
'claim/RBC/account/$' : +2000,
'shares/Sensorica/$' : +2000
},
capital: { 'equity/$': +4000 },
off: { /* ... */ }
},
'Fatuma': {
assets: {
'claim/RBC/account/$' : +3000,
'shares/Sensorica/$' : +2000
},
capital: { 'equity/$': +5000 },
off: { /* ... */ }
},
'Kim': {
assets: {
'claim/RBC/account/$' : +1000,
'shares/Sensorica/$' : +2000
},
capital: { 'equity/$': +3000 },
off: { /* ... */ }
},
'Jim': {
assets: {
'claim/RBC/account/$' : +1500,
'shares/Sensorica/$' : +2000
},
capital: { 'equity/$': +3500 },
off: { /* ... */ }
},
'Daniel': {
assets: {
'claim/RBC/account/$' : +2500,
'shares/Sensorica/$' : +2000
},
capital: { 'equity/$': +4500 },
off: { /* ... */ }
},
'RC': { // Random Customer
assets: {
'claim/RBC/account/$' : +5000
},
capital: { 'equity/$': +5000 },
off: { /* ... */ }
}
}
}
/******************************************************************************
JOURNAL
******************************************************************************/
log(ECONOMY)
with (ECONOMY) { /* and */ with (CONTRACT) {
JOURNAL = [
/**************************************************************************
PRE PROCESS
**************************************************************************/
// Ali invests Sensorica shares worth 500$ into Sensoricas 3d printer fund
((amount, contract) => [
[Ali.assets, 'shares/Sensorica/$', -amount],
[Ali.assets, 'shares/Sensorica/printerfund/$', +amount],
[Ali.off, 'contract/Sensorica/printerfund', contract],
[CAKE.capital, 'equity/Sensorica/Ali/$', -amount],
[CAKE.capital, 'provision/Sensorica/3Dprinter/$', +amount],
[CAKE.off, 'contract/Ali/printerfund', contract]
])(500, investment({name:'Ali',x:500,subject:'3Dprinter'})),
// Kim invests Sensorica shares worth 1000$ into Sensoricas 3d printer fund
((amount, contract) => [
[Kim.assets, 'shares/Sensorica/$', -amount],
[Kim.assets, 'shares/Sensorica/printerfund/$', +amount],
[Kim.off, 'contract/Sensorica/printerfund', contract],
[CAKE.capital, 'equity/Sensorica/Kim/$', -amount],
[CAKE.capital, 'provision/Sensorica/3Dprinter/$', +amount],
[CAKE.off, 'contract/Kim/printerfund', contract]
])(1000, investment({name:'Kim',x:1000,subject:'3Dprinter'})),
// Fatuma invests 1500$ from her bank account at Royal Bank of Canada into a Sensorica printer fund
((amount, contract) => [
[Fatuma.assets, 'claim/RBC/account/$', -amount],
[Fatuma.assets, 'shares/Sensorica/printerfund/$', +amount],
[Fatuma.off, 'contract/Sensorica/printerfund', contract],
[RBC.capital, 'liability/Fatuma/$', -amount],
[RBC.capital, 'liability/CAKE/$', +amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +amount],
[CAKE.capital, 'provision/Sensorica/3Dprinter/$', +amount],
[CAKE.off, 'contract/Fatuma/printerfund', contract]
])(1500, investment({name:'Fatuma',x:1500,subject:'3Dprinter'})),
// Sensorica uses printerfund to order a 3D printer for 3000$ from ORD
((amount, contract) => [
[CAKE.assets, 'claim/ORD/3Dprinter/$', +amount],
[CAKE.capital, 'liability/ORD/$', +amount],
[CAKE.capital, 'provision/Sensorica/3Dprinter/$', -amount],
[CAKE.capital, 'equity/Sensorica/$', +amount],
[CAKE.off, 'contract/ORD/purchase/3Dprinter', contract],
[ORD.assets, 'claim/CAKE/$', +amount],
[ORD.capital, 'liability/CAKE/3Dprinter/$', +amount],
[ORD.off, 'contract/CAKE/sale/3Dprinter', contract]
])(3000, purchaseOrder({seller:'ORD', buyer:'CAKE', price:3000, amount:'1x', subject:'3Dprinter'})),
// Sensorica pays the invoice from it's bank account at Royal Bank of Canada
((amount, contract) => [
[CAKE.assets, 'claim/RBC/account/Sensorica/$', -amount],
[CAKE.capital, 'liability/ORD/$', -amount],
[RBC.capital, 'liability/CAKE/$', -amount],
[RBC.capital, 'liability/ORD/$', +amount],
[ORD.assets, 'claim/RBC/account/$', +amount],
[ORD.assets, 'claim/CAKE/$', -amount]
])(3000),
// Sensorica receives 3D printer from ORD, who paid 20$ to UPS for shipping
((amount, contract) => [
[CAKE.assets, 'claim/ORD/3Dprinter/$', -amount],
[CAKE.assets, 'inventory/Sensorica/3Dprinter/$', +amount],
[RBC.capital, 'liability/ORD/$', -20],
[RBC.capital, 'liability/UPS/$', +20],
[UPS.assets, 'claim/RBC/account/$', +20],
[UPS.capital, 'equity/$', +20],
[UPS.off, 'contract/ORD/shipping', contract],
[ORD.assets, 'inventory/3Dprinter/$', -amount],
[ORD.assets, 'liability/CAKE/3Dprinter/$', -amount],
[ORD.off, 'contract/UPS/shipping', contract]
])(3000, purchaseOrder({seller:'UPS',buyer:'ORD',receiver:'CAKE',price:20,subject:'3Dprinter'})),
// Daniel invests 30$ to order 1000g photopolymer from PP Inc. via Sensorica
((amount, contract) => [
[Daniel.assets, 'shares/Sensorica/photopolymer/$', +amount],
[Daniel.capital, 'liability/Sensorica/photopolymer/$', +amount],
[Daniel.off, 'contract/Sensorica/photopolymer', contract],
[CAKE.assets, 'claim/Daniel/photopolymer/$', +amount],
[CAKE.capital, 'equity/Sensorica/$', +amount],
[CAKE.off, 'contract/Daniel/photopolymer/$', contract]
])(30, investment({name:'Daniel',x:30,subject:'photopolymer', amount:'1000g'})),
// Daniel buys 1000g photopolymer for 30$ from PP Inc. to ship it to Sensorica
((amount, contract) => [
[Daniel.assets, 'claim/PP Inc./photopolymer/$', +amount],
[Daniel.capital, 'liability/PP Inc./$', +amount],
[Daniel.off, 'contract/PP/purchase/photopolymer/$', contract],
[PP.assets, 'claim/Daniel/$', +amount],
[PP.capital, 'liability/CAKE/photopolymer/$', +amount],
[PP.off, 'contract/Daniel/sale/photopolymer/$', contract]
])(30, purchaseOrder({seller:'PP',buyer:'Daniel',receiver:'CAKE',price:30,amount:'1000g',subject:'photopolymer'})),
// Daniel pays the invoice from his bank account at Royal Bank of Canada
((amount) => [
[Daniel.assets, 'claim/RBC/account/$', -amount],
[Daniel.assets, 'liability/PP Inc./$' -amount],
[RBC.capital, 'liability/Daniel/$', -amount],
[RBC.capital, 'liability/PP Inc./$', +amount],
[PP.assets, 'claim/Daniel/$', -amount],
[PP.assets, 'claim/RBC/account/$', +amount]
])(30),
// Sensorica receives 1000g photopolymer at it's lab
((amount) => [
[Daniel.assets, 'claim/PP Inc./photopolymer/$', -amount],
[Daniel.capital, 'liability/Sensorica/photopolymer/$', -amount],
[CAKE.assets, 'inventory/Sensorica/photopolymer/$', +amount],
[CAKE.assets, 'claim/Daniel/photopolymer/$', -amount]
])(30),
// Kim works 3h into Sensorica accounting for Sensorica
((amount, contract) => [
[Kim.assets, 'claim/Sensorica/$', +amount],
[Kim.capital, 'equity/Kim/$', +amount],
[Kim.off, 'contract/Sensorica/accounting/$', contract],
[CAKE.capital, 'equity/Sensorica/$', -amount],
[CAKE.capital, 'liability/Kim/$', +amount],
[CAKE.off, 'contract/Kim/accounting/$', contract]
])(60, work({name:'Kim',x:3,activity:'Sensorica Accounting'})),
/**************************************************************************
PROCESS 1
**************************************************************************/
// Daniel invests 20h to design a 3D model/blueprint for Sensorica
((contract) => [
[Daniel.off, 'contract/Sensorica/3Dmodel/$', contract],
[CAKE.off, 'contract/Daniel/3Dmodel/$', contract]
])(entrepreneurship({name:'Daniel',x:20,subject:'3Dmodel'})),
/**************************************************************************
PROCESS 2
**************************************************************************/
// Jim invests 2h to create a 3D printed part by using the 3D printer, 100g/1000g photopolymer and Sensoricas 3D model
((amount, contract) => [
[Jim.off, 'contract/Sensorica/3Dpart/$', contract],
[CAKE.assets, 'inventory/Sensorica/photopolymer/$', -(100*30/1000)],
[CAKE.assets, 'inventory/Sensorica/3Dpart/$', +(3+amount)],
[CAKE.capital, 'provision/revenue/3Dpart', +amount],
[CAKE.off, 'contract/Jim/3Dpart/$', contract]
])(2*20, entrepreneurship({name:'Jim',x:2,subject:'3Dpart',dependencies:[
CAKE.off['contract/CAKE/sale/3Dprinter'],
CAKE.off['contract/Daniel/photopolymer/$'],
CAKE.off['contract/Daniel/3Dmodel/$']
]})),
/**************************************************************************
SALE
**************************************************************************/
// Sensorica offers the 3D printed part for 100$ through Exchange Inc. marketplace
((amount, contract) => [
[CAKE.assets, 'inventory/Sensorica/3Dpart/$', -0.4*amount],
[CAKE.assets, 'offer/Exchange/3Dpart/$', +amount],
[CAKE.capital, 'provision/revenue/3Dpart', +0.6*amount],
[CAKE.off, 'contract/Exchange Inc./affiliate', contract]
])(100, affiliate({name:'Exchange Inc.',service:'Marketplace',x:100,dependencies:[
CAKE.off['contract/Jim/3Dpart']
]})),
// Random Customer buys 3D printed part for 100$ on Exchange Inc. marketplace
((amount, contract) => [
[RC.assets, 'claim/CAKE/3Dpart/$', +amount],
[RC.capital, 'liability/CAKE/$', +amount],
[RC.off, 'contract/Random Customer/purchase/3Dpart',contract],
[CAKE.assets, 'claim/Random Customer/$', +amount],
[CAKE.capital, 'liability/Random Customer/3Dpart/$', +amount],
[CAKE.off, 'contract/Random Customer/purchase/3Dpart',contract]
])(100, purchaseOrder({seller:'CAKE',buyer:'Random Customer',price:100,subject:'3Dpart',dependencies:[
CAKE.off['contract/Exchange Inc./affiliate']
]})),
// Random Customer pays 100$ through his bank account at Royal bank of Canada to CAKE's bank account at Royal bank of Canada
((amount) => [
[RC.assets, 'claim/RBC/account/$', -amount],
[RC.capital, 'liability/CAKE/$', -amount],
[RBC.capital, 'liability/Random Customer/$', -amount],
[RBC.capital, 'liability/CAKE/$', +amount],
[CAKE.assets, 'claim/RBC/account/$', +amount],
[CAKE.assets, 'claim/Random Customer/$', -amount]
])(100),
// CAKE ships 3D printed part to Random Customer for 5$ via UPS
((amount, contract) => [
[RC.assets, 'inventory/3Dpart/$', +amount],
[RC.assets, 'claim/CAKE/3Dpart/$', -amount],
[RBC.capital, 'liability/CAKE/$', -5],
[RBC.capital, 'liability/UPS/$', +5],
[UPS.assets, 'claim/RBC/account/$', +5],
[UPS.capital, 'equity/$', +5],
[UPS.off, 'contract/ORD/shipping', contract],
[CAKE.assets, 'offer/Exchange/3Dpart/$', -amount],
[CAKE.capital, 'liability/Random Customer/3Dpart/$', -amount],
[CAKE.off, 'contract/UPS/shipping', contract]
])(100, purchaseOrder({seller:'UPS',buyer:'CAKE',receiver:'RC',price:5,subject:'3Dpart'})),
/**************************************************************************
DISTRIBUTION
**************************************************************************/
// Exchange Inc. invoices CAKE 0.01*100$ for Sale of 3D printed part
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.01*amount],
[CAKE.assets, 'claim/RBC/account/Exchange Inc./$', +0.01*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.01*amount],
[CAKE.capital, 'equity/$', +0.01*amount]
])(100),
// Sensorica receives $5 (5%) for general network expenses, e.g. UPS shipping.
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.05*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.05*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.05*amount],
[CAKE.capital, 'equity/$', +0.05*amount]
])(100),
// Daniel receives $3 for Photopolymer (based on the cost per gram)
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.03*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.03*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.03*amount],
[CAKE.capital, 'equity/Sensorica/Daniel/$', +0.03*amount]
])(100),
// Daniel receives $20 for Design for 3D printed part (20% of selling price)
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.2*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.2*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.2*amount],
[CAKE.capital, 'equity/Sensorica/Daniel/$', +0.2*amount]
])(100),
// Ali receives $5 for PrinterFund (printer gets paid at $15/hour, gets split among contributors)
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.05*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.05*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.05*amount],
[CAKE.capital, 'equity/Sensorica/Ali/$', +0.05*amount]
])(100),
// Kim receives $10 for PrinterFund
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.1*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.1*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.1*amount],
[CAKE.capital, 'equity/Sensorica/Kim/$', +0.1*amount]
])(100),
// Fatuma receives $15 for PrinterFund
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.15*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.15*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.15*amount],
[CAKE.capital, 'equity/Sensorica/Fatuma/$', +0.15*amount]
])(100),
// Kim receives $1 for MonthlySensoricaPrinterFundAccounting (based on some rule, let's say 1% of sale until reaching $20/hour)
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.01*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.01*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.01*amount],
[CAKE.capital, 'equity/Sensorica/Kim/$', +0.01*amount]
])(100),
// Jim receives $40 for PrinterOperation his work and initiative for the sale (the rest)
((amount) => [
[CAKE.assets, 'claim/RBC/account/$', -0.4*amount],
[CAKE.assets, 'claim/RBC/account/Sensorica/$', +0.4*amount],
[CAKE.capital, 'provision/revenue/3Dpart', -0.4*amount],
[CAKE.capital, 'equity/Sensorica/Jim/$', +0.4*amount]
])(100)
]
}}
apply(JOURNAL)
log(ECONOMY)
REA
// @TODO
@TiberiusB @serapath here's one starting point that I copied from a Sensorica document: https://github.com/valueflows/valueflows/blob/master/use-cases/sensorica-custodian.md
Tibi, maybe you could fill in with more of Sensorica's details and concerns?