Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Thursday, 26 September 2019

Summer wants to vanquish student loans for borrowers, and now has $10M to do it

$1.5 trillion. That’s the amount of outstanding student loan debt held by American citizens according to the New York Fed. It is an astronomical sum, and has led to much hand-wringing about whether there is a coming bubble in U.S. higher education.

What’s even worse than the scale of the debt load though is the fact that for millions of borrowers, they literally don’t have to pay some of those dollars. Thanks to the complexity of the loan system in the U.S., borrowers often qualify for repayment programs that can lead to loan forgiveness, that is, if they can figure out the terms, apply correctly, and actively follow the rules to net the write-off.

Enter Summer. The public benefit corporation is on a mission to act as a “trusted advisor” to student loan borrowers. Through its platform, borrowers can get a full 360-degree view of their current student loan situation, and begin exploring options for how to repay it in the most financially efficient way possible.

Summer ForgivenessFinder

Summer’s program helps users identify possible forgiveness options. Photo via Summer.

The company’s early traction has brought it a new round of venture capital. The company announced this morning that QED Investors, one of the leading early-stage fintech investors out there, led a $10 million series A round in the company. Recent partner addition Matt Burton led the deal, who joined QED about a year ago after selling his lending data startup Orchard to Kabbage.

Co-founder and CEO Will Sealy analogized Summer to how tax accountants help filers handle the complexities of doing their taxes. “We’re trying to create the software that democratizes [student loan] expertise, that gets the expertise into the hands of the end consumer, who might not be able to afford an accountant that doesn’t even unfortunately exist in the student loan space at this current moment,” he said.

He noted that the company is building out support for 120 loan forgiveness programs and their complicated rules, and has its eyes on more than a hundred other student loan proposals that are sitting in state legislatures across the country.

The company was started at Yale by Sealy and co-founders Paul Joo and Vincent Tran, and the trio eventually migrated to New York City while building the team to 13 according to its staffing page. Sealy previously worked at the Consumer Financial Protection Bureau in DC in the Office of Students, where he worked on precisely the challenges of getting students better access to quality information around student loan programs.

Summer team Sep19

Summer’s team. Photo via Summer.

So far, Summer, which launched in 2017, has helped 10,000 borrowers to date, and “just in this year, we have helped borrowers save $8 million,” Sealy said. “A critical metric is not just how many people we are engaging, but how much money we’re saving them.”

Summer does not charge end users to use its product. Instead, it sells through enterprises and other types of organizations to offer the product as a benefit to employees. Sealy gave the example of medical associations, who could offer Summer to recent medical school graduates, or companies who want to entice recent grads with a simple tool that can improve their financial lives.

Summer currently works retrospectively, in that it targets users who are post-grads. I asked why Summer didn’t focus prospectively on helping borrowers think through their student loan products before they take them on. Sealy replied that “In many ways, it feels like the house is on fire. So before we would ever go about trying to create a better smoke detector and build a new home, we want to save the people who are currently struggling.”

Burton of QED explained his rationale for leading the round. “QED, like the rest of the investors like General Catalyst and Story Ventures, we put a pretty big round into this company on the belief that there’s an urgent problem facing these student loan borrowers and we’re working hard to … scale to meet the needs of tens of millions of student borrowers.” With 10,000 users and $8 million saved, you can start to project out the potential impact Summer could have for many borrowers.

In addition to QED, the round had participation from General Catalyst, Greycroft, NextView Ventures, and Story Ventures.



from TechCrunch https://ift.tt/2lUFllZ
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support