Foogle is a smart search engine for financial data. Developed as part of a suite of tools to perform a reconciliation of data between three sets of financial data, Foogle made life easier for many people. We’re featuring it separately because we think it deserves its own attention.
Despite it’s simple appearance, Foogle does 4 things really well:
- Encapsulates complexity: Foogle provides searchable access to the data in 3 systems with one interface. The casual user doesn’t need to trouble themselves with the details.
- Term interpretation: Foogle knows that when you search for US$500, it should only look in places that have dollar amounts. When you search for 200903, Foogle looks for payments made during March 2009. Similarly, Q17 tells Foogle to search for payments during fiscal quarter 17 (or, FY5Q1 would do the same). Foogle has many, many formats it can interpret into specific days, months, calendar or fiscal years, currencies, and amounts. Anything that isn’t interpreted as a specific type is searched for as plain text.
- Term modifiers: Want all payments under US$500? Use <US$500. How about payments that are NOT US$500? !=US$500 will do it. How about payments with a value of US$500 plus or minus VAT and/or retention percentages? =%US$10000 will search for all the possible amounts automatically.
- Ranking for relevance: A search like <N$60000 AND (lobby OR Powerbod) will return all payments less than N$60,000 that also match lobby or Powerbod. Rows that match both lobby AND Powerbod will be listed higher than rows that only match one of the terms, as they are deemed to be more relevant.
Foogle was developed in a modular fashion, making the creation or modification of recognized terms and their modifiers quite easy.
Over the course of a 20 months, MCA Namibia staff used Foogle to perform over 10,000 searches as part of their daily activities.
- Program type: Web App interface
- Languages/technologies used: Perl, MySQL, SQL Server, Excel Spreadsheets
- Client: Millennium Challenge Account Namibia
- Patrick’s Role: Design and development
- Dates: 2012-2014
- Vertical: Accounting
Feel free to take Foogle for a spin on our demo system (containing fake data).
Use the username “demo” and the password “demo” to log in.
Try these examples:
1. To find all payments to Mahogany Co. in fiscal year 2, you could search for:
Mahogany AND FY2
2. To find all payments between 700 and 800 Namibia dollars made during November 2009, you could search for:
>=N$700 AND <=N$800 AND 200911
3. To search for payments related to law, you could search for:
- Calendar years: 2008 – 2015
- Fiscal years: FY1 (same as FY2009-2010), FY2 (same as FY2010-2011), FY3 (same as “Fiscal Year 11-12”), FY4 (same as FY2012-13), FY5 (same as “Fiscal Year 2013-14”)
- Fiscal quarters: FY1Q1, FY2Q4 (same as Q8), “Fiscal Year 3 Quarter 2” (same as Q10), Q19 (same as FY5Q3)
- Specific months: “Jan 2010”, “January 2010”, “01 2010” and many more…
- Specific days: “Jan 2 2010”, 20100102, 02-01-2010 and many more…
- Specific currencies: US$, N$ (for Namibia dollars)
- Specific dollar amounts: e.g. $10000 (any currency)
- For a specific payment
- C8540 (“C” is for Contract payments–valid range: 8540 – 9184)
- E3534 (“E” is for once-off Expenses–valid range: 3534 – 5333)
- G400 (“G” is for Grant payments–valid range: 1229 – 1258)
- S613 (“S” is for Salary payments–valid range: 613 – 685)
- Anything else is treated as text