... | ... | @@ -3,27 +3,27 @@ The following is sample data for the minimal core for simple accounting based on |
|
|
Two developers (Alice[A] and Ben[B]) working on a project for a client (Acme) through a network consulting company (Enspiral Services[ES]).
|
|
|
|
|
|
- In a month, A docked 30 hours working on the LG project for Acme, and B docked 40 hours on the same project.
|
|
|
- During the month, C worked 5 hours as part of ES, managing the client Acme relationship, billing, etc. (not billable to Acme).
|
|
|
- At the end of the month, ES invoiced the client Acme $7000 ($3000 for M's work, and $4000 for S’s work).
|
|
|
- During the month, C worked 5 hours as part of ES, managing the client Acme relationship, billing, etc. (not billable to Acme). [Leaving this off the data right now, as Enspiral does not pay for this at the moment. Can add later.]
|
|
|
- At the end of the month, ES invoiced the client Acme $7000 ($3000 for A's work, and $4000 for B’s work).
|
|
|
- The client Acme paid the invoice a few days later, sending the money to ES.
|
|
|
- ES distributes the money according to the value equations agreed upon. Their value equation for this project is $100 / hour, with 20% of that going back to ES. The 20% is distributed for the non-billable client management, to a sister project they want to support (via Cobudget[CB]), and to the ES general overhead fund.
|
|
|
- Upon distribution, all the individual accounts have access to the amount.
|
|
|
|
|
|
Diagram of some of the Economic Events listed in detail below:
|
|
|
Diagram of some of the Value Flows listed in detail below:
|
|
|
![Partial diagram of EconomicEvents](https://docs.google.com/drawings/d/1CAB9LoZca_wLulMdqd9KFULAvoF37iaOJj-fcgvCWuA/pub?w=960&h=720)
|
|
|
|
|
|
**Treatment as software objects**, using ValueFlows vocabulary as much as possible, although some of this vocabulary has not been decided. [Also, this treatment is work-in-process, subject to revision.]
|
|
|
**Treatment as software objects**, using ValueFlows vocabulary as much as possible, although some of this vocabulary has not been decided. [Also, this treatment is work-in-process, subject to revision!!]
|
|
|
|
|
|
2016/3/9 another tentative revision of the actual data involved in this use case. (Older version is below.)
|
|
|
|
|
|
Agents:
|
|
|
* A (class: Person)
|
|
|
* B (class: Person)
|
|
|
* Carol[C] (class: Person)
|
|
|
* C (class: Person)
|
|
|
* Acme (class: Organization)
|
|
|
* ES (class: Group, is context agent in Enspiral)
|
|
|
* CB (class: Group, is context agent in Enspiral)
|
|
|
* Enspiral[E] (class: Group, is context agent in Enspiral)
|
|
|
* ES (class: Group, is context agent in Enspiral scope)
|
|
|
* CB (class: Group, is context agent in Enspiral scope)
|
|
|
* E (class: Group, is context agent in Enspiral scope)
|
|
|
|
|
|
Agent Relationships:
|
|
|
* Acme is client of ES
|
... | ... | @@ -42,98 +42,86 @@ Resource Types: |
|
|
* agent: M
|
|
|
* resourceType: Software development
|
|
|
* valuePerUnit: 100
|
|
|
* Money
|
|
|
* Virtual account
|
|
|
* unit: $
|
|
|
* Brokerage service (includes getting gigs, assembling the consultants, getting them approved by the client, managing the client relationship, billing, distributing the payments, etc.)
|
|
|
* unit: hours
|
|
|
|
|
|
Exchanges:
|
|
|
|
|
|
Data in motion:
|
|
|
|
|
|
* A works 30 hours
|
|
|
* transferType: Billable Work
|
|
|
* Exchange1
|
|
|
* context: ES
|
|
|
* Resource Type: Software development
|
|
|
* from_agent: A
|
|
|
* to_agent: ES
|
|
|
* quantity: 30
|
|
|
* unit_of_quantity: hours
|
|
|
* exchange: Contribution 1
|
|
|
* B works 20 hours
|
|
|
* Event Type: Billable Work
|
|
|
* Resource Type: Software development
|
|
|
* from_agent: B
|
|
|
* to_agent: ES
|
|
|
* context: LG project
|
|
|
* quantity: 20
|
|
|
* unit_of_quantity: hours
|
|
|
* exchange: Contribution 2
|
|
|
* B works 20 hours
|
|
|
* Event Type: Billable Work
|
|
|
* Resource Type: Software development
|
|
|
* from_agent: B
|
|
|
* to_agent: ES
|
|
|
* context: LG project (or ES)
|
|
|
* quantity: 20
|
|
|
* unit_of_quantity: hours
|
|
|
* exchange: Contribution 2
|
|
|
* C works 5 hours
|
|
|
* Event Type: Work
|
|
|
* Resource Type: Brokerage Service
|
|
|
* from_agent: C
|
|
|
* to_agent: ES
|
|
|
* context: LG project
|
|
|
* quantity: 5
|
|
|
* unit_of_quantity: hours
|
|
|
* exchange: Contribution 3
|
|
|
* ES delivers 70 hours work to Acme ( basically invoices this)
|
|
|
* Event Type: Delivery
|
|
|
* Resource Type: Software development
|
|
|
* from_agent: ES
|
|
|
* to_agent: Acme
|
|
|
* context: LG project
|
|
|
* quantity: 70
|
|
|
* unit_of_quantity: hours
|
|
|
* exchange: Sale 1
|
|
|
* Acme pays ES $7000
|
|
|
* Event Type: Cash Receipt
|
|
|
* Resource Type: Money
|
|
|
* from_agent: Acme
|
|
|
* to_agent: ES
|
|
|
* context: ES
|
|
|
* quantity: 7000
|
|
|
* unit_of_quantity: $
|
|
|
* exchange: Sale 1
|
|
|
* ES distributes $2400 to A
|
|
|
* Event Type: Distribution
|
|
|
* Resource Type: Money
|
|
|
* from_agent: ES
|
|
|
* to_agent: A
|
|
|
* resource: A’s virtual account (which is increased)
|
|
|
* context: ES
|
|
|
* quantity: 2400
|
|
|
* unit_of_quantity: $
|
|
|
* exchange: Contribution 1
|
|
|
* ES distributes $3200 to B
|
|
|
* Event Type: Distribution
|
|
|
* Resource Type: Money
|
|
|
* from_agent: ES
|
|
|
* to_agent: B
|
|
|
* resource: B’s virtual account (which is increased)
|
|
|
* context: ES
|
|
|
* quantity: 3200
|
|
|
* unit_of_quantity: $
|
|
|
* exchange: Contribution 2
|
|
|
* ES distributes $400 to C
|
|
|
* Event Type: Distribution
|
|
|
* Resource Type: Money
|
|
|
* from_agent: ES
|
|
|
* to_agent: C
|
|
|
* resource: C’s virtual account (which is increased)
|
|
|
* context: ES
|
|
|
* quantity: 500
|
|
|
* unit_of_quantity: $
|
|
|
* exchange: Contribution 3
|
|
|
* exchangeType: Consulting Services
|
|
|
* Transfer1
|
|
|
* transferType: Billable Work
|
|
|
* isReciprocal: False
|
|
|
* ValueFlow1
|
|
|
* flowType: Give
|
|
|
* resourceType: Software development
|
|
|
* fromAgent: A
|
|
|
* toAgent: Acme
|
|
|
* quantity: 30
|
|
|
* unitOfQuantity: hours
|
|
|
* Transfer2
|
|
|
* transferType: Billable Work
|
|
|
* isReciprocal: False
|
|
|
* ValueFlow2
|
|
|
* flowType: Give
|
|
|
* resourceType: Software development
|
|
|
* fromAgent: B
|
|
|
* toAgent: Acme
|
|
|
* quantity: 20
|
|
|
* unitOfQuantity: hours
|
|
|
(Acme is invoiced, basically a report using the above data)
|
|
|
* Transfer3
|
|
|
* transferType: Payment
|
|
|
* isReciprocal: True
|
|
|
* ValueFlow3
|
|
|
* flowType: Receive
|
|
|
* resourceType: Virtual account
|
|
|
* resource: ES virtual account
|
|
|
* fromAgent: Acme
|
|
|
* toAgent: ES
|
|
|
* quantity: 7000
|
|
|
* unitOfQuantity: dollars
|
|
|
|
|
|
* Transfer4 (this is winging it a bit; in NRP we still have Distribution as a subclass of Transfer and it works a bit differently)
|
|
|
* transferType: Distribution
|
|
|
* ValueFlow4
|
|
|
* flowType: Give
|
|
|
* resourceType: Virtual account
|
|
|
* resource: ES virtual account
|
|
|
* fromAgent: ES
|
|
|
* toAgent: A
|
|
|
* quantity: 2400
|
|
|
* unitOfQuantity: dollars
|
|
|
* ValueFlow5
|
|
|
* flowType: Receive
|
|
|
* resourceType: Virtual account
|
|
|
* resource: A virtual account
|
|
|
* fromAgent: ES
|
|
|
* toAgent: A
|
|
|
* quantity: 2400
|
|
|
* unitOfQuantity: dollars
|
|
|
* ValueFlow6
|
|
|
* flowType: Give
|
|
|
* resourceType: Virtual account
|
|
|
* resource: ES virtual account
|
|
|
* fromAgent: ES
|
|
|
* toAgent: B
|
|
|
* quantity: 3200
|
|
|
* unitOfQuantity: dollars
|
|
|
* ValueFlow7
|
|
|
* flowType: Receive
|
|
|
* resourceType: Virtual account
|
|
|
* resource: B virtual account
|
|
|
* fromAgent: ES
|
|
|
* toAgent: B
|
|
|
* quantity: 3200
|
|
|
* unitOfQuantity: dollars
|
|
|
|
|
|
|
|
|
|
|
|
* ES distributes $500 to CB
|
|
|
* Event Type: Distribution
|
|
|
* Resource Type: Money
|
... | ... | |