Release Notes

The following are a log of site development. I try to deploy new features and bug fixes weekly.

Release notes are omitted if they only contain internal changes or bug fixes.

Release Date Version Notes
December 28, 2022 0.165.0
  • Terms of use are added to the documentation page.
  • The cookie policy has been updated.
  • The Portfolio editor page is split into more focused pages for asset selection, policy configuration, and running back-tests.
  • Portfolio charts are interactive.
  • The index page shows recently updated portfolios instead of all the portfolios.
  • The profile page shows portfolios as a table with some metadata.
  • Work-in-progress portfolio specification changes are more persistent and are not dropped between page loads.
  • Portfolios now require a benchmark to be set (those without it set have been updated to use "SPY").
November 30, 2022 0.164.0
  • Relax input validation on page "Calculate Portfolio Risk With Custom Data": allow correlation value -1
November 30, 2022 0.162.0
  • Ensure security quotes cache is not too outdated
November 17, 2022 0.159.0
  • Add page listing all imported securities and some metadata
November 6, 2022 0.155.0
  • Add API documentation
October 12, 2022 0.154.0
  • Add endpoint to fetch asset and portfolio returns as CSV
May 18, 2022 0.150.0
  • Add documentation page with a section on user privacy
March 22, 2022 0.143.0
March 14, 2022 0.141.0
  • Rename the website from "Curtis Capital" to "PortfolioTree"
  • Add new PortfolioTree logo
  • Make home page look cooler
November 6, 2021 0.118.0
  • Use KO for deployment images
October 26, 2021 0.116.0
  • Add waterfall charts for factor return attribution
September 27, 2021 0.95.0
  • Use Nelder-Mead in optimized policy algorithms
  • Support report generation cancellation
September 13, 2021 0.83.0
  • Add longer look-back durations
  • Improve back-test default configuration
  • Improve error messages when something goes wrong when generating charts
September 5, 2021 0.82.0
  • Add benchmark report metadata to asset table
August 28, 2021 0.81.0
  • Add inverse volatility policy weight algorithm
  • Rename policy weight algorithms to better match industry terminology
September 4, 2021 0.80.0
  • Use arithmetic instead of geometric returns when calculating sharpe ratio
September 4, 2021 0.74.0
  • Add variance weight policy function (sigma^2)
  • Add inverse-risk weight policy function
  • Truncate floating point numbers in report to appropriate significant figures
  • Add volatility term structure factor
  • Add emerging/developed factor
August 24, 2021 0.68.0
  • Add user profile pages
August 10, 2021 0.67.0
  • Optimize home page load time (reduces query time by 96%)
August 1, 2021 0.59.0
  • Display Adjusted R-Squared in Factor Report
August 1, 2021 0.58.0
  • Cache cleaned FRED data
July 25, 2021 0.41.0
  • Use Kubernetes CronJob to fetch security quotes after markets close
July 24, 2021 0.34.0
  • Add volatility factor and High (Low) Beta factor to improve R2 of portfolios.
January 1, 2019

Implement and deploy MVP. Prior to 2019 the site listed economic indicators and their current values.

From 2019 through 2021 we worked we implemented most of the current feature set.


Here we document a few of the REST API HTTP endpoints behind the PortfolioTree webapp.

You can use them for programmatic interaction with public data.

Although the specification below is subject to change without notice, you may use it to do things like write scripts or integrate with your own custom (personal use) dashboards. In the future we will provide stable libraries for interacting with our API.

Most of the examples use CURL; however, you can use whatever language or tooling you like.

Path parameters that start with a colon ‘:’ (unicode character U+00F8) are variables. For example:, the “_id” is the name of a path parameter. It should be replaced with some valid value. You can find this in the portfolio profile URL.


POST /api/portfolio-risk-from-inputs

This endpoint allows you to calculate portfolio risk from asset risks, weights, and correlations.

curl -X POST \
  -H 'Content-Type: application/json' \ 
  -d '{"risks": [0.1, 0.2], "weights": [50, 50], "correlations": [[1, 0.2],[0.2, 1]]}'

GET /api/asset

This endpoint returns metadata about securities. It can receive multiple “id” parameters. One for each security. It can receive a single benchmark parameter.

Query Parameters
  • “id” (variadic): specifies a Security ID. This is usually a ticker such as SPY or GOOG.
  • “benchmark”: specifies the ticker to use as a benchmark.
curl ''
  "assets": [
      "id": "AGG",
      "name": "iShares Core U.S. Aggregate Bond ETF",
      "availablePeriods": 4793,
      "dataStart": "2003-09-29T04:00:00Z",
      "dataEnd": "2022-10-11T04:00:00Z",
      "type": "ETF",
      "url": "",
      "periodicMetrics": {
        "returns": {
          "fiveYears": -0.18,
          "inceptionKey": 3.87,
          "oneDay": 0.04,
          "oneMonth": -2.57,
          "oneWeek": -1.11,
          "oneYear": -9.43,
          "tenYears": 0.61,
          "threeMonths": -3.47,
          "threeYears": -2.11
        "risks": {
          "fiveYears": 3.57,
          "inceptionKey": 3.87,
          "oneMonth": 0.37,
          "oneWeek": 0.15,
          "oneYear": 4.48,
          "tenYears": 3.01,
          "threeMonths": 0.33,
          "threeYears": 4.34
        "sharpes": {
          "fiveYears": -0.03,
          "inceptionKey": 0.19,
          "oneYear": -0.93,
          "tenYears": 0.04,
          "threeYears": -0.21
        "inceptionDate": "2003-09-29T04:00:00Z"
      "id": "ACWI",
      "name": "iShares MSCI ACWI ETF",
      "availablePeriods": 3661,
      "dataStart": "2008-03-31T04:00:00Z",
      "dataEnd": "2022-10-11T04:00:00Z",
      "type": "ETF",
      "url": "",
      "periodicMetrics": {
        "returns": {
          "fiveYears": 3.69,
          "inceptionKey": 19.83,
          "oneDay": -0.69,
          "oneMonth": -9.49,
          "oneWeek": -4.67,
          "oneYear": -18.18,
          "tenYears": 6.66,
          "threeMonths": -6.39,
          "threeYears": 3.23
        "risks": {
          "fiveYears": 16.74,
          "inceptionKey": 19.83,
          "oneMonth": 1.39,
          "oneWeek": 0.67,
          "oneYear": 17.64,
          "tenYears": 14.31,
          "threeMonths": 1.14,
          "threeYears": 19.32
        "sharpes": {
          "fiveYears": 0.37,
          "inceptionKey": 0.47,
          "oneYear": -1.81,
          "tenYears": 0.61,
          "threeYears": 0.35
        "inceptionDate": "2008-03-31T04:00:00Z"
  "benchmark": {
    "id": "BIGPX",
    "name": "BlackRock Gwth Ptf Institutional",
    "availablePeriods": 3697,
    "dataStart": "2006-12-27T05:00:00Z",
    "dataEnd": "2021-09-02T04:00:00Z",
    "type": "Mutual Fund",
    "url": "",
    "periodicMetrics": {
      "returns": {
        "fiveYears": 8.08,
        "inceptionKey": 13.26,
        "oneDay": 0.21,
        "oneMonth": 1.32,
        "oneWeek": 0.97,
        "oneYear": 11.9,
        "tenYears": 8.59,
        "threeMonths": 1.88,
        "threeYears": 8.91
      "risks": {
        "fiveYears": 7.36,
        "inceptionKey": 13.26,
        "oneMonth": 0.28,
        "oneWeek": 0.27,
        "oneYear": 7.63,
        "tenYears": 9.11,
        "threeMonths": 0.31,
        "threeYears": 8.61
      "sharpes": {
        "fiveYears": 0.7,
        "inceptionKey": 0.55,
        "oneYear": 1.02,
        "tenYears": 0.74,
        "threeYears": 0.77
      "inceptionDate": "2006-12-27T05:00:00Z"
  "correlations": [

GET /api/portfolio/:_id

This endpoint returns portfolio specification and includes the latest report data. The response is huge. Consider using jq for inspecting it.


Top level report field not included in example output because it is nearly 20k lines long.

curl | jq 'del(.report)'
  "id": "5f456687fedae83924931071",
  "authorID": "5fa5ccaf64ab4340af6e994c",
  "name": "60/40",
  "assets": [
      "symbol": "AGG"
      "symbol": "ACWI"
  "implementationSpec": {
    "weightAlgorithm": "UserInput",
    "rebalancingInterval": "Quarterly",
    "policyUpdateInterval": "Never",
    "lookBackDuration": "",
    "userInputWeights": [
  "factors": [
      "id": "5fa7871f1a7dd8bfa14e24e3",
      "name": "Market"
      "id": "60ae9aa4dc3fe02bbf72dc00",
      "name": "U.S. (Non-U.S.)"
      "id": "5fa77cdce845242b9b33e027",
      "name": "Value (Growth)"
      "id": "5fa786b61a7dd8bfa14e24e2",
      "name": "Small (Large)"
      "id": "5fa8eb6da9cf999a0c632a16",
      "name": "Credit"
      "id": "5fa83b7ea9cf999a0c632a0f",
      "name": "Duration"
  "depth": 4,
  "isFactor": false,
  "benchmark": "BIGPX",
  "description": "",
  "isPrivate": false

GET /api/portfolio/:_id/report-data.csv

This endpoint responds with returns formatted as comma separated values.


This example only fetches the latest 10 days of returns.

curl | sponge | head -n 11
Portfolio Returns (Time),Portfolio Returns (Value),Portfolio Daily Rebalanced Returns (Time),Portfolio Daily Rebalanced Returns (Value),Asset 1 Returns (Time),Asset 1 Returns (Value),Asset 2 Returns (Time),Asset 2 Returns (Value),Factor 1 Returns (Time),Factor 1 Returns (Value),Factor 2 Returns (Time),Factor 2 Returns (Value),Factor 3 Returns (Time),Factor 3 Returns (Value),Factor 4 Returns (Time),Factor 4 Returns (Value),Factor 5 Returns (Time),Factor 5 Returns (Value),Factor 6 Returns (Time),Factor 6 Returns (Value),Benchmark Returns (Time),Benchmark Returns (Value),Risk Free Returns (Time),Risk Free Returns (Value)

*[HTML]: Hyper Text Markup Language

Correlation Matrix

Correlation Matrix Example


To get the “free lunch” of diversification in a portfolio, the assets need to be able to move independently from one another—so when one asset zigs, another asset zags. The mathematical measure of how “different” two investments are is called correlation.

  • If two assets have a correlation of 1, they are perfectly correlated. Perfectly correlated assets don’t provide any diversification, because they mirror each other’s every move.
  • If two assets have a correlation of 0, they are uncorrelated. Uncorrelated assets are indifferent to each other; what one does provides no information about what the other will do.
  • If two assets have a correlation of -1, they are negatively correlated. Negatively correlated assets mirror each other, but in opposite directions. When one asset is down, the other asset is up.


Viewing the correlation matrix can help determine if an asset is helping to diversify a portfolio. If an added asset has a correlation of 0.9 to another asset, the two are going to “co-move” most of the time, so the additional asset provides very little diversification. This could inform a decision to remove the asset, or reduce the weight to the asset in order to give more diversifying assets more room.

Efficient Frontier Chart

Efficient Frontier Example


Most investors prefer to maximize returns while also minimizing risk. Since return without risk is very rare to find, it is helpful to see how the two are related. The chart visualizes the relationship between risk and return to measure how “efficiently” risk is being used. The most efficient portfolio either provides the highest return for a fixed level of risk, or the lowest risk for a fixed level of return. These optimal combinations can be found along the convex upper-left-hand border, called the “frontier”. If your portfolio is close to this frontier, you are getting the most bang (return) for your buck (risk).

  • Each blue square is plotting one of the assets in the portfolio
  • The red square plots the portfolio’s risk & return as a whole
  • The gray dots plot other possible combinations of the portfolio assets to sample the possible range of outcomes from a risk/return perspective.
  • The darker-gray dots have more consistent risk/return ratios (preferable), while the lighter-gray dots have less consistent risk/return ratios (not preferable).
  • The plots will often appear to curve inwards (like a “C”). This is the “free lunch” of diversification that allows portfolios that combine uncorrelated assets to achieve a given return for less risk.


Observing a portfolio’s plot (in red) versus a sampling of other weight combinations (in gray) helps to visualize how risk-efficient a portfolio is relative to a range of other possibilities. The position of the portfolio plot can also inform how successfully a weighting algorithm is accomplishing its goal. For example, a weighting algorithm that minimizes variance should be able to plot very close to the farthest left point in the dot plot.

Factor Attribution

Factor Attribution Example


Since risk factors often explain the sources of returns for a portfolio, it is possible to use factor coefficients of a portfolio to disaggregate the source of a portfolio’s returns. This is only meaningful when the risk factors provide good explain-ability (have a high adjusted R2).

  • A portfolio with a positive coefficient to a risk factor will contribute positive returns if the risk factor had positive returns. A positive coefficient to a risk factor that had negative returns will result in negative return contribution to the portfolio.
  • A portfolio with a negative coefficient to a risk factor will contribute positive returns if the risk factor had negative returns. A negative coefficient to a risk factor that had positive returns will result in negative return contribution to the portfolio.


Being able to attribute a portfolio’s returns back to fundamental risk factors has many benefits. If a portfolio performed well, but the majority of the returns came from a single risk factor that you don’t feel confident will do well in the coming years, that can help attenuate expectations for future performance. If a portfolio underperformed a benchmark, but under-performance was driven by a factor you have high confidence in the future, that might bolster expectations of performance going forward. This is a useful way to determine if a portfolio is responding to the types of risks you are targeting.

Factor Coefficients

Factor Coefficients Example


Returns rarely present themselves without taking on risk. Returns that come in exchange for taking on known risks are called risk premiums. A handful of risk premiums do a pretty good job of explaining a portfolio’s returns. We can “regress” a portfolio against these known risk factors to measure how exposed a portfolio is to each one.

  • The measure of how exposed a portfolio is to a risk factor is called its “coefficient”. It can be used as a multiple to measure the degree to which a portfolio is impacted by a risk factor.
  • A positive coefficient means that the portfolio makes money when the risk factor makes money. A negative coefficient means the portfolio loses money when the risk factor makes money.
  • Combining risk factors can help “explain” the sources of returns for a portfolio; however, not all portfolios can be explained equally. To measure how good of a job the selected risk factors do in explaining the sources of returns for a portfolio, R2 can be used. R2 and adjusted R2 (for multiple risk factors) will be between 0 & 1, where 0 provides no explanation and 1 provides perfect explanation.


Knowing what risk factors you are exposed to can help measure if a portfolio matches your risk tolerances or needs. If a portfolio has a high coefficient to a risk factor that is undesirable, it can prompt a change. Such information can also add conviction in a strategy if exposure to the risk factor is desired.

Historical Weights Chart

Historical Weights Example


For portfolios with two or more assets, the amount invested in each asset can vary over time—either due to drift (changes in asset prices), or due to changing the desired allocation (set by the policy). To track the exposure of a portfolio over time, the weight—or percent—invested in each asset is displayed since the portfolio’s inception. Each color represents an asset in the portfolio

The value of the portfolio will change over time, but the weight is always reflected in percentages (so the total adds up to 100%).


Tracking historical weights of a portfolio can help ensure that an investment isn’t overly exposed to a single asset. It also helps visualize the impact of choices such as how often to rebalance, the frequency for updating policy weights, or the preferred weighting algorithm.

Return Distribution Chart

Return Distribution Example


A portfolio will tend to have many periods where the returns are slightly above and below the average, and fewer periods where the returns are way above and below the average. If we visualize these periodic returns by plotting how frequently each occurs, we get a snapshot of how common each periodic return is.

  • Most periodic returns are centered around the average (the highest point on the chart). The lower each bar on the chart, the less commonly that return showed up.
  • The red line shows what a “normal” distribution looks like, which is a statistical distribution. Its exact properties aren’t important, but it helps to visualize the shape of a portfolio’s distribution versus the normal distribution to observe where the two differ.
  • Most portfolios tend to have “excess kurtosis” which more simply means, “fat tails”. When the “tails” (far left and right bars) on a distribution are fatter than the normal distribution, this means more extreme returns should be expected.
  • Most portfolios also tend to have “skew”. Skew refers to having more extreme returns on one side of the distribution than another. Most portfolios are “negatively skewed” like the image above, meaning large negative returns are likely to occur more frequently than large positive returns.


Knowing the distribution of a portfolio can help mentally prepare for what the day-to-day reality of living with a portfolio is like. The more fat-tailed a portfolio is, the more “once-in-a-lifetime” experiences you’ll go through. Things that should only happen once every 100,000 years will occur once a decade. A portfolio with high negative skew will look amazing 90% of the time, but then have a devastating loss out of the blue that wipes out most of the gains from before. Negative skew tends to lure investors into a false state of confidence when gains are realized. But those gains aren’t really paid for until the inevitable wipe out hits the reset button. Both excess kurtosis and negative skew can be managed by seeking out diversifying assets. You may even find positively skewed assets to help balance the portfolio out.

Terms of Use

Version 1.0

The website located at (the “Site”) is a copyrighted work belonging to PortfolioTree LLC (“Company”, “us”, “our”, and “we”). Certain features of the Site may be subject to additional guidelines, terms, or rules, which will be posted on the Site in connection with such features. All such additional terms, guidelines, and rules are incorporated by reference into these Terms.

These Terms of Use (these “Terms”) set forth the legally binding terms and conditions that govern your use of the Site. By accessing or using the Site, you are accepting these Terms (on behalf of yourself or the entity that you represent), and you represent and warrant that you have the right, authority, and capacity to enter into these Terms (on behalf of yourself or the entity that you represent). You may not access or use the Site or accept the Terms if you are not at least 18 years old. If you do not agree with all the provisions of these Terms, do not access and/or use the Site.

Please be aware that section 10.2 of these terms contains provisions governing how disputes that you and we have against each other are resolved, including, without limitation, any disputes that arose or were asserted prior to the effective date of your acceptance of these terms. In particular, it contains an arbitration agreement which will, with limited exceptions, require disputes between us to be submitted to binding and final arbitration. Unless you opt out of the arbitration agreement: (1) you will only be permitted to pursue disputes or claims and seek relief against us on an individual basis, not as a plaintiff or class member in any class or representative action or proceeding; and (2) you are waiving your right to pursue disputes or claims and seek relief in a court of law and to have a jury trial.

1. Accounts

1.1. Account Creation

In order to use certain features of the Site, you must register for an account (“Account”) and provide certain information about yourself as prompted by the account registration form. You represent and warrant that: (a) all required registration information you submit is truthful and accurate; (b) you will maintain the accuracy of such information. You may delete your Account at any time, for any reason, by following the instructions on the Site. Company may suspend or terminate your Account in accordance with Section 8.

1.2. Account Responsibilities

You are responsible for maintaining the confidentiality of your Account login information and are fully responsible for all activities that occur under your Account. You agree to immediately notify Portfolio Tree LLC of any unauthorized use, or suspected unauthorized use of your Account or any other breach of security. Company cannot and will not be liable for any loss or damage arising from your failure to comply with the above requirements.

2. Access to the Site

2.1. Licence

Subject to these Terms, Company grants you a non-transferable, non-exclusive, revocable, limited license to use and access the Site solely for your own personal, noncommercial use.

2.2. Certain Restrictions.

The rights granted to you in these Terms are subject to the following restrictions:

  • a. you shall not license, sell, rent, lease, transfer, assign, distribute, host, or otherwise commercially exploit the Site, whether in whole or in part, or any content displayed on the Site;
  • b. you shall not modify, make derivative works of, disassemble, reverse compile or reverse engineer any part of the Site;
  • c. you shall not access the Site in order to build a similar or competitive website, product, or service; and
  • d. except as expressly stated herein, no part of the Site may be copied, reproduced, distributed, republished, downloaded, displayed, posted or transmitted in any form or by any means.

Unless otherwise indicated, any future release, update, or other addition to functionality of the Site shall be subject to these Terms. All copyright and other proprietary notices on the Site (or on any content displayed on the Site) must be retained on all copies thereof.

2.3. Modification.

Portfolio Tree LLC reserves the right, at any time, to modify, suspend, or discontinue the Site (in whole or in part) with or without notice to you. You agree that Company will not be liable to you or to any third party for any modification, suspension, or discontinuation of the Site or any part thereof.

2.4. No Support or Maintenance.

You acknowledge and agree that Company will have no obligation to provide you with any support or maintenance in connection with the Site.

2.5. Ownership.

Excluding any User Content that you may provide (defined below), you acknowledge that all the intellectual property rights, including copyrights, patents, trade marks, and trade secrets, in the Site and its content are owned by Company or Company’s suppliers. Neither these Terms (nor your access to the Site) transfers to you or any third party any rights, title or interest in or to such intellectual property rights, except for the limited access rights expressly set forth in Section 2.1. Company and its suppliers reserve all rights not granted in these Terms. There are no implied licenses granted under these Terms.

2.6 Feedback.

If you provide Company with any feedback or suggestions regarding the Site (“Feedback”), you hereby assign to Company all rights in such Feedback and agree that Company shall have the right to use and fully exploit such Feedback and related information in any manner it deems appropriate. Company will treat any Feedback you provide to Company as non-confidential and non-proprietary. You agree that you will not submit to Company any information or ideas that you consider to be confidential or proprietary.

3. User Content

3.1. User Content.

“User Content” means any and all information and content that a user submits to, or uses with, the Site (e.g., content in the user’s profile or postings). You are solely responsible for your User Content. You assume all risks associated with use of your User Content, including any reliance on its accuracy, completeness or usefulness by others, or any disclosure of your User Content that personally identifies you or any third party. You hereby represent and warrant that your User Content does not violate our Acceptable Use Policy (defined in Section 3.3). You may not represent or imply to others that your User Content is in any way provided, sponsored or endorsed by Company. Since you alone are responsible for your User Content, you may expose yourself to liability if, for example, your User Content violates the Acceptable Use Policy. Company is not obligated to backup any User Content, and your User Content may be deleted at any time without prior notice. You are solely responsible for creating and maintaining your own backup copies of your User Content if you desire.

3.2. License.

You hereby grant (and you represent and warrant that you have the right to grant) to Company an irrevocable, nonexclusive, royalty-free and fully paid, worldwide license to reproduce, distribute, publicly display and perform, prepare derivative works of, incorporate into other works, and otherwise use and exploit your User Content, and to grant sublicenses of the foregoing rights, solely for the purposes of including your User Content in the Site. You hereby irrevocably waive (and agree to cause to be waived) any claims and assertions of moral rights or attribution with respect to your User Content.

3.3. Acceptable Use Policy.

The following terms constitute our “Acceptable Use Policy”:

  • a. You agree not to use the Site to collect, upload, transmit, display, or distribute any User Content
    • (i) that violates any third-party right, including any copyright, trademark, patent, trade secret, moral right, privacy right, right of publicity, or any other intellectual property or proprietary right,
    • (ii) that is unlawful, harassing, abusive, tortious, threatening, harmful, invasive of another’s privacy, vulgar, defamatory, false, intentionally misleading, trade libelous, pornographic, obscene, patently offensive, promotes racism, bigotry, hatred, or physical harm of any kind against any group or individual or is otherwise objectionable,
    • (iii) that is harmful to minors in any way, or
    • (iv) that is in violation of any law, regulation, or obligations or restrictions imposed by any third party.
  • b. In addition, you agree not to:
    • (i) upload, transmit, or distribute to or through the Site any computer viruses, worms, or any software intended to damage or alter a computer system or data;
    • (ii) send through the Site unsolicited or unauthorized advertising, promotional materials, junk mail, spam, chain letters, pyramid schemes, or any other form of duplicative or unsolicited messages, whether commercial or otherwise;
    • (iii) use the Site to harvest, collect, gather or assemble information or data regarding other users, including e-mail addresses, without their consent;
    • (iv) interfere with, disrupt, or create an undue burden on servers or networks connected to the Site, or violate the regulations, policies or procedures of such networks;
    • (v) attempt to gain unauthorized access to the Site (or to other computer systems or networks connected to or used together with the Site), whether through password mining or any other means;
    • (vi) harass or interfere with any other user’s use and enjoyment of the Site; or
    • (vi) use software or automated agents or scripts to produce multiple accounts on the Site, or to generate automated searches, requests, or queries to (or to strip, scrape, or mine data from) the Site (provided, however, that we conditionally grant to the operators of public search engines revocable permission to use spiders to copy materials from the Site for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials, subject to the parameters set forth in our robots.txt file).

3.4. Enforcement.

We reserve the right (but have no obligation) to review, refuse and/or remove any User Content in our sole discretion, and to investigate and/or take appropriate action against you in our sole discretion if you violate the Acceptable Use Policy or any other provision of these Terms or otherwise create liability for us or any other person. Such action may include removing or modifying your User Content, terminating your Account in accordance with Section 8, and/or reporting you to law enforcement authorities.

4. Indemnification.

You agree to indemnify and hold Company (and its officers, employees, and agents) harmless, including costs and attorneys’ fees, from any claim or demand made by any third party due to or arising out of

  • a. your use of the Site,
  • b. your violation of these Terms,
  • c. your violation of applicable laws or regulations or
  • d. your User Content.

Company reserves the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate with our defense of these claims. You agree not to settle any matter without the prior written consent of Company. Company will use reasonable efforts to notify you of any such claim, action or proceeding upon becoming aware of it.

5. Third-Party Links & Ads; Other Users

5.1. Third-Party Links & Ads.

The Site may contain links to third-party websites and services, and/or display advertisements for third parties (collectively, “Third-Party Links & Ads”). Such Third-Party Links & Ads are not under the control of Company, and Company is not responsible for any Third-Party Links & Ads. Company provides access to these Third-Party Links & Ads only as a convenience to you, and does not review, approve, monitor, endorse, warrant, or make any representations with respect to Third-Party Links & Ads. You use all Third-Party Links & Ads at your own risk, and should apply a suitable level of caution and discretion in doing so. When you click on any of the Third-Party Links & Ads, the applicable third party’s terms and policies apply, including the third party’s privacy and data gathering practices. You should make whatever investigation you feel necessary or appropriate before proceeding with any transaction in connection with such Third-Party Links & Ads.

5.2. Other Users.

Each Site user is solely responsible for any and all of its own User Content. Since we do not control User Content, you acknowledge and agree that we are not responsible for any User Content, whether provided by you or by others. We make no guarantees regarding the accuracy, currency, suitability, appropriateness, or quality of any User Content. Your interactions with other Site users are solely between you and such users. You agree that Company will not be responsible for any loss or damage incurred as the result of any such interactions. If there is a dispute between you and any Site user, we are under no obligation to become involved.

5.3. Release.

You hereby release and forever discharge the Company (and our officers, employees, agents, successors, and assigns) from, and hereby waive and relinquish, each and every past, present and future dispute, claim, controversy, demand, right, obligation, liability, action and cause of action of every kind and nature (including personal injuries, death, and property damage), that has arisen or arises directly or indirectly out of, or that relates directly or indirectly to, the Site (including any interactions with, or act or omission of, other Site users or any Third-Party Links & Ads). IF YOU ARE A CALIFORNIA RESIDENT, YOU HEREBY WAIVE CALIFORNIA CIVIL CODE SECTION 1542 IN CONNECTION WITH THE FOREGOING, WHICH STATES: “A GENERAL RELEASE DOES NOT EXTEND TO CLAIMS WHICH THE CREDITOR OR RELEASING PARTY DOES NOT KNOW OR SUSPECT TO EXIST IN HIS OR HER FAVOR AT THE TIME OF EXECUTING THE RELEASE, WHICH IF KNOWN BY HIM OR HER MUST HAVE MATERIALLY AFFECTED HIS OR HER SETTLEMENT WITH THE DEBTOR OR RELEASED PARTY.”

6. Disclaimers.



7. Limitation on Liability.




8. Term and Termination.

Subject to this Section, these Terms will remain in full force and effect while you use the Site. We may suspend or terminate your rights to use the Site (including your Account) at any time for any reason at our sole discretion, including for any use of the Site in violation of these Terms. Upon termination of your rights under these Terms, your Account and right to access and use the Site will terminate immediately. You understand that any termination of your Account may involve deletion of your User Content associated with your Account from our live databases. Company will not have any liability whatsoever to you for any termination of your rights under these Terms, including for termination of your Account or deletion of your User Content. Even after your rights under these Terms are terminated, the following provisions of these Terms will remain in effect: Sections 2.2 through 2.6, Section 3 and Sections 4 through 10.

9. Copyright Policy.

Company respects the intellectual property of others and asks that users of our Site do the same. In connection with our Site, we have adopted and implemented a policy respecting copyright law that provides for the removal of any infringing materials and for the termination, in appropriate circumstances, of users of our online Site who are repeat infringers of intellectual property rights, including copyrights. If you believe that one of our users is, through the use of our Site, unlawfully infringing the copyright(s) in a work, and wish to have the allegedly infringing material removed, the following information in the form of a written notification (pursuant to 17 U.S.C. § 512 c) must be provided to our designated Copyright Agent:

  1. your physical or electronic signature;
  2. identification of the copyrighted work(s) that you claim to have been infringed;
  3. identification of the material on our services that you claim is infringing and that you request us to remove;
  4. sufficient information to permit us to locate such material;
  5. your address, telephone number, and e-mail address;
  6. a statement that you have a good faith belief that use of the objectionable material is not authorized by the copyright owner, its agent, or under the law; and
  7. a statement that the information in the notification is accurate, and under penalty of perjury, that you are either the owner of the copyright that has allegedly been infringed or that you are authorized to act on behalf of the copyright owner.

Please note that, pursuant to 17 U.S.C. § 512(f), any misrepresentation of material fact (falsities) in a written notification automatically subjects the complaining party to liability for any damages, costs and attorney’s fees incurred by us in connection with the written notification and allegation of copyright infringement.

The designated Copyright Agent for Company is: Designated Agent: Christopher Hunter Agent Address: 9450 Southwest Gemini Drive, PMB 90897, Beaverton, Oregon 97008 Email:

10. General.

10.1. Changes.

These Terms are subject to occasional revision, and if we make any substantial changes, we may notify you by sending you an e-mail to the last e-mail address you provided to us (if any), and/or by prominently posting notice of the changes on our Site. You are responsible for providing us with your most current e-mail address. In the event that the last e-mail address that you have provided us is not valid, or for any reason is not capable of delivering to you the notice described above, our dispatch of the e-mail containing such notice will nonetheless constitute effective notice of the changes described in the notice. Continued use of our Site following notice of such changes shall indicate your acknowledgement of such changes and agreement to be bound by the terms and conditions of such changes.

10.2. Dispute Resolution.

Please read this Section 10.2 (sometimes referred to herein as this “Arbitration Agreement”) carefully. It is part of your contract with Company and affects your rights. It contains procedures for MANDATORY BINDING ARBITRATION AND A CLASS ACTION WAIVER.

  • a. Applicability of Arbitration Agreement. All claims and disputes (excluding claims for injunctive or other equitable relief as set forth below) in connection with these Terms or the use of any product or service provided by the Company that cannot be resolved informally or in small claims court shall be resolved by binding arbitration on an individual basis under the terms of this Arbitration Agreement. Unless otherwise agreed to, all arbitration proceedings shall be held in English. This Arbitration Agreement applies to you and the Company, and to any subsidiaries, affiliates, agents, employees, predecessors in interest, successors, and assigns, as well as all authorized or unauthorized users or beneficiaries of services or goods provided under these Terms.

  • b. Notice Requirement and Informal Dispute Resolution. Before either party may seek arbitration, the party must first send to the other party a written Notice of Dispute (“Notice”) describing the nature and basis of the claim or dispute, and the requested relief. A Notice to the Company should be sent to: 9450 Southwest Gemini Drive, PMB 90897, Beaverton, Oregon 97008. After the Notice is received, you and the Company may attempt to resolve the claim or dispute informally. If you and the Company do not resolve the claim or dispute within thirty (30) days after the Notice is received, either party may begin an arbitration proceeding. The amount of any settlement offer made by any party may not be disclosed to the arbitrator until after the arbitrator has determined the amount of the award, if any, to which either party is entitled.

  • c. Arbitration Rules. The Federal Arbitration Act governs the interpretation and enforcement of this Arbitration Agreement. The arbitration will be conducted by JAMS, an established alternative dispute resolution provider. Disputes involving claims, counterclaims, or request for relief under $250,000, not inclusive of attorneys’ fees and interest, shall be subject to JAMS’s most current version of the Streamlined Arbitration Rules and procedures available at; all other disputes shall be subject to JAMS’s most current version of the Comprehensive Arbitration Rules and Procedures, available at JAMS’s rules are also available at or by calling JAMS at 800-352-5267. If JAMS is not available to arbitrate, the parties will select an alternative arbitral forum. Each party shall bear its own costs (including attorney’s fees) and disbursements arising out of the arbitration and shall pay an equal share of the fees and costs of the ADR Provider.

    You may choose to have the arbitration conducted by telephone, based on written submissions, or in person in the country where you live or at another mutually agreed location. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction.

  • (d): Authority of Arbitrator. The arbitrator shall have exclusive authority to

    • (i) determine the scope and enforceability of this Arbitration Agreement and
    • (ii) resolve any dispute related to the interpretation, applicability, enforceability or formation of this Arbitration Agreement including, but not limited to, any assertion that all or any part of this Arbitration Agreement is void or voidable. The arbitration will decide the rights and liabilities, if any, of you and Company. The arbitration proceeding will not be consolidated with any other matters or joined with any other cases or parties.

    The arbitrator shall have the authority to grant motions dispositive of all or part of any claim. The arbitrator shall have the authority to award monetary damages and to grant any non-monetary remedy or relief available to an individual under applicable law, the arbitral forum’s rules, and these Terms (including the Arbitration Agreement). The arbitrator shall issue a written award and statement of decision describing the essential findings and conclusions on which the award is based, including the calculation of any damages awarded. The arbitrator has the same authority to award relief on an individual basis that a judge in a court of law would have. The award of the arbitrator is final and binding upon you and us.

  • (e): Waiver of Jury Trial. YOU AND COMPANY HEREBY WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO SUE IN COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY. You and Company are instead electing that all disputes, claims, or requests for relief shall be resolved by arbitration under this Arbitration Agreement, except as specified in Section 10.2(a) (Applicability of Arbitration Agreement) above. An arbitrator can award on an individual basis the same damages and relief as a court and must follow these Terms as a court would. However, there is no judge or jury in arbitration, and court review of an arbitration award is subject to very limited review.

  • (f): Waiver of Class or Other Non-Individualized Relief. ALL DISPUTES, CLAIMS, AND REQUESTS FOR RELIEF WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED ON AN INDIVIDUAL BASIS AND NOT ON A CLASS OR COLLECTIVE BASIS, ONLY INDIVIDUAL RELIEF IS AVAILABLE, AND CLAIMS OF MORE THAN ONE CUSTOMER OR USER CANNOT BE ARBITRATED OR CONSOLIDATED WITH THOSE OF ANY OTHER CUSTOMER OR USER. If a decision is issued stating that applicable law precludes enforcement of any of this section’s limitations as to a given dispute, claim, or request for relief, then such aspect must be severed from the arbitration and brought into the State or Federal Courts located in the State of Oregon. All other disputes, claims, or requests for relief shall be arbitrated.

  • (g): 30-Day Right to Opt Out. You have the right to opt out of the provisions of this Arbitration Agreement by sending written notice of your decision to opt out to:, within thirty (30) days after first becoming subject to this Arbitration Agreement. Your notice must include your name and address, your Company username (if any), the email address you used to set up your Company account (if you have one), and an unequivocal statement that you want to opt out of this Arbitration Agreement. If you opt out of this Arbitration Agreement, all other parts of these Terms will continue to apply to you. Opting out of this Arbitration Agreement has no effect on any other arbitration agreements that you may currently have, or may enter in the future, with us.

  • (h): Severability. Except as provided in Section 10.2(f) (Waiver of Class or Other Non-Individualized Relief), if any part or parts of this Arbitration Agreement are found under the law to be invalid or unenforceable, then such specific part or parts shall be of no force and effect and shall be severed and the remainder of the Arbitration Agreement shall continue in full force and effect.

  • (i): Survival of Agreement. This Arbitration Agreement will survive the termination of your relationship with Company.

  • (j): Notwithstanding any provision in these Terms to the contrary, we agree that if Company makes any future material change to this Arbitration Agreement, you may reject that change within thirty (30) days of such change becoming effective by writing Company at the following address:

10.3. Export.

The Site may be subject to U.S. export control laws and may be subject to export or import regulations in other countries. You agree not to export, reexport, or transfer, directly or indirectly, any U.S. technical data acquired from Company, or any products utilizing such data, in violation of the United States export laws or regulations.

10.4. Disclosures.

Company is located at the address in Section 10.8. If you are a California resident, you may report complaints to the Complaint Assistance Unit of the Division of Consumer Product of the California Department of Consumer Affairs by contacting them in writing at 400 R Street, Sacramento, CA 95814, or by telephone at (800) 952-5210.

10.5. Electronic Communications.

The communications between you and Company use electronic means, whether you use the Site or send us emails, or whether Company posts notices on the Site or communicates with you via email. For contractual purposes, you

  • (a) consent to receive communications from Company in an electronic form; and

  • (b) agree that all terms and conditions, agreements, notices, disclosures, and other communications that Company provides to you electronically satisfy any legal requirement that such communications would satisfy if it were be in a hardcopy writing.

  • The foregoing does not affect your non-waivable rights.

10.6. Entire Terms.

These Terms constitute the entire agreement between you and us regarding the use of the Site. Our failure to exercise or enforce any right or provision of these Terms shall not operate as a waiver of such right or provision. The section titles in these Terms are for convenience only and have no legal or contractual effect. The word “including” means “including without limitation”. If any provision of these Terms is, for any reason, held to be invalid or unenforceable, the other provisions of these Terms will be unimpaired and the invalid or unenforceable provision will be deemed modified so that it is valid and enforceable to the maximum extent permitted by law. Your relationship to Company is that of an independent contractor, and neither party is an agent or partner of the other. These Terms, and your rights and obligations herein, may not be assigned, subcontracted, delegated, or otherwise transferred by you without Company’s prior written consent, and any attempted assignment, subcontract, delegation, or transfer in violation of the foregoing will be null and void. Company may freely assign these Terms. The terms and conditions set forth in these Terms shall be binding upon assignees.

10.7. Copyright/Trademark Information.

Copyright © 2022 PortfolioTree LLC. All rights reserved. All trademarks, logos and service marks (“Marks”) displayed on the Site are our property or the property of other third parties. You are not permitted to use these Marks without our prior written consent or the consent of such third party which may own the Marks.

10.8. Contact Information:

Christopher Hunter


9450 Southwest Gemini Drive PMB 90897 Beaverton, Oregon 97008

Telephone: 14242569511 Email:

User Privacy

At PortfolioTree LLC, we are committed to protecting the privacy and security of our users. This Privacy Policy applies to the information we collect when you use our website and services, and explains how we use and share that information.

Information We Collect

  • Personal information: We may collect personal information such as your name, email address, and phone number when you create an account or contact us through our website.
  • Usage data: We may collect information about how you use our website and services, including the pages you visit and the actions you take.
  • Device information: We may collect information about the device you use to access our website, including the type of device, IP address, and operating system.

How we use the information we collect

  • To provide and improve our website and services: We use the information we collect to provide and improve our website and services, including to personalize your experience and respond to your requests.
  • To communicate with you: We may use the information we collect to communicate with you, such as to respond to your inquiries or send you updates about our services.
  • For research and development: We may use the information we collect for research and development purposes, such as to understand how our users use our website and services and to identify opportunities for improvement.

Sharing of information

We may share the information we collect with third parties in the following situations:

  • With service providers: We may share the information we collect with service providers who assist us in operating our website and services, such as hosting and analytics providers.
  • For legal reasons: We may share the information we collect if required to do so by law, or if we believe it is necessary to protect the rights, property, or safety of PortfolioTree LLC, our users, or others.
  • In the event of a merger or acquisition: In the event that PortfolioTree LLC is acquired by or merged with another company, we may share the information we collect with that company.

Data retention

We will retain the information we collect for as long as necessary to fulfill the purposes outlined in this Privacy Policy, unless otherwise required by law.

Your rights

  • Access to your information: You have the right to request access to the personal information we hold about you.
  • Correction of your information: You have the right to request that we correct any inaccuracies in the personal information we hold about you.
  • Deletion of your information: You have the right to request that we delete the personal information we hold about you.
  • Objection to processing: You have the right to object to the processing of your personal information.
  • Restriction of processing: You have the right to request that we restrict the processing of your personal information.
  • Data portability: You have the right to request that we create and document an API for you to programmatically export and use data associated with you.

To exercise any of these rights, please contact us.

Changes to this Privacy Policy

We may update this Privacy Policy from time to time. We will post any changes on this page and encourage you to review the policy periodically.

If you have any questions or concerns about our privacy practices, please contact us.

Data Protection Officer

Fewer than 250 people are involved with building the PortfolioTree codebase so no Data Protection Officer has been named.

Cookie Policy

Last updated: December 28, 2022

This Cookie Policy explains what cookies are, how (“we”, “us”, “our”) uses cookies and similar technologies, and how you can control them.

What are cookies?

Cookies are small text files that are placed on your computer or mobile device in your browser by websites that you visit. They are widely used to make websites work, or work more efficiently, as well as to provide information to the owners of the site.

There are different types of cookies, which can be broadly divided into the following categories:

  • Necessary cookies: These are essential for the operation of a website and enable you to navigate and use features such as un-saved portfolio specification changes or store user authentication and authorization status.
  • Performance cookies: Are not yet used by These cookies may collect information about how you use a website, for example, which pages you visit most often, and if you receive error messages from web pages. These cookies do not collect information that identifies you. All information would be anonymous and would only be used to improve the performance of a website.
  • Functionality cookies: Are not yet used by These cookies allow a website to remember choices you make (such as your user name, language, or the region you are in) and provide enhanced, more personal features. These cookies may store information such as “Dark Mode” if we ever implement it. The information these cookies collect may be anonymized and cannot track your browsing activity on other websites.
  • Targeting or advertising cookies: Are not yet used by These cookies are used to deliver advertisements that are more relevant to you and your interests. They are also used to limit the number of times you see an advertisement as well as help measure the effectiveness of an advertising campaign. They are usually placed by advertising networks with the website operator’s permission. They remember that you have visited a website and this information is shared with other organizations such as advertisers.

How do we use cookies?

We use necessary cookies to enable the core functionality of our website. This includes remembering your cookie preferences and keeping you logged in if you have an account. We also use them to store work in progress changes to portfolio specifications.

How you can change how you use cookies?

You can change your cookie settings in your internet browser at any time. Most internet browsers are set to accept cookies by default, but you can change your settings to block cookies or to be alerted when cookies are being sent to your device. To learn more about how to do this, visit the “Help” section of your internet browser.

Please note that if you choose to block cookies, certain features of our website may not work as intended.

You can also manage cookies through your browser settings or through third-party tools.