commit 643c5215e54b7e3204bd3fa4f4f8ca90ca2bf260
parent 07e59fe3eafaed23f0f251f838757d47a7bcf738
Author: Bob Haugen <bob.haugen@gmail.com>
Date: Fri, 9 Oct 2015 11:31:03 -0500
Merge pull request #48 from valueflows/wiki-use-cases
migrate use cases from wiki to `use-cases/`
Diffstat:
A | use-cases/colab.md | | | 186 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | use-cases/enspiral.md | | | 155 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 341 insertions(+), 0 deletions(-)
diff --git a/use-cases/colab.md b/use-cases/colab.md
@@ -0,0 +1,186 @@
+_This treatment was created by CoLab. Thanks, CoLab crew! They asked some questions. One answer added in [brackets]._
+
+## Entities
+
+* Team
+A collection of collaborators assembled for a purpose.
+
+* Collaborator
+ An individual working on a team.
+
+* Organization
+ A collection of teams with a collective mission.
+
+* Service
+ A contribution that a collaborator provides.
+
+* Client
+
+## Roles
+
+"Supplier":
+
+* Collaborator
+* Organization (CoLab)
+
+"Receiver":
+
+* Client
+* Collaborator
+
+## Use Cases/Contexts
+
+"Value Transaction"
+
+* Receiver
+* Supplier
+
+====
+
+Contractor
+ - Compensation Type (Flat, Hourly, Equity)
+
+Receiver
+
+====
+
+
+## Narratives
+
+1. Contracting Work
+ - CoLab contracts work to a collaborator based on an fixed bid (single sum)
+ - CoLab contracts work to a collaborator based on an hourly rate
+ - CoLab contracts work to a partner organization based on a fixed bid
+ - CoLab contracts work to a collaborator who is a member (based on an hourly rate)
+ - CoLab agrees to provide a collaborator with Equity in exchange for project work (either hourly or milestone)
+
+
+2. Payroll
+ - CoLab pays a collaborator for all work done on a project in a given period based on hourly reate
+ - CoLab pays a collaborator for reaching a milestone on a fixed-rate project
+
+3. Delivery/Client Projects
+ - CoLab agrees to provide a deliverable to a client at an hourly rate, and less than or equal to some estimated total cost.
+ - CoLab agrees to provide a deliverable to a client for some fixed amount.
+ - CoLab agrees to provide a hourly services to a client for an hourly rate.
+ - CoLab absorbs a portion of contracting costs in exchange for equity in the receiver's venture.
+
+4. Incoicing/Payment
+ - Client pays CoLab for all hours worked in a given period
+ - CoLab invoices a client for an agreed upon sum upon reaching a milestone
+ - CoLab invoices a client for all work done since last invoice upon reaching a milestone
+ - CoLab distributes equity received to all eligible team members based on agreed upon compensation scheme.
+
+
+5. CoLab Member Benefits (not directly project related)
+ - A Member receives dividend from the cooperative based on Coop annual profits, length of time the member has been a member of the coop, number of hours worked on client projects that year and numer of new business leads contributed to.
+ - A member receives some portion of equity for projects based on dividened formulas.
+
+
+6. DREAM: CoLab pays a collaborator for work in accordance with the clients' perceived satisfaction.
+
+7. SUPER-DREAM: No such thing as money, everyone gets what they need all the time.
+
+
+
+
+
+Domain Description
+---
+
+
+Example Sample Data
+---
+
+10 collaborators (programmers, designers, project manager, qa) (CO1-10) work on a web development project for a client (CL) through worker-coop (W).
+
+In a month, CO1 docked 50 hours working on the project for CL, and S docked 40 hours on the same project.
+
+During a month, CO1 - 10 docked the following hours for project with CL, billable to W:
+- CO1: 80 hrs
+- CO2: 85 hrs
+- CO3: 40 hrs
+- CO4: 10 hrs
+- CO5: 4 hrs
+- CO6: 40 hrs
+- CO7: 32 hrs
+- CO8: 12 hrs
+- CO9: 60 hrs
+- CO10: 4 hrs
+
+At the end of the month, W invoiced the client CL $7000 at a blended rate (_?_)
+
+The client CL paid the invoice a few days later, sending the money to W.
+
+W distributes the money according to the value equations agreed upon. Their value equation for this project is (_?_) / hour, with (_?_)% of that going back to W.
+
+Treatment as software objects, temporarily using the vocabulary from the valnet model. Will be changed to OVN vocab when ready. [Also, this treatment is work-in-process, subject to revision.]
+
+Agents:
+
+* CO1 - 10 (agent type: person)
+* CL (agent type: organization)
+* W (agent type: organization, is context agent (? what is a context agent ?) )
+_[According to the valnet vocab, "a context_agent is a group within which EconomicInteractions occur". That's probably still a bit obscure. In a typical business, that would be "the company" or whatever legal entity people are working in, or maybe a department in a company. We want also want to support informal organizations and wish to get away from business-as-usual, thus "context agent". Better names are welcome.]_
+
+Agent Relationships:
+
+* CL is client of W
+* CO1 - 10 are contractors working with W
+
+Resource Types:
+* Software development (could also be different grades or skills with different rates):
+ - unit: hours
+ - value_per_unit: (_?_)
+ - unit_of_value: $
+* or AgentResourceType (where different people have different rates for the same skills):
+ - agent: M
+ - resource_type: Software development
+ - value_per_unit: (_?_)
+* Money
+ - 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
+
+Economic Events:
+
+* CO? works X hours
+ - Event Type: Billable Work
+ - Resource Type: Backend Dev | Frontend Dev | Design | Project Management | QA
+ - from_agent: CO?
+ - to_agent: W
+ - context: (?) project
+ - quantity: (_?_)
+ - unit_of_quantity: hours
+ - exchange: Contribution 1
+
+* W delivers 70 hours work to CL ( basically invoices this)
+ - Event Type: Delivery
+ - Resource Type: Software development
+ - from_agent: W
+ - to_agent: CL
+ - context: LG project
+ - quantity: 70
+ - unit_of_quantity: hours
+ - exchange: Sale 1
+
+* CL pays W $7000
+ - Event Type: Cash Receipt
+ - Resource Type: Money
+ - from_agent: CL
+ - to_agent: W
+ - context: W
+ - quantity: 7000
+ - unit_of_quantity: $
+ - exchange: Sale 1
+
+* W distributes $2400 to CO?
+ - Event Type: Distribution
+ - Resource Type: Money
+ - from_agent: W
+ - to_agent: CO?
+ - resource: CO?’s virtual account (which is increased)
+ - context: W
+ - quantity: 2400
+ - unit_of_quantity: $
+ - exchange: Contribution 1
diff --git a/use-cases/enspiral.md b/use-cases/enspiral.md
@@ -0,0 +1,155 @@
+The following is sample data for the minimal core for simple accounting based on an Enspiral scenario. It is based on the following stories:
+
+Two developers (M and S) working on a project for a client (XYZ) through a network consulting company (ES).
+
+- In a month, M docked 30 hours working on the LG project for XYZ, and S docked 40 hours on the same project.
+- During the month, C worked 5 hours as part of ES, managing the client XYZ relationship, billing, etc. (not billable to XYZ).
+- At the end of the month, ES invoiced the client LG $7000 ($3000 for M's work, and $4000 for S’s work).
+- The client XYZ 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 (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:
+![Partial diagram of EconomicEvents](https://docs.google.com/drawings/d/1CAB9LoZca_wLulMdqd9KFULAvoF37iaOJj-fcgvCWuA/pub?w=960&h=720)
+
+**Treatment as software objects**, temporarily using the vocabulary from the [valnet model](https://github.com/valnet/valuenetwork/blob/master/docs/core_model.txt). Will be changed to OVN vocab when ready. [Also, this treatment is work-in-process, subject to revision.]
+
+Agents:
+* M (agent type: person)
+* S (agent type: person)
+* C (agent type: person)
+* XYZ (agent type: organization)
+* ES (agent type: organization, is context agent)
+* CB (agent type: organization, is context agent)
+* E (agent type: organization, is context agent)
+* LG project?
+ (We are still thinking about what Project means in this case.
+ Project team?
+ Long-duration customer order? Consulting contract?)
+
+Agent Relationships:
+* XYZ is client of ES
+* M is member of ES
+* C is member of ES
+* S is member of ES
+* CB is child of E
+* ES is child of E
+
+Resource Types:
+* Software development (could also be different grades or skills with different rates):
+ * unit: hours
+ * value_per_unit: 90
+ * unit_of_value: $
+* or AgentResourceType (where different people have different rates for the same skills):
+ * agent: M
+ * resource_type: Software development
+ * value_per_unit: 100
+* Money
+ * 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
+
+Economic Events:
+
+* M works 30 hours
+ * Event Type: Billable Work
+ * Resource Type: Software development
+ * from_agent: M
+ * to_agent: ES
+ * context: LG project
+ * quantity: 30
+ * unit_of_quantity: hours
+ * exchange: Contribution 1
+* S works 20 hours
+ * Event Type: Billable Work
+ * Resource Type: Software development
+ * from_agent: S
+ * to_agent: ES
+ * context: LG project
+ * quantity: 20
+ * unit_of_quantity: hours
+ * exchange: Contribution 2
+* S works 20 hours
+ * Event Type: Billable Work
+ * Resource Type: Software development
+ * from_agent: S
+ * 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 XYZ ( basically invoices this)
+ * Event Type: Delivery
+ * Resource Type: Software development
+ * from_agent: ES
+ * to_agent: XYZ
+ * context: LG project
+ * quantity: 70
+ * unit_of_quantity: hours
+ * exchange: Sale 1
+* XYZ pays ES $7000
+ * Event Type: Cash Receipt
+ * Resource Type: Money
+ * from_agent: XYZ
+ * to_agent: ES
+ * context: ES
+ * quantity: 7000
+ * unit_of_quantity: $
+ * exchange: Sale 1
+* ES distributes $2400 to M
+ * Event Type: Distribution
+ * Resource Type: Money
+ * from_agent: ES
+ * to_agent: M
+ * resource: M’s virtual account (which is increased)
+ * context: ES
+ * quantity: 2400
+ * unit_of_quantity: $
+ * exchange: Contribution 1
+* ES distributes $3200 to S
+ * Event Type: Distribution
+ * Resource Type: Money
+ * from_agent: ES
+ * to_agent: S
+ * resource: S’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
+* ES distributes $500 to CB
+ * Event Type: Distribution
+ * Resource Type: Money
+ * from_agent: ES
+ * to_agent: CB
+ * resource: CB’s virtual account (which is increased)
+ * context: ES
+ * quantity: 500
+ * unit_of_quantity: $
+* ES disburses $6500 from its account
+ * Event Type: Cash Disbursement
+ * Resource Type: Money
+ * from_agent: ES
+ * to_agent: ES
+ * resource: ES’s virtual account (which is decreased)
+ * context: ES
+ * quantity: 6500
+ * unit_of_quantity: $