Open Source Employment & Labor Contracts

18 August 2020

This post sketches out a concept for empowering employees through an open source (i.e., freely available and open to the public) approach to collective bargaining. Specifically, it demonstrates a technical platform for employees to share and coordinate information about their employment-related legal agreements.

Improved access to information about employment contracts would help employees unite in negotiations for better wages and working conditions. Unions, which have traditionally helped employees with this process, are steadily declining in the U.S. (in 2020, only ~6% of employees belong to unions). Employees need alternatives to traditional labor organization.

A decentralized and transparent "source of truth" for employment contracts would allow employees to improve their working conditions together without the need for formal unionizing.

This sketch is still very much in development but I wanted to share early. Please get in touch with any thoughts, questions, comments, etc.

Table of Contents - Now Is the Time for Open Source Employment & Labor Contracts

  1. Introducing empk
  2. Background/Context
  3. Logging in/out (login, account, and logout)
  4. Contracts (contract)
  5. Clauses (clause)
  6. Sources (src)
  7. Tracking (diff)
  8. Counsel (counsel)
  9. Feedback (feedback)
  10. API
  11. Contributing (fork, pull, push)

A. Introducing empk

A while back, I built a little code-based tool to store and connect data about contracts for my legal clients. I wanted a better way to compare contract terms, show my clients how things work, demonstrate what’s normal, etc.

I call the platform empk, for "employment contract" (k is legal shorthand for "contract")—mainly because it's easy to type into a command line.

The concept is easier to show than explain. To compare an employer's contract with a template, the input/output at empk's command line interface (CLI) 1 might look like:

$ empk diff --k bigco --t sample_template --c noncompete

Tracked changes from sample_template to BigCo:

## Non-competition
For a period of six (6) months two (2) years after termination of Employee's employment for any reason other than a layoff or reduction in force, Employee will not, without prior consent of BigCo, directly or indirectly enter into employment, establish, or otherwise assist any entity or individual in the development or management of any program or service that competes with BigCo within a ten (10) mile radius of BigCo's Portland, Oregon office anywhere, worldwide.

Here, we're telling empk to compare (diff) a contract from an employer (--k bigco) with a template (--t sample_template), specifically focusing on the noncompete clause (--c noncompete). In response to our command, empk displays exactly how this employer's contract deviates from the template.

What's new about this?

At first glance, this functionality might seem simple and obvious. But this kind of transparency far exceeds what's available to most workers today.

A platform like empk would empower worker advocacy groups to collaborate on standards for employee rights. It would also enable employers to easily implement these standards in their workplaces by copying (a.k.a. "forking") templates and modifying them to suit particular needs. And, importantly, employees could compare employer-proposed contractual terms with outside benchmarks. In sum, a platform like empk would reduce the information gap between employees and employers.

The broader concept—access to information and communication about workers' rights issues—involves a massive market and profound social implications. See, e.g., Freeman, Richard B. and Rogers, Joel, A Proposal to American Labor, The Nation, Jun. 6, 2002 ("roughly 85 million workers–a group twelve times the size of present private union membership–are the market for open-source unionism. Capturing even a small share of this market could massively expand the American labor movement and vastly extend its reach.")

B. Background/Context

An antiquated system for employee rights

Despite leaps and bounds in technology, negotiating workers' legal rights in the United States has remained fundamentally unchanged for decades.

In private sector employment, most negotiations over workers' legal rights happen in opaque, black box systems that vary from employer-to-employer. It's also harder than ever for workers to meaningfully advance their rights via legislation, regulation, or court action.

In practice, things usually play out something like this:

At the beginning of employment, employers ask new employees to sign contracts detailing the terms of employment. These contracts detail the legal terms of employment and define each party’s rights. Employers may also impose contracts on employees during or after employment ends (e.g., amendments, promotions, severance agreements, affirmations, etc.).

Many employers now use electronic platforms to send, communicate, and obtain signatures on employment contracts from employees at all levels. Some employers still use hardcopy paper contracts and signatures, but that number is decreasing.

When employees have questions, feedback, or proposals, they are routed through human resources departments and mid-level managers. The ensuing discussions unfold within inflexible—and often invisible—parameters designed to promote employers' predefined labor strategies.

Regardless of the specific procedure, the bottom line hasn't changed much over time. Employees still have limited access to information. Employees are essentially on their own when it comes to bargaining power.

Sure, employees can independently consult lawyers, colleagues, mentors, and friends to help understand and negotiate their employment contracts. They can search websites like Glassdoor or Indeed to gather information. However, with the exception of union members—only 6% of private sector employees—employees are largely immobilized (i.e., independent) when it comes to negotiating their work-related legal rights.

With few communal resources for best practices on the employee's side, workers are at the mercy of HR departments, which are much better equipped at advocating their side of the equation. Information assymetry leads to lower pay, less benefits, and higher job insecurity for workers. Without adequate information, workers lack negotiation power and are less effective in advancing their legal rights.

On the back end, if things go wrong, employees face a prohibitive combination of forced arbitration clauses, class action waivers, and impossibly expensive and risky legal proceedings. Again, it's every-employee-for-her/himself with David versus Goliath odds.

Why and how the problem persists

Most employers—at least American employers—are satisified with a non-unified workforce. Employers typically prefer employees do not talk too much with each other about wages and working conditions.

(Source: Fox, Justin, What Unions No Longer Do, Harvard Business Review, Sep. 4, 2014.)

Employers know that immobilized workers receive lower wages and fewer benefits. Lower rates of unionization drive down wages and benefits across all workers—regardless of union status. In addition to lower pay, non-union employees work in more dangerous workplaces and experience higher job insecurity and unpredictability. Employees are also far less likely to enforce their legal rights without backing from a union or worker advocacy group.

Worker immobilization is profitable business for employers. Unsurprisingly, employers have access to significant data from high-volume institutional experience that drives their labor strategies. Networked, industry-wide data widens the information gap between employers and employees even further.

Employers claim, often falsely, that openly sharing information is impossible due to privacy and confidentiality concerns. Yet, paradoxically, employers cite their need to "treat employees equally" when declining to negotiate contractual terms.

Unions could help close the gaps in bargaining leverage. But union membership remains at record lows despite higher-than-ever support.

Pro-worker legislation could also move the needle. But the historic trajectory of workers' legal rights has been mostly downward, or, at best, a stalemate.

Waiting for advances on the union or legislative fronts seems like an imprudent strategy for labor activists. If we want to advance workers' rights, we need creative approaches. And we need them now.

Is this a problem technology can solve?

In a general sense, technology—especially open source technology—removes many obstacles to transparency and collaboration. Sharing and collaborating on community-based information projects has never been easier. This is especially true for written information like employment contracts.

Thought leaders have touted an open source approach to labor rights for a long time. As far back as 2002, two prominent scholars in this area—Harvard economist Richard B. Freeman and University of Wisconsin law professor Joel Rogers—emphasized the need to mobilize non-majority labor groups. Specifically, Freeman and Rogers described how an open source approach could "welcome millions into the movement" and address "a nearly lethal employer and policy environment." See, e.g., A Proposal to American Labor, supra. See also, Freeman, Richard B. and Roger, Joel, Open Source Unionism: Beyond Exclusive Collective Bargaining, 5 Journal of Labor and Society 4, 8-40 (Mar. 2002).

Despite calls for action and worsening conditions for workers, there has been little substantive innovation in open source worker mobilization. As of August 2020, there remains no clear leader in the field of technology-enabled worker organization.

Where do we start?

While fuller-scale unionism would be excellent, there's lower-hanging fruit: improving employee access to information about employment contracts. Building tools to improve access to information seems like an easier and relatively less controversial place to focus.

C. Logging in/out

To log in to empk, use login:

$ empk login

Please enter your login credentials:
Email: me@demo.com
Password: ************

Please enter the two-factor code sent to your device:
Code: ******

Logged in as me@demo.com

After logging in, empk can retrieve information connected with the logged-in user.

To view account information, use account:

$ empk account

# Your Account
Email: me@demo.com
Last Login: July 2, 2020
Contracts: 12
2 New Messages

Note: This walk-through omits a variety of account-related commands for brevity's sake (and because I'm still working on them). What's important to understand is that empk is a log in/log out account-based system.

To log out, use logout:

$ empk logout

You have been logged out.

D. Contracts

To list all contracts connected with an account, use contract:

$ empk contract

All contracts:

Contract Status Author File
--------------------------------------------------
BigCo (v002) pending bigco bigco_002
LittleCo (v001) closed littleco littleco_001
BigCo (v001) replaced bigco bigco_001
MedCo (v001) closed medco medco_001

To list contracts by author, use contract with:

$ empk contract --a bigco

All contracts authored by BigCo:

Contract Status Author File
--------------------------------------------------
BigCo (v002) pending bigco bigco_002
BigCo (v001) replaced bigco bigco_001

To view a contract, use contract with:

$ empk contract --k bigco_002

# Employment Agreement

The parties to this Employment Agreement (“Agreement”) are Tesla Motors, Inc. (“Employer”), and Elon Musk (“Employee”). The “Effective Date” of this Agreement is September 1, 2020.

[...]

E. Clauses

To list clauses, use clause with:

$ empk clause --k bigco_002

000.0 - Recitals
---
001.1 - Professional Services
001.2 - Full-time Employment
001.3 - Professional Standards
---
005.1 - Confidentiality
005.2 - Non-solicitation
005.3 - Non-competition
---
008.1 - Notices
008.2 - Entire Agreement of the Parties
008.3 - Severability
008.4 - Attorney Fees
008.5 - Governing Law

To view clauses, use clause with:

$ empk clause --k bigco_002 --c 001.1

## 001.1 - Professional Services
Subject to the terms of this Agreement, Corporation hereby agrees to employ Employee, as of the Effective Date to provide, and Employee agrees to provide, on Corporation's behalf, professional services to Corporation as set forth in this Agreement.

Both --k and --c accept multiple contracts/ clauses:

$ empk clause --k bigco_002 --c 001.2 005.3

## 001.2 - Full-time Employment
Employee agrees that for the duration of Employee's employment with Corporation, Employee shall, to the best of Employee's ability, devote Employee's attention and energy to performing the duties set forth in this Agreement and such other duties that Corporation may from time to time assign to employee.

## 005.3 - Non-competition
For a period of eighteen (18) months after termination of Employee's employment for any reason, whether voluntary or involuntary, Employee will not, without prior consent of Corporation, directly or indirectly enter into employment, establish, or otherwise assist any entity or individual in the development or management of any program or service that competes with Corporation within a fifty (50) mile radius of Corporation's Portland, Oregon office. Similarly, Employee agrees not to work or provide services for any competitior of Corporation while Employee is employed by Corporation.

F. Sources

To view a contract's source, use src with:

$ empk src --k bigco_002

This contract derives from a Workers United template for software engineers.

Author (a): workers_united
Author Name: Workers United
Template (t): wu_software_engineer

To view a clause's source, use src with:

$ empk src --k bigco_002 --c 005.3

This clause derives from a Workers United template for software engineers.

Author (a): workers_united
Author Name: Workers United
Template (t): wu_software_engineer

## Non-competition
For a period of six (6) months after termination of Employee's employment upon Employee's voluntary resignation or Corporation's termination of Employee's employment for any reason other than a layoff or reduction in force, Employee will not, without prior consent of Corporation, directly or indirectly enter into employment, establish, or otherwise assist any entity or individual in the development or management of any program or service that competes with Corporation within a ten (10) mile radius of Corporation's Portland, Oregon office.

For more information about this template, run empk src --t wu_software_engineer --c noncompete

G. Tracking changes

To compare changes between two drafts, use diff with:

$ empk diff --k bigco_002 --o bigco_001 --c 005.3

Tracked changes from bigco_001 to bigco:

## 005.3 - Non-competition
For a period of three (3) years two (2) years after termination of Employee's employment for any reason other than a layoff or reduction in force, Employee will not, without prior consent of BigCo, directly or indirectly enter into employment, establish, or otherwise assist any entity or individual in the development or management of any program or service that competes with BigCo within a ten (10) mile twenty five (25) mile radius of BigCo's Portland, Oregon office.

To compare a draft against its source, use diff with:

$ empk diff -s --k bigco --c noncompete

Tracked changes from Source to BigCo:

## Non-competition

For a period of six (6) months two (2) years after termination of Employee's employment for any reason other than a layoff or reduction in force, Employee will not, without prior consent of BigCo, directly or indirectly enter into employment, establish, or otherwise assist any entity or individual in the development or management of any program or service that competes with BigCo within a ten (10) mile radius of BigCo's Portland, Oregon office anywhere, worldwide.

To compare changes against a template, use diff with:

$ empk diff --k bigco_002 --t wu_software_engineer --c noncompete

Tracked changes from Workers United to BigCo (bigco_002):

## 005.3 - Non-competition
For a period of six (6) months two (2) years after termination of Employee's employment for any reason other than a layoff or reduction in force, Employee will not, without prior consent of BigCo, directly or indirectly enter into employment, establish, or otherwise assist any entity or individual in the development or management of any program or service that competes with BigCo within a ten (10) mile radius of BigCo's Portland, Oregon office anywhere, worldwide.

H. Counsel

To view a list of individuals/organizations willing to share information about a specific contract, use counsel with:

$ empk counsel --k bigco_002

The following individuals/organizations have indicated they have information relevant to this contract:

Name Email ID
Workers United info@workersunited.org 111111
Abe Uhlmann, Esq abe@uhlmann.com 222222
Amber Moss amber@gmail.com 333333
[...]

counsel also allows filtered searches. For example, to view a filtered list of nonprofit organizations with information about the noncompete clause in BigCo's contract, use counsel with:

$ empk counsel --t nonprofit --k bigco_002 --c 005.3 001.2

The following nonprofit organizations have indicated they have information relevant to this clause:

Name Email ID
Workers United info@workersunited.org 111111

I. Feedback

To request feedback on a contract or clause, use feedback with:

$ empk feedback -r --f workers_united --k bigco_002 --c 005.3

This will send a request to Workers United to request their feedback on this document. Do you wish to proceed?
[Y/n]:

To view feedback, use feedback with:

$ empk feedback -v --t public --k bigco_002 --c 005.3

## Feedback
Anonymous
This noncompete is too broad. 2 years is too long. It also doesn't provide an exception for when you're laid off. Why should employees be prevented from working in the field if BigCo lays them off?

J. API

empk also responds to Application Programmer Interface (API) calls. APIs are one way empk integrates with other applications and interfaces.

To test an API connection, ping the echo path with your API token in the header:

$ curl \
--header "X-TOKEN: your_token" \
https://empk.org/api/v1/echo

{
email: 'test@example.com'
}

To request a list of contracts, pass --data to the API:

$ curl \
--header "X-TOKEN: your_token" \
--data "authors[]=bigco" \
https://empk.org/api/v1/contracts

{
name: 'BigCo (v001)',
status: 'replaced',
author: 'bigco',
file: 'bigco_001'
}, {
name: 'BigCo (v002)',
status: 'pending',
author: 'bigco',
file: 'bigco_002'
}

The empk API can run many of the same commands listed above. I do not cover all those commands here for brevity's sake.

K. Contributing

The final feature I'll cover in this walk-through is the concept of forking, pulling, and pushing contract versions. These functions are simplied versions of standard git functions.

Forking a contract creates a new version of a contract based on an existing template. To fork a contract, use fork with:

$ empk fork --k wu_software_engineer

Forking...

Fork complete. File saved as: wu_software_engineer.md

Pulling a contract or clause creates a copy of an existing template, usually to propose changes. To pull a contract or clause, use pull with:

$ empk pull --k wu_software_engineer --c noncompete

Pulling...

Pull complete. File saved as: wu_software_engineer.md

Pushing a contract or clause uploads it to empk for review and approval. To push a contract or clause, use push with:

$ empk push --k wu_software_engineer --c noncompete

Pushing...

Push complete. Your changes were submitted to the contract's author(s) for approval.
1 Ultimately, empk will power user-friendly interfaces, APIs, etc. For this walk-through, we'll stick to the CLI because it's simpler to demonstrate in this free-standing context.
Many thanks to Sara Campbell, Zach Haighney, and Compound Writing for reading an earlier draft of this post's intro sections.